Xây dựng một chiếc xe RC bốn bánh với bo mạch ESP32-CAM và các bộ phận có sẵn

Xây dựng một chiếc xe RC bốn bánh với bo mạch ESP32-CAM và các bộ phận có sẵn

Bài viết này trình bày chi tiết cách chế tạo một chiếc ô tô điều khiển từ xa có chức năng phát video trực tiếp bằng ESP32-CAM và các linh kiện có sẵn.

Mặc dù có rất nhiều xe ô tô rô bốt điều khiển từ xa không dây dựa trên ESP32 có camera tích hợp, như PiCar-X 2.0 hoặc Zeus Car, việc tự mình chế tạo một thứ gì đó có thể thú vị và bổ ích hơn. Đó là những gì chúng ta sẽ làm hôm nay, chế tạo xe ô tô điều khiển từ xa của riêng mình bằng các bộ phận có sẵn và bảng ESP32-CAM, và viết chương trình cơ sở cho nó.

Dự án này trình bày một hệ thống camera từ xa dựa trên ESP32 có thể truyền luồng video trực tiếp qua WebSocket và điều khiển động cơ và servo. Một ứng dụng máy chủ Python xử lý giao tiếp WebSocket và cung cấp giao diện web để xem và điều khiển các thiết bị ESP32.

tính năng

  • Truyền phát video trực tiếp từ ESP32-CAM đến máy chủ web
  • Điều khiển động cơ và servo từ xa thông qua lệnh WebSocket
  • Tự động hết thời gian chờ để thiết lập lại động cơ và servo về trạng thái mặc định
  • Nguồn cấp video động cho canvas đa máy khách trên máy chủ

Yêu cầu phần cứng

  • ESP32-CAM (mô-đun AI Thinker hoặc bo mạch tương thích)
  • Động cơ và servo được kết nối với các chân GPIO thích hợp.
  • Nguồn điện 5V ổn định cho ESP32-CAM
  • Thẻ SD bổ sung (nếu cần cho các chức năng khác)
  • Mạng Wi-Fi để giao tiếp

vật liệu

  • Thân xe
  • Kiểm soát tốc độ điện tử: Tôi sử dụng phiên bản 30 ampe vì nó có đầu ra BEC tốt hơn - 5v ở 3 ampe. Có vẻ như dòng điện này đủ để cấp nguồn cho cả ESC và servo.
  • Đế pin
  • 2 pin 18650 3,6v hoặc bộ pin 7,4v (Tôi đã sử dụng cả hai, các pin linh hoạt hơn cho các dự án khác)
  • ESP32-CAM: (Điều rất quan trọng là phải mua loại có ăng-ten ngoài và tôi sử dụng camera mắt cá 170 độ)
  • Tay cầm chơi game Bluetooth (tôi sử dụng bộ điều khiển PS4)

Dây điện

Tôi đã tháo bộ chuyển đổi JST 3 chân khỏi servo đi kèm với khung xe và lắp vào phích cắm JST 4 chân để cắm vào ESP32. Sau đó, tôi kết nối dây dương và dây âm trên servo và thêm phích cắm JST 3 chân cái bằng dụng cụ uốn. Cuối cùng, tôi kết nối dây điều khiển ESC (màu trắng) với phích cắm JST 4 chân và phích cắm cái 3 chân. Nó trông như thế này:

Yêu cầu phần mềm

Mã ESP32

thư viện

  • WiFi.h để kết nối Wi-Fi
  • ArduinoWebsockets.h cho giao tiếp WebSocket
  • esp_camera.h để điều khiển camera ESP32-CAM.
  • ServoControl.h và Esc.h để điều khiển servo và động cơ.
  • Arduino.h cho các chức năng Arduino chuẩn

Máy chủ Python

Mối quan hệ phụ thuộc

Cài đặt các thư viện Python sau:

pip3 install aiohttp opencv-python numpy

Cấu hình

Phần mềm ESP32

1. Chỉnh sửa tệp secrets.h để bao gồm thông tin đăng nhập Wi-Fi và URL máy chủ WebSocket:

#define WIFI_SSID "YourWiFiSSID"
#define WIFI_PASSWORD "YourWiFiPassword"
#define WS_SERVER_URL "ws://YourServerIP:Port"

2. Đảm bảo các chân GPIO cho mô-đun camera, động cơ và servo khớp với thiết lập phần cứng của bạn:

Các chân GPIO của camera được cấu hình sẵn cho bo mạch AI Thinker ESP32-CAM.

Cập nhật chân động cơ và servo nếu cần thiết.

Máy chủ Python

Đặt tập lệnh máy chủ vào thư mục chứa tệp index.html cho giao diện web.

Khởi động máy chủ:

python3 server.py

Có thể truy cập máy chủ tại http://localhost:8080/.

Cách sử dụng

ESPN32

  1. Tải bản phác thảo được cung cấp lên ESP32-CAM của bạn bằng Arduino IDE hoặc nền tảng tương thích.
  2. Kiểm tra đầu ra nối tiếp để đảm bảo kết nối thành công với máy chủ Wi-Fi và WebSocket.

Máy chủ

  1. Chạy một tập lệnh máy chủ Python
  2. Mở giao diện web trong trình duyệt để xem luồng video trực tiếp.
  3. Gửi lệnh điều khiển qua kết nối WebSocket

Lệnh WebSocket

  • MOTOR:<Tốc độ>: Cài đặt tốc độ động cơ (-255 đến 255).
  • SERVO:<góc>: Đặt góc servo (0 đến 180).
  • Kiểm soát: <Tốc độ>: <Góc>: Kiểm soát đồng thời tốc độ động cơ và góc servo.

Chi tiết kỹ thuật

Bắt đầu với ESP32

  • Wi-Fi: Kết nối với mạng Wi-Fi được chỉ định.
  • Camera: Cấu hình ESP32-CAM với các thiết lập phù hợp để truyền phát video.
  • WebSocket: Thiết lập kết nối WebSocket tới máy chủ.

Quản lý thời gian chờ

Nếu không nhận được lệnh điều khiển trong khoảng thời gian chờ đã đặt, tốc độ động cơ sẽ được đặt lại về 0 và góc servo sẽ được đặt lại về 90.

Máy chủ Python

  • Quản lý giao tiếp WebSocket với nhiều máy khách ESP32
  • Xử lý các khung hình video đầu vào và sắp xếp chúng theo dạng lưới một cách linh hoạt.
  • Truyền một lưới các khung hình video tới giao diện web

Xử lý sự cố

Sự cố kết nối :

  • Kiểm tra thông tin đăng nhập Wi-Fi trong secrets.h
  • Xác minh rằng máy chủ WebSocket đang chạy và có thể truy cập được.

Sự cố phát trực tuyến video :

  • Đảm bảo ESP32-CAM được cấp nguồn đầy đủ.
  • Kiểm tra cài đặt khởi động máy ảnh

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Win a Raspberry Pi!

Answer 5 questions for your chance to win!
Question 1

What color is the sky?

Tìm kiếm bằng danh mục

Chọn danh mục