Asked

Alternative To Ezrobot Ezb For Robot Head Project

My course has primarily focused on robotics projects using the EZ-B controller and a camera for real-time interfacing. With recent developments, I am planning to create an additional video that incorporates Synthiam's support for other types of controllers. Although I've successfully flashed an alternative controller, it lacked compatibility with camera integration and Wi-Fi capabilities. The absence of an onboard computer limits the use of a USB camera, posing a significant challenge.

This dependency on specific components like the EZ-B, IO Tiny, and cameras can be problematic. For my course project, Mecha Morphix, which involves controlling five servos, the Arduino Mega seems excessive. I am in search of a suitable controller, compatible with Synthiam ARC, that includes both Wi-Fi and camera support to effectively replace the EZ-B.

I noticed that the ESP32 with a camera is listed among the supported controllers for ARC. Has anyone experimented with using the ESP32 in conjunction with a camera for such applications? Any insights or experiences would be appreciated.



Related Hardware (view all EZB hardware)
ESP32 Cam by Espressif
ESP32-CAM as an EZB for Synthiam ARC: stream video, control GPIO/servos, AP/Client WiFi, and ARC D0-D23 to GPIO pin mapping.
Wi-Fi
Servos Varies
Camera
Audio
UART Varies
I2C
ADC Varies
Digital Varies

Related Robot Skills (view all robot skills)
ESP32_MPU6050 by Shawn Miller
ESP32/Arduino EZB firmware with MPU6050 support: provides accelerometer angles and Yaw/Pitch/Roll gimbal servo values for stabilization and scripting
Bridge ARC to Lynxmotion SSC-32: maps V0-V31 to SSC-32 channels for reliable, high-performance serial control via USB, EZB/Arduino UART.

ARC Pro

Upgrade to ARC Pro

Discover the limitless potential of robot programming with Synthiam ARC Pro – where innovation and creativity meet seamlessly.

Author Avatar
PRO
Synthiam
LinkedIn Thingiverse Twitter YouTube GitHub
#137  

Quote:

BTW @DJ if you are opening ARC I noticed BLOCKY AutoPosition and AutoPosition Wait are broken in the GUI when you hit the drop down.

you probably have a position or frame or control named with double quotes, single quote, or backslash in it

Author Avatar
PRO
Canada
Twitter
#138  

User-inserted image

maybe its just my setup  ???

Author Avatar
PRO
USA
LinkedIn Twitter Google+ YouTube
#140   — Edited

Just seeing this. This is a good solution. We went from hoping to get a IOTiny to almost a full EZB! That’s a win. I think I may have a few of those break out boards laying around. I’ll have to go on the hunt. If I do I’ll post results.

edit**** I got two!  Let you know how it goes later today.

User-inserted image

Author Avatar
PRO
Synthiam
LinkedIn Thingiverse Twitter YouTube GitHub
#141   — Edited

I got the ESP32 PCB servo breakout board today and tried it with the ESP32 Wrover. You can clearly see the LEDs flashing for the gpio of the camera - that's of course why it isn't working with standard settings. The pcb addon circuit is changing the resistance or intercepting the signal of those camera pins. Every flashing pin is a camera pin. You can tell by looking at the pin number and comparing it against the camera_pins.h file.

There are a few options, but the firmware explains that if you have issues with the camera, lower the speed.

  1. So one option would be to simply cut the camera pins so they're not going into the pcb

  2. The other option is to simply lower the speed as documented in the firmware. Here's a copy and paste

// This is the clock frequency for the camera. Generally you want to
// use the 20000000 value. But if you experience issues with the camera
// image, choose the lower value. The times you maye experience camera
// issues is due to a lengthy cable or interference, and the lower value
// should fix that.
//
// Only uncomment one of these
// #define XCLOCK_FREQUENCY 20000000
#define XCLOCK_FREQUENCY 10000000
  1. Use the pca9685 instead
Author Avatar
PRO
USA
LinkedIn Twitter Google+ YouTube
#142   — Edited

Ok here are my results (so close),

  1. Everything flashed great no issues at all (just be sure the 9685 is connected on reboot.)
  2. Wiring is spot on no issues connecting the ESP to the 9685 correctly (SDA SCL 14,15),gnd, vcc.
  3. ESP32 transmits it SSID perfect no issues.
  4. ESP 32 Connected to ARC no problems at all.
  5. Added external power for the servo to the 9685
  6. Added a horiz slider then added the 9685 from the drop down for supported board in the set up tab and chose port D0
  7. Attached servo to D0 on the 9685
  8. Tested servo works great/fast/normal!
  9. Turn on camera and perfect image.
  10. I then tried the servo at the same time with the camera.... I got the servo crawl.
  11. Went back and re-read DJs instructions and forgot to add port :24 to the camera server, so did that. (so ESP is port 23, camera port 24)
  12. Then I retested, and unfortunately still has the issue when using the camera AND servo at same time , servo crawl.

This is as close as we've gotten. And I am excited!

So perhaps its trying different pins (14,15) for the SDA SCL, incase there is camera resources from those pins? Or maybe its something to do with the ports assignment?

I know no one has this board yet but me. I'm just throwing out ideas.

Author Avatar
PRO
Synthiam
LinkedIn Thingiverse Twitter YouTube GitHub
#143  

I'm guessing something to do with the esp32 wifi driver dealing with the camera and ezb comm data at the same time. i think the tcp window is 6 packet cache so there could be a tcp busy being transmitted if the camera image is taking long to process.

but at the same time - i can move servos without experiencing what you're experiencing. so i'm second guessing that as an issue.

are you certain the esp32 and pca9685 is getting enough power for the servos and isn't browning out?

Author Avatar
PRO
USA
LinkedIn Twitter Google+ YouTube
#144   — Edited

Yes I have one servo on d0 and separate bench power supply to the 9685 set to 6 volts for the just the servo. Both camera and servo work perfectly separately. But when camera server is running the servo reverts to studder/crawl.

But servo works great by its self, (something it was not doing before) Camera works great by its self, just when i move the horiz slider for the servo moves slow an studders like before.