Ví dụ ESP32 WebJoystick Hướng dẫn điều khiển joystick ảo
Tổng quan
Ví dụ WebJoystick tạo giao diện joystick ảo có thể truy cập từ bất kỳ trình duyệt web nào. Được thiết kế cho ESP32 nền tảng giáo dục với khả năng robotics được nâng cao, tính năng điều khiển động cơ tích hợp và tích hợp liền mạch với các mô-đun giáo dục robot. Hoàn hảo để điều khiển robot, phương tiện hoặc bất kỳ hệ thống nào yêu cầu đầu vào vị trí hai chiều.

Tính năng
- Joystick ảo: Điều khiển joystick tương tác qua giao diện web
- Tọa độ thời gian thực: Giá trị X/Y từ -100 đến +100 cho điều khiển chính xác
- Hỗ trợ cảm ứng và chuột: Hoạt động trên máy tính để bàn, máy tính bảng và thiết bị di động
- Chế độ trả về tự động có thể cấu hình: Tùy chọn cho joystick trả về vị trí giữa khi được thả
- Điều khiển độ nhạy: Độ nhạy có thể điều chỉnh để ngăn chặn cập nhật quá mức
- Phản hồi trực quan: Hiển thị vị trí thời gian thực và các giá trị tọa độ
- Giao tiếp WebSocket: Phản hồi tức thì mà không làm mới trang
- Vị trí trung tâm: Chỉ báo vị trí trung tâm rõ ràng cho điều khiển ở trạng thái trung lập
Phần cứng cần chuẩn bị
| 1 | × | mô-đun phát triển ESP-WROOM-32 | ||
| 1 | × | Alternatively, ESP32 Uno-form board | ||
| 1 | × | Alternatively, ESP32 S3 Uno-form board | ||
| 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 | × | (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) |
Hướng dẫn thiết lập
Các bước nhanh
Hãy làm theo các hướng dẫn này từng bước:
- Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy tham khảo hướng dẫn về ESP32 - Cài Đặt Phần Mềm.
- Kết nối bo mạch ESP32 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP32 phù hợp (ví dụ ESP32 Dev Module) và cổng COM.
- Đi tới biểu tượng Libraries ở thanh bên trái của Arduino IDE.
- Tìm kiếm "DIYables ESP32 WebApps", sau đó tìm thư viện DIYables ESP32 WebApps do DIYables cung cấp.
- Nhấp nút Install để cài đặt thư viện.

- Bạn sẽ được yêu cầu cài đặt một số phụ thuộc thư viện khác.
- Nhấp vào nút Cài đặt Tất cả để cài đặt tất cả các phụ thuộc thư viện.

- Trên Arduino IDE, hãy vào File Examples DIYables ESP32 WebApps WebJoystick ví dụ, hoặc sao chép mã ở trên và dán nó vào trình soạn thảo của Arduino IDE
- Cấu hình thông tin xác thực WiFi trong mã nguồn bằng cách cập nhật các dòng này:
- Nhấn nút Tải lên trên Arduino IDE để tải mã lên ESP32
- Mở Serial Monitor
- Kiểm tra kết quả trên Serial Monitor. Nó trông như dưới đây
- Nếu bạn không thấy gì, hãy khởi động lại bo mạch ESP32.
- Ghi nhớ địa chỉ IP được hiển thị, và nhập địa chỉ này vào thanh địa chỉ của trình duyệt web trên điện thoại thông minh hoặc PC của bạn.
- Ví dụ: http://192.168.0.2
- Bạn sẽ thấy trang chủ như hình dưới đây:

- Nhấp vào liên kết Web Joystick, bạn sẽ thấy giao diện người dùng của ứng dụng Web Joystick như dưới đây:

- Hoặc bạn cũng có thể truy cập trang trực tiếp bằng địa chỉ IP kèm theo /web-joystick. Ví dụ: http://192.168.0.2/web-joystick
- Hãy thử điều khiển joystick ảo bằng cách nhấp và kéo trên vùng joystick và quan sát các giá trị tọa độ X/Y (-100 đến +100) trong Serial Monitor.
Tùy chỉnh sáng tạo - Điều chỉnh mã cho dự án của bạn
2. Cấu hình cài đặt Joystick
Joystick có thể được cấu hình với các tham số khác nhau:
Cấu hình cơ bản
Cấu hình nâng cao
Cách sử dụng Joystick
Các điều khiển giao diện web
Giao diện joystick cung cấp:
- Bảng điều khiển joystick: Khu vực điều khiển hình tròn cho đầu vào cảm ứng/chuột
- Chỉ báo vị trí: Hiển thị vị trí joystick hiện tại
- Hiển thị tọa độ: Giá trị X/Y theo thời gian thực (-100 đến +100)
- Điểm giữa: Tham chiếu trực quan cho vị trí trung lập
Vận hành Joystick
Máy tính để bàn (Điều khiển chuột)
- Nhấp và kéo: Nhấp vào joystick và kéo để di chuyển
- Buông: Joystick trả về vị trí trung tâm (nếu autoReturn=true)
- Vị trí nhấp chuột: Nhấp trực tiếp để đặt vị trí của joystick
Điện thoại di động/Máy tính bảng (Điều khiển cảm ứng)
- Chạm và kéo: Chạm vào joystick và kéo ngón tay để di chuyển
- Đa chạm: Một ngón tay để điều khiển chính xác
- Thả: Tự động trả về vị trí trung tâm (nếu được bật)
Hệ tọa độ
Joystick cung cấp các tọa độ trong một hệ tọa độ Cartesian chuẩn:
- Trục X: -100 (ở bên trái hoàn toàn) đến +100 (ở bên phải hoàn toàn)
- Trục Y: -100 (ở dưới hoàn toàn) đến +100 (ở trên hoàn toàn)
- Trung tâm: X=0, Y=0 (vị trí trung tính)
- Các góc: Các vị trí chéo cung cấp giá trị X/Y kết hợp
Ví dụ Lập trình
Trình xử lý Joystick cơ bản
Ví dụ điều khiển động cơ
Ví dụ Điều khiển Servo
Chỉ báo vị trí đèn LED
Cấu hình nâng cao
Thay đổi cấu hình thời gian chạy
Triển khai vùng chết
Tăng tốc theo thời gian
Ví dụ về tích hợp phần cứng
Điều khiển xe robot
Điều khiển gimbal máy ảnh
Điều khiển màu LED RGB
Khắc phục sự cố
Các sự cố phổ biến
- Joystick không phản hồi
- Kiểm tra trạng thái kết nối WebSocket trong console của trình duyệt
- Kiểm tra kết nối mạng
- Làm mới trang trình duyệt
- Kiểm tra Serial Monitor để xem lỗi
2. Chuyển động giật cục hoặc không đồng đều
- Tăng giá trị độ nhạy để giảm tần suất cập nhật
- Triển khai lọc vùng chết
- Thêm dải tăng tốc để các chuyển động diễn ra mượt mà
- Kiểm tra vấn đề độ trễ mạng
3. Tự động trả lại không hoạt động
- Xác nhận thiết lập autoReturn: webJoystickPage.setAutoReturn(true)
- Kiểm tra khả năng tương thích trình duyệt (một số thiết bị cảm ứng khác nhau)
- Thử nghiệm với các phương thức nhập khác nhau (chuột và cảm ứng)
4. Giá trị không đạt được phạm vi đầy đủ
- Kiểm tra hiệu chuẩn của joystick trong giao diện web
- Xác nhận các phép tính tọa độ trong hàm gọi lại
- Kiểm tra với các kết hợp trình duyệt/thiết bị khác nhau
Mẹo gỡ lỗi
Thêm gỡ lỗi toàn diện:
Ý tưởng dự án
Các dự án robot
- Điều khiển xe ô tô robot từ xa
- Điều khiển cánh tay robot
- Điều khiển bay drone (các động tác cơ bản)
- Điều hướng cho robot thú cưng
Tự động hóa nhà
- Điều khiển rèm thông minh (mở/đóng/vị trí)
- Điều khiển quay và ngả của camera
- Điều khiển độ sáng và màu sắc của đèn
- Điều khiển tốc độ và hướng quạt
Các dự án giáo dục
- Công cụ giảng dạy hệ tọa độ
- Các minh họa điều khiển động cơ
- Các thí nghiệm định vị servo
- Giao diện điều khiển trò chơi
Nghệ thuật và các dự án sáng tạo
- Điều khiển mẫu ma trận LED
- Điều khiển trực quan hóa âm nhạc
- Điều khiển robot vẽ
- Các cài đặt nghệ thuật tương tác
Tích hợp với các ví dụ khác
Kết hợp với WebSlider
Sử dụng joystick để điều hướng và các thanh trượt để điều chỉnh tốc độ và cường độ.
Kết hợp với WebDigitalPins
Sử dụng các vị trí của joystick để kích hoạt trạng thái của các chân số:
Các bước tiếp theo
Sau khi nắm vững ví dụ WebJoystick, hãy thử:
- WebSlider - Để điều khiển analog bổ sung
- WebDigitalPins - Để điều khiển bật/tắt rời rạc
- WebMonitor - Để gỡ lỗi các giá trị của joystick
- MultipleWebApps - Kết hợp joystick với các điều khiển khác
Hỗ trợ
Để được hỗ trợ thêm:
- Kiểm tra tài liệu tham khảo API
- Truy cập các bài hướng dẫn DIYables: https://esp32io.com/tutorials/diyables-esp32-webapps
- Các diễn đàn cộng đồng ESP32