Strider Camera Robot

by 陳亮 in Circuits > Robots

17340 Views, 163 Favorites, 0 Comments

Strider Camera Robot

IMG_9424.jpg
IMG_9358.jpg
IMG_9362.jpg
DSC05310.jpg
Strider Camera Robot demo outside
Strider Camera Robot demo inside

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...

What Is Strider?

螢幕截圖 2021-08-13 06.44.33.png

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...

Strandbeest Vs Strider

Strandbeest vs mat
Strider run!
螢幕截圖 2021-07-30 10.21.42.png

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.

Battery

IMG_9186.jpg
DSC05324.jpg

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

Motor

DSC05253.jpg
DSC05255.jpg
DSC05258.jpg
DSC05259.jpg

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.

Thin Wall Ball Bearing

DSC05203.jpg

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.

Screws

DSC05220.jpg

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.

2mm Diameter Rod

IMG_9241.jpg

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.

3D Printed Parts

DSC05214.jpg

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.

Hole Patching

DSC05238.jpg

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

Core Assembly

DSC05221.jpg
DSC05222.jpg
DSC05223.jpg

Use 4 screws combine core1, core2a and core2b together.

Install Motors

DSC05227.jpg

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

Motor Axis & Body Assembly

DSC05231.jpg
DSC05232.jpg
DSC05233.jpg
DSC05234.jpg
  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

Install Motor Axis

DSC05235.jpg

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

Install Cover

DSC05236.jpg

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

Install 155mm Rods

DSC05239.jpg

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

Legs Assembly

DSC05240.jpg
DSC05242.jpg
DSC05245.jpg
DSC05246.jpg
DSC05247.jpg
DSC05249.jpg
  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

Install Legs

DSC05257.jpg
DSC05261.jpg
DSC05262.jpg
DSC05263.jpg
  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

Axis & Body Assembly

DSC05268.jpg
DSC05269.jpg
DSC05270.jpg
DSC05273.jpg
  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

Install Axis Body

DSC05274.jpg
DSC05275.jpg
DSC05276.jpg
  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

Repeat Leg Installation

DSC05277.jpg

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

Edge Axis & Body Assembly

DSC05264.jpg
DSC05265.jpg
DSC05266.jpg
DSC05267.jpg
  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

Install Body Edge

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

Connect Battery Holder

DSC05289.jpg
DSC05290.jpg
DSC05295.jpg
DSC05296.jpg

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

Arrange Battery Wires

DSC05299.jpg
DSC05302.jpg

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

Fix Battery Holder

DSC05305.jpg

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

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)

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}`;

Compile & Upload

DSC05309.jpg
  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

Prepare PCB

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

Soldering Work

DSC05284.jpg
DSC05286.jpg

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

Fix PCB

DSC05287.jpg

Use 4 screws fix PCB on core1.

Arrange & Connect Wires

DSC05304.jpg
DSC05307.jpg

Connect battery and motors pins to PCB.

Install ESP32-CAM

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

Install Battery

DSC05313.jpg

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.

Connect & Play

Strider Camera Robot

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.

Enjoy!

IMG_9365.jpg
IMG_9353.jpg
IMG_9361.jpg
DSC05312.jpg
DSC05326.jpg
IMG_9419.jpg

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

Optional External Antenna

IMG_9228.jpg
IMG_9229.jpg
IMG_9230.jpg
IMG_9231.jpg
IMG_9232.jpg

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