có cả phần lập trình nha Robot dò đường sử dụng ARDUINO Robot dò đường sử dụng ARDUINO Robot dò đường sử dụng ARDUINO Robot dò đường sử dụng ARDUINO Robot dò đường sử dụng ARDUINO Robot dò đường sử dụng ARDUINO Robot dò đường sử dụng ARDUINO
Trang 1TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG MIỀN TRUNG
KHOA: ĐIỆN TỬ - TIN HỌC
ĐỒ ÁN MÔN HỌC: Đồ án 3 Chuyên ngành: Điện Tử Công Nghiệp
Đề tài:
ROBOT DÒ ĐƯỜNG DÙNG ARDUINO
Giáo viên hướng dẫn: Đỗ Thị Thu Nga Sinh viên thực hiện: Nguyễn Huy Cường
Lớp: CĐĐT40A
Phú Yên, ngày tháng năm 2019
Trang 2KHOA: ĐIỆN TỬ - TIN HỌC
ĐỒ ÁN MÔN HỌC: Đồ án 3 Chuyên ngành: Điện Tử Công Nghiệp
Đề tài:
ROBOT DÒ ĐƯỜNG DÙNG ARDUINO
Giáo viên hướng dẫn: Đỗ Thị Thu Nga Sinh viên thực hiện: Nguyễn Huy Cường
Lớp: CĐĐT40A
Phú Yên, ngày tháng năm 2019
Trang 3LỜI NÓI ĐẦU
Trong giai đoạn công nghiệp hóa hiện đại hóa nền kinh tế đất nước,ngàynay điều khiển tự động đã trở thành một nhu cầu không thể thiếu được của conngười, dưới sự xuất hiện của các học thuyết và các ứng dụng cụ thể trong đờisống hằng ngày, có thể nói điều khiển tự động đang chi phối dần cuộc sống củachúng ta con người đang cố gắng sáng tạo ra các con robot có khả năng làmviệc thay cho con người, chúng ta thường bắt gặp các con robot trong các dâychuyền công nghiệp sản xuất tự động hay robot giúp việc trong gia đình Để tìm
ra các ý tưởng sáng tạo hay hàng năm đề diễn ra cuộc thi robocon châu á tháibình dương đó là tiền đề để tạo ra những con robot có khả năng áp dụng vàothực tế Cũng chính vì mục đích đó mà chúng em thực hiện đồ án điều khiểnrobot dò đường, nó lại là bước khởi đầu trong lập trình robot để robot có thểthực hiện các công việc tiếp theo Đây chỉ là một công việc nhỏ của lập trìnhđiều khiển robot nhưng qua quá trình thiết kế và thi công đề tài chúng em đã rút
ra được rất nhiều kinh nghiệm thực tiễn quý báu Mục đích của đề tài hướng đến
là tạo ra bước đầu cho sinh viên thử nghiệm những ứng dụng của vi điều khiểntrong thực tiễn để rồi từ đó tìm tòi, phát triển nhiều ứng dụng khác trong đờisống hằng ngày cần đến
Với sự hướng dẫn tận tình của cô “ Đỗ Thị Thu Nga ” nhóm em đã tiến hành thiết kế đề tài và hoàn thành đúng thời hạn được giao.Mặc dù đã cố gắng hết sức mình để hoàn thành xong đồ án môn học bằng các kiến thức đã học, một
số sách tham khảo và một số nguồn tài liệu khác nhưng cũng không tránh khỏi những thiếu sót Do vậy, chúng em rất mong được sự góp ý quý báu của thầy cô
và các bạn để đề tài có thể hoàn thiện ở mức cao nhất
Em xin chân thành cảm ơn!
GVHD: Đỗ Thị Thu Nga SVTH:Nguyễn Huy Cường Đào Ngọc Lam Nguyễn Tấn Thắng
Trang 4NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
LỜI CẢM ƠN
GVHD: Đỗ Thị Thu Nga SVTH:Nguyễn Huy Cường Đào Ngọc Lam Nguyễn Tấn Thắng
Trang 5Trên thực tế không có sự thành công nào mà không gắn liền với những sự
hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trongsuốt thời gian từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đãnhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè.Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở Khoa Điện Tử TinHọc – Trường Cao Đẳng Công Thương Miền Trung đã cùng với tri thức và tâmhuyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốtthời gian học tập tại trường Và đặc biệt, trong học kỳ này, Khoa đã tổ chức chochúng em được tiếp cận với môn đồ án môn học mà theo em là rất hữu ích đốivới sinh viên ngành Điện Tử Công Nghiệp cũng như tất cả các sinh viên thuộccác chuyên ngành khác.Giúp em tự tìm hiểu quà nghiên cứu được nhiều kiếnthức cho bản thân nói riêng
Em xin chân thành cảm ơn cô Đỗ Thị Thu Nga và các thầy cô khác đã tận tâmhướng dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nóichuyện, thảo luận về lĩnh vực sáng tạo Nếu không có những lời hướng dẫn,dạy bảo của thầy cô thì em nghĩ bài thu hoạch này của em rất khó có thể hoànthiện được Một lần nữa, em xin chân thành cảm ơn thầy
Bài báo cáo được thực hiện trong khoảng thời gian hơn 4 tuần Bước đầu đi vàothực tế, tìm hiểu về lĩnh vực sáng tạo trong nghiên cứu điện tử, kiến thức của
em còn hạn chế và còn nhiều bỡ ngỡ Do vậy, không tránh khỏi những thiếu sót
là điều chắc chắn, em rất mong nhận được những ý kiến đóng góp quý báu củaquý Thầy Cô và các bạn học cùng lớp để kiến thức của em trong lĩnh vực nàyđược hoàn thiện hơn
Phú Yên, tháng 12 Năm 2018
SINH VIÊN THỰC HIỆN Nguyễn Huy Cường Đào Ngọc Lam
Nguyễn Tấn Thắng
MỤC LỤC
GVHD: Đỗ Thị Thu Nga SVTH:Nguyễn Huy Cường Đào Ngọc Lam Nguyễn Tấn Thắng
Trang 6CHƯƠNG 1: GIỚI THIỆU VỀ MỘT SỐ LINH KIỆN ĐƯỢC SỬ DỤNG TRONG ROBOT
1.1 Board Arduino Uno R3 1
1.2 Module L298 1
1.3 Module cảm biến hồng ngoại V2 3
1.4 Một số vật dụng kèm theo khác 4
CHƯƠNG 2: SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG 2.1 Sơ đồ nguyên khối 6
2.2 Nguyên lý hoạt động 6
2.3.Code nạp 8
CHƯƠNG 3: THI CÔNG 3.1 Quy trình thực hiện 9
3.2 Kết quả đạt được 9
CHƯƠNG 4: KẾT LUẬN 4.1.Ưu điểm 10
4.2 Nhược điểm 10
4.3 Hướng phát triển 10
4.4 Tài liệu tham khảo 10
DANH MỤC CÁC HÌNH Hình 1: Board ARDUINO UNO R3 1 GVHD: Đỗ Thị Thu Nga SVTH:Nguyễn Huy Cường Đào Ngọc Lam Nguyễn Tấn Thắng
Trang 7Hình 2: Module L289 4
Hình 3: Module cảm biến V2 5
Hình 4: Bộ khung xe 3 bánh 6
Hình 5: Cáp nối dây điện 6
Hình 6: Jack nguồn 7
Hình 7: Đế pin đôi 7
Hình 8: Sơ đồ khối 8
Hình 9: Sản phẩm hoàn thành 15
GVHD: Đỗ Thị Thu Nga SVTH:Nguyễn Huy Cường Đào Ngọc Lam Nguyễn Tấn Thắng
Trang 8CHƯƠNG 1: GIỚI THIỆU MỘT SỐ LINH KIỆN
ĐƯỢC SỬ DỤNG TRONG MẠCH
1.1 Board Arduino Uno R3
1.1.1 Chức năng Board Arduino Uno R3
Arduino UNO R3 có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ
ẩm và hiển thị lên màn hình LCD,… hay những ứng dụng khác
Hình 1: Board Arduino Uno R3
1.1.2 Thông số kỹ thuật của Board Arduino Uno R3
- Vi điều khiển ATmega328 thuộc họ 8bit
- Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
- Tần số hoạt động 16 MHz
GVHD: Đ Th Thu Nga ỗ ị Trang 1 SVTH:Nguy n Huy C ễ ườ ng
Đào Ng c Lam ọ
Nguy n T n Th ng ễ ấ ắ
Trang 9- Dòng tiêu thụ khoảng 30mA
- Điện áp vào khuyên dùng 7-12V DC
- Điện áp vào giới hạn 6-20V DC
- Số chân Digital I/O 14 (6 chân hardware PWM)
- Số chân Analog 6 (độ phân giải 10bit)
- Dòng tối đa trên mỗi chân I/O 30 mA
1.1.3 Các chân của Board Arduino Uno R3
- GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạndù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 UNO, bạn nối cựcdươ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ấynguồ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ấpnguồ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Ω
-2 chân Serial: 0 (RX) và 1 (TX): dùng để 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 bluetooth thường thấy nói nôm na chính làkết nối Serial không dâ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
GVHD: Đ Th Thu Nga ỗ ị Trang 2 SVTH:Nguy n Huy C ễ ườ ng
Đào Ng c Lam ọ
Nguy n T n Th ng ễ ấ ắ
Trang 10- 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 → 28-1 tương ứng với 0V → 5V) bằng hàmanalogWrite() Nó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ữngchân khác
- Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoàicác chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằnggiao 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) Khibấ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ớichân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng
- Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tínhiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Vớichân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụngcá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ểdùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phângiải vẫn là 10bit
- Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếpI2C/TWI với các thiết bị khác
GVHD: Đ Th Thu Nga ỗ ị Trang 3 SVTH:Nguy n Huy C ễ ườ ng
Đào Ng c Lam ọ
Nguy n T n Th ng ễ ấ ắ
Trang 11Hình 2: Module L298 1.2.2 Thông số kỹ thuật:
- Driver: L298 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ể đạt đến 40mA)
- Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃)
- Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃
1.2.3 L289 Gồm các chân:
- 12V power, 5V power Đây là 2 chân cấp nguồn trực tiếp đến động cơ.
- Power GND chân này là GND của nguồn cấp cho Động cơ
- 2 Jump A enable và B enable để điều chỉnh tốc độ quay của động cơ
- Output A: nối với động cơ A
- Output B: nối với động cơ B
- INPUT: nối với ADRUINO
GVHD: Đ Th Thu Nga ỗ ị Trang 4 SVTH:Nguy n Huy C ễ ườ ng
Đào Ng c Lam ọ
Nguy n T n Th ng ễ ấ ắ
Trang 121.3 Module cảm biến hồng ngoại V2
1.3.1Chức năng Module cảm biến hồng ngoại V2
- Module cảm biến vật cản hồng ngoại 4 kênh có cách sử dụnggiống Module cảm biến vật cản hồng ngoại 1 kênh Nhưng được tích hợp 4 kênhtrên cùng 1 board mạch với 4 đầu cảm biến riêng biệt Giúp cho hệ thống cầnnhiều đầu cảm biến được gọn nhẹ, tập trung hơn Có thể chỉnh độ nhạy cho từngkênh bằng biến trở Có đèn báo cho mỗi cảm biến
- Sử dụng tia hồng ngoại phát hiện ánh sáng, chống khả năng gây nhiễu, sửdụng cảm biến CTRT5000, điều chỉnh độ nhạy, hiệu suất ổn định
- Làm việc điện áp 5V, đầu ra thấp
- Cảm biến tinh tế, nhạy bén với ánh sáng, được tích hợp một lỗ bu lông cốđịnh cho việc cài đặt dễ dàng
Hình 3: Module cảm biến hồng ngoại V2
GVHD: Đ Th Thu Nga ỗ ị Trang 5 SVTH:Nguy n Huy C ễ ườ ng
Đào Ng c Lam ọ
Nguy n T n Th ng ễ ấ ắ
Trang 131.4 Một số vật dụng kèm theo khác
- Bộ khung xe 3 bánh
Hình 4: Bộ khung xe 3 bánh
- Cáp nối dây điện
Hình 5: Cáp nối dây điện
GVHD: Đ Th Thu Nga ỗ ị Trang 6 SVTH:Nguy n Huy C ễ ườ ng
Đào Ng c Lam ọ
Nguy n T n Th ng ễ ấ ắ
Trang 14- Jack nguồn
Hình 6: Jack nguồn
- Đế pin đôi
Hình 7: Đế pin đôi
- Và một số ốc vít, chốt nối dây điện, thanh tre,
GVHD: Đ Th Thu Nga ỗ ị Trang 7 SVTH:Nguy n Huy C ễ ườ ng
Đào Ng c Lam ọ
Nguy n T n Th ng ễ ấ ắ
Trang 15CHƯƠNG 2: SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT
ĐỘNG2.1 Sơ đồ khối
Trang 162.2 Nguyên lý hoạt động
- Khi cấp nguồn cho robot thì mạch tạo xung bắt đầu hoạt động, cảm biến
sẽ được bật, sau đó tín hiệu từ cảm biến sẽ truyền đến vi điều khiển và vi điều khiển sẽ xử lý tín hiệu và cung cấp độ rộng xung thích hợp cho động cơ
2.3 Code nạp Board Arduino
#define inA1 6 //Định nghĩa chân in1 của động cơ A
#define inA2 7 //Định nghĩa chân in2 của động cơ A
#define inB1 8 //Định nghĩa chân in1 của động cơ B
#define inB2 9 //Định nghĩa chân in2 của động cơ B
#define linesens1 10 //Định nghĩa chân cảm biến line 1
#define linesens2 11 //Định nghĩa chân cảm biến line 2
#define linesens3 12 //Định nghĩa chân cảm biến line 3
#define linesens4 13 //Định nghĩa chân cảm biến line 4
void setup() {
Serial.begin(9600);
pinMode(inA1, OUTPUT);//Set chân in1 của dc A là output
pinMode(inA2, OUTPUT);//Set chân in2 của dc A là output
pinMode(inB1, OUTPUT);//Set chân in1 của dc B là output
pinMode(inB2, OUTPUT);//Set chân in2 của dc B là output
pinMode(linesens1, INPUT);//Set chân cảm biến 1 là input
pinMode(linesens2, INPUT);//Set chân cảm biến 2 là input
pinMode(linesens3, INPUT);//Set chân cảm biến 3 là input
pinMode(linesens4, INPUT);//Set chân cảm biến 4 là input
Trang 17//Hàm điều khiển robot bám line màu tối
//inR1, inR2 và inL1, inL2 là các chân tín hiệu lần lượt điều khiển động cơ di chuyển bên phải và trái
//sen1 đến sen4 là chân nhận tín hiệu từ cảm biến hồng ngoại
//Bây giờ thì lập trình thôi
switch (deviationDarkLine4Sensor (sen1, sen2, sen3, sen4))
Trang 18void robotMover (byte inR1, byte inR2, byte inL1, byte inL2, byte action)
{
/*
inR1 inR2 là 2 chân tín hiệu động cơ bên phải
inL1 inL2 là 2 chân tín hiệu động cơ bên trái
action= 0 đứng yên
action =1 đi thẳng
action =2 lùi lại
action =3 quay trái
action =4 quay phải
Trang 19// in1 and in2 are 2 signal pins to control the motor
// en is the enable pin
// the defauspeed is the highest
Trang 20int left = 0; //biến kiểm tra lệch trái
int right = 0; // biến kiểm tra lệch phải
left = IFSensor (PinNumb1)+IFSensor (PinNumb2); //kiểm tra mấy cảm biến trái ở trong màu đen
right= IFSensor (PinNumb3)+IFSensor (PinNumb4); //kiểm tra mấy cảm biến phải ở trong màu đen
Trang 21if ((left!=0) || (right!=0))return left - right;
GVHD: Đ Th Thu Nga ỗ ị Trang 14 SVTH:Nguy n Huy C ễ ườ ng
Đào Ng c Lam ọ
Nguy n T n Th ng ễ ấ ắ
Trang 23- Đây là mạch hoạt động với công suất nhỏ nhưng ứng dụng vào những
mục đích lớn hơn sẽ rất thuận tiện như về thám hiểm, vận chuyển,
- Chúng ta có thể làm robot thông minh hơn và có khả năng làm nhiều việc
và linh hoạt hơn
4.4 Tài liệu tham khảo:
Trang tìm kiếm: Google.com
Youtube.com
GVHD: Đ Th Thu Nga ỗ ị Trang 16 SVTH:Nguy n Huy C ễ ườ ng
Đào Ng c Lam ọ
Nguy n T n Th ng ễ ấ ắ