ESP32 Xe Robot
Một trong những dự án thú vị nhất khi bạn mới bắt đầu với ESP32 là làm xe robot. Trong hướng dẫn này, chúng ta sẽ học cách sử dụng ESP32 để tạo xe robot và điều khiển nó bằng remote hồng ngoại. Để điều khiển xe robot qua Web (Wifi), hãy xem hướng dẫn ESP32 - Điều Khiển Xe Hơi qua Web.

Linh Kiện Cần Thiết
| 1 | × | mô-đun phát triển ESP-WROOM-32 | ||
| 1 | × | Alternatively, ESP32 Uno-form board | ||
| 1 | × | Alternatively, ESP32 S3 Uno-form board | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | Xe RC 2WD | ||
| 1 | × | Module L298N Motor Driver | ||
| 1 | × | Bộ Remote Hồng Ngoại | ||
| 1 | × | Pin CR2025 (cho remote hồng ngoại) | ||
| 1 | × | Pin AA 1.5V (cho ESP32 và xe) | ||
| 1 | × | Dây Jumper | ||
| 1 | × | breadboard | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP32 | ||
| 1 | × | (Khuyến nghị) Breakout Expansion Board for ESP32 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP32 |
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về Xe Robot
Trong bối cảnh ESP32, xe robot thường được gọi bằng nhiều tên khác nhau như xe robot, xe RC, xe điều khiển từ xa, xe thông minh, hoặc xe DIY. Nó có thể được điều khiển từ xa mà không cần dây. Bạn có thể sử dụng remote đặc biệt sử dụng ánh sáng hồng ngoại hoặc ứng dụng smartphone qua Bluetooth hoặc WiFi. Xe robot có thể rẽ trái hoặc phải và cũng có thể tiến lên hoặc lùi lại.
Xe 2WD (Dẫn động hai bánh) cho ESP32 là một phương tiện robot nhỏ mà bạn có thể tự chế tạo và điều khiển bằng board ESP32. Nó thường bao gồm các thành phần sau:
- Khung xe: Phần cơ sở hoặc khung của xe, nơi gắn tất cả các thành phần khác.
- Bánh xe: Hai bánh xe cung cấp chuyển động cho xe. Chúng được gắn với hai động cơ DC.
- Động cơ: Hai động cơ DC được sử dụng để điều khiển hai bánh xe.
- Driver Động cơ: Board driver động cơ là thành phần thiết yếu kết nối giữa ESP32 và động cơ. Nó nhận tín hiệu từ ESP32 và cung cấp nguồn điện và điều khiển cần thiết cho động cơ.
- Board ESP32: Bộ não của xe. Nó đọc đầu vào từ cảm biến và lệnh người dùng, điều khiển động cơ tương ứng.
- Nguồn điện: Xe 2WD cần nguồn điện, thường là pin và hộp pin, để cấp điện cho động cơ và board ESP32.
- Bộ thu không dây: module hồng ngoại, Bluetooth hoặc WiFi cho giao tiếp không dây với remote hoặc smartphone.
- Thành phần tùy chọn: Tùy thuộc vào độ phức tạp của dự án, bạn có thể thêm các thành phần tùy chọn như cảm biến (ví dụ: cảm biến siêu âm để tránh vật cản, cảm biến theo đường line), và nhiều hơn nữa.
Trong hướng dẫn này, để đơn giản hóa, chúng ta sẽ sử dụng:
- Bộ kit xe 2WD (bao gồm khung xe, bánh xe, động cơ, hộp pin)
- L298N Motor Driver
- Bộ kit hồng ngoại (bao gồm remote hồng ngoại và bộ thu hồng ngoại)
Kiểm tra danh sách linh kiện ở đầu trang này.
Cách Hoạt Động

- ESP32 kết nối với động cơ DC của xe robot thông qua module driver motor L298N.
- ESP32 kết nối với bộ thu hồng ngoại.
- Pin cấp nguồn cho ESP32, động cơ DC, driver motor, và bộ thu hồng ngoại.
- Người dùng nhấn các phím UP/DOWN/LEFT/RIGHT/OK trên remote hồng ngoại.
- ESP32 nhận lệnh UP/DOWN/LEFT/RIGHT/OK thông qua bộ thu hồng ngoại.
- ESP32 điều khiển xe di chuyển TIẾN/LÙI/TRÁI/PHẢI/DỪNG bằng cách điều khiển động cơ DC qua driver motor.
Sơ Đồ Kết Nối

This image is created using Fritzing. Click to enlarge image
Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

Thông thường, nó yêu cầu hai nguồn điện:
- Một cho động cơ (gián tiếp thông qua module L298N).
- Một khác cho board ESP32, module L298N, và bộ thu hồng ngoại.
Tuy nhiên, có phương pháp để đơn giản hóa điều này bằng cách chỉ sử dụng một nguồn điện cho mọi thứ. Bạn có thể làm điều này bằng cách sử dụng bốn pin 1.5V (tổng cộng 6V). Đây là cách bạn có thể làm:
- Kết nối pin với module L298N như được hiển thị trong sơ đồ.
- Tháo hai jumper kết nối chân ENA và ENB với 5 volt trên module L298N.
- Đặt jumper có nhãn 5VEN, được đánh dấu bằng vòng tròn màu vàng trong sơ đồ.
- Kết nối chân 12V trên đầu nối vít của module L298N với chân Vin trên board ESP32. Điều này cung cấp nguồn cho ESP32 trực tiếp từ pin (6V).
Code ESP32
Các Bước Thực Hiện
- Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
- Cài đặt thư viện DIYables_IRcontroller trên Arduino IDE bằng cách làm theo hướng dẫn này
- Thực hiện kết nối dây như sơ đồ hiển thị ở trên.
- Ngắt kết nối dây từ chân Vin trên ESP32 vì chúng ta sẽ cấp nguồn cho ESP32 qua cáp USB khi upload code.
- Lật xe úp xuống để bánh xe ở trên.
- Kết nối board ESP32 với PC qua cáp micro USB
- Mở Arduino IDE trên PC của bạn.
- Chọn đúng board ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
- Sao chép code đã cung cấp và mở nó trong Arduino IDE.
- Nhấn nút Upload trong Arduino IDE để chuyển code vào ESP32.
- Sử dụng remote hồng ngoại để làm xe tiến lên, lùi lại, rẽ trái, rẽ phải, hoặc dừng lại.
- Kiểm tra xem bánh xe có di chuyển đúng theo lệnh của bạn không.
- Nếu bánh xe di chuyển sai hướng, hoán đổi dây của động cơ DC trên module L298N.
- Bạn cũng có thể xem kết quả trên Serial Monitor trong Arduino IDE.
- Nếu mọi thứ hoạt động tốt, rút cáp USB khỏi ESP32, và sau đó kết nối lại dây vào chân Vin 5V. Điều này sẽ cấp nguồn cho ESP32 từ pin.
- Lật xe trở lại vị trí bình thường với bánh xe trên mặt đất.
- Vui vẻ điều khiển xe nhé!
Giải Thích Code
Đọc giải thích từng dòng trong các dòng comment của code!
Bạn có thể tìm hiểu thêm về code bằng cách xem các hướng dẫn sau:
- Hướng dẫn ESP32 - Động Cơ DC
Bạn có thể mở rộng dự án này bằng cách:
- Thêm cảm biến tránh vật cản để dừng xe ngay lập tức nếu phát hiện vật cản.
- Thêm chức năng điều khiển tốc độ xe (xem hướng dẫn ESP32 - Động Cơ DC). Code được cung cấp điều khiển xe với tốc độ tối đa.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.