A simple and affordable telepresence experimentation platform. Based on the Espressives ESP32-CAM example revisited which in itself is a rework of the 'official' ESP32 Camera example sketch from Espressif.
Construction Howto in German: https://codimd.c3d2.de/c3-pr-tutorial
The current design uses the AI-THINKER ESP32-CAM boards. If possible we will keep compatibilty with other modules.
-
For some other good examples and information on ESP32 based webcams I also recommend the sketches here: https://github.com/raphaelbs/esp32-cam-ai-thinker
-
The AI thinker wiki can be quite informative, when run through an online translator and read sensibly: https://wiki.ai-thinker.com/esp32-cam
Development of a small motor driver clip-on board is under way. If you want to get started now, wire your own Dual TB6612FNG motor driver board in a way that AIN2 (BIN2) is the inverted signal of AIN1 (BIN1). We only have so many GPIOs, so we need to use them wisely.
See pcb folder for more information on shematics and gerber files.
- A usefull guide to the ESP32-CAM GPIOs is https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout/
Various designs for mechanical parts are under development.
Please read this excellent guide for help with common issues of the ESP32-CAM module: https://randomnerdtutorials.com/esp32-cam-troubleshooting-guide/
- For programming you will need a suitable development environment. We had a lot of fun and 'fun' with the Arduino IDE, but PlatformIO leaves it in the dust. Just check out this repo, set your wifi credentials according to
myconfig.sample.h
and you should be good. However if want to use the Arduino IDE, renameesp32-cam-webserver.cpp
toesp32-cam-webserver.ino
in thesrc
directory. The Arduino IDE might still work for you. For further instructions and wiring, please refer to the original repo. - After burning the firmware to ESP32 the file
data/index.html
needs to be uploaded to the ESP32 using SPIFFS. See here how to do this.
- This currently ONLY gets tested with the AI-THINKER modules with OV2640 camera installed. We try to keep the code for other cameras in but this might change in the future.
- Improve Wifi, add a captive portal (e.g. AutoConnect for setup.
- Over the air updates.
- Improve motor control and UI, all this is currently very very basic.
- Concurrent access to website and stream doesn't seem to work well (or at all). Fix this.
How to use gamepads in browsers (no external libraries needed, BROWSER DEPENDENT!) https://gamedevelopment.tutsplus.com/de/tutorials/using-the-html5-gamepad-api-to-add-controller-support-to-browser-games--cms-21345 Differential Steering with Gamepads https://www.impulseadventure.com/elec/robot-differential-steering.html