esp32 cam for mearm In this project, I connect an esp32-cam to a mearm robotic arm, so I can control the arm from a web interface. I use I2C to connect the esp32-cam to a pca9685 PWM driver, and use the driver to control the robot arm. I also add an OLED screen to the I2C bus.
video link
https://youtu.be/ukeri1_q-RQ
Equipment
- MEARM robot kit: https://shop.mearm.com/
- ESP32-CAM AI thinker: Available on amazon or similar.
- PCA9685 servo driver: Available on amazon or aliexpress.
- OLED 0.96": Available on amazon or aliexpress or similar.
- FTDI to flash esp32 cam: https://www.amazon.com.au/gp/product/B00IJXZQ7C/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
Links
Random Nerds esp32 rc car:
https://randomnerdtutorials.com/esp32-cam-car-robot-web-server/
Random Nerds I2C additional bus:
https://randomnerdtutorials.com/esp32-i2c-communication-arduino-ide/
Robojax PCA9685 tutorial:
http://robojax.com/learn/arduino/?vid=robojax_PCA9685-V2
Adafruit PWM servo library update
I have made the following change to the Adafruit_PWMServoDriver.h file
From:
Adafruit_PWMServoDriver(const uint8_t addr, TwoWire &i2c);
To:
Adafruit_PWMServoDriver(const uint8_t addr, TwoWire *i2c);
And the Adafruit_PWMServoDriver.cpp file
From:
Adafruit_PWMServoDriver::Adafruit_PWMServoDriver(const uint8_t addr,
TwoWire &i2c)
: _i2caddr(addr), _i2c(&i2c) {}
To:
Adafruit_PWMServoDriver::Adafruit_PWMServoDriver(const uint8_t addr,
TwoWire *i2c)
: _i2caddr(addr), _i2c(i2c) {}