You are on page 1of 35

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP. HỒ CHÍ


MINH
KHOA CƠ KHÍ – CÔNG NGHỆ

BÁO CÁO ĐỒ ÁN MÔN HỌC


Học Phần: Động Lực Học – Điều Khiển Robot

ĐỀ TÀI: ROBOT DÒ LINE TRÁNH VẬT


CẢN ĐIỀU KHIỂN TỪ XA
GIÁO VIÊN HƯỚNG DẪN: Th.s NGUYỄN TẤN PHÚC
NHÓM SINH VIÊN THỰC HIỆN:

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

12/2022 Tp. Hồ Chí Minh


LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn đến thầy Nguyễn Tấn Phúc đã tạo điều kiện, hỗ trợ kiến
thức, thời gian, cũng như chỉ bảo, hướng dẫn nhóm em để có thể thực hiện và hoàn
thành đồ án này. Những góp ý sâu sắc và tận tình của thầy đã giúp cho đồ án của nhóm
chúng em được hoàn thiện, chỉn chu hơn rất nhiều.

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.

Chúng em xin chân thành cảm ơ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.

Hình 1. Arduino Mega 2560


Thông số kỹ thuật:

 Vi điều khiển chính: ATmega2560


 IC nạp và giao tiếp UART: ATmega16U2.
 Nguồn nuôi mạch: 5VDC từ cổng USB hoặc nguồn ngoài cắm từ giắc tròn DC
 Số chân Digital I/O: 54 (trong đó 15 chân có khả năng xuất xung PWM)

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

Hình 2. Sơ đồ chân kết nối Arduino Mega 2560


2.1.2. Mạch điều khiển động cơ DC - L298N Driver
Mạch điều khiển động cơ DC L298 cso khả năng điều khiển 2 đông cơ DC cùng
một lúc, dòng tối đa 2A mỗi động cơ , mạch có tích hợp diode bảo vệ và IC nguồn
7805 giúp cấp nguồn 5V DC cho các module khác (chỉ sử dụng khi nguồn cấp nhỏ
hơn 12V DC). Có thể dảo chiều quay của động cơ.

Trang 6
Hình 3. Mạch điều khiển động cơ DC - L298 Driver
Thông số kỹ thuật:

 IC chính: L298 - Dual Full Bridge Driver


 Điện áp đầu vào: 5~30VDC
 Công suất tối đa: 25W 1 cầu (lưu ý công suất = dòng điện x điện áp nên áp cấp
vào càng cao, dòng càng nhỏ, công suất có định 25W).
 Dòng tối đa cho mỗi cầu H là: 2A
 Mức điện áp logic: Low -0.3V~1.5V, High: 2.3V~Vss
 Kích thước: 43x43x27mm

Hình 4. Sơ đồ mạch điều khiển động sơ DC L298

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.

 Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác (1 module


bluetooth HC-06, usb bluetooth, bluetooth của laptop…) và tiến hành pair chủ
động mà không cần thiết lập gì từ máy tính hoặc smartphone.

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,…

Hình 5. Module thu phát Bluetooth HC-05

Trang 8
Thông số kĩ thuật:

 Điện áp hoạt động: 3.3 ~ 5VDC


 Mức điện áp chân giao tiếp: TTL tương thích 3.3VDC và 5VDC.
 Dòng điện khi hoạt động: khi Pairing 30 mA, sau khi pairing hoạt động truyền
nhận bình thường 8 mA.
 Baudrate UART có thể chọn được: 1200, 2400, 4800, 9600, 19200, 38400,
57600, 115200
 Support profiles: Bluetooth serial port (master and slave)
 Bluetooth protocol: Bluetooth specification v2.0 + EDR
 Frequency: 2.4 GHz ISM band
 Modulation: GFSK (Gaussian frequency shift keying)
 Transmit power: =4 dBm, class 2
 Sensitivity: =-84 dBm at 0.1% BER
 Rate: Asynchronous: 2.1 Mbps (max.)/160 kbps
 Synchronous: 1 Mbps/1 Mbps
 Security features: authentication and encryption
 Kích thước: 15.2 x 35.7 x 5.6mm
Thiết lập mặc định:
 Thiết lập UART mặc định: Baudrate 9600, N, 8, 1.
 Pairing code mặc định: 1234 hoặc 0000.
 Để vào chế độ AT COMMAND, bấm và giữ nút trước khi cấp nguồn, LED sẽ
nháy 2s. baud rate cho chế đọ AT COMMAND là 38400. Chân Tx nối với chân
Rx. Lưu ý các lệnh AT đều là chữa in hoa.
 Cấp nguồn và không nhấn nút sẽ chạy bình thường. LED sẽ nháy nhanh
 Chân EN chỉ nhận mức logic TTL 3V3. Không có chức năng chọn vào chế độ
AT COMMAND.

Trang 9
2.1.4. Cảm biến vật cản hồng ngoại (IR Infrared Obstacle Avoidance Sensor
Module)

Hình 6. Cảm biến vật cản hồng ngoại


Cảm biến vật cản hồng ngoại có khả năng thích nghi với môi trường, có một cặp
truyền và nhận tia hồng ngoại. Tia hồng ngoại phát ra một tần số nhất định, khi phát
hiện hướng truyền có vật cản (mặt phản xạ), phản xạ vào đèn thu hồng ngoại, sau
khi so sánh, đèn màu xanh sẽ sáng lên, đồng thời đầu cho tín hiệu số đầu ra (một tín
hiệu bậc thấp).

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:

 Bộ so sánh sử dụng LM393, làm việc ổn định


 Điện áp làm việc: 3.3V – 5V DC.
 Khi bật nguồn, đèn báo nguồn màu đỏ sáng.
 Lỗ vít 3 mm, dễ dàng cố định, lắp đặt.
 Kích thước: 3.2cm * 1.4cm
 Các mô-đun đã được so sánh điện áp ngưỡng thông qua chiết áp, nếu sử dụng ở
chế độ thông thường, xin vui lòng không tự ý điều chỉnh chiết áp.

Hình 7. Sơ đồ mạch cảm biến vật cản hồng ngoại


2.1.5. Cảm biến siêu âm HC-SR04
Cảm biến siêu âm HC-SR04 (Ultrasonic Sensor) được sử dụng rất phổ biến để xác
định khoảng cách vì RẺ và CHÍNH XÁC. Cảm biến HC-SR04 sử dụng sóng siêu
âm và có thể đo khoảng cách trong khoảng từ 2 -> 300cm, với độ chính xác gần như
chỉ phụ thuộc vào cách lập trình.

Cảm biến HC-SR04 có 4 chân là: Vcc, Trig, Echo, GND.

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.

Khoảng cách = (thời gian * vận tốc âm thanh (340 m/s) / 2

Hình 8. Cảm biến siêu âm HC-SR04


Thông số kĩ thuật:

 Điện áp hoạt động: 5VDC


 Dòng tiêu thụ: 10~40mA
 Tín hiệu giao tiếp: TTL
 Chân tín hiệu: Echo, Trigger.
 Góc quét:<15 độ
 Tần số phát sóng: 40Khz
 Khoảng cách đo được: 2~450cm (khoảng cách xa nhất đạt được ở điều khiện lý
tưởng với không gian trống và bề mặt vật thể bằng phẳng, trong điều kiện bình
thường cảm biến cho kết quả chính xác nhất ở khoảng cách <100cm).
 Sai số: 3mm (khoảng cách càng gần, bề mặt vật thể càng phẳng sai số càng nhỏ).
 Kích thước: 43mm x 20mm x 17mm

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:

 125 vòng/ 1 phút tại 3VDC.


 208 vòng/ 1 phút tại 5VDC.

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

2.1.6. Các linh kiện khác


 Khung xe robot
 Nguồn ngoài
 Dây điện
 Breadboard

2.2. Phần mềm điều khiển RemoteXY


RemoteXY là một gói miễn phí cho phép người dùng không phải là lập trình viên tạo
giao diện người dùng điều khiển trên điện thoại cho các dự án Arduino thông qua thư
viện <RemoteXY.h>. RemoteXY tương thích với nhiều bo mạch Arduino và phương
thức giao tiếp khác nhau như Wi-Fi, Bluetooth và Ethernet, đồng thời bao gồm hai
thành phần chính:

 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.

Hình 11. Giao diện thiết kế RemoteXY.


RemoteXY dễ dàng sử dụng với mã nguồn Arduino được tạo tự động dựa trên giao
diện người dùng được thiết kế, có thể hoạt động độc lập mà không cần kết nối với
internet.

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

Hình 12. Mô hình robot dò line tránh vật cản


Mô tả robot dò line tránh vật cản điều khiển từ xa: Robot dò line tránh vật cản có
hai chế độ hoạt động:

 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.

3.2. Mạch điều khiển robot dò line tránh vật cản

Hình 13. Sơ đồ mạch điều khiển


Mô tả sơ đồ mạch điều khiển: Khi đóng công tắc nguồn sẽ cung cấp nguồn cho
driver L298N tại chân 12V, lấy nguồn từ chân 5V của L298 để cấp cho Arduino Mega
2560 từ đó Arduino Mega 2650 sẽ cấp nguồn đến các module, cảm biến khác. Khi
module Bluetooth HC – 05 được cấp nguồn sẽ phát ra sóng Bluetooth, kết nối
Bluetooth với điện thoại thông qua phần mềm RemoteXY để tiến hành điều khiển,
chuyển đổi các chế độ làm việc của robot.

Trang 17
Sơ đồ đấu nối chân Arduino Mega 2560:

Arduino Mega Cảm biến hồng


L298N HC - 05 HC – SR04
2560 ngoại
5V Vcc Vcc Vcc
GND GND GND GND GND
Vin 5V
0 TX
1 RX
2 enA
3 In1
4 In2
5 In3
6 In4
7 enB
8 Echo
9 Trig
10 OUT (RF trái)
11 OUT (RF giữa)
12 OUT (RF phải)

Hình 14. 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 15. Giao diện khởi tạo RemoteXY


 Bước 2: Tùy chỉnh các đặc tính của mạch điều khiển

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

Hình 17. Thiết kế giao diện điều khiển


 Bước 4: Lấy chương trình nguồn và tiến hành lập trình các chức năng

Hình 18. Lấy chương trình nguồn


3.3.2. Giao diện điều khiển và giám sát
Sử dụng phần mềm RemoteXY trên điện thoại. Bằng cách kết nối với mạch điều
khiển thông qua sóng Bluetooth HC – 05, giao diện điều khiển sẽ được tải lên điện
thoại thông qua mã nguồn được nạp vào Arduino Mega 2560, từ đó tiến hành điều
khiển, giám sát robot từ xa.

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.

 Tích hợp camera gửi dữ liệu hình ảnh về phần mềm.


 Tích hợp cảm biến hồng ngoại tầm xa, phát hiện những thay đổi vị trí trong môi
trường (Robot tuần tra).

Trang 23
PHỤ LỤC
Chương trình điều khiển:
//////////////////////////////////////////////

// RemoteXY include library //

//////////////////////////////////////////////

// RemoteXY select connection mode and include library

#define REMOTEXY_MODE__HARDSERIAL

#include <RemoteXY.h>

// RemoteXY connection settings

#define REMOTEXY_SERIAL Serial

#define REMOTEXY_SERIAL_SPEED 9600

// RemoteXY configurate

#pragma pack(push, 1)

uint8_t RemoteXY_CONF[] = // 60 bytes

{ 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

uint8_t switch_1; // =1 if switch ON and =0 if OFF

int8_t slider_1; // =0..100 slider position

int8_t joystick_1_x; // from -100 to 100

int8_t joystick_1_y; // from -100 to 100

// output variables

char text_1[13]; // string UTF8 end zero

// other variable

uint8_t connect_flag; // =1 if wire connected, else =0

} RemoteXY;

#pragma pack(pop)

/////////////////////////////////////////////

// END RemoteXY include //

/////////////////////////////////////////////

/* defined the left motor control pins */

Trang 25
#define enA 2

#define in1 3

#define in2 4

/* defined the right motor control pins */

#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;

int stop_distance = 12;

long duration;

int distance;

Trang 26
/* defined two arrays with a list of pins for each motor */

unsigned char RightMotor[3] =

{in3,in4,enB};

unsigned char LeftMotor[3] =

{in1,in2,enA};

/*

speed control of the motor

motor - pointer to an array of pins

v - motor speed can be set from -100 to 100

*/

void Wheel (unsigned char * motor, int v)

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);

strcpy (RemoteXY.text_1, "Forward");

void stopp(){

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

strcpy (RemoteXY.text_1, "Stop");

Trang 28
}

void turnRight()

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

strcpy (RemoteXY.text_1, "Turn Right");

void turnLeft()

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

strcpy (RemoteXY.text_1, "Turn Left");

void back()

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

Trang 29
digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

strcpy (RemoteXY.text_1, "Back");

void setup()

/* initialization pins */

pinMode (in1, OUTPUT);

pinMode (in2, OUTPUT);

pinMode (in3, OUTPUT);

pinMode (in4, OUTPUT);

pinMode(enA, OUTPUT);

pinMode(enB, OUTPUT);

pinMode(cbgiua,INPUT);

pinMode(cbtrai,INPUT);

pinMode(cbphai,INPUT);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

/* initialization module RemoteXY */

RemoteXY_Init ();

Trang 30
void loop()

/* event handler module RemoteXY */

RemoteXY_Handler ();

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = duration * 0.034 / 2;

Serial.print("Distance: ");

Serial.println(distance);

if (RemoteXY.switch_1==1){

/* manage the right motor */

Wheel (RightMotor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x);

/* manage the left motor */

Wheel (LeftMotor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x);

strcpy (RemoteXY.text_1, "");

Trang 31
if (distance < 30 && RemoteXY.joystick_1_y > 0 ){

//stop

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

strcpy (RemoteXY.text_1, "Blocked");

if (RemoteXY.switch_1==0){

gtcbtrai=digitalRead(cbtrai);

gtcbphai=digitalRead(cbphai);

gtcbgiua=digitalRead(cbgiua);

analogWrite(enA, RemoteXY.slider_1 * 2.55);

analogWrite(enB, RemoteXY.slider_1 * 2.55);

//====================================

if(gtcbtrai==LOW && gtcbgiua==HIGH && gtcbphai==LOW) {forward();}

if(gtcbtrai==HIGH && gtcbgiua==HIGH && gtcbphai==LOW){turnLeft();}

if(gtcbtrai==HIGH && gtcbgiua==LOW && gtcbphai==LOW){turnLeft();}

if(gtcbtrai==LOW && gtcbgiua==HIGH && gtcbphai==HIGH){turnRight();}

Trang 32
if(gtcbtrai==LOW && gtcbgiua==LOW && gtcbphai==HIGH){turnRight();}

if(gtcbtrai==HIGH && gtcbgiua==HIGH && gtcbphai==HIGH){stopp();}

//==============

if (distance < stop_distance){

strcpy (RemoteXY.text_1, "Blocked");

analogWrite(enA, 100); //MAX=255 (too fast)

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();

while ( gtcbgiua == LOW) {

gtcbtrai=digitalRead(cbtrai);

gtcbphai=digitalRead(cbphai);

gtcbgiua=digitalRead(cbgiua);

Hết

Trang 34

You might also like