(Trang 42)
Sau khi học xong bài này, em sẽ:
- Triển khai nghiên cứu một dự án thuộc lĩnh vực robot và máy thông minh.
- Báo cáo được kết quả triển khai của dự án nghiên cứu.
I - TRIỂN KHAI DỰ ÁN
Thực hiện các hoạt động nghiên cứu đã đề ra trong kế hoạch thực hiện ở Bảng 8.2 của Bài 8. Trong quá trình thực hiện ghi lại các dữ liệu, báo cáo kết quả thường xuyên. Trưởng nhóm giám sát nội dung và tiến độ thực hiện công việc đã giao của các thành viên trong nhóm, kịp thời phát hiện và xử lí các sự cố, giảm thiểu rủi ro, đảm bảo hoàn thành các mục tiêu khi kết thúc dự án.
Khi dự án kết thúc giải phóng nguồn lực, thống kê tài chính, bàn giao sản phẩm, đánh giá kết quả thực hiện dự án, rút ra bài học kinh nghiệm.
II - BÁO CÁO KẾT QUẢ
1. Viết báo cáo triển khai dự án
Phần 1: Thông tin chung
- Tên dự án: Dự án nghiên cứu thiết kế và chế tạo robot tự hành.
- Danh sách thành viên tham gia.
- Thời gian thực hiện.
- Kinh phí thực hiện.
Phần 2: Tổng quan kết quả nghiên cứu
a) Mục tiêu và bối cảnh
- Tổng quan về ứng dụng của robot tự hành.
- Mục tiêu thiết kế và chế tạo một robot tự hành sử dụng cảm biến phát hiện vật và di chuyển sang trái để tránh và chạm. Robot hoạt động trong trên sàn nhà phẳng, không trơn.
b) Báo cáo kết quả triển khai
- Phương pháp và phạm vi nghiên cứu: nghiên cứu lí thuyết, đề xuất giải pháp, thiết kế và chế tạo thử nghiệm robot.
- Kết quả nghiên cứu: Kết quả thử nghiệm hoạt động của robot, đánh giá kết quả.
c) Kết luận
- Sản phẩm robot có đáp ứng được các yêu cầu đề ra hay không, thời gian và kinh phí thực hiện có theo đúng kế hoạch.
- Những hạn chế còn tồn tại và hướng phát triển tiếp theo để cải thiện tính năng robot.
(Trang 43)
d) Phụ Lục
- Bản thiết kế phần đế robot.
- Sơ đồ thiết kế mạch điện điều khiển (vi điều khiển với các cảm biến, động cơ).
- Chương trình thu thập dữ liệu và điều khiển robot.
- Kế hoạch triển khai.
- Danh mục tài liệu tham khảo.
2. Báo cáo kết quả dự án
a) Trưng bày poster
Một ví dụ về poster trình bày dự án nghiên cứu thiết kế và chế tạo robot tự hành như Hình 9.1.
Hình 9.1. Một ví dụ về cách trình bày poster cho dự án
Thiết kế và chế tạo robot tự hành
Nguyễn Văn A, Nguyễn Văn B, Trần Thị C
GIỚI THIỆU
Tổng quan: robot tự hành có khả năng tự di chuyển an toàn, không va chạm với vật hoặc người. Robot tự hành được ứng dụng nhiều, làm robot vận chuyển, robot hút bụi, robot y tá...
Mục tiêu nghiên cứu: thiết kế và chế tạo một robot tự hành sử dụng cảm biến phát hiện vật và di chuyển sang trái để tránh và chạm. Robot hoạt động trên sàn nhà phẳng, không trơn.
Phương pháp và phạm vi nghiên cứu: nghiên cứu lí thuyết, đề xuất giải pháp, thiết kế và chế tạo thử nghiệm robot.
KẾT QUẢ
Hình ảnh lắp đặt robot
Sơ đồ kết nối các linh kiện
KẾT LUẬN
Kết quả đạt được: thiết kế và chế tạo thành công robot tự hành có khả năng phát hiện vật cản, di chuyển sang trái để tránh vật.
Hướng phát triển: tăng mức độ linh hoạt và thông minh của robot (lắp thêm các cảm biến, áp dụng vi xử lí phức tạp để xử lí dữ liệu và điều khiển robot).
b) Thuyết trình
- Chuẩn bị slide thuyết trình.
- Thực hiện thuyết trình.
- Biểu diễn robot.
(Trang 44)
III - NHỮNG KIẾN THỨC CÓ LIÊN QUAN
1. Phương pháp điều khiển chuyển động robot tự hành hai bánh
Chuyển động của robot tự hành hai bánh phụ thuộc vào tốc độ quay bánh trái (ωL) và bánh phải (ωR) gắn trên động cơ. Ví dụ một số chuyển động cơ bản của robot tự hành hai bánh như trong Hình 9.2:
Chuyển động thẳng: ωL = ωR
Chuyển động quay phải: ωL > ωR
Chuyển động quay trái: ωL < ωR
Hình 9.2. Một số chuyển động của robot hai bánh
a) ωL = ωR
b) ωL > ωR
c) ωL < ωR
2. Sơ đồ khối của robot tự hành
Sơ đồ khối của robot tự hành hai bánh như Hình 9.3. Cảm biến siêu âm dò khoảng cách từ vật tới robot, khi có vật điều khiển thu thập, xử lí dữ liệu từ cảm biến và đưa tín hiệu tới mạch điều khiển động cơ để điều khiển các động cơ DC thực hiện chuyển động của robot.
Hình 9.3. Sơ đồ khối của robot tự hành
Nguồn
Cảm biến siêu âm
Vi điều khiển
Mạch điều khiển động cơ DC
Động cơ DC trái
Động cơ DC phải
(Trang 45)
Lựa chọn các linh kiện để thực hiện các khóa của Hình 9.3 như trong Bảng 9.1.
Bảng 9.1. Danh mục linh kiện
STT | Linh kiện | Số lượng | Chức năng |
1 | Bo mạch điều khiển động cơ L298N | 01 | Điều khiển động cơ DC. |
2 | Bo mạch vi điều khiển Arduino Uno | 01 | Khối điều khiển trung tâm |
3 | Cảm biến siêu âm HC-SR 04 | 01 | Phát hiện vật |
4 | Động cơ DC gắn bánh xe | 02 | Tạo nên chuyển động của robot |
5 | Pin 9 V và đế | 01 | Cấp nguồn cho bo mạch L298N và Arduino |
6 | Dây nối 4P hai đầu đực - cái | 11 | Kết nối các chân linh kiện |
7 | Đế robot | 01 | Gắn linh kiện của robot |
8 | Bánh cân bằng | 01 | Cân bằng robot |
9 | Công tắc | 01 | Công tắc bật/tắt nguồn |
3. Thiết kế và chế tạo phần cứng robot
a) Thiết kế và chế tạo đế robot
Bản thiết kế đế robot với vị trí và kích thước các linh kiện như Hình 9.4. Sử dụng máy in 3D hoặc máy phay, máy khoan để gia công chế tạo đế robot bằng nhựa hoặc mica.
Hình 9.4. Bản thiết kế đế robot
GÁ ĐỘNG CƠ A
L298N
GÁ SC-HR04+GÁ BÁNH CÂN BẰNG
ARDUINO
CÔNG TẮC NGUỒN
LÕ ĐI DÂY NGUỒN
GÁ ĐỘNG CƠ B
PIN
(Trang 46)
b) Lắp ráp mạch điện và kiểm tra hoạt động
Bước 1: Lắp 2 động cơ DC gắn bánh ở mặt dưới đế như Hình 9.5.
Bước 2: Lắp các linh kiện lên mặt trên đế như Hình 9.5:
- Lắp bo mạch Arduino Uno.
- Lắp bo mạch L298N.
- Lắp cảm biến HC-SR04 ở phía đầu robot.
- Lắp đế pin 9 V.
- Lắp bánh xe cân bằng.
- Lắp công tắc nguồn.
Bước 3: Kết nối các linh kiện theo Hình 9.6 và Bảng 9.2. Chú ý không kết nối nhầm nguồn trong quá trình lắp ráp, chỉ bật nguồn sau khi đảm bảo mạch đã được hoàn thiện theo đúng thiết kế.
Bước 4: Dùng cáp nối cổng USB của máy tính đã được cài đặt Arduino IDE và bo mạch Arduino Uno.
Bước 5: Mở phần mềm Arduino IDE, soạn thảo tệp tin sketch cho vi điều khiển (có thể tham khảo chương trình mẫu ở Hình 9.8).
Bước 6: Biên dịch và nạp chương trình như Hình 9.9.
Bước 7: Kiểm tra hoạt động của robot.
Hình 9.5. Hình vẽ lắp đặt các linh kiện lên đế
Arduino
Gá động cơ A
L298N
Công tắc nguồn
Gá SC-HR04 Và Gá bánh cân bằng
Đế Pin
Gá động cơ B
(Trang 47)
Bảng 9.2. Kết nối các linh kiện
STT | Cổng tắc nguồn | Pin 9 V | Arduino Uno | L298N | SC-HR04 | Động cơ DC |
1 | Chân 1 | + | ||||
2 | Chân 2 | 12 V | ||||
3 | 5 V | 5 V | Vcc | |||
4 | - | GND | GND | GND | ||
5 | 2 | Trig | ||||
6 | 3 | Echo | ||||
7 | OUT1 | Đầu 1 của động cơ A (bánh trái) | ||||
8 | OUT2 | Đầu 2 của động cơ A | ||||
9 | OUT3 | Đầu 1 của động cơ B (bánh phải) | ||||
10 | OUT4 | Đầu 2 của động cơ B | ||||
11 | 6 | ENB | ||||
12 | 7 | IN4 | ||||
13 | 8 | IN3 | ||||
14 | 9 | IN2 | ||||
15 | 10 | IN1 | ||||
16 | 11 | ENA |
Hình 9.6. Sơ đồ kết nối phần cứng robot
(Trang 48)
Hình 9.7. Lưu đồ thuật toán
Bắt đầu
Đo khoảng cách cảm biến tới vật
Khoảng cách < 30 cm
Đúng
Điều khiển robot đi thẳng
Sai
Điều khiển robot quay trái
aceline ENA 11 // Định nghĩa các chân động cơ A (bên trái)
aceline IN1 10
aceline IN2 9
aceline ENB 6 // Định nghĩa các chân động cơ B (bên phải)
aceline IN4 7
aceline IN3 8
int trig = 2; // Định nghĩa chân Trig và Echo của SC-HR04
int echo = 3;
unsigned long cora; // Biến đo thời gian
int khoangcach; // Biến lưu khoảng cách
void setup()
{
pinMode(ENA, OUTPUT); // Thiết lập chế độ động cơ A
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT); // Thiết lập chế độ động cơ B
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(trig, OUTPUT); // Chân Trig phát tín hiệu
pinMode(echo, INPUT); // Chân Echo nhận tín hiệu
}
void loop()
Hình 9.8. Chương trình điều khiển robot tự hành
{
/1. Đo khoảng cách từ cảm biến tới vật
digitalWrite(trig,0); // Tắt chân Trig
delayMicroseconds(2); // Tạo xung có độ dài 2 micro giây
digitalWrite(trig,1); // Phát xung từ chân Trig
delayMicroseconds(5); // Tạo xung có độ dài 5 micro giây
digitalWrite(trig,0); // Tắt chân Trig
doraongxung = pulseIn(echo,HIGH); // Đo độ rộng xung HIGH ở chân Echo.
khoangcach = int(doraongxung/2/29.412); // Tính khoảng cách đến vật
/2. Điều khiển tránh va chạm
if (khoangcach>30) // Kiểm tra khoảng cách tới vật
dihang();
else
quaytrai();
}
void quaytrai()
{
void quaytrai()
{
analogWrite(ENA, 70); // Đặt tốc độ quay động cơ A (0 - 255)
analogWrite(ENB, 150); // Đặt tốc độ quay động cơ B (0 - 255)
digitalWrite(IN1, HIGH); // Điều khiển động cơ A
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); // Điều khiển động cơ B
digitalWrite(IN4, LOW);
}
void dihang()
{
analogWrite(ENA, 100); // Đặt tốc độ quay động cơ A (0 - 255)
analogWrite(ENB, 100); // Đặt tốc độ quay động cơ B (0 - 255)
digitalWrite(IN1, HIGH); // Điều khiển động cơ A
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); // Điều khiển động cơ B
digitalWrite(IN4, LOW);
}
Hình 9.9. Chương trình biên dịch trông môi trường IDE