Cách làm robot dò line đơn giản tại nhà - hướng dẫn lắp ráp từng bước

Hướng dẫn tự làm robot dò line hoàn chỉnh tại nhà với ESP32 - danh sách linh kiện 400k, các bước lắp ráp, đấu dây, code mẫu và cách làm sân line tập chạy. Trong bài viết này, chúng ta sẽ cùng tìm hiểu chi tiết và ứng dụng thực tế trong robot.
Làm được gì sau bài này?
Một chiếc xe robot 2 bánh tự bám theo vạch đen kẻ trên nền trắng — lắp hoàn toàn tại nhà, không cần mỏ hàn, tổng linh kiện khoảng 400.000 đồng. Bài viết là hướng dẫn lắp ráp từng bước (nguyên lý hoạt động đã có ở bài Robot dò line hoạt động như thế nào trong mục Kiến thức — nên đọc trước nếu muốn hiểu "vì sao", còn bài này tập trung "làm thế nào").
Thời gian thực tế: 1 buổi lắp + 1 buổi chỉnh. Trình độ: đã từng nạp code ESP32 một lần (chưa từng thì làm theo bài Cài Arduino IDE và ESP32 trước, mất 30 phút).
Bước 1 - Chuẩn bị linh kiện
| Món | Số lượng | Giá tham khảo | Ghi chú chọn mua |
|---|---|---|---|
| ESP32 DevKit 30 chân | 1 | 120.000 đ | Chip CP2102 dễ nạp hơn |
| Khung xe 2 bánh + 2 motor TT + bánh mắt trâu | 1 bộ | 90.000 đ | Bộ khung mica thông dụng |
| Driver L298N | 1 | 30.000 đ | Hoặc DRV8833 nếu muốn nhỏ gọn |
| Module dò line TCRT5000 | 3 | 30.000 đ | Loại 3 chân D0 là đủ |
| Hộp pin 18650 x2 có công tắc | 1 | 25.000 đ | |
| Pin 18650 có mạch bảo vệ | 2 | 90.000 đ | Kèm sạc rời nếu chưa có |
| Dây jumper đực-cái + đực-đực | 20 sợi | 15.000 đ | |
| Băng keo điện đen | 1 cuộn | 10.000 đ | Vừa làm vạch line vừa cố định |
Tổng: ~410.000 đ. Dụng cụ cần: tua vít nhỏ, kéo. Không cần hàn — mọi kết nối qua jumper và domino vặn vít của L298N.
Bước 2 - Lắp khung xe
- Bắt 2 motor TT vào khung bằng ốc dài kèm bộ khung (motor đặt đối xứng, trục quay hướng ra ngoài)
- Lắp bánh xe vào trục motor, bánh mắt trâu vào đuôi xe (xe kéo đằng trước, đẩy mắt trâu sau — hoặc ngược lại đều được, miễn nhất quán với code)
- Dán hộp pin lên mặt trên khung bằng băng dính 2 mặt; L298N bắt vít góc trước; ESP32 cắm lên breadboard mini hoặc dán băng 2 mặt
- 3 mắt dò line gắn mặt DƯỚI đầu xe, thẳng hàng ngang, cách nhau ~2 cm, cách mặt sàn 3-5 mm — độ cao này quyết định thành bại, đo bằng cách kê thử lên sàn
Bước 3 - Đấu dây
Đấu theo bảng, tuần tự từng nhóm, xong nhóm nào tick nhóm đó:
| Từ | Đến | Ghi chú |
|---|---|---|
| Motor trái 2 dây | L298N OUT1, OUT2 | Chưa cần đúng cực, sẽ chỉnh sau |
| Motor phải 2 dây | L298N OUT3, OUT4 | |
| Hộp pin (+) | L298N 12V | Qua công tắc hộp pin |
| Hộp pin (-) | L298N GND | |
| L298N 5V | ESP32 VIN | Ổn áp trên L298N nuôi luôn ESP32 |
| L298N GND | ESP32 GND | Chung mass bắt buộc |
| L298N IN1, IN2 | GPIO 26, 27 | Chiều motor trái |
| L298N IN3, IN4 | GPIO 14, 12 | Chiều motor phải |
| L298N ENA, ENB | GPIO 25, 13 | Rút jumper ENA/ENB có sẵn trên module |
| 3 mắt line VCC | ESP32 3V3 | Nuôi 3.3V để tín hiệu an toàn |
| 3 mắt line GND | ESP32 GND | |
| Mắt trái/giữa/phải D0 | GPIO 34 / 35 / 32 |
Hai lỗi đấu dây kinh điển: quên rút jumper ENA/ENB (motor chạy full tốc không điều khiển được) và quên dây GND chung giữa L298N với ESP32 (lệnh phát mà motor trơ trơ).
Bước 4 - Nạp code
Dùng code 3 mắt kiểu bậc thang trong bài Cảm biến dò line TCRT5000 ở mục Kiến thức (copy nguyên khối, số chân đã khớp bảng đấu dây trên). Với người dùng phòng lab HocLapTrinhRobot: mở workspace, kéo khối dò line mẫu, nạp qua trình duyệt — không cần cài gì.
Bước 5 - Làm sân line tập chạy
- Nền: sàn gạch trắng/sáng màu, hoặc 2-3 tấm formex trắng A0 ghép lại (60.000 đ, bền, mang đi được)
- Vạch: băng keo điện đen dán thành vòng khép kín, bề rộng 1 lớp keo (~1.8 cm)
- Layout tập luyện chuẩn: 1 vòng oval trơn → thêm 2 khúc cua vuông → thêm 1 đoạn chữ S. Tránh cua gắt hơn 90 độ ở giai đoạn đầu
- Mẹo: góc cua dán bo tròn bằng nhiều đoạn keo ngắn thay vì gấp vuông — robot 3 mắt xử lý mượt hơn nhiều
Bước 6 - Chạy thử và hiệu chỉnh (buổi thứ hai)
Trình tự kiểm tra khi robot không chạy đúng — theo đúng thứ tự này:
- Test motor trước, chưa cần line: nạp đoạn code cho cả 2 bánh tiến 2 giây. Bánh nào quay lùi → đảo 2 dây motor đó tại domino. Xe vẽ đường cong → bình thường, PID/bậc thang sẽ bù
- Test mắt line bằng đèn báo: bật nguồn, đưa từng mắt qua vạch đen — đèn tín hiệu trên module phải đổi trạng thái rõ ràng. Không đổi → vặn biến trở trên module (đặt mắt trên nền trắng đúng độ cao, vặn đến khi đèn vừa chuyển, kiểm tra lại trên vạch)
- Test logic bằng tay: nhấc xe lên, che mắt giữa bằng ngón tay — bánh phải cùng chạy? Đọc Serial Monitor xem 3 giá trị có đúng không (một số module logic đảo — sửa phép so sánh trong code)
- Thả xe lên sân: bắt đầu tốc độ thấp (BASE 120-140). Xe lắc nhẹ trên thẳng là bình thường với thuật toán bậc thang; văng ở cua → giảm tốc hoặc nới cua tròn hơn
Nâng cấp khi đã chạy ổn
- Tốc độ: nâng dần BASE, mỗi nấc chạy 5 vòng liên tục không lỗi mới lên tiếp
- 5 mắt + PID: thay 3 module rời bằng mảng 5 mắt (~60.000 đ), chuyển sang điều khiển PID theo bài Tinh chỉnh PID cho robot dò line — trần tốc độ tăng gấp đôi
- Nút bấm chọn chế độ: 1 nút = 3 mức tốc độ, khỏi nạp lại code khi đổi sân
- Thi đấu: sân chuẩn các giải học sinh thường vạch đen 1.5-3 cm trên bạt trắng — xem bài Cuộc thi robot cho học sinh Việt Nam để chọn giải đầu tiên
Câu hỏi thường gặp
Không có ESP32, dùng Arduino Uno được không?
Được — đổi chân: mắt line vào A0-A2 (đọc digitalRead vẫn ổn), ENA/ENB vào chân PWM 5, 6, IN1-4 vào 7, 8, 9, 10, và thay ledcWrite bằng analogWrite. Phần khung, đấu driver, sân line giữ nguyên 100%.
Robot chạy được 5 phút thì yếu dần rồi đứng?
Pin tụt áp — đặc biệt nếu dùng pin trôi nổi hoặc pin cũ. L298N ăn mất ~2V nên pin 7.4V tụt xuống ~6.5V là motor đã yếu rõ. Giải pháp: pin xịn có mạch bảo vệ, hoặc nâng cấp driver DRV8833 (không sụt áp) — xem bài Nguồn pin robot.
Vì sao ban ngày chạy tốt, tối bật đèn tuýp lại loạn?
Một số đèn huỳnh quang/LED giá rẻ nhấp nháy tần số cao chứa hồng ngoại gây nhiễu mắt dò line. Chỉnh lại biến trở dưới ánh sáng thực tế nơi chạy, hoặc dán vành che quanh cụm mắt line (bìa đen cao 1 cm là đủ).
Chi phí có giảm được nữa không?
Được, xuống ~300.000 đ: bỏ 1 mắt line (chạy 2 mắt kẹp vạch — chậm hơn nhưng chạy được), pin AA x4 thay 18650 (yếu hơn, đổi khi nghiêm túc), tận dụng khung bìa formex tự cắt thay khung mica. Không nên giảm: driver và dây jumper chất lượng — hai thứ rẻ mà gây lỗi khó tìm nhất khi mua loại tệ.
Tài nguyên tải về
Tải bản PDF của bài viết để in giáo án hoặc gửi trước cho học viên.



