Mục lục:
- Quân nhu
- Bước 1: Lập trình máy ảnh ESP32
- Bước 2: Chế tạo Robot
- Bước 3: ANH ƠI! Đợi một chút! Tại sao tôi cần Arduino Nano?
- Bước 4: Nối Cần điều khiển USB (Tùy chọn)
- Bước 5: HÃY ĐI XE
- Bước 6: Chi tiết về cách sửa đổi mã HTML / Javascript cho máy chủ trang web
Video: Robot camera ESP32 - FPV: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Mô-đun Camera ESP32 là một PLC rẻ tiền và mạnh mẽ. Nó thậm chí còn bao gồm cả nhận dạng khuôn mặt!
Hãy xây dựng một rô bốt Góc nhìn người thứ nhất mà bạn lái qua giao diện web trên bo mạch!
Dự án này sử dụng mô-đun Geekcreit ESP32 với Camera OV2640. Nó dựa trên mô-đun AIThinker.
Có rất nhiều bản sao Máy ảnh ESP32 khác nhau trên mạng. Một số hoạt động, một số thì không. Tôi khuyên bạn nên sử dụng cùng một mô-đun mà tôi đã làm để bạn có cơ hội thành công.
Robot hoạt động như sau.
ESP32 phát một URL web tới mạng của bạn, trình bày luồng video trực tiếp với một số hộp kiểm để vận hành một số chức năng của máy ảnh. Nó cũng nhận các phím bấm được gửi đến trang web từ bàn phím là lệnh định hướng cho robot. Bạn có thể muốn chế tạo tấm chắn phím điều khiển USB để có thể điều khiển robot bằng phím điều khiển thay vì nhập lệnh bàn phím.
Khi ESP32 nhận được các lần nhấn phím, nó sẽ chuyển tiếp các byte đó tới Arduino Nano, sau đó điều khiển các động cơ để làm cho robot di chuyển.
Dự án này có độ khó trung bình-cao. Xin vui lòng dành thời gian của bạn.
Bắt đầu nào!
Quân nhu
- Mô-đun Máy ảnh ESP-32 với Máy ảnh OV2640 - Tôi muốn giới thiệu sản phẩm Geekcreit
- Ăng-ten gắn bên ngoài cho ESP-32 để tối đa hóa cường độ tín hiệu
- Arduino Nano
- Arduino Leonardo cho mô-đun Joystick (chúng tôi cần mô phỏng bàn phím USB do Leonardo cung cấp)
- Mô-đun Joystick chung
- Chip cầu L293D Quad H
- Bộ chuyển đổi DC-DC Buck với đầu ra 5V để cấp nguồn cho ESP32
- Bộ điều hợp nối tiếp FTDI để lập trình ESP32
- Một khung gầm rô bốt chung với hai động cơ giảm tốc - bất kỳ khung gầm nào cũng sẽ hoạt động. Động cơ 3 đến 6V được khuyến nghị
- 2 x pin LiPo 7.4V 1300mAh (hoặc tương tự) để cấp nguồn cho ESP32 và động cơ
- Pin 1 x 9V để cấp nguồn cho Arduino Nano
Bước 1: Lập trình máy ảnh ESP32
Sử dụng bảng mạch, kết nối Máy ảnh ESP32 của bạn với bộ điều hợp FTDI như sau:
FTDI ESP32
3,3V ----------- 3,3V
GND ----------- GND
TX ----------- U0R
Rx ----------- U0T
Ngoài ra, kết nối chân IO0 ("eye-oh-zero") với GND. Bạn cần làm điều này để đưa ESP32 vào chế độ lập trình.
Giải nén tệp esp32CameraWebRobotforInstructable.zip.
Có 4 tệp trong dự án này:
esp32CameraWebRobotforInstructable.ino là bản phác thảo Arduino.
ap_httpd.cpp là mã quản lý máy chủ web và xử lý việc thiết lập các tính năng camera từ trang web và nhận các phím bấm từ trang web.
camera_index.h chứa mã HTML / JavaScript cho ứng dụng web dưới dạng mảng byte. Việc sửa đổi ứng dụng web nằm ngoài phạm vi của dự án này. Tôi sẽ bao gồm một liên kết để biết cách sửa đổi HTML / JavaScript sau.
camera_pins.h là tệp tiêu đề liên quan đến cấu hình pin của máy ảnh ESP32.
Để đặt ESP32 vào Chế độ lập trình, bạn phải kết nối IO0 ("eye-oh-zero") với Ground.
Khởi chạy Arduino IDE của bạn và đi tới Công cụ / Bảng / Trình quản lý bảng. Tìm kiếm esp32 và cài đặt thư viện esp32.
Mở dự án trong IDE Arduino của bạn.
Đặt ID mạng của bộ định tuyến của BẠN và mật khẩu của BẠN vào các dòng được đánh dấu trong hình trên. Lưu dự án.
Vào menu Công cụ và thực hiện các lựa chọn như trong hình trên.
Ban: ESP32 Wrover
Tốc độ tải lên: 115200
Lược đồ phân vùng: "ỨNG DỤNG khổng lồ (3MB không có OTA)"
và chọn cổng mà bộ điều hợp FTDI của bạn được kết nối.
Nhấp vào nút "Tải lên".
Bây giờ, đôi khi, ESP32 sẽ không bắt đầu tải lên. Vì vậy, hãy sẵn sàng nhấn nút ĐẶT LẠI ở mặt sau của ESP32 khi bạn bắt đầu thấy các ký tự… ---… xuất hiện trong bảng điều khiển trong quá trình tải lên. Sau đó nó sẽ bắt đầu tải lên.
Khi bạn thấy 'nhấn RST' trên bảng điều khiển, quá trình tải lên đã hoàn tất.
NGẮT KẾT NỐI IO0 khỏi mặt đất. Ngắt kết nối đường 3.3V giữa bộ điều hợp FTDI và ESP32.
Máy ảnh ESP32 yêu cầu nhiều dòng điện để hoạt động tốt. Kết nối bộ đổi nguồn 5V 2A với chân 5V và GND trên ESP32.
Mở Serial Monitor, đặt tốc độ truyền thành 115200 và sau đó xem khi ESP32 khởi động lại. Cuối cùng, bạn sẽ thấy URL của máy chủ.
Truy cập Trình duyệt của bạn và nhập URL. Khi trang web tải, hãy nhấp vào nút 'Bắt đầu phát trực tuyến' và luồng video trực tiếp sẽ bắt đầu. Nếu bạn nhấp vào hộp kiểm 'Floodlight', đèn LED flash trên bo mạch sẽ sáng. Coi chừng! ĐÓ LÀ SÁNG!
Bước 2: Chế tạo Robot
Bạn cần một khung robot hai bánh. Bất kỳ ai sẽ làm. Lắp ráp khung theo hướng dẫn của nhà sản xuất.
Sau đó, nối dây robot theo sơ đồ. Hãy để các kết nối pin ngay bây giờ.
L293D được sử dụng để điều khiển động cơ. Lưu ý rằng một nửa tai thỏ trên chip là HƯỚNG DẪN ĐẾN ESP32.
Thông thường, cần có 6 chân trên Arduino để điều khiển hai động cơ.
Robot này chỉ yêu cầu 4 chân và vẫn hoạt động đầy đủ.
Các chân 1 và 9 được kết nối với nguồn 5V của Arduino nên chúng ở mức CAO vĩnh viễn. Nối dây cho robot theo cách này có nghĩa là chúng ta cần ít chân hơn trên Arduino để điều khiển động cơ.
Theo hướng chuyển tiếp, các chân INPUT được đặt thành LOW và các chân Điều chế sóng xung động cơ được đặt thành các giá trị từ 0 đến 255 với 0 nghĩa là TẮT và 255 nghĩa là tốc độ tối đa.
Theo hướng ngược lại, các chân INPUT được đặt thành CAO và các giá trị PWM được đảo ngược. 0 có nghĩa là tốc độ tối đa và 255 có nghĩa là tắt.
Giải nén và tải bản phác thảo ArduinoMotorControl lên Arduino Nano.
Bước 3: ANH ƠI! Đợi một chút! Tại sao tôi cần Arduino Nano?
Có thể bạn đang nghĩ, "Này! Có ít nhất 4 chân IO trên máy ảnh ESP32. Tại sao tôi không thể sử dụng chúng để điều khiển động cơ?"
Vâng, đó là sự thật, có các chân trên ESP32 như sau:
IO0 - cần thiết để đưa ESP32 vào chế độ lập trình
IO2 - có sẵn
IO4 - đèn LED flash
IO12, IO13, IO14, IO15, IO16 - các chân GPIO bổ sung.
Nếu bạn chỉ tải một bản phác thảo cơ bản lên ESP32 để điều khiển các chân bằng lệnh PWM, chúng sẽ hoạt động.
TUY NHIÊN, sau khi bạn kích hoạt các thư viện CAMERA trong bản phác thảo của mình, các chân này sẽ không còn nữa.
Vì vậy, điều dễ dàng nhất để làm là chỉ cần sử dụng Nano để điều khiển động cơ thông qua PWM và gửi các lệnh từ ESP32 bằng giao tiếp nối tiếp qua một dây (ESP32 U0T đến Arduino Rx0) và GND. Rất đơn giản.
Bước 4: Nối Cần điều khiển USB (Tùy chọn)
Bạn có thể điều khiển robot bằng cách gửi các phím bấm đến trang web như sau:
8 - Chuyển tiếp
9 - Chuyển tiếp sang phải
7 - Chuyển tiếp sang trái
4 - Xoay trái
5 - Dừng lại
1 - Đảo ngược trái
2 - Đảo ngược
3 - Ngược Phải.
Bản phác thảo cần điều khiển USB chuyển các đầu vào của cần điều khiển thành các phím bấm và gửi chúng đến giao diện web để chuyển tiếp chúng đến Arduino để điều khiển robot.
Kết nối cần điều khiển với Arduino LEONARDO như sau:
Cần điều khiển Leonardo
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Mở bản phác thảo usbJoyStick, chọn Arduino Leonardo làm bảng và tải nó lên Leonardo.
Nếu bạn muốn kiểm tra nó, chỉ cần mở một trình soạn thảo văn bản trên máy tính của bạn, nhấp chuột vào cửa sổ và bắt đầu di chuyển cần điều khiển. Bạn sẽ thấy các giá trị từ 1 đến 9 hiển thị trong cửa sổ
Bước 5: HÃY ĐI XE
Hãy dành chút thời gian và xem lại hệ thống dây điện của bạn để đảm bảo tất cả đều chính xác.
Tiếp theo, kết nối pin của bạn như sau.
1. Bật nguồn Máy ảnh ESP32. Nó cần một vài giây để khởi động máy chủ web.
2. Tăng sức mạnh cho Arduino Nano.
3. Tăng sức mạnh cho động cơ.
Khởi chạy trình duyệt của bạn và truy cập URL cho ESP32.
Nhấp vào nút Bắt đầu phát trực tuyến.
Nhấp chuột vào vị trí nào đó trên màn hình trình duyệt để màn hình hiện là tiêu điểm.
Bắt đầu điều khiển robot của bạn bằng cần điều khiển (hoặc bàn phím).
Tôi thấy rằng kích thước khung hình mặc định hoạt động ổn để phát video trực tiếp khá phản hồi qua WiFi. Tuy nhiên, khi bạn tăng kích thước khung hình, luồng sẽ trở nên bị ngắt quãng hơn vì bạn đang cố truyền hình ảnh lớn hơn.
Đây là một dự án đầy thử thách mang đến cho bạn cơ hội bắt đầu làm việc với tính năng phát video trực tiếp và điều khiển rô bốt qua WiFi. Tôi hy vọng bạn tìm thấy nó vui vẻ!
NGAY BÂY GIỜ HÃY ĐI VÀ LÀM MỘT CÁCH THẬT TUYỆT VỜI!
Cập nhật tháng 1 năm 2020 - Những bức ảnh cuối cùng cho thấy phiên bản cuối cùng của robot, được hàn cứng và gắn chặt vào khung.
Ba công tắc gắn phía trước như sau:
Trái - Pin nguồn động cơ
Trung tâm - Pin Arduino
Phải - Pin máy ảnh ESP32
Tôi có thể sử dụng một pin lớn với một số máy biến áp tăng cường (tôi sử dụng một pin cho ESP32 - nó ở phía dưới bên phải của bức ảnh phía trước), nhưng để đơn giản, tôi chỉ giữ lại 3 pin.
Robot hiện có trên Access Point
Tôi thấy việc trình diễn rô bốt này bên ngoài nhà của mình rất phức tạp vì mạng doanh nghiệp của trường tôi không cho phép tôi kết nối máy chủ web rô bốt với nó. Như một giải pháp, tôi đã nghiên cứu về việc sử dụng tính năng Access Point của máy chủ web ESP32. Phải mất một số công việc, nhưng yêu cầu những thay đổi khá nhỏ đối với bản phác thảo robot chính để làm cho ESP32 phát sóng địa chỉ IP của chính nó. Nó không mạnh bằng một trung tâm phát wifi tốc độ cao chuyên dụng (đôi khi bị treo nếu bạn di chuyển quá nhanh), nhưng nó hoạt động khá tốt và bây giờ tôi có thể trình diễn robot ở bất cứ đâu tôi muốn mà không cần phải kết nối mạng! Sau khi robot hoạt động, hãy thử tự chuyển đổi nó thành Access Point!
Bước 6: Chi tiết về cách sửa đổi mã HTML / Javascript cho máy chủ trang web
Điều này là không cần thiết, nhưng tôi đã có một số yêu cầu.
Tôi đã cung cấp cho Google Tài liệu này thông tin chi tiết về cách sử dụng CyberChef để chuyển đổi qua lại giữa HTML / Javascript và các biểu diễn mảng byte trong tệp camera_index.h.
Đề xuất:
Camera IP Nhận diện khuôn mặt Sử dụng Bảng ESP32-CAM: 5 bước
Camera IP Nhận diện khuôn mặt Sử dụng Bo mạch ESP32-CAM: Bài đăng này khác biệt so với những bài khác và chúng ta cùng xem qua bo mạch ESP32-CAM rất thú vị có giá thành rẻ đáng ngạc nhiên (dưới $ 9) và dễ sử dụng. Chúng tôi tạo một camera IP đơn giản có thể được sử dụng để phát trực tuyến nguồn cấp dữ liệu video trực tiếp bằng cách sử dụng 2
Camera quan sát với NodeMCU + Mô-đun camera của máy tính xách tay cũ (Có và không sử dụng Blynk): 5 bước
Camera CCTV Có NodeMCU + Mô-đun Camera của Laptop Cũ (Có và Không Dùng Blynk): Xin chào các bạn! Trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách tôi sử dụng mô-đun camera của máy tính xách tay cũ và nodeMCU để tạo ra thứ gì đó tương tự như camera quan sát
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy
Bắt đầu với ESP32 CAM - Phát trực tuyến video bằng ESP CAM qua Wifi - Dự án camera an ninh ESP32: 8 bước
Bắt đầu với ESP32 CAM | Phát trực tuyến video bằng ESP CAM qua Wifi | Dự án camera an ninh ESP32: Hôm nay chúng ta sẽ tìm hiểu cách sử dụng bo mạch ESP32 CAM mới này và cách chúng ta có thể mã hóa nó và sử dụng nó như một camera an ninh và nhận video phát trực tuyến qua wifi
Bắt đầu với ESP32 - Cài đặt Bo mạch ESP32 trong Arduino IDE - Mã nhấp nháy ESP32: 3 bước
Bắt đầu với ESP32 | Cài đặt Bo mạch ESP32 trong Arduino IDE | ESP32 Blink Code: Trong phần hướng dẫn này, chúng ta sẽ thấy cách bắt đầu làm việc với esp32 và cách cài đặt bo mạch esp32 vào Arduino IDE và chúng ta sẽ lập trình esp 32 để chạy mã nháy bằng arduino Ide