
ESP32 Cam EZB
Hardware:
ESP32 Cam
Author: DJ Sures
This firmware converts a ESP32 Cam into an EZB for ARC to connect to it.
This firmware transforms the ESP32 Cam module into a fully functional EZ-B with an integrated Synthiam ARC camera, providing a powerful all-in-one solution for robotics and IoT applications. The firmware allows the ESP32 Cam to simultaneously operate as a video streaming device and a controller for peripherals like servos and sensors, making it an ideal choice for compact, feature-rich projects.
Key Features:
- EZ-B Compatibility: The firmware enables the ESP32 Cam to emulate an EZ-B, making it compatible with Synthiam ARC for controlling robotics systems and IoT devices.
- Integrated Camera: The ESP32 Cam’s built-in camera streams video directly to Synthiam ARC, offering real-time visual feedback alongside EZ-B functionality.
- Dual Functionality: Supports servo control and camera streaming simultaneously, making it versatile for applications requiring both visual monitoring and peripheral actuation.
Recommended GPIO Pins for Servos:
To ensure smooth operation of both the camera and peripheral controls, the following pins are recommended for use in servo control while the camera is active:
- D2
- D12
- D13
- D14
- D15
These pins are optimized to avoid conflicts with the camera's operation and other internal processes, ensuring reliable performance in EZ-B mode.
How It Works:
- EZ-B Functionality: The ESP32 Cam handles peripheral controls, such as servo motors, sensors, and other devices, through Synthiam ARC commands.
- Video Streaming: The built-in camera streams video directly to Synthiam ARC, enabling real-time monitoring and control.
- Resource Allocation: The firmware ensures efficient management of the ESP32 Cam's resources, prioritizing critical functions like video streaming and servo control.
Benefits:
- Compact All-in-One Solution: Combines the functionality of an EZ-B and a camera into a single, compact device, saving space and reducing complexity in your projects.
- Cost-Effective: Offers a budget-friendly alternative to traditional EZ-B and camera setups while retaining full compatibility with Synthiam ARC.
- Versatile Applications: Suitable for robotics, home automation, surveillance, and other IoT projects requiring simultaneous video streaming and peripheral control.
Use Case Example:
This setup is perfect for robotic systems that require both camera feedback and precise control of servos or other peripherals. For instance:
- A robotic arm with a camera for object recognition and manipulation.
- A mobile robot with live video streaming and servo-driven navigation or gripper control.
By converting the ESP32 Cam into an EZ-B with an integrated camera, this firmware unlocks a versatile and efficient solution for advanced robotics and IoT applications.
Timing is always fun. My first computer was a zx80 and the only way you could get code to run without the screen flickering was to time the execution of the code exactly between the update of the screen frames so the screen wouldn't flicker. Several people on the interwebs are using ESP32-Cam for servos and cameras at same time so I am sure it is possible.
It was long time ago but I got two servos (pan & tilt) working with the ESP32-CAM.
https://github.com/madhephaestus/ESP32Servo recommended pins: pins 2,4,12-19,21-23,25-27,32-33
ESP32-CAM SD Card:
Safe pins: DATA2 = 12 (DJ implementation = 4) CLK= 14 (DJ implementation = 3) DATA0 = 2 (Not mapped in DJ Implementation)
Please try:
Servos: EZB Port 3 = Board HS2_CLK (Gpio 14) EZB Port 4 = Board HS2_DATA2 (Gpio 12)
can you point me to a website?
Regarding ARC->ESP32CAM everything you need is in this thread. EZB port mapping to ESP32 GPIO ESP32-CAM pinout.
Schematic is here: (ESP32_CAM_V1.6.pdf) https://github.com/SeeedDocument/forum_doc/tree/master/reg#ESP32_CAM_V1.6
Recommend pins for ESP32 servo Library used in DJ's implementation: https://github.com/madhephaestus/ESP32Servo
ESP32 Documentation about SDCARD/SDIO implementation: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sdio_slave.html I picked the Gpio 14, Gpio 12 because they are safe, for example GPIO13 is a SPI/CS So will activate the SDCARD when low so not safe.
sorry I was talking to Nink he said Several people on the interwebs are using ESP32-Cam for servos and cameras at same time so I am sure it is possible.
However I will try what you proposed
still think my best solution for me is:
an IoTiny on connection 1 for many servos
esp32 cam on connection 0 - camera
that works for me
If you install the standard ESP32 code on the ESP32 CAM all works fine with Servo's
Maybe the boards differ between what I have and you.. There's a portion of the code that translates arduino pin index to gpio. You can edit it here...
I am probably doing something wrong but this is what I had on the ESP32-CAM ARC ESP32-CAM D16 -GPIO 0 - Nothing D5 - GPIO 13 - Crashes D3 - GPIO 14 - Move servo wait 1 minute it moves sometimes just vibrates D4 - GPIO 12 - servo just gets hot but release actually works :-)