ESP32-Cam TimeLaps project with servos control, settings storage, and many functions. Adjust your camera settings, prepare your trajectory, set your timelaps preference and start it. Exemple of trajectory on youtube:
I used the code from bitluni to learn the web interface and prepare the base for future projects: bitluni/ESP32CamTimeLapse. Web interface joystick code from bobboteck/JoyStick. Servos kit can be found on aliexpress for cheap!
- Fully controlled through the web interface
- All settings in EEPROM
- 3 sets of settings available to store/load on demand
- AutoStart
- WiFi Station & AP WiFi
- WiFi can be disable while running
- Memory information and management
- SDCard can be initialize while running
- LED Flash fully configurable (dimmable)
- Two axis servos arm can be controlled with the joystick from the web interface
- Configurable trajectory to track object during time laps (preview available embedded)
- All parameters controllable from web interface
- Select/comment camera board in
src\camera.cpp
according to your board - According to your camera behavior, set the camera frequency in camera.h "config.xclk_freq_hz" to get good images. Mine works at 5MHz.
- Serial pins are used for Serial or Servos. Set your configuration in "debug.h"
- In Windows Explorer, select all files you want to include in the video
- Right click on selection -> Property -> Details
- Select a random date on the "Origin -> Date taken" property, then apply
- Use native W10 Photo to create video
JackGruber/ESP32-Timelaps-Webcam
- Add embedded picture rotation
- Add camera frequency in settings
- Add deep sleep function during time laps
- Add settings to maintain command or to power off servo when not moving
- Add servo speed control loop somewhere (use of ESP fade timer hardware function can be great)
- Fast movements can reset the ESP32-CAM : power supply glitches
- Servos might generate steps because of servos specifications. PWM SW resolution is much better than my servos resolution.
- Trajectory path follow the function Y=AX2+BX+C. X is servos X (ROTATION) Y is servo Y (UP/DOWN). Set your Start/Mid/End points accordingly: Mid point should be SOMEWHERE IN BETWEEN the others.