
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.
The Esp32 cam works well
I purchased these
https://www.amazon.com/Aideepen-ESP32-CAM-Bluetooth-ESP32-CAM-MB-Arduino/dp/B08P2578LV/ref=sr_1_6?dchild=1&keywords=ESP32+Cam&qid=1612713883&sr=8-6
or this one?
https://www.amazon.com/dp/B07T1PG77D/ref=sspa_dk_detail_3?psc=1&pd_rd_i=B07T1PG77D&pd_rd_w=E1WJy&pf_rd_p=b34bfa80-68f6-4e86-a996-32f7afe08deb&pd_rd_wg=YAkSn&pf_rd_r=PGR8XDK65KGFB9GTT6XD&pd_rd_r=5f34e09f-5d40-4ed7-9d3e-7014da233f8f&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExV0pIRDhSTFhXRE4wJmVuY3J5cHRlZElkPUEwNjA2NjI4MjFaTkNNMlczMTZQMCZlbmNyeXB0ZWRBZElkPUEwMDgyOTgwMklWSU9FSjdHUllGSSZ3aWRnZXROYW1lPXNwX2RldGFpbCZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=
It's not really a good cam at all. Bought one that was a great deal (less then $5.00 from Aliexpress) about 6 months back. Couldn't get it to focus right, thought it was bad so purchased just another camera, less the ESP32, same thing. It's ok if you want to use it for a stationary shot but terrible on anything that moves. I found it to be a great cam to monitor my 3D printer over my phone. If the focus is not good you can cut the small glue mark that's around the lens and then turn the lens to focus on the spot you need. If that makes sense?
Mr. Herr Ball
I got it to work well
look like it works good here https://youtu.be/visj0KE5VtY
I agree not brilliant camera but it is very small, self contained, wireless and all you need to provide is power. Good enough for Computer vision and object tracking (what I need it for). If we can also use the GPIO pins to control servo's or read sensors even better and you connect direct to It just like an EZB.
I plan to have 4 of these on my robot 1 inside each hand (So I can identify objects, orientate to the alignment of that object and position hand to grab that object based on orientation. Also plan to put some on feet to know when am about to trip and fall, align to kick a ball etc.
The ezb mode does use gpio for digital and servos. every esp uses different pins for the camera, making it non-standard across different versions. Like all open source and low cost items like this, there’s no standard for us to implement. You’ll need to check the camera pinout file to see what pins are being used by the camera.
additionally, the gpio numbers relate to ARC Dx ports. So look at the diagram on the hardware page and those should work. But again, there’s no standard across esp32 cam versions.
You’d need to...
look at the hardware page and the pinout diagram: https://synthiam.com/Support/Hardware/ESP32-Cam
check in the firmware what type of camera you’re using (the #define statement that’s uncommented that works for you)
use that type of camera to look at the camera pinout file included in the firmware and compare which pins are being used for the camera
For the Ai Thinker it looks like I need to brush up on my soldering skills as they decided to put the pins used by the camera on the header and not the free pins. https://github.com/raphaelbs/esp32-cam-ai-thinker/blob/master/docs/esp32cam-pin-notes.md You can still get access to the pins directly on the main board but this could be a bit of a nightmare. If I can't find 5 free pins I wonder if I can add a small ATTiny using serial connection back to ESP32-CAM http://embedded-lab.com/blog/wp-content/uploads/2015/12/8048281449822227147.jpg
Wow that’s a poor design LOL. In the words of AVGN... what were they thinking?!
Reading the forums others have been tackling this problem.
apparently, have not tested yet, GPIO0 is only used for enabling flashing firmware l, So this is free.
You can use TX & RX and this gives you GPIO 1 & 3
Put SD card in 1 bit mode with command SD_MMC.begin("/sdcard", true) This gives access to 12 &13
You can use GPIO 4 but flash still goes off when you use it.
So this should free GPIO0, GPIO1, GPIO3, GPIO12, GPIO13 and GPIO4 flashing camera light when using.
https://www.esp32.com/viewtopic.php?t=13141
https://esp32.com/viewtopic.php?t=11471