Khoa Lê gửi vào
- 27665 lượt xem
Vừa bắt đầu với arduino được hơn 1 tuần, có tham khảo qua các nguồn từ "trung ương đến địa phương", nắm được 1 số kiến thức cơ bản nên mình bắt đầu thực hiện 1 sản phẩm để đúc kết kinh nghiệm. Trong số đó thì xe điều khiển là dễ nhất. Kết hợp với cái tay game ps3 nằm lăn lóc ở góc nhà. Thế là có 1 chiếc xe điều khiển từ xa. Bắt đầu nhé !
I. Chuẩn bị
Tất cả các linh kiện trên các bạn có thể search và mua trên các cửa hàng điện tử. Cửa hàng thì các bạn tự lựa chọn mình không nêu ra ở đây.
II. Tiến hành
1. Ráp module USB host shield vào board Arduino
Sau đó ráp Motor shield vào trên USB (nghe như làm bánh sandwitch )
2. Nối 2 động cơ vào chân M1 và M2 cho
3. Nối động cơ servo
4. Nguồn cho cả hệ thống
Mình dùng cục pin dự phòng nên cắt cọng dây USB, dây đỏ nối cực dương và dây đen nối cực âm
5. Tađa
Đã xong phần lắp ráp. Tổng thể của chiếc xe như hình bên dưới
Chuyển sang phần code nhe!
III. Lập trình
1. Thư viện
Hiện tại mình sử dụng thư viện:
AFMotor: https://learn.adafruit.com/adafruit-motor-shield/library-install (mirror)
USB host shield: https://github.com/felis/USB_Host_Shield_2.0
Tất cả đều có example các bạn tự tham khảo nhe.
2. Cách kết nối USB Dongle với tay game ps3
Mình nói sơ sơ nhé:
3. Ý tưởng code như sau
Mình sử dụng cần analog bên trái để điều khiển: tới - lùi - trái - phải
Theo thư viện nhúng vào thì cần analog trên tay game ps3 nó định nghĩa như sau:
Dùng hàm map để điều chỉnh như sau:
Thực tế thì khi dùng giá trị trả về của cần analog thì giá trị luôn bị dao động tại 1 vị trí (ở đây là vị trí xe đứng im và bánh hướng phía trước mình gọi là vị trí cân bằng), ko biết có nên sử dụng bộ lọc ko nhưng theo các của mình thì mình sẽ tăng khoảng cách của vị trí cân bằng. Mình chia 1 hành trình của cần analog làm 3 đoạn: 0->117; 117->135; 135->255.
Đây là thành quả của mình
Hiện tại USB host shield và Arduino motor shield giá thành cũng khá mắc. Các bạn có thể thay thế bằng module Bluetooth HC-06 và module L298.
4. Code
Hy vọng sau bài này các bạn sẽ có những ý tưởng mới.
Chào đoàn kết và quyết thắng.