A 12-legged Strandbeest. My project is inspired by Theo Jansen's mechanism that converts the circular motion of a motor's shaft to a special motion mechanism that looks like a spider using a special geometrical leg design.
It can move in different directions by the concept of differential steering.
What interested me in this project is that we can play with it in addition to using it for educational purposes.
fusion 360
Laserworks
Cura
Stage 1: Design Theo Jansesn's leg (fusion 360)
leg system has special dimensions that should be followed to work properly.
These dimensions will be used to be the distance from the center of holes in each joint of the leg.
fusion 360 is used to draw 2 concentric circles, with diameters of 3.2mm and 9.2mm, at eat corner of this leg mechanism as follows:
dimensions reference
inner circle is of diameter 3.2mm. outer circle is of diameter 9.2mm
distance between the centers of the holes equals the length of each joint
Design spacers to adjust the layer of our leg joints. this helps in with the stability of our Strandbeest
Stage 2: Design the gear system
14 teeth main gear: we need to design a gear such that the distance between its center and another hole on the edge equals 15mm (the dimension of the joint m from the reference)
from UTILITIES menu, choose scripts and Add-Ins
select the last choice, SpurGear.
enter the number of teeth needed and change the module parameter until we reach a proper diameter
the gear will be drawn automatically. then we add the edge hole manually
9 teeth middle gear: We need this gear's teeth to be of the same size as the 14 teeth gear. (we decrease the Module parameter by 0.1 JUST TO DECREASE FRICTION). We need to leave all the parameters the same as the other gear except for the Hole Diameter and Number of Teeth for them to be attached.
change the Hole Diameter to be appropriate with the M6 threaded rod
Stage 3: Design our main body parts
1- Servo shaft part 1:
M6 nut hole
8.8mm is the distance between the hole of servo shaft and the center (measure using vernier calliper)
mirroring
welldefined
final sketch
extruded design
2- Servo shaft part 2:
draw the holes
mirroring
final sketch
extruded design
3- Side base:
make sure that distances between the holes are appropriate with Theo Jansen's dimensions and appropriate with the sizes of our gear system
4- Servo enclosure side:
draw the basic dimensions
add extra slot for the wires of the servo
add 2 holes to fix the servo and 2 slots to assemble the front part with
final sketch
5- Servo enclosure front:
t-slot dimensions
mirroring
add an opening slot for the t-slot
6- Body top:
components box with enough space to carry the Arduino board inside
Draw squares to separate between each layer of legs
add holes for the t-slots of the Side layers
select the parts to be extruded without trimming any line to maintain the well-defined property
Stage 4: Use Laserworks to prepare all the needed parts for fabrication
construction lines appear in Laserworks and should be deleted before fabrication.
color the holes with a different color.
align all parts appropriately inside a rectangle of the same size as the available plywood to reduce our plywood usage.
delete overlap
Machines and Tools
Prusa 3D printer
El Malky ML149 CO2 Laser Cutter
3mm Plywood sheet
Blue PLA filament
Laser cutting
before downloading the .stl file to El Malky Laser Cutter, we select only the color of the holes and download
cutting the holes at first
unselect holes and select the outlines color. cutting the outlines on another turn. (this technique is JUST FOR SAFETY)
3D Printing
nozzle parameter edited from the machine to be 215
print 1 foot at first to ensure there is no errors, then print the other 3.
Softwares
Electronic components
Arduino UNO - USB cable
HC-05 Bluetooth module
2 Servo Motors 360 degree continuous Rotation SG-90
rechargeable 7.4V lithium battery with BMS
9V power adapter (for testing) and to recharge our lithium battery
on-off switch
1 330 Ohms & 1 1K Ohm resistances
mini breadboard
5V voltage regulator
screw terminal block to female DC power adapter
male-male jumper wires
male-female jumper wires
Our action components are 2 continuous 360 micro-sized servos responsible for giving our project the needed torque to move. We used two servos to control the robot with the differential steering technique. Powered by a 7.4V lithium battery but using a 5V voltage regulator.
A Bluetooth module is used as an input to enable connection via mobile app GUI. The 5V pin in the Arduino board powers it (to reduce the load on the 5V voltage regulator).
Arduino UNO is used as the brain that connects them. It is powered by the VIN pin from the 7.4V lithium battery.
We connect an on-off switch to the +ve wire of the battery.
Test each component separately
test Bluetooth with serial monitor separately (SUCCEED)
test the right motor on pin 10
(POSITIONAL SERVO WILL BE REPLACED)
test the left motor on pin 11
(POSITIONAL SERVO WILL BE REPLACED)
test a 360 continuous sg-90 servo (FUNCTIONAL)
Circuit design
we use a screenshot of the Tinkercad circuit and a picture of the electronic component that is not found in Tinkercad (HC-05 Bluetooth module).
Use this background remover to remove the white background and insert the pictures in a PowerPoint slide.
Complete the wiring using lines from Insert menu.
Construct the actual circuit
final circuit without a scwitch
final circuit with switch
final circuit using 360 continuous sg-90 servos
Stage 1: we use a 9V power adapter in the testing stages and to recharge the lithuim battery
Stage 2: we implement the final circuit with an external lithium battery.
Stage 1: Psuedo code / simple algorithm
To control our Strandbeest, we will use the Android Bluetooth Control GUI to control it. We choose the buttons interface as follows:
When button 1 is pressed >> rotate the left servo AntiClock Wise while the right servo is off >> our strandbeest will go Right
When button 2 is pressed >> rotate the right servo Clock Wise while the left servo is off >> our strandbeest will go Left
When button 3 is pressed >> rotate the right servo AntiClock Wise and the left servo Clock Wise >> our strandbeest will go Backward
When button 4 is pressed >> rotate the right servo Clock Wise and the left servo AntiClock Wise >> our strandbeest will go Forward
when button 5 is pressed >> rotate the right servo AntiClock Wise while the left servo is off >> our strandbeest will go Left Backward
when button 6 is pressed >> rotate the left servo Clock Wise while the right servo is off >> our strandbeest will go Right Backward
Stage 2: Testing each component
This code to test the type of our motor.
A positional servo will go to 180, wait 5 Secs, go to 0, wait 5Secs and so on.
A continuous servo will rotate Clockwise for 5Secs, then rotate Anti Clockwise for 5 Secs and so on.
Stage 3: Full Code
Tools
M3 screws - nuts - spacers
M3+M6 closable nuts
M6 threaded rod
M6 nuts
Sandpaper
hand sanding tools
2 10mm nut wrench for M6 nuts
2 needle nose pliers for M3 nuts
Stage 1: testing mechanism using a DC (functional leg system)
here, the mechanism worked well with only one leg side implemented
here, we implemented 2 leg sides. It stopped frequently because there is a little space separating them. also, it cant balance standing an a surface.
by adding feet from foam clay, it can balance on a surface
Stage 2: Test the Gear system
Stage 3: assemble the final design with one layer of legs
Stage 4: Assemble the Full body of our strandbeest
3 parts attached to servo shaft
Attach the threaded rod with a nut from the other side. Make it super tight (we call it sandwich/squeezing technique)
Used a zip tie to attach our Servo to its enclosure because the appropriate screw size weren't available
Assemble the front and back of the components box
Insert the electric circuit and add the top part
Assemble the side layer with its 4 t-slots
insert 2 layers of the middle 9 teeth gear in between 2 M6 nuts tightened strongly (sandwich/squeezing technique)
add the 2 legs attached to their 14 teeth gear
Received lots of help and suggestions from my instructors, colleagues, MD alumni, and also from family members.
adding feet to the 3assaleya was inspired by my younger brother Salah ElDeen
the name of my 3assaleya stranbeest is suggested by my instructor Menna allah Galal
achieving balance and stability
coding and checking motors
tightening up the gear system
Lots of appreciation for the people who collaborated with me throughout the journey
Thankful to the maker community worldwide where their references helped me a lot
Laser cutting small pieces with holes. the laser cutter cuts the outer line before one of the holes then the piece falls to the bottom of the laser cutter without the hole being cut.
To fix this, the lab specialist suggested coloring the holes with a different color on Laserworks and arranging it in the first order. IT DIDN'T WORK
What worked with me was coloring the holes with a different color on Laserworks then selecting only the color of the holes and downloading to the machine. further illustrations in the Laser cutting section above.
Stability of Jansen's leg joints.
adding appropriate spacers to each joint
use appropriate screw length with a lock nut or 2 regular nuts squeezed together.
use 2 layers of joints c and f in each leg
Cons of using DC motors
It has less torque than the Servo motors
each motor has a different maximum speed which makes it difficult to move in a straight line. if we used only one motor and connected it to both sides its torque would be decreased
the wooden part connected to its shaft is not stable
found 2 different dimension references of the micro servos.
to overcome this, we measured its dimensions using a vernier caliper.
My 2 micro servos didn't rotate 360 degrees with the test code.
after lots of discussions with my colleagues and googling, I realized that my servos are positional not continuous servos. testing both of them illustrated in the Electronics & Power Management section
Servo motors aren't strong enough to move on a surface.
removed the lithium battery to decrease the load as it is the heaviest component in our project. It worked better without the battery.
Add an Ultrasonic sensor and a code to make 3assaleya stop its motion when facing an obstacle.
Design a cat head enclosure for the Ultrasonics sensor to give it more character.
Use inter screws with appropriate lengths to give our strandbeest more stiffness and stability.