Professional Documents
Culture Documents
HỌ VÀ TÊN MSSV
NGUYỄN THANH HẢI 19153017
ĐẶNG SƠN MINH 19153041
NGUYỄN DUY PHONG 19153057
ĐẶNG NGUYỄN THÀNH TRUNG 19153087
Chúng em xin cảm ơn những người anh, người bạn đã tận tình chia sẽ những kinh
nghiệm, giải đáp những thắc mắc và góp ý vô cùng chân thành.
Cuối cùng, chúng em xin cảm ơn, gia đình đã luôn ở bên động viên, hỗ trợ chúng em
trong suốt quá trình học tập.
Do sự non trẻ và thiếu kinh nghiệm, đồ án và phần trình bày của chúng em có lẽ vẫn
còn nhiều hạn chế, thiếu sót, mong thầy nhận xét và góp ý để chúng em có thể bổ sung,
sửa đổi để ngày càng hoàn thiện hơn.
Trang 1
MỤC LỤC
LỜI CẢM ƠN ............................................................................................................... 1
CHƯƠNG 1: MỞ ĐẦU ................................................................................................ 4
1.1. Giới thiệu đề tài ............................................................................................... 4
1.2. Mục đích đề tài ................................................................................................ 4
1.3. Nội dung thực hiện .......................................................................................... 4
1.4. Ý nghĩa đồ án ................................................................................................... 4
1.5. Kết quả dự kiến đạt được ............................................................................... 4
CHƯƠNG 2: TỔNG QUAN ........................................................................................ 5
2.1. Linh kiện được sử dụng trong đồ án ................................................................ 5
2.1.1. Arduino Mega 2560 ...................................................................................... 5
2.1.2. Mạch điều khiển động cơ DC - L298N Driver ............................................ 6
2.1.3. Module thu phát Bluetooth HC-05 ............................................................. 8
2.1.4. Cảm biến vật cản hồng ngoại (IR Infrared Obstacle Avoidance Sensor
Module) .................................................................................................................. 10
2.1.5. Cảm biến siêu âm HC-SR04 ..................................................................... 11
2.1.6. Động cơ DC................................................................................................. 13
2.1.6. Các linh kiện khác ..................................................................................... 14
2.2. Phần mềm điều khiển RemoteXY ................................................................... 14
CHƯƠNG 3: KẾT QUẢ VÀ THẢO LUẬN ............................................................ 16
3.1. Mô hình robot dò line tránh vật cản .............................................................. 16
3.2. Mạch điều khiển robot dò line tránh vật cản ................................................ 17
3.3. Tạo giao diện người dùng (GUI) RemoteXY và kết nối với mạch điều khiển
................................................................................................................................... 19
3.3.1. Các bước cụ thể .......................................................................................... 19
3.3.2. Giao diện điều khiển và giám sát.............................................................. 20
3.3.3. Nguyên lý hoạt động Robot dò line tránh vật cản điều khiển từ xa...... 21
CHƯƠNG 4: KẾT LUẬN VÀ ĐỀ NGHỊ ................................................................. 23
4.1. Kết luận ............................................................................................................. 23
4.2. Đề nghị............................................................................................................... 23
PHỤ LỤC .................................................................................................................... 24
Chương trình điều khiển: ....................................................................................... 24
Trang 2
MỤC LỤC HÌNH ẢNH
Hình 1. Arduino Mega 2560 ........................................................................................... 5
Hình 2. Sơ đồ chân kết nối Arduino Mega 2560 ............................................................ 6
Hình 3. Mạch điều khiển động cơ DC - L298 Driver .................................................... 7
Hình 4. Sơ đồ mạch điều khiển động sơ DC L298 ......................................................... 7
Hình 5. Module thu phát Bluetooth HC-05 .................................................................... 8
Hình 6. Cảm biến vật cản hồng ngoại .......................................................................... 10
Hình 7. Sơ đồ mạch cảm biến vật cản hồng ngoại ....................................................... 11
Hình 8. Cảm biến siêu âm HC-SR04............................................................................ 12
Hình 9. Động Cơ DC .................................................................................................... 13
Hình 10. Cấu tạo bánh răng truyền động động cơ DC ................................................. 14
Hình 11. Giao diện thiết kế RemoteXY. ...................................................................... 15
Hình 12. Mô hình robot dò line tránh vật cản .............................................................. 16
Hình 13. Sơ đồ mạch điều khiển .................................................................................. 17
Hình 14. Sơ đồ đấu nối chân Arduino Mega 2560 ....................................................... 18
Hình 15. Giao diện khởi tạo RemoteXY ...................................................................... 19
Hình 16. Tùy chỉnh các đặc tính của mạch điều khiển................................................. 19
Hình 17. Thiết kế giao diện điều khiển ........................................................................ 20
Hình 18. Lấy chương trình nguồn ................................................................................ 20
Hình 19. Giao diện điều khiển robot dò line tránh vật cản điều khiển từ xa................ 21
Trang 3
CHƯƠNG 1: MỞ ĐẦU
1.1. Giới thiệu đề tài
‒ Ngày nay, robotic đã đạt được những thành tựu to lớn trong sản xuất công
nghiệp cũng như trong đời sống. Sản xuất robot là ngành công nghiệp đang
ngày càng phát triển và khẳng định vị thế của mình, trong các họ robot chúng ta
khôgn thể không kể đến mobile 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 linh hoạt, tạo nên một không gian hoạt
động lớn và cho đến nay nó đã dần khẳng định vai trò quan trọng trong nhiều
lĩnh vực, thu hút được nhiều sự đầu tư nhiên cứu. Robot dò line là một trong
những loại mobile robot dễ dàng được ứng dụng 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.
1.2. Mục đích đề tài
‒ Robot dò line vừa có nhiều ứng dụng thực tế vừa dễ dàng để thực hiện. Với
những kết cấu cơ khí cùng với thành phần điện tử đơn giản, chế tạo ra một
robot dò line có khả năng đi theo vạch kẻ đường có sẵn, né tránh vật cản trên
đường đi kết hợp điều khiển từ xa thông qua Bluetooth.
1.3. Nội dung thực hiện
‒ Thiết kế mô hình xe
‒ Thiết kế mạch điều khiển động cơ, cảm biến
‒ Lập trình chương trình điều khiển robot dò line, tránh vật cản
‒ Thiết kế giao diện điều khiển
1.4. Ý nghĩa đồ án
‒ Robot dò line, tránh vật cản có thể được sử dụng trong công việc vận chuyển
giữa các địa điểm theo vạch kẻ có sẵn, từ đó tiết kiệm được thời gian, sức lực.
1.5. Kết quả dự kiến đạt được
‒ Thiết kế ra mô hình robot dò line có tính ứng dụng cao, đi theo vạch kẻ có sẵn,
né tránh vật cản trên đường đi kết hợp với điều khiển từ xa bằng Bluetooth
thông qua phần mềm RemoteXY.
Trang 4
CHƯƠNG 2: TỔNG QUAN
2.1. Linh kiện được sử dụng trong đồ án
2.1.1. Arduino Mega 2560
Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng dụng
điện tử tương tác với nhau hoặc với môi trường được thuận lợi hợn.
Arduino giống như một máy tính nhỏ để người dùng có thể lập trình và thực hiện
các dự án điện tử mà không cần phải có các công cụ chuyên biệt để phục vụ việc
nạp code.
Arduino Mega 2560 là phiên bản nâng cấp của Arduino Uno với số chân giao tiếp,
ngoại vi và bộ nhớ nhiều hơn, mạch Mega 2560 sử dụng IC nạp ATmega16U2 tương
thích hoàn toàn với phiên bản gốc, một số phiên bản sử dụng IC nạp CH340.
Trang 5
Số chân Analog Input: 16
Dòng điện DC Current trên mỗi chân I/O: 20mA
Dòng điện DC Current chân 3.3V: 50mA
Flash Memory: 256 KB trong đó 8 KB sử dụng cho bootloader.
SRAM: 8 KB
EEPROM: 4 KB
Clock Speed: 16 MHz
LED_BUILTIN: 13
Kích thước: 101.52 x 53.3 mm
Trang 6
Hình 3. Mạch điều khiển động cơ DC - L298 Driver
Thông số kỹ thuật:
Trang 7
2.1.3. Module thu phát Bluetooth HC-05
Module thu phát Bluetooth HC-05 dùng để thiết lập kết nối Serial giữa 2 thiết bị
bằng sóng bluetooth. Điểm đặc biệt của module bluetooth HC-05 là module có thể
hoạt động được ở 2 chế độ: MASTER hoặc SLAVE.
Ở chế độ SLAVE: bạn cần thiết lập kết nối từ smartphone, laptop, usb bluetooth
để dò tìm module sau đó pair với mã PIN là 1234. Sau khi pair thành công, bạn
đã có 1 cổng serial từ xa hoạt động ở baud rate 9600.
Module Bluetooth thu phát HC-05 được thiết kế nhỏ gọn ra chân tín hiệu giao tiếp
cơ bản và nút bấm để vào chế độ AT COMMAND, mạch được thiết kế để có thể cấp
nguồn và giao tiếp qua 3.3VDC hoặc 5VDC, thích hợp cho nhiều ứng dụng khác
nhau: Robot Bluetooth, điều khiển thiết bị qua Bluetooth,…
Trang 8
Thông số kĩ thuật:
Trang 9
2.1.4. Cảm biến vật cản hồng ngoại (IR Infrared Obstacle Avoidance Sensor
Module)
Khoảng cách làm việc hiệu quả 2 ~ 5cm, điện áp làm việc là 3.3 V đến 5V. Độ nhạy
sáng của cảm biến vật cản hồng ngoại được điều chỉnh bằng chiết áp, cảm biến dễ
lắp ráp, dễ sử dụng,….
Có thể được sử dụng rộng rãi trong robot tránh chướng ngại vật, xe tránh chướng
ngại vật và dò đường….
Trang 10
Thông số kĩ thuật:
Cảm biến siêu âm SR04 sử dụng nguyên lý phản xạ sóng siêu âm. Cảm biến gồm 2
module.1 module phát ra sóng siêu âm và 1 module thu sóng siêu âm phản xạ
về. Đầu tiên cảm biến sẽ phát ra 1 sóng siêu âm với tần số 40khz. Nếu có chướng
ngại vật trên đường đi, sóng siêu âm sẽ phản xạ lại và tác động lên module nhận
Trang 11
sóng. Bằng cách đo thời gian từ lúc phát đến lúc nhận sóng ta sẽ tính được khoảng
cách từ cảm biến đến chướng ngại vật.
Trang 12
2.1.6. Động cơ DC
Động cơ DC giảm tốc vàng là mẫu động cơ được sử dụng rộng rãi trong thiết kế
robot, mô hình DIY, với dải điện áp từ 3-9v, với 2 trục.
Số vòng/1phút:
Hình 9. Động Cơ DC
Thông số kĩ thuật:
Điện áp: 3-12VDC, khuyến nghị ở giải điện áp (6-8VDC)
Dòng: 70mA (250mA Max) ở 3V
Mô men xoắn: 800gfcm
Tỷ số truyền: 1:48
Tốc độ:
o 125 rpm 3VDC (bánh 66mm: 26rpm)
o 208 rpm 5VDC (bánh 66mm: 44rpm)
Kích thước: 64 * 19 * 22.6mm (L * W * H)
Trọng lượng: 27g
Trang 13
Hình 10. Cấu tạo bánh răng truyền động động cơ DC
Thành phần đầu tiên là chương trình cần được tải lên bộ vi điều khiển. Chương
trình có thể được lập trình qua phần mềm Arduino Ide, FLProg IDE, MPIDE,…
với thư viện RemoteXy.
Trang 14
Thứ hai là giao diện web, trong đó giao diện người dùng được thiết kế sử dụng
môi trường kéo và thả thân thiện để tạo các nút và công tắc điều khiển.
Trang 15
CHƯƠNG 3: KẾT QUẢ VÀ THẢO LUẬN
3.1. Mô hình robot dò line tránh vật cản
Chế độ auto: Robot sẽ tự động di chuyển theo vạch kẻ đường có sẵn và né tránh
các vật cản trên đường đi.
Chế độ điều khiển tay: Robot sẽ được điều hướng bằng điện thoại thông qua phần
mềm RemoteXY.
Trang 16
Phần mềm RemoteXY được kết nối với robot thông qua Bluetooth giúp điều
khiển robot, chuyển chế độ cũng như hiển thị trạng thái hoạt động của robot.
Trang 17
Sơ đồ đấu nối chân Arduino Mega 2560:
Trang 18
3.3. Tạo giao diện người dùng (GUI) RemoteXY và kết nối với mạch điều
khiển
3.3.1. Các bước cụ thể
Bước 1: Truy cập địa chỉ https://remotexy.com/en/editor/
Hình 16. Tùy chỉnh các đặc tính của mạch điều khiển
Trang 19
Bước 3: Thiết kế giao diện điều khiển
Trang 20
Hình 19. Giao diện điều khiển robot dò line tránh vật cản điều khiển từ xa
Các thành phần của giao diện điều khiển:
Công tắc: Chuyển đổi giữa hai chế độ làm việc của Robot, bao gồm chế độ auto
và chế độ điều khiển bằng joystick.
Label text: Hiển thị trạng thái hoạt động của Robot.
Slider: Điều chỉnh tốc độ của động cơ.
Joystick: Điều khiển Robot ở chế độ Joystick, tích hợp cảm biến con quay hồi
chuyển gyroscope.
3.3.3. Nguyên lý hoạt động Robot dò line tránh vật cản điều khiển từ xa
Khi khởi động robot và kết nối với phần mềm điều khiển thông qua Bluetooth, robot
bắt đầu hoạt động, chuyển đổi các chế độ làm việc của robot thông qua công tắc
chuyển đổi trên phần mềm:
Chế độ auto: Robot đi chuyển trên vạch kẻ đen có sẵn, các cảm biến hồng ngoại
gắn ở đầu robot có nhiệm vụ gửi tín hiệu để định hướng di chuyển của robot.
Cảm biến hồng ngoại gửi tín hiệu ở 2 mức, 0 đối với nền sáng và 1 đối với nền
đen, căn cứ vào nguyên lý đó ta có thể viết một chương trình điều khiển để robot
Trang 21
luôn đi trong vạch kẻ đen. Cảm biến siêu âm HC – SR04 được gắn ở đầu robot
có nhiệm vụ phát hiện vật cản phía trước, khi vật cản ở trong vùng phát hiện
của cảm biến, xe sẽ dừng lại đồng thời tiến hành các bước né tránh và tiếp tục
di chuyển theo vạch kẻ đen qua đó tránh va chạm trên đường di chuyển. Tốc độ
của động cơ được điều chỉnh thông qua thanh slider trên phần mềm. Các tiến
trình di chuyển được hiển thị tại thanh label trên phần mềm RemoteXY.
Chế độ Joystick: Robot được điều hướng bởi người dùng thông qua Joystick
trên phần mềm. Cảm biến siêu âm lúc này đóng vai trò là cảm biến dừng không
cho động cơ tiếp tục tiến tới khi phát hiện vật cản phía trước từ đó tránh va chạm
trên đường di chuyển.
Trang 22
CHƯƠNG 4: KẾT LUẬN VÀ ĐỀ NGHỊ
4.1. Kết luận
Đã hoàn thành thiết kế mô hình robot dò line tránh vật cản.
Đã hoàn thành thiết kế mạch điều khiển robot dò line tránh vật cản điều khiển từ xa.
Hoàn thành thiết kế giao diện điều khiển bằng điện thoại thông qua phần mềm
RemoteXY.
Hoàn thành chương trình điều khiển cho mạch điều khiển robot kết nối với
RemoteXY.
Robot có thể thực hiện được tất cả các chức năng được lập trình.
Ưu điểm:
Robot có thể hoạt động liện tục trong 3 giờ cho một lần sạc.
Nhỏ gọn, dễ di chuyển.
Linh kiện và kết cấu đơn giản.
Tốc độ tối đa của xe 2.54 km/h.
Có thể dùng để vận chuyển thay thế con người giữa các địa điểm với vạch kẻ
có sẵn.
Nhược điểm:
Robot có xác suất đi lệch vạch kẻ khi ở tốc độ cao khi chuyển hướng.
Tầm điều khiển của Bluetooth ngắn.
4.2. Đề nghị
Do thời gian phát triển có hạn nên robot chưa được tối ưu, còn nhiều thiếu sót và cần
phát triển thêm.
Hướng phát triển: Thay đổi kết nối điều khiển trở thành WiFi.
Trang 23
PHỤ LỤC
Chương trình điều khiển:
//////////////////////////////////////////////
//////////////////////////////////////////////
#define REMOTEXY_MODE__HARDSERIAL
#include <RemoteXY.h>
// RemoteXY configurate
#pragma pack(push, 1)
{ 255,4,0,13,0,53,0,16,16,1,2,1,21,5,22,11,148,26,31,31,
74,79,89,83,84,73,67,75,0,65,85,84,79,0,4,128,21,38,23,8,
149,26,5,47,18,56,30,30,163,26,31,67,5,17,23,29,7,2,26,13 };
Trang 24
// this structure defines all the variables and events of your control interface
struct {
// input variables
// output variables
// other variable
} RemoteXY;
#pragma pack(pop)
/////////////////////////////////////////////
/////////////////////////////////////////////
Trang 25
#define enA 2
#define in1 3
#define in2 4
#define in3 5
#define in4 6
#define enB 7
/*HC-SR04*/
#define echoPin 8
#define trigPin 9
/*RF sensors*/
#define cbtrai 10
#define cbgiua 11
#define cbphai 12
int gtcbtrai;
int gtcbphai;
int gtcbgiua;
long duration;
int distance;
Trang 26
/* defined two arrays with a list of pins for each motor */
{in3,in4,enB};
{in1,in2,enA};
/*
*/
if (v>100) v=100;
if (v<-100) v=-100;
if (v>0) {
digitalWrite(motor[0], HIGH);
digitalWrite(motor[1], LOW);
analogWrite(motor[2], v*2.55);
else if (v<0) {
digitalWrite(motor[0], LOW);
digitalWrite(motor[1], HIGH);
Trang 27
analogWrite(motor[2], (-v)*2.55);
else {
digitalWrite(motor[0], LOW);
digitalWrite(motor[1], LOW);
analogWrite(motor[2], 0);
void forward()
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
void stopp(){
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
Trang 28
}
void turnRight()
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
void turnLeft()
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
void back()
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
Trang 29
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
void setup()
/* initialization pins */
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(cbgiua,INPUT);
pinMode(cbtrai,INPUT);
pinMode(cbphai,INPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
RemoteXY_Init ();
Trang 30
void loop()
RemoteXY_Handler ();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
Serial.print("Distance: ");
Serial.println(distance);
if (RemoteXY.switch_1==1){
Trang 31
if (distance < 30 && RemoteXY.joystick_1_y > 0 ){
//stop
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
if (RemoteXY.switch_1==0){
gtcbtrai=digitalRead(cbtrai);
gtcbphai=digitalRead(cbphai);
gtcbgiua=digitalRead(cbgiua);
//====================================
Trang 32
if(gtcbtrai==LOW && gtcbgiua==LOW && gtcbphai==HIGH){turnRight();}
//==============
analogWrite(enB, 100);
stopp();
delay(300);
back();
delay(400);
stopp();
delay(300);
turnLeft();
delay(550);
stopp();
delay(300);
forward();
delay(400);
stopp();
Trang 33
delay(300);
turnRight();
delay(450);
stopp();
delay(300);
forward();
gtcbtrai=digitalRead(cbtrai);
gtcbphai=digitalRead(cbphai);
gtcbgiua=digitalRead(cbgiua);
Hết
Trang 34