ESP8266 Joystick
Phần cứng cần chuẩn bị
| 1 | × | ESP8266 NodeMCU ESP-12E | ||
| 1 | × | Recommended: ESP8266 NodeMCU ESP-12E (Uno-form) | ||
| 1 | × | USB Cable Type-A to Type-C (for USB-A PC) | ||
| 1 | × | USB Cable Type-C to Type-C (for USB-C PC) | ||
| 1 | × | Joystick | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP8266 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP8266 Type-C |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về joystick hai trục
Bạn có thể đã gặp một chiếc joystick ở nhiều nơi khác nhau, như một bộ điều khiển trò chơi, một bộ điều khiển đồ chơi, hoặc thậm chí là một máy móc lớn như bộ điều khiển của máy xúc.
Joystick được cấu thành từ hai biến trở được bố trí vuông góc với nhau và một nút nhấn. Do đó, nó tạo ra các đầu ra sau:
- Một giá trị analog từ 0 đến 1023 tương ứng với vị trí theo trục X (được gọi là hoành độ X)
- Một giá trị analog từ 0 đến 1023 tương ứng với vị trí theo trục Y (được gọi là tung độ Y)
- Một giá trị kỹ thuật số của nút nhấn (HIGH hoặc LOW)
Vì vậy:
- Hai giá trị tương tự có thể ghép lại để hình thành tọa độ hai chiều (2D)
- Trung tâm của tọa độ là vị trí nghỉ của cần joystick
- Một đoạn mã thử nghiệm (được trình bày ở phần tiếp theo) có thể xác định hướng thực tế của các tọa độ
Một số ứng dụng có thể sử dụng cả ba đầu ra, trong khi một số ứng dụng khác chỉ sử dụng một phần trong số chúng.
ESP8266 và Joystick
Vì ESP8266 chỉ có một đầu vào analog, và joystick cần hai đầu vào, có hai cách để giải quyết việc này:
- Module Chuyển đổi Analog sang Digital (ADC):
- Bạn có thể thêm một thiết bị bên ngoài gọi là một module Chuyển đổi từ Analog sang Digital (ADC), như ADS1115 ADC Module.
- Thiết bị tiện lợi này cung cấp cho bạn nhiều chân đầu vào analog hơn, cho phép kết nối nhiều thiết bị analog, bao including cả joystick.
- Giải pháp ghép kênh:
- Một lựa chọn khác là sử dụng một giải pháp ghép kênh, nơi bạn lần lượt đọc các trục X và Y của joystick bằng đúng một chân đầu vào analog duy nhất.
- Điều này liên quan đến việc chuyển đổi giữa các trục X và Y tại các thời điểm khác nhau, sử dụng một kỹ thuật được gọi là ghép kênh theo thời gian (time-division multiplexing).
Tuy nhiên, cả hai tùy chọn này có thể khá đắt đỏ và hơi phức tạp. Thay vào đó, chúng tôi khuyên dùng ESP32 thay vì ESP8266. Hãy xem hướng dẫn ESP8266 - Joystick để có một cách tiếp cận đơn giản và hiệu quả hơn.