Introduction: Strider Camera Robot

This Instructables show how to use ESP32-CAM and 3D printed parts build a Strider Camera Robot.

Supplies

ESP32-CAM-MB:

https://www.aliexpress.com/wholesale?SearchText=es...

LiFePO4 14500 Battery with charger:

https://www.aliexpress.com/wholesale?SearchText=li...

N20 3V 200RPM Motor:

https://www.aliexpress.com/wholesale?SearchText=n2...

DRV8833 2 Channel DC Motor Driver Module Board:

https://www.aliexpress.com/wholesale?SearchText=dr...

2 pieces of 8 pins pin header female:

https://www.aliexpress.com/wholesale?SearchText=pi...

8 pieces of 6702ZZ bearing:

https://www.aliexpress.com/wholesale?SearchText=67...

100 pieces of 6mm long M2 Flat Head Screw:

https://www.aliexpress.com/wholesale?SearchText=m2...

2 pieces of 155mm long 2mm diameter rod:

6 pieces of 15mm long 2mm diameter rod:

https://www.aliexpress.com/wholesale?SearchText=2m...

Step 1: What Is Strider?

Strider is a mechanical walker developed by Wade Vagle. Strider is evolved from many design iterations, so it walks (runs) very well.

When I post the insructables Lego Trotbot at 2018, Wade Vagle suggest me try Strider. Finally I have time to build this :P

You can find many valuable information about mechanical walker design at diywalkers.com.

Ref.:

https://www.diywalkers.com/walker-abcs.html

https://www.diywalkers.com/strider-linkage-plans.h...

Step 2: Strandbeest Vs Strider

How Strider walks well? let's compare with a Strandbeest I assembly few years before.

Strandbeest only can walk on a very flat surface, it even cannot walk through a mat; In contrast, a smaller size Strider can walk through same mat very well.

This reminded me someone taught me when I am little: you should lift the toes to avoid tripping.

Step 3: Battery

This walker design have two 14500 (AA size) battery slots.

Here are the voltage requirement:

  • ESP32-CAM requires 3.3 V power, the on board voltage regulator (AMS1117) accept maximum 15 V.
  • N20 motors can powered from 3 - 12 V, higher voltage can runs faster.
  • DRV8833 motor driver accept 2.7 - 10.8 V.

14500 Battery evaluation:

  • NiMH battery, 2 x 1.0 - 1.25 V = 2 - 2.5 V, not enough power
  • Li-Ion battery, 2 x 2.5 - 4.35 V = 5 - 8.7 V, it can fulfill the power requirements
  • LiFePO4 battery, 2 x 2.0–3.65 = 4.0 - 7.3 V, it can fulfill the power requirements and have a better battery safety

So you can use two 14500 Li-Ion or LiFePO4 batteries. LiFePO4 battery is preferred. If you select Li-Ion battery, remember select the battery have built-in protection board or insert a protection circuit in the middle.

Ref.:

https://en.wikipedia.org/wiki/Nickel–metal_hydride_battery

https://en.wikipedia.org/wiki/Lithium-ion_battery

https://en.wikipedia.org/wiki/Lithium_iron_phosphate_battery

Step 4: Motor

This Strider use 2 tiny N20 gear motors. This gear motor has many gear ratio available. I have tested 3 ratio from 3V 100RPM, 200 RPM to 500RPM. 3V 500RPM can run very fast, but camera robot requires a steady walk for a better camera live view, so I recommend 3V 200 RPM.

Note:

The operation voltage and rotation speed is in linear ratio, 3V 100RPM means 6V 200RPM.

Step 5: Thin Wall Ball Bearing

Strider or other walkers require pass rotation movement from motor to few pairs of legs. However, the rotation cannot direct drive by a straight axis, so I use some thin wall ball bearing build a stable crankshaft to pass the rotation movement.

8 pieces of 6702ZZ bearing required, the inner diameter is 15mm, outer diameter is 21mm and the width is 4mm.

Step 6: Screws

Screws is very important for connect everything together, leg joints, body parts, battery holders and electronics components.

For simplicity, all connections designed use same screw size. It is 6mm long M2 flat head screws, this robot requires 72 pieces for assembly. More spares is always welcome, I think 100 pieces is a reasonable quantity.

Step 7: 2mm Diameter Rod

It is not easy direct order a 155mm long 2mm diameter rod, but you can cut it yourself. E.g. order two 200mm long rod can cut into two 155mm and six 15mm long rod.

Step 8: 3D Printed Parts

Download and 3D print all the parts at thingiverse: https://www.thingiverse.com/thing:4917588

Note:

The file name tail with "_x2" means print 2 copies ... "_x12" means print 12 copies.

Step 9: Hole Patching

3D printed parts may not print prefect round holes, a 2.1 mm drill bit can help patch the holes to a better shape.

Step 10: Core Assembly

Use 4 screws combine core1, core2a and core2b together.

Step 11: Install Motors

Please note 2 motors aligned in 90 degree to avoid the motor terminals contacted unexpectedly.

Step 12: Motor Axis & Body Assembly

  1. Push thin wall ball bearing into body2
  2. Push the axis3 into the thin wall ball bearing
  3. Repeat step 1-2 once to make 2 copies

Step 13: Install Motor Axis

Align the D shape motor axis to axis3 and push it in.

Step 14: Install Cover

Use 8 screws fix cover1 and cover2 to the core body.

Step 15: Install 155mm Rods

Pass pair of the 155mm long 2mm diameter rods through the body hole.

Step 16: Legs Assembly

  1. Use 1 screw connect leg2, leg3 and leg1 together
  2. Use 1 screw connect leg3 and leg4 together
  3. Repeat step 1-2 once to make second leg
  4. Mirror second leg to the right
  5. Use 2 screws connect two leg2 and leg4 together
  6. Repeat step 1-5 to make 6 pair of legs

Step 17: Install Legs

  1. Install 15mm rod into the axis3
  2. Let both leg1 holes pass through the 155mm rods
  3. Let both leg2 middle holes pass through the 15mm rod

Step 18: Axis & Body Assembly

  1. Push thin wall ball bearing into body2
  2. Push the axis2 into the thin wall ball bearing
  3. Repeat step 1-2 3 times to make 4 copies

Step 19: Install Axis Body

  1. Let the body2 holes pass through the 155mm rods
  2. Align the axis hole and pass through the 15mm rod
  3. Use 2 screws fix the axis body

Step 20: Repeat Leg Installation

Each side have 3 pairs of legs; each pair of legs shift crankshaft in 60 degrees.

Step 21: Edge Axis & Body Assembly

  1. Push thin wall ball bearing into body1
  2. Push the axis1 into the thin wall ball bearing
  3. Repeat step 1-2 once to make 2 copies

Step 22: Install Body Edge

  1. Align axis1 hole and pass through the 15mm rod
  2. Use 2 screws fix the body edge

Step 23: Connect Battery Holder

Connect Battery Holder in series with Wires. It is highly recommended use red and blue wire to indicate battery positive and negative pole.

Step 24: Arrange Battery Wires

Arrange battery holder red and blue wires and pass through Core2b hole.

Step 25: Fix Battery Holder

Use 8 screws fix 2 battery holders to the core2a and core2b.

Step 26: Software Preparation

Arduino IDE

Download and install Arduino IDE if you are not yet do it:

https://www.arduino.cc/en/main/software

ESP32 Support

Follow the Installation Instructions to add ESP32 support if you are not yet do it:

https://github.com/espressif/arduino-esp32

Arduino ESP32 filesystem uploader

Follow the installation steps to install Arduino ESP32 filesystem uploader if you are not yet do it:

https://github.com/lorol/arduino-esp32fs-plugin

FSBrowserPlus

Download FSBrowserPlus: (press "Clone or Download" -> "Download ZIP")

https://github.com/moononournation/FSBrowserPlus

Import libraries in Arduino IDE. (Arduino IDE "Sketch" Menu -> "Include Library" -> "Add .ZIP Library" -> select downloaded ZIP file)

ESP Async Web Server Library

Download latest ESPAsyncWebServer libraries: (press "Clone or Download" -> "Download ZIP")

https://github.com/arjenhiemstra/ESPAsyncWebServer

Import libraries in Arduino IDE. (Arduino IDE "Sketch" Menu -> "Include Library" -> "Add .ZIP Library" -> select downloaded ZIP file)

Step 27: Configuration

Camera Type

In "FSBrowserPlus.ino", uncomment your camera model at around line 28 and comment out all others. E.g. CAMERA_MODEL_ESP32_CAM_ROBOT for this Strider Camera Robot.

// Select camera model// #define CAMERA_MODEL_WROVER_KIT // Has PSRAM// #define CAMERA_MODEL_ESP_EYE // Has PSRAM// #define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM// #define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM// #define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM// #define CAMERA_MODEL_ESP32_CAM // Has PSRAM#define CAMERA_MODEL_ESP32_CAM_ROBOT // Has PSRAM// #define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM// #define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM// #define CAMERA_MODEL_JSZWY_CYIS#include "cameraAPI.h"

Motor Pins

CAMERA_MODEL_ESP32_CAM_ROBOT also defined motor pins in "camera_pins.h":

#define MOTOR#define MotorL_A_Pin 13#define MotorL_B_Pin 12#define MotorR_A_Pin 2#define MotorR_B_Pin 14

LED Light Pin

The LED is direct controlled by web GPIO API. Currently it is GPIO 4, you can alter the LED pin at around line 616 of "camerarobot.htm":

const query = `${baseHost}/gpio?pin=4&val=${value}`;

Step 28: Compile & Upload

  1. Connect the ESP32-CAM to USB Serial Dock
  2. Open Arduino IDE
  3. Open FSBrowserPlus.ino
  4. Edit the ssid and password to your own WiFi AP credential
  5. Select Board to "ESP32 Dev Module" in "Tools" menu
  6. Select Partition Scheme to "Default 4MB with fat (1.2MB APP/1.5MB FATFS)" in "Tools" menu
  7. Press Arduino IDE "Upload" button
  8. Select "ESP32 Sketch Data Upload" in "Tools" menu
  9. Select FS Type to "FatFS" and press "OK" button

Step 29: Prepare PCB

  1. Cut a PCB to 10 x 10 holes
  2. Drill 4 holes at C3, H3, C8 and H8 (fit for core1 hole positions)

Step 30: Soldering Work

ESP32-CAM not built-in USB serial chip, it is better use pin headers to help detach and reprogram easier.

Here are the connection summary:

Battery  -> Switch -> ESP32-CAM -> DRV8833  -> Motor+ve pole -> Pin 1            Pin 2  -> 5V        -> Vcc-ve pole ->           GND       -> GND                      GPIO 12   -> IN1                      GPIO 13   -> IN2                      GPIO 14   -> IN3                      GPIO 2    -> IN4                                   OUT1     -> LEFT +ve                                   OUT2     -> LEFT -ve                                   OUT3     -> RIGHT -ve                                   OUT4     -> RIGHT +ve                                   short J2

Step 31: Fix PCB

Use 4 screws fix PCB on core1.

Step 32: Arrange & Connect Wires

Connect battery and motors pins to PCB.

Step 33: Install ESP32-CAM

  1. Plug the ESP32-CAM to pin header
  2. Stick a heatsink on SD card reader
  3. Stick the camera module on the heatsink

Step 34: Install Battery

Remind the battery pole is correct before install or it will burnt the chips. Thats why I highly recommended use red and blue wires in battery holders.

Step 35: Connect & Play

FSBrowserPlus is running in AP+STA dual mode.

If you have inputted your WiFi AP and password, you can direct browse to http://fsbrowserplus.local access the FSBrowserPlus, but it is limited to the WiFi AP coverage area.

If you have bring the camera robot outside and out of WiFi AP coverage area, simply search WiFi AP called "fsbrowserplus" and input predefined password in the code to connect. Once it is connected, a Captive Portal web page will pop up.

Then select the Camera Robot shortcut.

Step 36: Enjoy!

Wade Vagle comments in Youtube this is tiniest Strider. But it is still too wide in size for remote control, now it is very easy block by the obstacle outside the camera view.

I will try to fix it in next iteration. Follow my Twitter (陳亮手痕定律) for the latest news:

https://twitter.com/moononournation

Step 37: Optional External Antenna

Some vendor can provide ESP32-CAM in different antenna options. External antenna can improve the camera video streaming performance.

Make it Move Challenge

Grand Prize in the
Make it Move Challenge