MỤC LỤC LỜI CẢM ƠN LỜI MỞ ĐẦU CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 1 1.1 Giới thiệu chung về vi điều khiển 1 1.1.1 Vi điều khiển ATmega328 4 1.1.2 Các thông số chính của vi điều khiển ATmega328 5 1.1.3 Sơ đồ chân 5 1.2 Board Arduino 6 1.2.1 Giới thiệu chung về Arduino 6 1.2.2 Giới thiệu về board Arduino Uno 7 1.2.3 Lập trình Arduino 10 1.3 IC DS1307 12 1.3.1 Cơ chế hoạt động của DS1307 13 1.3.2 Hoạt động của các chân 14 1.4 Điều khiển từ xa dùng Bluetooth 20 1.4.1 Giới thiệu về Bluetooth 20 1.4.2 Module Bluetooth HC – 05 23 1.4.3 Hệ điều hành Android 29 CHƯƠNG 2: THIẾT KẾ HỆ THỐNG VÀ THI CÔNG 33 2.1 Sơ đồ tổng quát 33 2.2 Sơ đồ thiết kế 34 2.2.1 Khối nguồn 34 2.2.2 Khối Reset 35 2.2.3 Khối tạo xung dao động 35 2.2.4 Khối hiển thị 36 2.2.5 Khối tạo thời gian thực 36 2.2.6 Khối điều khiển trung tâm 37 2.2.7 Khối điều khiển 37 2.3 Thiết kế đồng hồ vạn niên điều khiển qua Bluetooth 39 2.3.1 Mạch đồng hồ vạn niên và hiển thị led 7 thanh 39 2.3.2 Mạch điều khiển 39 2.4 Thiết kế giao diện trên điện thoại 40 2.5 Mô hình mạch thực tế 42 2.5.1 Các linh kiện sử dụng trong mạch 42 2.5.2 Mạch thực tế 42 2.6 Lưu đồ thuật toán 44 2.7 Code chương trình 45 KẾT LUẬN 70 TÀI LIỆU THAM KHẢO 72
Trang 1KHOA ĐIỆN TỬ
***
ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN TỬ - TRUYỀN THÔNG
ĐỀ TÀI: NGHIÊN CỨU VÀ THIẾT KẾ ĐỒNG HỒ VẠN NIÊN
ĐIỀU KHIỂN QUA BLUETOOTH
Giáo viên hướng dẫn : TH.S NGUYỄN NGỌC ANH Sinh viên thực hiện : BÙI THỊ YẾN
Lớp : ĐH CNKT Điện Tử 4 – K7
NĂM 2016
Trang 2LỜI CẢM ƠN
LỜI MỞ ĐẦU
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 1
1.1 Giới thiệu chung về vi điều khiển 1
1.1.1 Vi điều khiển ATmega328 4
1.1.2 Các thông số chính của vi điều khiển ATmega328 5
1.1.3 Sơ đồ chân 5
1.2 Board Arduino 6
1.2.1 Giới thiệu chung về Arduino 6
1.2.2 Giới thiệu về board Arduino Uno 7
1.2.3 Lập trình Arduino 10
1.3 IC DS1307 12
1.3.1 Cơ chế hoạt động của DS1307 13
1.3.2 Hoạt động của các chân 14
1.4 Điều khiển từ xa dùng Bluetooth 20
1.4.1 Giới thiệu về Bluetooth 20
1.4.2 Module Bluetooth HC – 05 23
1.4.3 Hệ điều hành Android 29
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG VÀ THI CÔNG 33
2.1 Sơ đồ tổng quát 33
Trang 32.2.2 Khối Reset 35
2.2.3 Khối tạo xung dao động 35
2.2.4 Khối hiển thị 36
2.2.5 Khối tạo thời gian thực 36
2.2.6 Khối điều khiển trung tâm 37
2.2.7 Khối điều khiển 37
2.3 Thiết kế đồng hồ vạn niên điều khiển qua Bluetooth 39
2.3.1 Mạch đồng hồ vạn niên và hiển thị led 7 thanh 39
2.3.2 Mạch điều khiển 39
2.4 Thiết kế giao diện trên điện thoại 40
2.5 Mô hình mạch thực tế 42
2.5.1 Các linh kiện sử dụng trong mạch 42
2.5.2 Mạch thực tế 42
2.6 Lưu đồ thuật toán 44
2.7 Code chương trình 45
KẾT LUẬN 70
TÀI LIỆU THAM KHẢO 72
Trang 4DANH MỤC HÌNH VẼ
Hình 1.1: Vi điều khiển ATmega328 4
Hình 1.2: Sơ đồ chân ATmega328 5
Hình 1.3: Board Arduino Uno 7
Hình 1.4: Giao diện phần mềm Arduino IDE 11
Hình 1.5: Lập trình điều khiển led 11
Hình 1.6: DS1307 12
Hình 1.7: Mạch ứng dụng đơn giản của DS1307 13
Hình 1.8: Sơ đồ chân DS1307 14
Hình 1.9: Thanh ghi thời gian thực 16
Hình 1.10: Bluetooth 20
Hình 1.11: Module Bluetooth HC 05 23
Hình 1.12: Sơ đồ chân HC05 24
Hình 1.13: Giao diện phần mềm giao tiếp với module HC-05 27
Hình 1.14: Kiến trúc hệ điều hành Android 29
Hình 2.1: Sơ đồ hệ thống 33
Hình 2.2: Sơ đồ nguyên lý 34
Hình 2.3: Mạch nguồn dùng LM7805 34
Hình 2.4: Mạch reset 35
Trang 5Hình 2.6: LED 7 thanh 36
Hình 2.7: Sơ đồ chân DS1307 36
Hình 2.8: Mô phỏng mạch vi điều khiển ATmega328 37
Hình 2.9: Điều khiển nút nhấn 38
Hình 2.10: Kết nối các chân với vi điều khiển 38
Hình 2.11: Mạch mô phỏng đồng hồ vạn niên 39
Hình 2.12: Mạch in 2D mạch điều khiển 39
Hình 2.13: Mạch in mạch điều khiển 40
Hình 2.14 : Giao diện kết nối trên Android 40
Hình 2.15: Giao diện code lập trình qua thẻ block 41
Hình 2.16: Ứng dụng Bluetooth đơn giản 41
Hình 2.17: Mạch hiển thị đồng hồ vạn niên 43
Hình 2.18: Mạch điều khiển 43
Trang 6LỜI CẢM ƠN
Trong thời gian thực hiện báo cáo đồ án tốt nghiệp, em xin gửi lời cảm ơnđến gia đình, thầy cô, bạn bè đã luôn ở bên giúp đỡ, đóng góp ý kiến chỉ bảo
tận tình cho em Đặc biệt, em xin gửi lời cảm ơn chân thành đến thầy TH.S
NGUYỄN NGỌC ANH, giảng viên khoa công nghệ kĩ thuật điện tử truyền
thông, trường Đại học công nghiệp Hà Nội; người đã tận tình hướng dẫn chỉbảo em trong suốt quá trình thực hiện đồ án
Em cũng xin chân thành cảm ơn đến các thầy cô giảng viên trường Đại họccông nghiệp Hà Nội nói chung, các thầy cô trong bộ môn khoa công nghệ kĩthuật điện tử nói riêng đã dạy dỗ em trong suốt 4 năm học đại học, giúp em
có được kiến thức vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trìnhhọc tập để em có thể vững bước trong tương lai
Trong quá trình thực hiện đồ án tốt nghiệp là khoảng thời gian quý báu giúp
em học hỏi rất nhiều từ việc làm, nghiên cứu độc lập, tìm hiểu và học hỏinhững nguồn tư liệu đã có; qua đó biết tiếp thu kiến thức đồng thời vận dụngnhững kiến thức mà bản thân đã học tập trên ghế nhà trường để thực hiện bảnbáo cáo này Do kiến thức và kinh nghiệm của bản thân còn nhiều hạn chế vàthời gian không cho phép nên bản báo cáo này vẫn còn nhiều thiếu sót, em rất
mong được sự góp ý của thầy NGUYỄN NGỌC ANH và thầy cô trong
khoa
Cuối cùng em xin chúc thầy cô có sức khỏe, vui vẻ và đạt được nhiều thànhcông trong cuộc sống và cũng như sự nghiệp của mình
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Bùi Thị Yến
Trang 7LỜI MỞ ĐẦU
Trong xã hội hiện đại ngày nay, điện tử đóng một vai trò cực kì quan trọng,
chúng xuất hiện trong rất nhiều lĩnh vực của đời sống Do đó việc tìm hiểu vànghiên cứu về chúng là rất cần thiết đối với sinh viên chuyên ngành điện tử.Với sự phát triển mạnh mẽ của khoa học, công nghệ chế tạo vi mạch và sựphát minh ra các linh kiện điện tử thì việc ứng dụng vi điều khiển, vi xử lýcàng trở nên quan trọng Người ta đã tạo những vi điều khiển có cấu trúcmạnh hơn, đáp ứng thời gian thực tốt hơn, làm cho các hệ thống linh hoạt và
đa dạng hơn, giá thành thấp hơn và đặc biệt là độ chính xác cao hơn Bêncạnh đó là sự tiến bộ nhanh chóng của công nghệ thông tin và viễn thông; cácthiết bị di động công nghệ cao như máy tính bỏ túi, máy tính xách tay laptop,điện thoại di động, không còn xa lạ và ngày càng được sử dụng rộng rãitrong những năm gần đây Chính vì vậy, với sự phân công của khoa Điện Tử
trường Đại Học Công Nghiệp Hà Nội và dưới sự hướng dẫn trực tiếp của thầy
Nguyễn Ngọc Anh đã giúp em tìm hiểu và nghiên cứu thực hiện đề tài:
“Nghiên cứu và thiết kế đồng hồ vạn niên điều khiển qua Bluetooth”.
Trong quá trình thực hiện đồ án tốt nghiệp, mặc dù đã rất cố gắng để hoànthành một cách tốt nhất nhưng với thời gian và kinh nghiệm còn hạn chế nênbản báo cáo không tránh khỏi những thiết sót Rất mong được sự chỉ dẫn củaquý thầy cô và sự đóng góp ý kiến của các bạn
Em xin chân thành cảm ơn !
Trang 91.1.1 Vi điều khiển ATmega328
ATmega328 là vi điều khiển trong board mạch Arduino ATmega328 có tênđầy đủ là ATmega328P-PU ATmega328 là một chíp vi điều khiển được sảnxuất bời hãng Atmel thuộc họ MegaAVR ATmega328 là một bộ vi điềukhiển 8 bít dựa trên kiến trúc RISC, bộ nhớ chương trình 32KB ISP flash cóthể ghi xóa hàng nghìn lần, 1KB EEPROM, một bộ nhớ RAM vô cùng lớntrong thế giới vi xử lý 8 bít (2KB SRAM)
Hình 1.1: Vi điều khiển ATmega328
1.1.2 Các thông số chính của vi điều khiển ATmega328
+ Kiến trúc: AVR 8bit
Trang 10+ Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit
+ Số kênh xung PWM: 6 kênh (1timer 2 kênh)
1.1.3 Sơ đồ chân
Hình 1.2: Sơ đồ chân ATmega328
Với 23 chân có thể sử dụng cho các kết nối vào hoặc ra I/O, 32 thanh ghi, 3
bộ timer/counter có thể lập trình, có các ngắt nội và ngoại (2 lệnh trên một
Trang 11vector ngắt), giao thức truyền thông nối tiếp USART, SPI, I2C Ngoài ra cóthể sử dụng bộ biến đổi số tương tự 10 bít (ADC/DAC) mở rộng tới 8 kênh,khả năng lập trình được bộ giám sát thời gian hoạt động với 5 chế độ nguồn;
có thể sử dụng tới 6 kênh điều chế độ rộng xung (PWM), hỗ trợ nạp khởiđộng ATmega328 có khả năng hoạt động trong một dải điện áp rộng (1.8V –5.5V), tốc độ thực thi (thông lượng) 1MIPS trên 1MHz ATmega328 là linhhồn của board mạch Arduino
1.2 Board Arduino
1.2.1 Giới thiệu chung về Arduino
Arduino là một bo mạch vi xử lý được dùng để lập trình tương tác với cácthiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặcđiểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kì dễ sửdụng, với ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả vớingười ít am hiểu về điện tử và lập trình Và điều làm nên hiện tượng Arduinochính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổsung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác Một khíacạnh quan trọng của Arduino là các kết nối tiêu chuẩn của chúng cho phépngười dùng kết nối CPU của bo mạch với các module; thêm vào có thể dễdàng chuyển đổi, được gọi là cái khiên Vài cái khiên truyền thông với boardArduino trực tiếp thông qua các chân khác nhau, nhưng nhiều khiên đượcđịnh địa chỉ thông qua giao thức nối tiếp I2C, nhiều cái khiên có thể được xếpchồng và sử dụng dưới dạng song song Arduino chính thức thường sử dụngcác dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328,ATmega1280 và ATmega2560 Một vài các bộ vi xử lý khác cũng được sửdụng bởi các mạch Arduino tương thích Hầu hết các mạch gồm một bộ điềuchỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng
Trang 12gốm trong một vài biến thể) Một vi điều khiển Arduino cũng có thể được lậptrình sẵn với một mạch nạp khởi động cho phép đơn giản là đăng tải chươngtrình vào bộ nhớ, so với các thiết bị khác thường phải cần một bộ nạp bênngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cáchcho phép sử dụng một máy tính gốc như là một bộ nạp chương trình.
1.2.2 Giới thiệu về board Arduino Uno
Arduino Uno là một bo mạch thiết kế với bộ xử lý trung tâm là vi điềukhiển AVR ATmega328 Cấu tạo chính của Arduino Uno bao gồm các phầnsau:
Hình 1.3: Board Arduino Uno
- Cổng USB (Universal Serial Bus): đây là loại cổng giao tiếp để đăng tải
code từ PC lên vi điều khiển Đồng thời, chúng cũng là giao tiếp nối tiếp đểtruyền dữ liệu giữa vi điều khiển và máy tính
Trang 13- Jack nguồn: Arduino có thể lấy nguồn từ cổng USB ở trên, nhưng khôngphải lúc nào cũng có thể cắm với máy tính được; lúc đó ta cần một nguồn từ9V đến 12V.
- Có 14 chân vào/ra số đánh số thứ tự từ 0 đến 13, ngoài ra có một chân nốiđất (GND) và một chân điện áp tham chiếu (AREF)
- Vi điều khiển AVR: đây là bộ xử lý trung tâm của toàn bo mạch Với mỗimẫu Arduino khác nhau thì con chip là khác nhau Ở Arduino Uno này thì sửdụng ATmega328
* Chức năng:
1 USB
Arduino sử dụng cáp USB để giao tiếp với máy tính Thông qua cápUSB ta có thể đăng tải chương trình cho Arduino hoạt động Ngoài raUSB là nguồn cho Arduino
2 Nguồn
Khi không sử dụng USB làm nguồn thì ta có thể sử dụng nguồn ngoàiqua zác cắm 2,1mm (cực dương ở giữa) hoặc có thể sử dụng 2 chânVin và GND để cấp nguồn cho Arduino Bo mạch hoạt động vớinguồn ngoài ở điện áp từ 5-20V Chúng có thể cấp một điện áp lớnhơn, tuy nhiên chân 5V sẽ có mức điện áp lớn hơn 5V Nếu sử dụngnguồn lớn hơn 12V thì sẽ có hiện tượng nóng và hỏng bo mạch Chân 5V và chân 3,3V (output voltage): các chân này dùng để lấynguồn ra từ nguồn mà ta đã cung cấp cho Arduino
GND: chân mass
Trang 143 Chip ATmega328
Chip ATmega328 có 32K bộ nhớ flash trong đó 0,5K sử dụng chonạp chương trình Ngoài ra còn có 2K SRAM, 1K EPPROM
4 Input và Output
Arduino Uno có 14 chân digital (tín hiệu số) với chức năng vào và ra
sử dụng các hàm pinMode(), digitalWrite() và digitalRead()
- Serial: Chân 0(Rx), chân 1(Tx) Hai chân này dùng để truyền(Tx), nhận (Rx) dữ liệu nối tiếp TTL Ta có thể sử dụng chúng đểgiao tiếp với cổng COM của một số thiết bị hoặc các linh kiện cóchuẩn giao tiếp nối tiếp
- PWM (pulse width modulation): các chân 3 5 6 9 10 11 trên bomạch có dấu “~” là các chân PWM ta có thể sử dụng chúng đểđiều khiển tốc độ động cơ, độ sáng của đèn,…
- SPI: 10(SS), 11(MOSI), 12(MISO), 13(SCK) các chân này hỗ trợgiao tiếp SPI
- I2C: Arduino hỗ trợ giao tiếp theo chuẩn I2C Các chân A4 (SDA)
và A5 (SCL) cho phép ta giao tiếp Arduino với các linh kiện cóchuẩn giao tiếp là I2C
Trang 15Điện áp đầu vào: 7-12V
Điện áp đầu vào (Giới hạn): 6-20V
Chân vào/ra (I/O) số: 14 ( 6 chân có thể cho đầu ra PWM) Chân vào tương tự: 6
Dòng điện trong mỗi chân I/O: 40mA
Dòng điện chân nguồn 3.3V: 50mA
Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino ta dùngmột môi trường lập trình Arduino được gọi là Arduino IDE (IntergatedDevelopment Environment) Giao diện phần mềm Arduino IDE hình 1.4
Trang 16Hình 1.4: Giao diện phần mềm Arduino IDE
Ví dụ: Lập trình điều khiển nhấp nháy đèn
Hình 1.5: Lập trình điều khiển led
Trang 17+ Địa chỉ và dữ liệu được truyền nối tiếp qua 2 đường bus 2 chiều.
+ DS1307 có một mạch cảm biến điện áp dùng để dò các điện áp lỗi và tựđộng đóng ngắt với nguồn pin cung cấp 3V
+ DS1307 có 7 byte dữ liệu nằm từ địa chỉ 0x00 tới 0x06, 1 byte điều khiển
và 56 byte lưu trữ (dành cho người sử dụng)
+ Khi xử lý dữ liệu từ DS1307, họ đã tự chuyển cho ta về dạng số BCD, ví
dụ như ta đọc được dữ liệu từ địa chỉ 0x04 (tương ứng với ngày trong tháng)
và tại 0x05 (tháng) là 0x15, 0x11
Trang 18+ SQW/OUT: là chân cho xung ra của DS1307 có 4 chế độ 1Hz, 4.096HZ,8.192Hz, 32.768Hz…các chế độ này được quy định bởi các bit của thanh ghiđịa chỉ (địa chỉ 0x07).
+ Địa chỉ của DS1307 là 0xD0
1.3.1 Cơ chế hoạt động của DS1307
Hình 1.7: Mạch ứng dụng đơn giản của DS1307
VCC: nối với nguồn
X1, X2: nối với thạch anh 32,768 KHz
Vbat: đầu vào chân 3V
GND: đất
SDA: chuỗi data
SCL: dãy xung clock
SQW/OUT: xung vuông/đầu ra driver
Trang 19• DS1307 là một IC thời gian thực với nguồn cung cấp nhỏ, dùng để cậpnhật thời gian và ngày tháng với 56 bytes SRAM Địa chỉ và dữ liệu đượctruyền nối tiếp qua 2 đường bus 2 chiều Chúng cung cấp thông tin về giờ,phút, giây, thứ, ngày, tháng, năm Ngày cuối tháng sẽ tự động được điềuchỉnh với các tháng nhỏ hơn 31 ngày, bao gồm cả việc tự động nhảy năm.Đồng hồ có thể hoạt động ở dạng 24h hoặc 12h với chỉ thị AM/PM DS1307
có một mạch cảm biến điện áp dùng để dò các điện áp lỗi và tự động đóngngắt với nguồn pin cung cấp
• DS1307 hoạt động với vai trò slave trên đường bus nối tiếp Việc truy cậpđược thi hành với chỉ thị START và một mã thiết bị nhất định được cung cấpbởi địa chỉ các thanh ghi Tiếp theo đó, các thanh ghi sẽ được truy cập liên tụcđến khi chỉ thị STOP được thực thi
1.3.2 Hoạt động của các chân
Hình 1.8: Sơ đồ chân DS1307
• Vcc: nguồn một chiều, đầu vào 5V Khi 5V được cung cấp thì thiết bị có
thể truy cập hoàn chỉnh và dữ liệu có thể đọc và viết Khi chân 3V được nốitới thiết bị này và Vcc nhỏ hơn 1,25Vbat thì quá trình đọc và viết không đượcthực thi, tuy nhiên chức năng giữ thời gian không bị ảnh hưởng bởi điện áp
Trang 20vào thấp Khi Vcc nhỏ hơn Vbat thì RAM và bộ giữ thời gian sẽ được ngắt tớinguồn cung cấp trong (thường là nguồn 1 chiều 3V).
• SQW/OUT (square wave/output driver): khi được kích hoạt thì chânSQW/OUT được thiết lập phát đi 1 trong 4 tần số (1Hz,4KHz,8KHz,32KHz).Chân này cũng được thiết kế theo kiểu cực máng hở vì vậy chúng cũng cần cómột điện trở kéo trong Chân này sẽ hoạt động khi cả Vcc và Vbat được cấp
• X1, X2: được nối với một thạch anh tần số 32,768KHz, một mạch tạo daođộng ngoài, để hoạt động ổn định thì phải nối thêm 2 tụ 33pF DS1307 với bộtạo dao động trong tần số 32,768KHz, với cấu hình này thì chân X1 sẽ đượcnối vào tín hiệu dao động trong còn chân X2 thì để hở
a, Sơ đồ địa chỉ RAM và RTC
Trang 21• Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các bytethanh ghi thích hợp Thời gian và ngày tháng được thiết lập cũng thông quacác byte thanh ghi này bằng cách viết vào đó những giá trị thích hợp Nộidung của các thanh ghi dưới dạng mã BCD (binary coded decreaseimal) Bit 7của thanh ghi seconds là bit clock halt (CH), khi bit này được thiết lập 1 thìdao động vô hiệu hóa, khi chúng được xóa về 0 thì dao động được cho phép Thanh ghi thời gian thực được mô tả như sau:
Hình 1.9: Thanh ghi thời gian thực
• DS1307 có thể chạy ở chế độ 24h cũng như 12h Bit thứ 6 của thanh ghihours là bit chọn chế độ 24h hoặc 12h Khi bit này ở mức cao thì chế độ 12hđược chọn, ở chế độ 12h thì bit 5 là bit AM/PM với mức cao là PM; ở chế độ24h thì bit 5 là bit chỉ 20h (từ 20h đến 23h)
• Trong quá trình truy cập dữ liệu, khi chỉ thị START được thực thi thìdòng thời gian được truyền tới một thanh ghi thứ hai, thông tin thời gian sẽđược đọc từ thanh ghi thứ cấp này, trong khi đó đồng hồ vẫn tiếp tục chạy
Trang 22Trong DS1307 có một thanh ghi điều khiển để điều khiển hoạt động của chânSQW/OUT :
Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 OUT X X SQWE X X RS1 RS0
• OUT (output control): bit này điều khiển mức ra của chân SQW/OUT khiđầu ra xung vuông là vô hiệu hóa Nếu SQWE = 0 thì mức logic ở chânSQW/OUT sẽ là 1 nếu OUT=1 và OUT = 0 nếu OUT = 0
• SQWE (square wave enable): bit này được thiết lập 1 sẽ cho phép đầu racủa bộ tạo dao động Tần số của đầu ra sóng vuông phụ thuộc vào giá trị củaRS1 và RS0
DS1307 hỗ trợ bus 2 dây 2 chiều và giao thức truyền dữ liệu Thiết bị gửi
dữ liệu lên bus được gọi là bộ phát và thiết bị nhận gọi là bộ thu Thiết bị điềukhiển quá trình này gọi là master Thiết bị nhận sự điều khiển của master gọi
là slave Các bus nhận sự điều khiển của master là thiết bị phát ra chuỗi xungclock (SCL), master sẽ điều khiển sự truy cập bus, tạo ra các chỉ thị START
và STOP
b, Sự truyền nhận dữ liệu trên chuỗi bus 2 dây
Tuỳ thuộc vào bit R/W mà 2 loại truyền dữ liệu sẽ được thực thi:
Trang 23• Truyền dữ liệu từ master truyền và slave nhận: Master sẽ truyền byte đầutiên là địa chỉ của slave Tiếp sau đó là các byte dữ liệu Slave sẽ gửi lại bitthông báo đã nhận được (bit acknowledge) sau mỗi byte dữ liệu nhận được.
Dữ liệu sẽ truyền từ bit có giá trị nhất (MSB)
• Truyền dữ liệu từ slave và master nhận: byte đầu tiên (địa chỉ của slave)được truyền tới slave bởi master Sau đó slave sẽ gửi lại master bit nhận Tiếptheo đó slave sẽ gửi các byte dữ liệu tới master Master sẽ gửi cho slave cácbit nhận sau mỗi byte nhận được trừ byte cuối cùng, sau khi nhận được bytecuối cùng thì bit nhận sẽ không được gửi
Master phát ra tất cả các chuỗi xung clock và các chỉ thị START và STOP
Sự truyền sẽ kết thúc với chỉ thị STOP hoặc chỉ thị quay vòng START Khichỉ thị START quay vòng thì sự truyền chuỗi dữ liệu tiếp theo được thực thi
và các bus vẫn chưa được giải phóng Dữ liệu truyền luôn bắt đầu bằng bitMSB
c, DS1307 có thể hoạt động ở 2 chế độ sau:
• Chế độ slave nhận (chế độ DS1307 ghi): Chuỗi dữ liệu và chuỗi xungclock sẽ được nhận thông qua SDA và SCL Sau mỗi byte được nhận thì 1 bitnhận sẽ được truyền Các điều kiện START và STOP sẽ được nhận dạng khibắt đầu và kết thúc một chuỗi truyền Nhận dạng địa chỉ được thực hiện bởiphần cứng sau khi chấp nhận địa chỉ của slave và bit chiều Byte địa chỉ làbyte đầu tiên nhận được sau khi điều kiện START được phát ra từ master.Byte địa chỉ có chứa 7 bit địa chỉ của DS1307, là 1101000; tiếp theo đó là bitchiều (R/w) cho phép ghi khi chúng bằng 0 Sau khi nhận và giải mã byte địachỉ thì thiết bị sẽ phát đi 1 tín hiệu nhận lên đường SDA Sau khi DS1307nhận dạng được địa chỉ và bit ghi thì master sẽ gửi một địa chỉ thanh ghi tớiDS1307, tạo ra một con trỏ thanh ghi trên DS1307 và master sẽ truyền từng
Trang 24byte dữ liệu cho DS1307 sau mỗi bit nhận được Sau đó master sẽ truyền điềukiện STOP khi việc ghi hoàn thành.
Slave
Address
R/W Word
Address (n)
Data (n) Data (n+1) Data (n+X)
Trang 25A-ACKNOWLEDGE DATA TRANSFERRED(X+1 BYTE + ACKNOWLADGE)
P-STOP
R/W-READ/WRITE OR DIRECTION BIT
ADDRESS = D0h
1.4 Điều khiển từ xa dùng Bluetooth
1.4.1 Giới thiệu về Bluetooth
Bluetooth là một công nghệ không dây cho phép các thiết bị điện, điện tử
giao tiếp với nhau trong khoảng cách ngắn, bằng sóng vô tuyến qua băng tầnchung ISM (Industrial, Scientific, Medical) trong dãy tầng 2.40-2.48 GHz.Đây là dãy băng tầng không cần đăng kí, được dành riêng để dùng cho cácthiết bị không dây trong công nghiệp, khoa học, y tế…
Hình 1.10: Bluetooth
Bluetooth được thiết kế nhằm mục đích thay thế dây cable giữa các máytính và các thiết bị truyền thông cá nhân, kết nối vô tuyến với các thiết bị điện
tử lại với nhau một cách thuận tiện
Khi được kích hoạt, Bluetooth có thể tự động định vị những thiết bị khác cóchung công nghệ trong vùng xung quanh và bắt đầu kết nối với chúng Chúngđược định hướng sử dụng cho việc truyền dữ liệu lẫn tiếng nói
1.4.1.2 Đặc điểm công nghệ Bluetooth
Trang 26Ưu điểm:
- Tiêu thụ năng lượng thấp
- Cho phép ứng dụng được nhiều loại thiết bị bao gồm các thiết bị cầm tay vàđiện thoại di động
- Giá thành ngày một giảm
- Khoảng cách giao tiếp cho phép giữa hai thiết bị kết nối có thể lên đến100m
- Bluetooth sử dụng băng tần 2.4GHz, tốc độ truyền dữ liệu có thể đạt tới mứctối đa 1Mbps mà các thiết bị không cần phải trực tiếp thấy nhau
- Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối một ứng dụng nàyvới một ứng dụng khác thông qua chuẩn Bluetooth, do đó có thể độc lập vềphần cứng cũng như hệ điều hành sử dụng
- Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phầnmềm hỗ trợ
Nhược điểm:
- Khoảng cách kết nối còn ngắn so với công nghệ mạng không dây khác
- Chỉ kết nối được hai thiết bị với nhau, không kết nối thành mạng
- Bảo mật còn thấp
1.4.1.3 Hoạt động của Bluetooth
Bluetooth là chuẩn kết nối không dây tầm ngắn, thiết kế cho các kết nốithiết bị cá nhân hay mạng cục bộ nhỏ trong phạm vi băng tần từ 2.4GHz đến2.485GHz Bluetooth được thiết kế hoạt động trên 79 tần số đơn lẻ Khi kếtnối, chúng sẽ tự động tìm ra tần số tương thích để di chuyển đến thiết bị cầnkết nối trong khu vực nhằm đảm bảo sự liên tục
Trang 271.4.1.4 Lịch sử phát triển Bluetooth
- Blueooth 1.0 (7/1999): Phiên bản đầu tiên được đưa ra thị trường với tốc
độ kết nối ban đầu là 1Mbps Tuy nhiên, trên thực tế tốc độ kết nối của thế hệnày chưa bao giờ đạt quá mức 700Kbps
- Bluetooth 1.1 (2001): Đánh dấu bước phát triển mới của công nghệBluetooth trên nhiều lĩnh vực khác nhau với sự quan tâm của nhiều nhà sảnxuất mới
- Bluetooth 1.2 (11/2003): Bắt đầu có nhiều tiến bộ đáng kể Chuẩn nàyhoạt động dựa trên băng tần 2.4GHz và tăng cường kết nối thoại
- Bluetooth 2.0 + ERD (2004): Bắt đầu nâng cao tốc độ và giảm thiểu mộtnửa năng lượng tiêu thụ so với trước đây Tốc độ của chuẩn Bluetooth lên đến2.1Mbps với chế độ cải thiện kết nối truyền tải – ERD (Enhanced data rate)
- Bluetooth 2.1+ ERD (2004): Đây chính là thế hệ nâng cấp của Bluetooth2.0 có hiệu năng cao hơn và tiết kiệm năng lượng hơn
- Bluetooth 3.0+HS (2008): Có tốc độ truyền dữ liệu đạt mức 24Mbps –bằng sóng Bluetooth – High Speed, tương đương chuẩn Wifi thế hệ đầu tiên,phạm vi hiệu quả nhất chỉ trong vòng 10m
- Bluetooth 4.0 (30/06/2010): Chuẩn Bluetooth mới nhất hiện nay.Bluetooth 4.0 là sự kết hợp của “classic Bluetooth” (Bluetooth 2.1 và 3.0),
“Bluetooth high speed” ( Bluetooth 3.0 + HS) và “ Bluetooth low energy Bluetooth năng lượng thấp (Bluetooth Smart Ready/ Bluetooth Smart)
-“Bluetooth low enegry” là một phần của Bluetooth 4.0 với một giao thức tiêuchuẩn của Bluetooth 1.0 vào 4.0 nhằm phục vụ cho những ứng dụng nănglượng cực thấp
1.4.2 Module Bluetooth HC – 05
Trang 28Hình 1.11: Module Bluetooth HC 05
- Module HC-05 (Hình 1.11): cách dễ dàng để có thể sử dụng giao tiếpbluetooth qua cổng kết nối, được thiết kế để truyền dữ liệu nối tiếp qua mạngkhông dây
- Sử dụng chuẩn bluetooth 2.0 + EDR (Enhanced Data Rate)
- Điều chế thu phát radio ở tần số 2,4Ghz, sử dụng chip bluecore bluetooth
04 - chip duy nhất với hệ thống Cmos và AFH thích ứng với tính năng nhảytần Kích thước 12,7mm x 27mm
1.4.2.1 Đặc điểm kỹ thuật
Tính năng phần cứng:
- Độ nhạy -80dBm
- Công suất truyền lên đến +4dBm
- Công suất thấp 1.8V, hoạt động từ 1.8V đến 3.6V
- Điều khiển PIO
- Giao tiếp UART với tốc baud lập trình được
- Tích hợp anten
- Kết nối ở biên mạch
Trang 29Tính năng phần mềm:
- Mặc định tốc độ baud là 38400, databits : 8, Stopbit : 1, Parity : No Hỗ trợtốc độ baud : 9600,19200,38400,57600,115200,230400,460800
- Khi có 1 xung ở PIO0, thiết bị sẽ bị ngắt kế nối
- Trạng thái chỉ thị port PIO1: low- ngắt kết nối, high- đã kết nối
- PIO10 và PIO11 có thể được lết nối với led đỏ và led xanh riêng Khimaster và slave được kết nối với nhau, led đỏ và led xanh sẽ nháy 1 lần 2s,khi ngắt kết nối chỉ led xanh nháy 2 lần/s
- Tự động kết nối với thiết bị cuối cùng khi nguồn được cấp
- Cho phép kết nối thiết bị mặc định
- Tự động kết nối với mã pin mặc định: "0000"
- Tự động kết nối lại trong 30 phút nếu bị đứt kết nối như vượt ra ngoài phạm vikết nối
1.4.2.2 Sơ đồ chân
Hình 1.12: Sơ đồ chân HC05
- Bảng mô tả chức năng các chân của module:
Trang 30PIO0 23 2 Hướng RX EN Lập trình I/O, điều khiển
output cho LNA nếu đượctrang bị
PIO1 24 2 Hướng TX EN Lập trình I/O, điều khiển LA
nếu được trang bị
PIO2 đến
PIO11
Lầnlượt từ25->34
4 Cmos output,
tri-stable with weakinternal pull-up
UART yêu cầu khi gửi, hoạtđộng LOW
Trang 31UART_TX 1 Cmos output,
tri-stable with weakinternal pull-up
SPI_CLK 19 Cmos input with weak
outputPCM_IN 7 Cmos input Synchronous PCM data inputPCM_SYN
C
strobe
Trang 321.4.2.3 Giao tiếp bằng lệnh AT để cài đặt Module Bluetooth HC - 05
Sử dụng phần mềm Hercules (Hình 1.13) để giao tiếp với module HC thôngqua cổng Com bằng lệnh AT Truyền thông nối tiếp không đồng bộ USART
Hình 1.13: Giao diện phần mềm giao tiếp với module HC-05
Mặc định của Module Bluetooth HC – 05:
Slave, 9600 baud rate, N, 8, 1 Pincode 1234
Trang 331 -1200 2 -2400 3 -4800 4 -9600 5 -19200 6 -38400 7 -57600 8 -115200
- Thay đổi tên của thiết bị:
1.4.3 Hệ điều hành Android
Android là một hệ điều hành mã nguồn mở dành cho thiết bị di động như
Smartphone, Tablet hay Netbook (thường gọi chung là thiết bị cầm tay thôngminh) Android do Google phát triển dựa trên nền tảng Linux kernel phiênbản 2.6 và các phần mềm mã nguồn mở Nhờ tính mở miễn phí và những ưu
Trang 34điểm của hệ điều hành này, ngày nay các thiết bị cầm tay sử dụng hệ điềuhành này càng nhiều và phổ biến.
Kiến trúc hệ điều hành Android
Kiến trúc hệ điều hành Android gồm bốn tầng, từ dưới lên trên là tầng hạtnhân (Linux), tầng thư viện( Libraries) & thời gian chạy (Adroid runtime),tầng khung ứng dụng (Application Framework) và trên cùng là tầng ứng dụng(Application)
Hình 1.14: Kiến trúc hệ điều hành Android
Tầng hạt nhân (Linux Kernel layer)
Các thành phần chủ yếu:
- Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận
những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng )
- Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từcamera trả về
- Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth
Trang 35- USB driver: Quản lý hoạt động của các cổng giao tiếp USB.
- Keypad driver: Điều khiển bàn phím
- Wifi Driver: Chịu trách nhiệm về việc thu phát sóng wifi
- Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tính hiệudạng audio thành tín hiệu số và ngược lại
- Power Madagement: Giám sát việc tiêu thụ điện năng
Tầng thư viện và thời gian chạy
Tầng này có hai thành phần là thư viện và thời gian chạy Android.
Thư viện:
Có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử dụng,
các thư viện đó được tập hợp thành một số nhóm như :
- Thư viện hệ thống (System C library) : thư viện dựa trên chuẩn
C, được sử dụng chỉ bởi hệ điều hành
- Thư viện Media (Media libraries): có nhiều code để hỗ trợ việcphát và ghi lại các loại định dạng âm thanh, hình ảnh video thôngdụng
- Thư viện Web (LibWebCore): đây là thành phần để xem nộidung trên web, được sử dụng để xây dựng phần mềm duyệt web(Android browse) cũng như các ứng dụng khác có thể nhúngvào Chúng cực kỳ mạnh, hỗ trợ nhiều công nghệ mạnh mẽ nhưHTML5, JavaScript, CSS, DOM, AJAX…
- Thư viện SQLite: hệ cơ sở dữ liệu cho các ứng dụng
Thời gian chạy Android:
Trang 36Chúng chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java cóthể hoạt động; có hai bộ phận tương tự như mô hình chạy Java trên máy tínhthường Thứ nhất là các thư viện lõi (Core Library) chứa các lớp như JAVA
IO, Collections, File Access Thứ hai là một máy ảo java (Dalvik VirtualMachine)
- XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực
- Location Manager: Cho phép xác định vị trí của điện thoại dựa vào hệthống định vị toàn cầu GPS và Google Maps
- Window Manager: Quản lý việc xây dựng và hiển thị các giao diện ngườidùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng
- Notication Manager: Quản lý việc hiển thị các thông báo (như báo có tinnhắn, có e-mail mới )
- Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồmcác file hình ảnh, âm thanh, layout, string (những thành phần không được viếtbởi ngôn ngữ lập trình)
Trang 37(Calendar), đọc E-mail (Email – client), bản đồ (Map),… Các ứng dụng đượcngười dùng cài thêm: Stock, games, dictionary…
Các chương trình có đặc điểm là:
- Viết bằng java, có phần mở rộng là apk
- Khi mỗi ứng dụng được chạy, chúng có một phiên bản Virtual Machineđược dựng lên để phục vụ Chúng có thể là một chương trình có giao diện vớingười sử dụng hoặc là một chương trình chạy nền hay là dịch vụ
- Android là hệ điều hành đa nhiệm Trong cùng một thời điểm, có thể cónhiều chương trình cùng chạy một lúc Tuy nhiên, với mỗi ứng dụng thì códuy nhất một thực thể được phép chạy
- Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyềnhạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống
- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành diđộng khác; android cho phép một ứng dụng của bên thứ ba được phép chạynền Các ứng dụng đó chỉ có một hạn chế nhỏ đó là chúng không được phép
sử dụng quá 5~10% công suất CPU, điều đó nhằm để tránh độc quyền trongviệc sử dụng CPU
CHƯƠNG 2
THIẾT KẾ HỆ THỐNG VÀ THI CÔNG
2.1 Sơ đồ tổng quát
Trang 38Hình 2.1: Sơ đồ hệ thống
Nguyên lý hoạt động của sơ đồ hệ thống:
Khi cho điện áp qua khối nguồn cho vi điều khiển, khi đó chương trình
trong vi điều khiển sẽ làm việc, đồng thời bộ tạo xung dao động tạo xungnhịp với tần số 16MHz cho vi điều khiển hoạt động Chế độ ghi và nhận
dữ liệu của IC thời gian thực đưa tới vi điều khiển, các điều kiện START
và STOP được nhận dạng khi bắt đầu hoặc kết thúc truyền một chuỗi Lúcnày các thanh ghi của IC thời gian thực nhận giá trị thời gian thực (giờ,phút, giây, thứ, ngày, tháng, năm) và gửi đến vi điều khiển; đồng thời viđiều khiển sẽ gán một giá trị tương đương giá trị thời gian thực rồi gửi rakhối hiển thị Lúc này IC ghi dịch trong khối điều khiển sẽ gửi tín hiệu đếnkhối hiển thị Các nút ấn trong khối điều khiển có nhiệm vụ điều chỉnhthời gian Khối Reset có nhiệm vụ đưa hệ thống về trạng thái ban đầu
2.2 Sơ đồ thiết kế
Khối điều khiển trung tâm Khối nguồn
Khối tạo thời gian thực
Khối hiển thị
Khối Điều khiển
Tạo xung dao
động
Reset