đồ án tự động hóa điều khiển robot qua bluetooth với 2 chế độ tự động điều khiển bằng tay và dò line.......................................................................................................................................................................................................................................................................................
Trang 1NHẬN XÉT CỦA GIÁO VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
……… Hưng Yên, ngày … tháng … năm 2019
Giáo viên hứớng dẫn
Trang 2MỤC LỤC
MỤC LỤC 2
DANH MỤC HÌNH ẢNH 4
LỜI MỞ ĐẦU 5
LỜI CÁM ƠN 6
MỞ ĐẦU: TÍNH CẤP THIẾT VÀ ỨNG DỤNG CỦA ĐỀ TÀI 7
CHƯƠNG 1: GIỚI THIỆU ARDUINO VÀ CÁC THÀNH PHẦN CỦA MẠCH 8
1 1 GIỚI THIỆU VỀ ARDUINO 8
1.1.1 Sơ Lược về ARDUINO MEGA 2560 8
1.2 MỘT VÀI THÔNG SỐ CỦA ARDUINO MEGA2560 11
1.2.1 Nguồn Cấp 14
1.2.2 Các chân nguồn 14
1.2.3 Bộ Nhớ 14
1.2.4 Lập trình cho Arduino 15
1.3 ỨNG DỤNG THỰC TẾ 17
1.4 MỘT VÀI LƯU Ý KHI SỬ DỤNG ARDUINO MEGA 18
CHƯƠNG 2: 19
NGHIÊN CỨU CÁC MODUN L298, DÒ LINE, BLUTOOTH HC05 19
2.1 CÁC THÀNH PHẦN CỦA MẠCH: MODULE L298N 19
2.1.1 Thông số kỹ thuật 20
2.1.2 Kết Nối mạch 22
2.3 MODULE BLUETOOTH 23
2.3.1 Module Bluetooth HC05 23
2.3.2 Thông số kỹ thuật 24
2.3.3 Giao tiếp với Module Bluetooth HC05 25
Trang 32.3.4 Module bluetooth HC05 26
2.4 MODULE DÒ LINE 27
2.4.1 Tính năng và cấu tạo 27
2.4.2 Thông số kỹ thuật 28
CHƯƠNG 3: 30
XÂY DƯNG MÔ HÌNH, LẮP RÁP, LẬP TRÌNH VÀ CHẠY THỬ NGHIỆM .30 3.1 SƠ ĐỒ KHỐI CỦA MẠCH VÀ NGUYÊN LÝ CÁC KHỐI 30
3.1.1 Sơ đồ Khối 30
3.2 LƯU ĐỒ THUẬT TOÁN 32
3.3 CHƯƠNG TRÌNH ĐIỀU KHIỂN 33
3.4 PHẦN MỀM ĐIỂU KHIỂN QUA BLUETOOTH 37
3.5 SẢN PHẨM SAU KHI HOÀN THÀNH 37
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 38
TÀI LIỆU THAM KHẢO 39
Trang 4DANH MỤC HÌNH ẢNH
Hình 1.1 Arduino MEGA 2560 9
Hình 1.2 Mạch điều khiển máy in 3D RAMPS 1.4 10
Hình 1.3 Arduino Shield Mega Proto board mạch mở rộng cho Arduino Mega 2560 11 Hình 1.4 Chi tiết Arduino Mega 2560 11
Hình 1.5 Giao diện lập trình 15
Hình 1.6 Chọn Board Arduino 16
Hình 1.7 Chọn cổng Arduino 17
Hình 1.8 Mở rộng cánh cửa với IOT 18
Hình 2.1 Module L298N 19
Hình 2.2 Sơ đồ mạch động lực module L298N 19
Hình 2.3 Sơ đồ nối mạch 22
Hình 2.4 Module blutooth HC05 23
Hình 2.5 Sơ đồ chân Module Bluetooth 24
Hình 2.6 Giao tiếp HC05 25
Hình 2.7 Module dò đường thu phát hồng ngoại 27
Hình 2.8 Sơ đồ khối cảm biến dò line 28
Hình 2.9 Bộ Khung và bánh xe của Robot 28
Hình 2.10 Pin nguồn nuôi cho mạch 29
Hình 3.1 Sơ đồ kết nối 30
Trang 5LỜI MỞ ĐẦU
Ngày nay, sự phát triển mạnh mẽ của khoa học đời sống, cuộc sống của conngười đã thay đổi ngày một tốt hơn, với những trang thiết bị hiện đại phục vụ trongcông cuộc công nghiệp hóa, hiện đại hóa Đặc biệt góp phần không nhỏ đó là ngành kĩthuật điện – điện tử trong sự nghiệp xây dựng đất nước Những thiết bị điện, điện tửđược phát triển và ứng dụng rộng rãi trong đời sống hằng ngày Từ những thời gianđầu phát triển vi xử lý đã cho thấy sự ưu việt của nó và cho tới ngày nay tính ưu việt
đó ngày càng được khẳng định thêm Những thành tựu của nó đã có thể biến đượcnhững cái tưởng chừng nhưng không thể thành những cái có thể, góp phần nâng caođời sống vật chất và tinh thần cho con người
Để góp phần làm sáng tỏ hiệu quả của những ứng dụng trong thực tế của môn
vi xử lý, sau một thời gian học tập được các thầy cô trong khoa giảng dạy về các kiếnthức chuyên ngành, đồng thời được sự giúp đỡ nhiệt tình của các thầy cô trong khoaĐiện-Điện tử, cùng với sự lỗ lực của bản thân, em đã “Nghiên cứu, ứng dụng vi mạchArduino 2560 điều khiển qua module bluetooth, tích hợp dò line cho Robot mini”nhưng do thời gian, kiến thức và kinh nghiệm của em còn có hạn nên sẽ không thểtránh khỏi những sai sót Em rất mong được sự giúp đỡ và tham khảo ý kiến của thầy
cô và các bạn nhằm đóng góp phát triển thêm đề tài
Lê Đức Anh Nguyễn Thị Lan Anh
Vũ Hồng Sơn Đặng Thái Sơn
Trang 7MỞ ĐẦU: TÍNH CẤP THIẾT VÀ ỨNG DỤNG CỦA ĐỀ TÀI
1 Giới thiệu đề tài
Ngày nay, robot đã đạt được những thành tựu to lớn trong sản xuất công nghiệpcũng như trong đời sống Sản xuất robot là nghành công nghiệp trị giá hàng tỉ USD vàngày càng phát triển mạnh, trong các họ robot chúng ta không thể không nhắc tớimobile robot với những đặc thù riêng mà các loại robot khác không có
Mobile robot có thể di chuyển một cách rất linh hoạt, do đó tạo nên không gianhoạt động lớn và cho đến nay nó đã dần khẳng định vai trò quan trọng không thể thiếutrong nhiều lĩnh vực, thu hút được rất nhiều sự đầu tư và nghiên cứu Mobile robotcũng được chia ra làm nhiều loại: robot học đường đi, robot dò đường line, robot tránhvật cản, robot tìm đường cho mê cung,…trong số đó robot dò đường line, tránh vậtcản dễ dàng ứng dụng nhiều trong cuộc sống Việc phát triển loại robot này sẽ phục vụrất đắc lực cho con người
3 Sơ lược các bước thực hiện
- Trước tiên ta phải chế tạo được khung xe của robot Khung xe phải đảm bảobền chắc và đạt độ chính xác nhất định về việc bố trí các bánh xe và động cơ thôngqua việc vẽ trên phần mềm và cắt CNC
-Và cuối cùng là công đoạn lập trình dựa trên những kiến thức đã học được
Trang 8CHƯƠNG 1: GIỚI THIỆU ARDUINO VÀ CÁC THÀNH PHẦN CỦA MẠCH 1 1 GIỚI THIỆU VỀ ARDUINO
1.1.1 Sơ Lược về ARDUINO MEGA 2560
Arduino Mega 2560 là phiên bản nâng cấp của Arduino Mega hay còn gọi làArduino Mega 1280 Sự khác biệt lớn nhất với Arduino Mega 1280 chính là chipnhân
Ở Arduino Mega 1280 sử dụng chip ATmega1280 với flash memory 128KB,SRAM 8KB và EEPROM 4 KB
Còn đây là Arduino Mega 2560 phiên bản hiện đang được sử dụng rộng rãi vàứng dụng nhiều hơn Với chip ATmega2560 có bộ nhớ flash memory 256 KB, 8KBcho bộ nhớ SRAM, 4 KB cho bộ nhớ EEPROM Giúp cho người dùng thêm khả năngviết những chương trình phức tạp và điều khiển các thiết bị lớn hơn như máy in 3D,điều khiển robot
Arduino Mega R3 là sản phẩm được phát triển trên con chip ATmega2560 đượcphát triển dựa trên dòng mạch Mega là dòng mạch được cải tiến so với ArduinoUno( 54 chân digital IO và 16 chân analog IO) Đặc biệt bộ nhớ flash của MEGA đượctăng lên một cách đáng kể, gấp 4 lần so với bảng mạch Arduino Uno R3 Việc đượctrang 3 bị timer và 6 cổng interrupt khiến Arduino Mega R3 có thể xử lý song songnhiều luồng dữ liệu số cũng như tương tự
Arduino Mega 2560 R3 tương thích với tất cả Shield của Arduino Uno Nhưcác Shield sử dụng để điều khiển motor, kết nối wifi hay kết nối với các thiết bị điện tửtrong nhà
Trang 9Hình 1.1 Arduino MEGA 2560
Vì đây là một bo mạch được tích hợp nhiều tính năng nổi bật Tính năng đầutiên là thiết kế hệ thống I / O lớn với 16 bộ chuyển đổi tương tự và 54 bộ chuyển đổidigital hỗ trợ UART và các chế độ giao tiếp khác Thứ hai, Arduino Mega 2560 có sẵnRTC và các tính năng khác như bộ so sánh, timer, ngắt để điều khiển hoạt động, tiếtkiệm điện năng và tốc độ nhanh hơn với xung thạch anh16 Mhz
Các tính năng khác bao gồm hỗ trợ JTAG để lập trình, gỡ lỗi và xử lý sự
cố Với bộ nhớ FLASH lớn và SRAM, bo này có thể xử lý chương trình hệ thống lớnmột cách dễ dàng Nó cũng tương thích với các loại bo mạch khác nhau như tín hiệumức cao (5V) hoặc tín hiệu mức thấp (3.3V) với chân nạp I / O
Trang 10Brownout và watchdog giúp hệ thống đáng tin cậy và mạnh mẽ hơn Nó hỗ trợICSP cũng như lập trình vi điều khiển USB với PC.
Arduino Mega 2560 là một sự thay thế của Arduino Mega cũ Nó thường được sửdụng cho các dự án rất phức tạp
Đối với những ai quan tâm tới Matlab thì Arduino Mega 2560 cũng là một sự chọn lựatuyệt vời Vì nó còn được tích hợp sẵn thư viện dành cho MatLab Với viêc kết hợpgiữa Matlab và Arduino là một sự kết hợp thú vị
Arduino Mega 2560 có thể sử dụng hầu hết các shiled dành cho các mạch ArduinoUno hay hoặc các mạch trước đây như Duemilanove hay Diecimila với cách cài đặt vànối chân tương tự như Arduino Uno
Hiện nay có một số shiled hỗ trợ cho Arduino Mega rất nhiều như:
Hình 1.2 Mạch điều khiển máy in 3D RAMPS 1.4
Trang 11Hình 1.3 Arduino Shield Mega Proto board mạch mở rộng cho Arduino Mega
2560 1.2 MỘT VÀI THÔNG SỐ CỦA ARDUINO MEGA2560
Chi tiết sản phẩm
Hình 1.4 Chi tiết Arduino Mega 2560
Arduino Mega 2560 là một vi điều khiển hoạt động dựa trên chip ATmega2560 Bao gồm:
Trang 1254 chân digital (trong đó có 15 chân có thể được sủ dụng như những chân PWM là từ chân số 2 → 13 và chân 44 45 46).
• 16 chân vào analog (từ A0 đến A15)
• 4 cổng Serial giao tiếp với phần cứng:
CỔNG SERIAL CHÂN RX CHÂN TX
Trang 13Bảng 1.1 thông số kỹ thuật của Arduino Mega 2560
Arduino Mega Tính năng, đặc điểm
Cường độ dòng điện trên mỗi
Giao tiếp USB (Lập trình với ATmega 8), ICSP (lập
trình), SPI, I2C và USART
Bộ Timer 2 (8bit) + 4 (16bit) = 6 Timer
Trang 141.2.1 Nguồn Cấp
Arduino Mega 2560 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 dùng 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 Mega 2560.
1.2.2 Các chân nguồn
• GND (Ground): cực âm của nguồn điện cấp cho Arduino Mega 2560 Khi bạn dùng 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 Mega 2560, 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.
• 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Ω.
1.2.3 Bộ Nhớ
Vi điều khiển Arrduino Mega 2560 tiêu chuẩn cung cấp cho người dùng:
256 KB 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 8KB trong
số này sẽ được dùng cho bootloader
8 KB cho SRAM (Static Random Access 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.
EEPROM (Electrically Eraseble Programmable Read Only Memory):
đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu
Trang 15củ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.
1.2.4 Lập trình cho Arduino
Arduino Mega2560 sử dụng chương trình Arduino IDE để lập trình,
và ngôn ngữ lập trình cho Arduino cũng tên là Arduino (được xây dựng
trên ngôn ngữ C)
Hình 1.5 Giao diện lập trình
Tuy nhiên, nếu muốn lập trình cho Arduino Mega2560, bạn cần phải thực hiệnmột số thao tác trên máy tính Sau đây, tôi sẽ hướng dẫn bạn từng bước để có thể lậptrình cho Arduino Mega2560
Đầu tiên, bạn cần cài Driver của Arduino Nano và tải về bản Arduino IDE mớinhất cho máy tính, các bước cài đặt hoàn toàn tương tự như Arduino Uno R3, bạn cóthể tham khảo
Trang 16Sau khi cài đặt, bạn sẽ thấy một thông báo dạng "Cổng COMx đã được cài đặtthành công" (chữ "x" này sẽ được thay bằng một số nguyên dương, bạn hãy nhớ lấy sốnày, vì sau này bạn sẽ dùng cổng COMx này để lập trình cho Arduino Mega2560).Mạch Arduino là dòng mạch Arduino phổ biến, khi mới bắt đầu làm quen, lậptrình với Arduino thì mạch Arduino thường nói tới chính là dòng Arduino Nano Hiệndòng mạch này đã phát triển tới thế hệ thứ 3.
Arduino là dòng cơ bản, linh hoạt, thường được sử dụng cho người mới bắt đầu.Bạn có thể sử dụng các dòng Arduino khác như: Arduino Mega, Arduino Nano,Arduino Micro… Nhưng với những ứng dụng cơ bản thì mạch Arduino Nano là lựachọn phù hợp nhất
Hình 1.6 Chọn Board Arduino
Trang 17Hình 1.7 Chọn cổng Arduino
Sau đó bạn cần lại loại board và cổng Serial mới như hình sau là được Lưu ý,cổng COM trong hình dưới đây là chỉ là hình minh họa trong máy tính của mình thôinhé
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ở đốivới bạn
1.3 ỨNG DỤNG THỰC TẾ
Với sự tiện ích vô cùng lớn của Arduino Mega 2560, mạnh mẽ với bộ nhớ flashlớn, số chân nhiều hơn và cùng số lượng shield hỗ trợ không hề nhỏ Arduino Mega đãđược đưa vào các dự án lớn hơn như xử lý thông tin nhiều luồng, điều khiền nhiềuđộng cơ, xe điều khiển từ xa, LED cube hay còn mở rộng cánh cửa với thế giới IoT
Trang 18Hình 1.8 Mở rộng cánh cửa với IOT 1.4 MỘT VÀI LƯU Ý KHI SỬ DỤNG ARDUINO MEGA
Khi bắt đầu sử dụng Arduino Mega 2560, bạn nên chú ý lựa chọn lại board Bằngcách vào Tool → Board → Arduino Mega 2560 Nhằm tránh trước đó bạn đã sửdụng loại Arduino khác cổng vẫn còn nhận là board cũ nên khi build bạn sẽ gặplỗi
Khi sử dụng chân RX, TX cuả Arduino, các bạn nên nhớ rút dây cắm tại 2 chânnày ra rồi hãy bắt đầu upload Sau đó hãy cắm lại bình thường và sử dụng để tránhgặp phải lỗi
Không được phép cắm trực tiếp chân GND vào chân nguồn 5V, có thể dẫn tớihỏng mạch
Trang 202.1.1 Thông số kỹ thuật
Driver: L298N tích hợp hai mạch cầu H
Điện áp điều khiển: +5 V ~ +12 V
Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)
Điện áp của tín hiệu điều khiển: +5 V ~ +7 V
Dòng của tín hiệu điều khiển: 0 ~ 36mA (Arduino có thể chơi đến 40mAnên khỏe re nhé các bạn)
Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃))
Nhiệt độ bảo quản: -25 ℃) ~ +130 ℃)
BLOCK DIAGAM
PIN CONNECTIONS
Trang 21Output A: nối với động cơ A bạn chú ý chân +, - Nếu bạn nối ngược thìđộng cơ sẽ chạy ngược Và chú ý nếu nối động cơ bước, phải đấu nối các pha chophù hợp.
Board này gồm 2 phần điều khiển động cơ Và có thể điều khiển cho 1 động
cơ bước 6 dây hoặc 4 dây
2 Jump A enable và B enable, để như hình, đừng rút ra bạn nhé!
Trang 22Gồm có 4 chân Input IN1, IN2, IN3, IN4.
Bên cạnh đó có jumper 5V, nếu bạn để như hình ở trên thì sẽ có nguồn 5V ra
ở cổng 5V power, ngược lại thì không Bạn để như hình thì ta chỉ cần cấp nguồn12V vô ở 12V power là có 5V ở 5V power, từ đó cấp cho Arduino
Power GND chân này là GND của nguồn cấp cho Động cơ Nếu chơiArduino thì nhớ nối với GND của Arduino
Đây là 2 chân cấp nguồn trực tiếp bạn có thể cấp nguồn 9-12V ở 12V
2.1.2 Kết Nối mạch
Trang 23Các chân số D7, D6, D5 và D4 của Arduino sẽ nối tương ứng với IN1, IN2, IN3
Để hiêu rõ, bây giờ mình sẽ giúp các bạn tưởng tượng nhé:
Tưởng tượng, chân IN1 là chân OutA.1, chân IN2 là chân OutA.2
Trang 24 Bạn cấp cực dương vào IN1, cực âm vào IN2 => motor quay một chiều (chiều1).
Bạn cấp cực âm vào IN1, cực dương vào IN2 => motor quay chiều còn lại(chiều 2)!
Cực dương ở đây là điện thế 5V, cực âm ở đây là điện thế 0V Hiện điện thếđược tính là điện thế ở IN1 trừ hiệu điện thế IN2
Giả sử, hiệu điện thế 5V sẽ là mạnh nhất trong việc điều khiển động cơ Nhưvậy, chỉ cần hạ hiệu điện thế xuống là động cơ sẽ bị yếu đi
Và nếu hiệu điện thế < 0 => động cơ sẽ đảo chiều!
2.3 MODULE BLUETOOTH
2.3.1 Module Bluetooth HC05
Hình 2.4 Module blutooth HC05
Trang 25- Đáp ứng theo lệnh: khi làm việc ở chế độ này, các bạn có thể gửi các lệnh AT
để giao tiếp với module
- Module HC05 có thể nhận 1 trong 3 chức năng: Master, Slave, Loopback (cóthể lựa chọn các chức năng bằng lệnh AT)
- Giao tiếp với module bằng giao tiếp nối tiếp không đồng bộ qua 2 đường RX và
TX, vì vậy các bạn có thể sử dụng PC với chuẩn RS232 hoặc các dòng vi điều khiển
Trang 262.3.3 Giao tiếp với Module Bluetooth HC05
Giao tiếp với HC05 bằng các lệnh AT sử dụng phần mềm Hercules SetupUntility trên PC
Cài đặt phần mềm Hercules Setup Untility, sau đó mở ứng dụng, chọn Serial, giao diện giao tiếp với cổng nối tiếp sẽ hiện ra:
Tích hợp RF switch, balun, 24dBm PA, DCXO, and PMU
Tích hợp bộ xử lý RISC, trên chip bộ nhớ và giao diện bộ nhớ bên ngoài
Tích hợp bộ vi xử lý MAC / baseband
Chất lượng quản lý dịch vụ
Giao diện I2S cho độ trung thực cao ứng dụng âm thanh
On-chip thấp học sinh bỏ học điều chỉnh tuyến tính cho tất cả
các nguồn cung cấp nội bộ
Hình 2.6 Giao tiếp HC05
Các bạn cấu hình cổng vào, chế độ, khung dữ liệu, tốc độ Baud cho cổng nối tiếp
- Thiết lập module HC05 hoạt động ở chế độ đáp ứng theo lệnh Ở chế độ này,các bạn có thể cấu hình và kiểm soát module của mình
- Các bạn kết nối module Bluetooth với PC bằng USB TO COM PL2303 nhưsau: