Ở mỗi chân đều có các điện trở pull-up t ừ được cài đặt ngay trong vi điều khi n Atmega328 mể ặc định thì các điện trở này không được kết nối.. Khi bạn 8lue các thiết bị sử dụng những n
Trang 1HỌC VI N KỆ Ỹ THU T M T MÃ Ậ Ậ
KHOA CÔNG NGH THÔNG TIN Ệ
¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯
BÁO CÁO BÀI T P L N CÔNG NGH Ậ Ớ Ệ PHẦN M M NHÚNG Ề
ĐỀ TÀI: XE ĐIỀU KHIỂN THÔNG QUA BLUETOOTH
Ngành: Công ngh thông tin ệChuyên ngành: K ỹ thuật ph n m m nhúng và di ầ ề động
Trang 2MỤC LỤC
LỜI NÓI ĐẦ 1 U
TÓM TẮT ĐỀ TÀI 3
CHƯƠNG 1: GI I Ớ THIỆ U T NG QUAN V ARDUINO VÀ CÔNG NGH Ổ Ề Ệ BLUETOOTH 5
1.1 Giới thi u v ARDUINO ệ ề 5
1.1.1 Giới thi u v ARDUINO UNO R3 ệ ề 5
1.1.2 Thông s k thu t c a ARDUINO UNO R3 ố ỹ ậ ủ 6
1.1.3 Vi điều khi n ể 6
1.1.4 Các cổng k t n i c a ARDUINO UNO R3 ế ố ủ 7
1.1.5 Năng lượng và bộ nhớ 8
1.2 Thiết k ế 10
1.2.1 Thiế ết k ngu n ồ 10
1.2.2 Thiết k mế ạch dao động 11
1.2.3 Thiết k m ch reset ế ạ 12
1.2.4 Thiết k m ch nế ạ ạp và giao ti p máy tính ế 13
1.3 Lập trình cho ARDUINO UNO R3 14
1.4 Sơ lược công ngh Bluetooth ệ 18
1.4.1 Sơ lược v k t n i bluetooth ề ế ố 18
1.4.2 Các chu n k t n i Bluetooth ẩ ế ố 19
1.4.3 Các tính năng của Bluetooth 19
1.4.4 Ưu và nhược điểm của công ngh Bluetooth ệ 20
1.5 Giới thi u v module Bluetooth HC05 ệ ề 21
1.5.1 Giới thi u v Module Bluetooth HC05 ệ ề 21
1.5.2 Thông s Module Bluetooth HC05 ố 21
1.6 Tổng kết chương 1 22
Chương 2: PHÂN TÍCH, THIẾ T K VÀ XÂY D NG H Ế Ự Ệ THỐNG 23
2.1 Thi t k ế ế phần cứng 23
2.1.1 Thi t k ế ế sơ đồ khối 23
2.1 2 T ng quan ph n cổ ầ ứng 23
2.2 Thi t k ế ế phần m m ề 28
2.2.1 Sơ đồ Use Case t ng quát ổ 28
2.2.2 Đặ ảc t các Use Case 29
2.2.3 Phân tích các ca s dử ụng 30
2.2.4 Sơ đồ thuật toán điều khiển 32
2.2.5 Mô t quy trình ả 32
2.2.6 Phần mềm điều khiển 33
2.3 L p ráp và hoàn thi n h ắ ệ ệ thống 34
2.3.1 Code Arduino 34
2.3.2 Mô hình th nghi m ử ệ 36
2.4 Tổng kết chương 2 38
CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG 39
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40
TÀI LI U THAM KH O Ệ Ả 42
Trang 3PHỤ LỤC 43
Trang 4DANH MỤC HÌNH VẼ
Hình 1.1 Arduino Uno R3 5
Hình 1.2 Vi điều khi n ARDUINO UNO R3ể 7
Hình 1.3 Các c ng k t n i c a Arduino Uno R3ổ ế ố ủ 7
Hình 1.4 Thi t k ế ế nguồn 10
Hình 1.5 Thi t k m ế ế ạch dao động 12
Hình 1.6 Thi t k m ế ế ạch reset 13
Hình 1.7 Thi t k m ế ế ạch n p và giao ti p máy tínhạ ế 14
Hình 1.8 L p trình Arduino Uno trên ph n m m Arduino IDEậ ầ ề 15
Hình 1.9 L p trình Arduino b ng ngôn ngậ ằ ữ C/C++ 16
Hình 1 10 Tương thích với bo m ch Arduinoạ 17
Hình 1 11 Thư viện phong phú 17
Hình 1 12 Sơ lược về kết nối Bluetooh 18
Hình 1 13 Module HC05 21
Hình 2.1 Arduino Uno R3 24
Hình 2.2 Module Bluetooth HC05 24
Hình 2.3 C u ấ hình sơ đồ chân L298n 25
Hình 2.4 Động cơ vàng giảm tốc 26
Hình 2.5 Pin 18650 27
Hình 2.6 Công t c 2 chânắ 27
Hình 2.7 Biểu đồ Use Case t ng quátổ 28
Hình 2.8 Biểu đồ trình t ự đi thẳng 30
Hình 2.9 Biểu đồ trình t ự đi lùi 31
Hình 2 10 Bi ểu đồ trình t r tráiự ẽ 31
Hình 2.11 Biểu đồ trình t r ự ẽ phải 31
Hình 2.12 Sơ đồ thuật toán xe điều khi ển bluetooth 32
Hình 2 13 Ứng dụng điều khi n xe thông qua k t n i bluetoothể ế ố 33
Hình 2 14 Giao di ện ứ ng d ụng 33
Hình 2 15 Giao di ện ứ ng d ụng 34
Hình 2 16Định nghĩa các chân gán vào động cơ 34
Hình 2 17 Định nghĩa các chân tín hiệu 35
Hình 2 18 Điều chỉnh tốc độ ủ c a xe 35
Hình 2 19 Thi t l p các chế ậ ức năng di chuyển của xe 36
Trang 5Hình 2 20 Sơ đồ kết nối của hệ thống xe 37
Trang 6DANH MỤC BẢNG BIỂU
B ảng 1 thành ph n linh ki n c u t o c a xeầ ệ ấ ạ ủ 4
B ảng 2 Thông s k thu t c a Arduino Uno R3ố ỹ ậ ủ 6
B ảng 3 Mô tả các chân c a Module L298nủ 26
B ảng 4 Đặ ả Use Case “Driver” 29 c t
B ảng 5 Đặ ả Use Case “Adjust” 30 c t
Trang 7LỜI NÓI ĐẦU
Cùng v i s phát tri n nhanh chóng cớ ự ể ủa lĩnh vực Khoa học – K thu t ỹ ật, ừ những
hệ thống máy tính lớn đến nh ng h ữ ệ thống máy tính cá nhân, t ừ những việc điều khiển các máy công nghiệp đến các thi t b ế ị phục v ụ đời sống hằng ngày của con người Trong các h ệ thống đó, việc trao đổi thông tin là vô cùng quan tr ng ọ
Cùng với đó việc điều khi n t xa ngày c ng tr nên phể ừ ả ở ổ biến trong đờ ối s ng h ng ằngày Nh có s phát tri n c a công nghờ ự ể ủ ệ điều khi n t xa, ngày nay m t s công viể ừ ộ ố ệc thay vì s d ng nhân công tr c tiử ụ ự ếp thì người ta đã thay thế nó b ng viằ ệc điều khi n t xa ể ừ
Và m t trong nhộ ững máy móc đó là “Xe điều khiển thông qua bluetooth”.Công ngh ệ
truyền tin không dây ngày càng phát triển, đặc biệt công ngh Bluetoothệ đã phổ biến hầu hết các thi t b ế ị điệ ử di động n t
Trong các khu công nghi p hay m t s nhà máy hóa ch t, vi c v n chuyệ ộ ố ấ ệ ậ ển đồ các vật tư trang bị từ nơi này đến nơi khác luôn xảy ra thường xuyên với tần suất cao Đặc biệt khối lượng v n chuyậ ển cũng không hề nhỏ đối v i m t s ớ ộ ố trường h p Trong các nhà ợmáy, m t s phòng có th ộ ố ể an toàn nhưng số ít khác trong quá trình hoạt động có th t o ra ể ạnhiều hóa chất độc hại.Việc sử dụng nhân công là con người trong các môi trường này thực s có th gây h i v lâu v dài và ự ể ạ ề ề ảnh hưởng đến chất lượng công việc cũng như quá trình hoạt động Vì thế nên để giảm thi u rể ủi ro gây ra cũng như giảm thi u chi phí và ểthiệt h i v kinh t trong quá trình vạ ề ế ận động, việc điều khiển các phương tiện v n chuyậ ển
từ xa là vấn đề cấp thiết cần được thực hiện
Những l i ích mang l i cợ ạ ủa xe điều khiển từ xa bluetooth:
- An toàn: S dử ụng xe điều khi n t giúp cho công nhân không ph i hoể ừ xa ả ạt động trong môi trường độc h i, quá trình vạ ận hành cũng ít có rủi ro về tai nạn hơn
- Giảm thi u nhân l c: Có th c t gi m sể ự ể ắ ả ố lượng nhân công, thay vì s d ng mử ụ ỗi người một phương tiện trong quá trình vận chuy n thì giể ời đây có thể c t giảm ắ
để một số người vận chuy n cùng lúc m t ho c nhiể ộ ặ ều máy tùy vào năng lực
- Tiết ki m chi phí: V i vi c c t gi m nhân lệ ớ ệ ắ ả ực cũng như sử ụ d ng b ng máy móc ằ
có th t ki m chi phí trong vi c tr ể tiế ệ ệ ả lương cho nhân viên
Mục tiêu của để tài chính là nghiên cứu và ch tế ạo “Xe điều khi n tể ừ xa thông qua bluetooth”, trên cơ sở đó tiếp tục phát triển để giúp sản phẩm tiến sát hơn với thực tiễn các công việc trong đời sống như: vận chuy n hàng hóa, hoể ạt động trong môi trường hoặc khu vực mà con người khó tiếp cận,
Trang 8Bản báo cáo này s trình bày k t qu cẽ ế ả ủa quá trình nghiên c u và phát triứ ển đề tài
“Xe điều khiển thông qua bluetooth”
Vì trong quá trình nghiên c u còn t n t i khá nhi u h n chứ ồ ạ ề ạ ế, cũng như kiến thức thực tế chưa được sâu rộng nên không th tránh khể ỏi nh ng sai sót R t mong nhữ ấ ận được
sự góp ý t ừ thầy cô và các bạn
Nội dung nghiên cứu đượ ậc t p trung vào các nội dung chính như sau:
NỘI DUNG 1: Ti n hành kh o sát và xây d ng bài toán ế ả ự
NỘI DUNG 2: Phân tích, thi t k và xây d ng h ế ế ự ệ thống
NỘI DUNG 3: Th nghiử ệm và đánh giá hệ thống
NỘI DUNG 4: K t lu n t ng quan v h ế ậ ổ ề ệ thống và đưa ra hướng phát triển cũng như tính ng d ng cứ ụ ủa hệ thống trong tương lai
Trang 9TÓM TẮT ĐỀ TÀI Yêu c u chung và các chầ ức năng của h ệ thố ng:
- Yêu c u chung: ầ
• Tính th c thi cao, có kh ự ả năng phát triển
• Đảm b o về ả chất lượng, độ chính xác cao, làm vi c lâu dài, b n b ệ ề ỉ
• Tiết ki m chi phí, linh ki n d ệ ệ ễ kiếm d s d ng và d dàng thay th khi ễ ử ụ ễ ếxảy ra s cự ố
• Giảm thi u chi phí, th i gian v n hành, bể ờ ậ ảo dưỡng và s a chử ữa
- Chức năng: Xe có khả năng di chuyển tiến, lùi, r trái , r ẽ ẽ phải, d ng lừ ại, điều chỉnh tốc độ khi nhận được tín hiệu điều khi n thông qua bluetooth t ể ừ điện thoại
Phương án thiết kế:
Các lo i xe bluetooth nói chung có k t cạ ế ấu khá đa dạng và phong phú Mỗi kết cấu được th c hi n v i nhiự ệ ớ ều phương án khá nhau, mỗi phương án sẽ trình bày dưới dạng một một sơ đồ biểu hiện các đặc điểm chính của kết cấu đó
Cần phải lựa chọn các thành ph n cầ ấu t o sao cho c u trúc cạ ấ ủa xe luôn luôn được đảm bảo trong quá trình hoạt động, h n ch tạ ế ối đa thiệ ại cũng như ảnh hưởng đến các t hlinh kiện bên trong (đặc biệt là phần mạch điện tử)
Mô hình được xây d ng d a trên khuôn mự ự ẫu của xe ô tô 4 bánh để đảm bảo độ ổn
định, giúp xe gi thăng bằữ ng tốt hơn trong một số môi trường khác Ph n khung xe cầ ần được gia cố chắc ch n và ph i rắ ả ộng đủ để ả b o v các linh kiệ ện trong trường h p x y ra ợ ả
sự c v va chố ề ạm
Đối với các xe điều khiển bluetooth, vi c cệ ấp nguồn và duy trì dòng điện trong quá trình v n hành là c c kì quan tr ng Vì th c n ph i s dậ ự ọ ế ầ ả ử ụng lượng điện áp ổn định, sử dụng pin 18650 dòng x ả 5C đảm bảo đủ ện năng cho xe trong quá trình vậ đi n hành, tránh hao hụt điện năng của như đáp ứng đủ năng lượng hoạt động cho các thành phần của xe trong vòng 1 ti ng liên tế ục
Trang 10Đế pin 18650 2 viên n i ti p 7.4v (có dây) ố ế 1
B ảng 1 thành ph n linh ki n c u t o c a xe ầ ệ ấ ạ ủ
Trang 11CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ARDUINO VÀ CÔNG NGHỆ
BLUETOOTH
Chương này trình bày toàn bộ những ki n th c ph n lý thuy t liên quan t i Arduino ế ứ ầ ế ớcũng như phần mềm lập trình Arduino IDE
1.1 Giới thi u v ARDUINO ệ ề
1.1.1 Giới thi u v ARDUINO UNO R3 ệ ề
Arduino Uno R3 là dòng Arduino th h ế ệ thứ 3 cũng giống như các phiên bản trước đây giúp người dùng d dàng ti p c n v i lễ ế ậ ớ ập trình để t o ra ph n c ng có nhạ ầ ứ ững tính năng mong mu n mố ột cách nhanh chóng v i chi phí h p lý ớ ợ
Hình 1.1 Arduino Uno R3
Arduino là m t board m ch vi x lý, nh m xây d ng các ng dộ ạ ử ằ ự ứ ụng tương tác với nhau ho c vặ ới môi trường được thuận lợi hơn Phần cứng bao g m m t board mồ ộ ạch nguồn m ở được thi t kế ế trên n n t ng vi x lý AVR Atmel 8bit, ho c ARM Atmel 32-ề ả ử ặbit Nh ng Model hi n tữ ệ ại được trang b gị ồm 1 c ng giao tiổ ếp USB, 6 chân đầu vào analog, 14 chân I/O k thu t s ỹ ậ ố tương thích với nhiều board mở rộng khác nhau Arduino có th k t nể ế ố ới v i nh ng gì? ữ
Một hệ thống Arduino có th cung cể ấp cho bạn rất nhiều sự tương tác với môi trường xung quanh v ới:
- Hệ thống c m biả ến đa dạng về chủng loại (đo đạc nhiệt độ, độ ẩm, gia t c, v n t c, ố ậ ốcường độ ánh sáng, màu sắc vật thể, lưu lượng nước, phát hiện chuyển động, phát hiện kim loại, khí độc, …)
- Các thi t b ế ị hiển thị (màn hình LCD, đèn LED, …)
Trang 12- Các module chức năng (shield) hỗ trợ kêt n i có dây v i các thi t b khác ho c các ố ớ ế ị ặkết n i không dây thông dố ụng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz, 2.4Ghz,
…),
- Định v GPS, nh n tin SMS, ị ắ …
1.1.2 Thông s k thu t c a ARDUINO UNO R3 ố ỹ ậ ủ
Điện áp hoạt động 5V DC (ch ỉđược cấp qua c ng USB) ổ
Điện áp vào gi i h n ớ ạ 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Dòng tối đa trên mỗi chân I/O 30 mA
ẩm và hiển thị lên màn hình LCD, … hay những ng d ng khác ứ ụ
Trang 13Hình 1.2 Vi điều khi n ARDUINO UNO R3ểThiết k tiêu chuế ẩn c a Arduino UNO sủ ử dụng vi điều khi n Atmega328 v i giá khoể ớ ảng 90.000đ Tuy nhiên nếu yêu cầu phần cứng của bạn không cao hoặc túi tiền không cho phép, b n có th s d ng các loạ ể ử ụ ại vi điều khi n khác có chể ức năng tương đương nhưng rẻ hơn như Atmega8 (bộ nhớ flash 8KB) với giá khoảng 45.000đ hoặc Atmega168 (bộ nhớ flash 16KB) v i giá khoớ ảng 65.000đ
1.1.4 Các cổng kết nối của ARDUINO UNO R3
Arduino UNO có 14 chân digital 7lue để đọc ho c xu t tín hi u Chúng ch có 2 ặ ấ ệ ỉmức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều
có các điện trở pull-up t ừ được cài đặt ngay trong vi điều khi n Atmega328 (mể ặc định thì các điện trở này không được kết nối)
Một số chân digital có các chức năng đặc biệt như sau:
• 2 chân Serial: 0 (RX) và 1 (TX): 7lue để gửi (transmit – TX) và nhận (receive –RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua
2 chân này Kết nối 7luetooth thường thấy nói nôm na chính là kết nối Serial không
Trang 14dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết
• Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân
giải 8bit (giá trị từ 0 → 2 1 tương ứng với 0V → 5V) bằng hàm analogWrite() 8Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác
-• Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức năng thông thường, 4 chân này còn 8lue để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác
• LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút
Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người 8lue sử dụng, LED sẽ sáng
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 →
210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board, bạn có
thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu bạn cấp điện
áp 2.5V vào chân này thì bạn có thể 8lue các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác
1.1.5 Năng lượng và bộ nhớ
Arduino UNO có thể được c p ngu n 5V thông qua c ng USB ho c c p nguấ ồ ổ ặ ấ ồn ngoài với điện áp khuyên 8lue là 7-12V DC và gi i h n là 6-ớ ạ 20V Thường thì c p nguấ ồn bằng pin vuông 9V là h p lí nh t n u b n không có s n ngu n t c ng USB N u cợ ấ ế ạ ẵ ồ ừ ổ ế ấp nguồn vượt quá ngưỡng giới h n trên, b n s làm h ng Arduino UNO ạ ạ ẽ ỏ
a Các chân năng lượng
• GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn 8lue các
thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau
• 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.
• 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.
• Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương
của nguồn với chân này và cực âm của nguồn với chân GND
• IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở
chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V
từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
• RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với
việc chân RESET được nối với GND qua 1 điện trở 10KΩ
Trang 15Lưu ý:
• Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó bạn phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy mình khuyên bạn nên 9lue nguồn từ cổng USB nếu có thể
• Các chân 3.3V và 5V trên Arduino là các chân 9lue để cấp nguồn ra cho các thiết
bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí có thể làm hỏng board Điều này không được nhà sản xuất khuyến khích
• Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board
• Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển Atmega328
• Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
• Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển
• Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không 9lue để truyền nhận
dữ liệu, bạn phải mắc một điện trở hạn dòng
Khi mình nói rằng bạn “có thể làm hỏng”, điều đó có nghĩa là chưa chắc sẽ hỏng ngay bởi các thông số kĩ thuật của linh kiện điện tử luôn có một sự tương đối nhất định Do đó hãy cứ tuân thủ theo những thông số kĩ thuật của nhà sản xuất nếu bạn không muốn phải mua một board Arduino UNO thứ 2.Khi mình nói rằng bạn “có thể làm hỏng”, điều đó
có nghĩa là chưa chắc sẽ hỏng ngay bởi các thông số kĩ thuật của linh kiện điện tử luôn
có một sự tương đối nhất định Do đó hãy cứ tuân thủ theo những thông số kĩ thuật của nhà sản xuất nếu bạn không muốn phải mua một board Arduino UNO thứ 2
b B ộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người 9lue:
• 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được 9lue cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu
• 2KB cho SRAM (Static andom ccess R A Memory): giá trị các biến bạn khai báo
khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất
• 1KB cho EEPROM (Electrically Eraseble rogrammable ead nly emory): P R O M
đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM
Trang 161.2 Thiết k ế
1.2.1 Thi t k ế ế nguồn
Phần nguồn c a Board mủ ạch Arduino được thiết kế để th c hiện các nhi m v sau: ự ệ ụ
• Lựa chọn nguồn cung cấp cho board mạch (khối màu cam trong hình dưới) Board mạch Arduino có thể được cung cấp nguồn bởi Adapter thông qua Jack DC hoặc từ
Trang 17cổng USB (2 mũi tên màu đỏ) Trong trường hợp chỉ có 1 trong 2 nguồn cung cấp thì
Board Arduino sẽ sử dụng nguồn cung cấp đó Trong trường hợp có cả 2 nguồn cung cấp thì Arduino sẽ ưu tiên lựa chọn nguồn cung cấp từ Jack DC thay vì từ cổng USB
Việc ưu tiên này được thực hiện bởi OpAmp trong IC LMV358 và MOSFET FDN340P Điện áp từ Jack DC sau khi qua Diode bảo vệ D1thì được gọi làđiện áp VIN Điện áp VIN qua cầu phân áp để tạo thành VIN/2 để so sánh với điện
áp 3.3V Vì VIN/2 >3.3V nên điện áp đầu ra của OpAmp là 5V, điều này làm cho MOSFET không được kích, nguồn cung cấp cho Board Arduino là từ Jack DC sau khi qua ổn áp
• Tạo ra các điện áp 5v và 3.3v (2 khối màu xanh) để cung cấp cho vi điều khiển và cũng
là điểm cấp nguồn cho các thiết bị bên ngoài sử dụng Mạch Arduino sử dụng IC ổn
áp NCP1117 để tạo điện áp 5V từ nguồn cung cấp lớn và IC ổn áp LP2985để tạo điện
áp 3.3V Đây đều là những IC ổn áp tuyến tính, tuy hiệu suất không cao nhưng ít gợn nhiễu và mạch đơn giản
• Bảo vệ ngược nguồn, quá tải (vòng tròn màu đỏ).F1là một cầu chì tự phục hồi, trong trường hợp bạn chỉ sử dụng dây cáp USB để cấp nguồn thì tổng dòng tiêu thụ không được quá 500mA Nếu không cầu chì sẽ ngăn không cho dòng điện chạy qua D1 là một Diode, chỉ cho dòng điện 1 chiều chạy qua (từ Jack DC vào mạch), trong trường hợp mạch Arduino của bạn có mắc với các thiết bị khác và có nguồn cung cấp lớn hơn nguồn vào Jack DC, nếu có sai sót chập mạch vv thì sẽ không có trường hợp nguồn các thiết bị bên ngoài chạy ngược vào Adapter
• Báo nguồn Đèn nguồnON sáng lên báo thiết bị đã được cấp nguồn Nếu các bạn đã cắm nguồn mà đèn nguồn không sáng thì có thể nguồn cung cấp của bạn đã bị hỏng hoặc jack kết nối lỏng, hoặc mạch Arduino kết nối với các linh kiện bên ngoài bị ngắn mạch
1.2.2 Thiết k mế ạch dao động
Mạch giao động tạo ra các xung clock giúp cho vi điều khi n hoể ạt động, th c thi lự ệnh… Board m ch Arduino Uno R3 s d ng th ch anh 16Mhz làm nguạ ử ụ ạ ồn dao động
Trang 18Hình 1.5 Thi t k m ế ế ạch dao động
1.2.3 Thi t k m ch reset ế ế ạ
Đểvi điều khiển th c hi n khự ệ ởi động l i thì chân RESET phạ ải ở ứ m c logic LOW (~0V) trong 1 kho n thả ời gian đủ yêu c u M ch reset c a board Arduino UnoR3 phầ ạ ủ ải đảm bảo được 02 việc:
– Reset bằng tay: Khi nh n nút, chân RESET n i v i GND, làm cho MCU RESET ấ ố ớKhi không nhấn nút chân Reset được kéo 5V
– Reset tự độ ng: Reset t động được thực hiện ngay khi cấp nguồn cho vi điều khiển ựnhờ s ự phố ợi h p giữa điện tr nở ối lên ngu n và t ồ ụ điện nối đất Th i gian t ờ ụ điện nạp giúp cho chân RESET m c LOW trong 1 kho n thở ứ ả ời gian đủ để vi điều khi n thể ực hiện reset
– Khởi động vi điều khiển trước khi nạp chương trình mới
Trang 19Hình 1.6 Thi t k m ế ế ạch reset
1.2.4 Thiết k m ch n p và giao ti p máy tính ế ạ ạ ế
– Vi điều khiển Atmega328P trên Board Arduino UnoR3 đã được nạp sẵn 1
bootloader, cho phép nhận chương trình mới thông qua chuẩn giao ti p UART (chân ế
0 và 1) ở những giây đầu sau khi vi điều khiển Reset
– Máy tính giao ti p v i Board m ch Arduino qua chu n giao ti p USB (D+/D-), ế ớ ạ ẩ ếthông qua một vi điều khiển trung gian là ATMEGA16U2 ho c m t IC trung gian là ặ ộCH340 (thường th y trong các m ch s dấ ạ ử ụng chip dán) Vi điều khi n ho c IC này ể ặ
có nhi m v chuyệ ụ ển đổi chu n giao ti p USB thành chu n giao tiẩ ế ẩ ếp UART để ạp nchương trình hoặc giao tiếp truyền nhận d u v i máy tính (Serial) ữ liệ ớ
– Phần thi t kế mạch n p có tích hế ạ ợp thêm 02 đèn LED, nên khi nạp chương trình các bạn sẽ thấy 2LED này nh p nháy Còn khi giao ti p, n u có d u t máy tính gấ ế ế ữ liệ ừ ửi xuống vi điều khiển thì đèn LED Rx sẽ nháy Còn nếu có dữ liệ ừu t vi điều khi n gể ửi lên máy tính thì đèn Tx sẽ nháy
Trang 20Hình 1.7 Thi t k m ế ế ạch n p và giao ti p máy tính ạ ế
1.3 L ập trình cho ARDUINO UNO R3
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung Và Wiring lại là một biến thể của C/C++ Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++ Riêng mình thì gọi nó là “ngôn ngữ Arduino”, và đội ngũ phát triển Arduino cũng gọi như vậy Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu Nếu học tốt chương trình Tin học 11 thì việc lập trình Arduino sẽ rất dễ thở đối với bạn
Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển
dự án này đã cũng cấp đến cho người 14lue một môi trường lập trình Arduino được gọi là Arduino IDE ( ntergrated evelopment I D Environment) như hình dưới đây
Trang 21Hình 1.8 L p trình Arduino Uno trên ậ ph ần m m Arduino IDE ề
Các tính năng chính của Arduino IDE:
Tuy là ph n m m mã ngu n m ầ ề ồ ở nhưng khả năng bảo mật thông tin c a ủ Arduino IDE là vô cùng tuy t v i, khi phát hi n l i nhà phát hành s vá nó và c p nh t rệ ờ ệ ỗ ẽ ậ ậ ất nhanh khi n thông tin cế ủa người 15lue không b mị ất ho c rò rặ ỉ ra bên ngoài
- Sử dụng ngôn ng l p trình C/C++ thân thi n v i các l p trình viênữ ậ ệ ớ ậ
Trang 22Arduino IDE sử ụ d ng ngôn ng l p trình Cữ ậ /C++ r t ph ấ ổ biến trong gi i l p trình ớ ậBất k ỳ đoạn code nào c a ủ C/C++ thì Arduino IDE đều có th ể nhận d ng, giúp ạcác l p trình viên thu n ti n trong vi c thiậ ậ ệ ệ ết k ế chương trình lập cho các bo m ch ạ
Arduino
- Hỗ trợ ậ l p trình t t cho bo m ch Arduinoố ạ
Arduino có m t module qu n lý bo mộ ả ạch, nơi người 16lue có th ể chọn bo m ch ạ
mà h ọ muốn làm vi c cùng và có th thay i bo m ch thông qua Menu Quá trình ệ ể đổ ạsửa đổi lựa chọn cũng liên tục tự động c p nhậ ật để các d ữ liệu có s n trong bo ẵmạch và dữ liệu sửa đổi đồng nhất với nhau Bên cạnh đó, Arduino IDE cũng
giúp b n tìm ra l i t code mà b n bi t giúp b n s a l i k p th i tránh tình tr ng ạ ỗ ừ ạ ế ạ ử ỗ ị ờ ạ
bo m ch Arduino làm vi c v i code l i quá lâu dạ ệ ớ ỗ ẫn đến hư hỏng ho c tặ ốc độ ử x lý
bị giảm sút
Trang 23Hình 1 10 Tương thích với bo m ch Arduino ạ
- Thư viện hỗ trợ phong phú
Arduino IDE tích h p vợ ới hơn 700 thư viện, được vi t và chia s bế ẻ ởi nhà phát
hành Arduino Software và thành viên trong cộng đồng Arduino Mọi người có thể t n dậ ụng chúng cho d án c a riêng mình mà không c n ph i b ra b t k chi ự ủ ầ ả ỏ ấ ỳ
phí nào
- Giao diện đơn giản, dễ sử dụng
Arduino IDE có m t giao diộ ện đơn giản, d s dễ ử ụng giúp người 17lue thu n tiậ ện
hơn trong thao tác
Trang 24- Hỗ trợ đa nề ảng như Window, MacOS, Linux n t
Arduino IDE hoạt động trên 3 h ệ điều hành ph ổ biến nh t là ấ Windows, Mac
OS và Linux giúp người 18lue có th truy c p vào ph n mể ậ ầ ềm ở ấ ứ đâu, bấ ứ b t c t c khi nào mi n là h có mễ ọ ột cái máy tính Ngoài ra, người 18lue có thể truy cập vào công c t ụ ừ đám mây Điều này cho phép các nhà l p trình l a ch n tậ ự ọ ạo và lưu dự
án của mình trên đám mây hoặc xây dựng chương trình trên máy tính và upload
nó lên bo m ch Arduino ạ
1.4 Sơ lược công ngh Bluetooth ệ
1.4.1 Sơ lược v k t n i bluetooth ề ế ố
Bluetooth được phát minh bởi công ty Ericsson vào năm 1994, nó có thể kết nối nhiều thi t b và khế ị ắc ph c các vụ ấn đề ề đồng bộ hóa Ngày nay h u h t các nhà máy v ầ ế
đều s n xu t các thi t b có s d ng công ngh Bluetooth Các thi t b này gả ấ ế ị ử ụ ệ ế ị ồm có điện thoại di động, laptop, tablet và thiết bị hỗ trợ cá nhân (Personal Digital Assistant PDA) –khác Công nghệ này thường đượ ử ụng để truy n thông gi a hai lo i thi t b khác c s d ề ữ ạ ế ị
nhau
Bluetooth sử dụng Blue Radio tần số 2.4GHz Tuy sử dụng cùng tần số với công
nghệ Wifi nhưng chúng không hề xung đột với nhau vì Bluetooth sử dụng tần số có bước Blue ngắn hơn
Bluetooth là một chuẩn điện tử, điều đó có nghĩa là các 18lue sản xuất muốn có đặt tính này trong sản phẩm thì họ phải tuân theo các yêu cầu của chuẩn của Bluetooth
Trang 25cho sản phẩm của mình Những chỉ tiêu kỹ thuật này bảo đảm cho các thiết bị có thể nhận ra và tương tác với nhau khi sử dụng công nghệ Bluetooth
1.4.2 Các chuẩn kết nối Bluetooth
- Bluetooth 1.0: Phiên bản Bluetooth đầu tiên với tốc độ 1Mpbs, nhưng khả năng tương
thích chưa cao
- Bluetooth 1.1: Phiên bản cải thiện lỗi của 1.0 nhưng không cải thiện tốc độ
- Bluetooth 1.2: Bản nâng cấp của Bluetooth 1.0 với sự cải tiến về tốc độ kết nối, truyền
tải
- Bluetooth 2.0 + ERD: Ra mắt vào tháng 7/2007 với sự ổng định và tốc độ chia sẻ
nhanh hơn, tiết kiệm năng lượng hơn các phiên bản trước
- Bluetooth 2.1 + ERD: Bản nâng cấp của Bluetooth 2.0 với cơ chế kết nối phạm vi
nhỏ
- Bluetooth 3.0 + HS: Ra mắt vào năm 2009 với tốc độ lý thuyết lên đến 24 Mbps
Bluetooth 3.0 rất phổ biến trên các mẫu điện thoại lúc bấy giờ, phù hợp với việc truyền
dữ liệu nhỏ như hình ảnh, file nhạc, …
- Bluetooth 4.0: Bluetooth 4.0 được ra đời vào ngày 30/6/2010 là một phiên bản tối ưu
hóa các chuẩn Bluetooth trước đó (Classic Bluetooth) cho phép truyền tải tốc độ cao
nhờ vào Bluetooth High Speed và tiêu tốn năng lượng thấp hơn nhờ vào Bluetooth Low Energy
- Bluetooth 5.0: Là thế hệ mới nhất hiện tại được SIG trình làng vào ngày 16/6/2016 với
nhiều cải tiến vượt bật như tầm phủ 19lue rộng gấp 4 lần, tốc độ nhanh hơn gấp
đôi và tiết kiệm điện hơn gấp 2.5 lần so với 4.0
Bluetooth 5.1: Nâng cấp 19lue khả năng tìm hướng AoA (Angle of Arrival) và AoD (Angle of Departure) giúp xác định vị trí chính xác của thiết bị Ngoài ra Bluetooth 5.1 còn trang bị khả năng kết nối không cần gói dữ liệu giúp kết nối, đồng bộ đơn giản và
ít điện năng hơn
- Bluetooth 5.2: Được ra mắt năm 2020 với tính năng giao thức thuộc tính nâng cao (EATT) giúp giảm độ trễ và 19lue mã hóa trong kết nối, tính năng kiểm soát LEPC để kiểm soát nguồn và ổn định chất lượng tín hiệu, giảm tỉ lệ lỗi nhận tín hiệu và tính năng ISOC cho phép truyền dữ liệu hai chiều với cùng lúc nhiều thiết bị
1.4.3 Các tính năng của Bluetooth
Trang 26Với công nghệ không dây tiên tiến này, Bluetooth đã đem lại nhiều hữu ích mà mọi người vẫn thường biết tới về nó, một số tính năng của Bluetooth có thể kể đến như:
- Cho phép các thiết bị kết nối được với nhau để trao đổi thông tin giữa chúng Ví dụ như điện thoai di động với nhau, máy tính bảng, máy tính xách tay, máy in, các thiết bị Blue định vị GPS,…
- Giao tiếp và điều khiển giữa một thiết bị di dộng với tai nghe không dây như tai nghe bluetooth
- Trở thành đường truyền kết nối không dây giữa các thiết bị vào – ra của máy tính như: chuột, bàn phím không dây
- Ứng dụng trong các thiết bị điều khiển từ xa như bộ điều khiển đồ chơi, điều khiển tivi, điều hòa,…
- Kết nối internet cho máy tính bằng cách biến smartphone làm modem
1.4.4 Ưu và nhược điểm của công nghệ Bluetooth
- Ưu điểm:
• Thay thế hoàn toàn dây nối
• Hoàn toàn không nguy hại đến sức khoẻ con người
• Bảo mật an toàn với công nghệ mã hóa trong Một khi kết nối được thiết lập thì khó có một thiết bị nào có thể nghe trộm hoặc lấy cắp dữ liệu
• Các thiết bị có thể kết nối với nhau trong vòng 20m mà không cần trực diện (hiện nay có loại Bluetooth kết nối lên đến 100m)
• Kết nối điện thoại và tai nghe Bluetooth khiến cho việc nghe máy khi lái xe hoặc bận việc dễ dàng
• Giá thành rẻ
• Tốn ít năng lượng, chờ tốn 0.3mAh, tối đa 30mAh trong chế độ truyền dữ liệu
• Không gây nhiễu các thiết bị không dây khác
• Tính tương thích cao nên được nhiều nhà sản xuất phần cứng và phần mềm
hỗ trợ
- Nhược điểm: