Remote Controlled Strandbeest
by xX_christopher_Xx in Circuits > Remote Control
1489 Views, 26 Favorites, 0 Comments
Remote Controlled Strandbeest
Some time ago, I stumbled across Theo Jansens’ Strandbeest (https://www.strandbeest.com/) and was amazed by its structure! I bought and completed two variants of the model kits.
I started a project to motorize this structure and possibly operate it with a remote control. I was inspired by several related works on Instructables, but put my own spin on this project.
https://www.instructables.com/Strandbot-a-solar-arduino-powered-RC-motorize/: One of the first attempts to remotely control the movement of the strandbeest
https://www.instructables.com/Remote-Controlled-Strandbeest/: A relatively new remote-controlled version
https://www.instructables.com/Training-Theo-Jansens-Mini-BEEST/: I admired the effort to explore different features in this one
https://www.instructables.com/Walking-Strandbeest-JavaPython-and-App-Controlled/: Used some relatively new technologies
This Instructable is not meant to be instructions for building a remote controlled Strandbeest, but rather a timeline of this project: my work, problems encountered, and lessons learned in this process. I hope my notes will be of some help to anyone interested in building or improving on something like this!
Supplies
1. Strandbeest model kit
https://www.amazon.com/gp/product/B00E0I4C2K/ref=ppx_yo_dt_b_asin_title_o00_s01?ie=UTF8&psc=1
If you just want to see how the structure works, I would suggest buying a model kit as the first step instead of trying to build one from scratch by yourself, especially if you're like me and have less engineering experience.
2. M2x300mm rod x2 for the original Strandbeest
3. M2.5x400mm rodx2 for 3D printed Strandbeest
4. 3D printer
5. Spacers to go in between the legs. I used paper straws, as they're easy to cut to a specific length.
6. Nuts and bolts set. I used M2.5x14 (or M3x12) for leg assembly, and M3x20 (M2.5x25) for crank assembly. See details later about these screw sizes.
7. Washers for M2.5, M3.
8. Zip ties.
9. Grip tape for racket
Per control unit:
1. One L298N Motor Drive Controller Board
2. Two TT Motors (two motors, each to control one set of three pairs of Strandbeest legs)
3. One WeMos D1 R2 Mini ESP8266 chip (for wireless control)
4. One AA-battery holder with Switch.
5. Two 3.7-volt lithium batteries.
[Original] Build Strandbeest With Model Kit
The first part of this project is motorizing and remotely controlling a Strandbeest from a model kit. Follow the manual in the model kit to construct the original Strandbeest.
[Original] 3D Print the Couplers
1] Print out “sb-model-tt-adapter” - These couplers connect the TT Motor shaft with the crank shaft of the Strandbeest.
2] Print out “sb-motorboxbase+lid-final “ - This file contains a motor holder and a lid
[Original] Circuit
Complete wiring as shown in the circuit.
Note: There are 6 control pins on L298N in the picture as shown. The two pins on both ends are used, so if these pins are covered by a connection box or connected by jumper wires (which they usually are when they are purchased), the jumper wires need to be removed first! Once removed, you can wire them as shown in the diagram.
The middle 4 pins are paired into two groups of two, where each group receives data to control one TT motor.
[Original] Assemble Control Unit.
Solder the wires to the TT motors
Install motors on to the 3D printed motor base with the nuts and bolts that should come with the TT motors.
Screw on the lid (make sure to align the holes!). Screw on the L298N chip with screws. Secure the ESP8266 chip with Velcro dots. Secure the AA battery pack (we used Velcro dots again).
[Original] Blynk Control
First, download the Blynk App
Click the wrench in the main dashboard to go to “Developer Mode”.
Click “menu” at top right corner to add a new template.
Go back to the main screen and click on the template, click “+” to add a “Joystick” widget.
Next, make a web account.
For the widget added in the mobile app, we need to define the variables that the program gets from Blynk. Go to Dashboard of this named device, click on “Datastreams”, then define the datastreams as shown.
Now, find the named template in main page, go to “Device Info” tab and hover your mouse over the area pointed to by the red arrow. Copy the section of code. Use this code to replace the corresponding section in the code I provided here. (Blynk_Beast_4_12_2023.ino). This is to customize the connection and device so that your phone and wireless chip can communicate. Replace your device credentials as well (see image).
You will need Arduino IDE for this. I do not plan to add a detailed tutorial for Arduino here, as you should be able to find very good tutorials here at Instructables or on Youtube. For this specific project, because we are using a wireless control chip, you will need to set it up first, with support for ESP8266.
Go to File Preferences, Additional boards manager URLs, and add the URL https://arduino.esp8266.com/stable/package_esp8266com_index.json. Then you should be able to switch your chip in the Arduino menu to WeMos D1 Mini.
Downloads
[Original] Load the Code
Load the modified code (Blynk_Beast_4_12_2023.ino) to WeMos8266 chip.
[Original] Final Assembly
Replace the original metal rods with the M2x300mm rods.
Connect the 3D printed couplers to the Strandbeest crank shaft.
Position the control unit by connecting the TT Motor shafts to the couplers.
Secure the controller unit to the rods with zip ties.
Test! Our strandbeest worked well, but we noted that the legs were very flexible.
This works fine and is fun to play around with! But I hope to make this project flexible, so it can be bigger, or have an additional arm, or mount something else on top.
Next, we go to stage 2 of the project: the 3D printed Strandbeest.
[3D Printed] 3D Print Strandbeest
There are many 3D printed models of Strandbeest available on the Internet (including Instructables!). Going through them in more detail, I decided to remix this one from Thingiverse: https://www.thingiverse.com/thing:196320
Here are some notes and changes I made in my remix. I am using Ultimaker Cura 5.1 to generate gcode with the default settings.
[1] sb_leg_set_x_6_original
These are the legs of the structure. Each print out can build one set of legs. We need two sets of three leg pairs. So, we need six prints in total.
This file has not changed.
[2] sb-crank-replacements-final
This file contains templates to build cranks. The original cylinder-shaped connection can easily slip when rotating and which defeats the purpose as a crank. Glue doesn't help, so I added protrusions and indentations so that the shaft rotates more effectively.
This part will be bearing most of the force, so I have a relatively high infill setting at 60% percent. This file only needs to be printed out once.
[3] sb-arm-replacements-final
These are the structures that connect rods and cranks. I made two changes. To fit the changes I made in the crank parts, I adjusted the shape of the hole. I also added holes on top of the arm so we can add attachments if we want.
This file needs to be printed out twice. The gcode should be generated with the standard settings.
[4] sb-motorboxbase+lid-final
This is the same file I used at stage one.
I added a utility wall with holes on the lid to add a side guard and potentially other features. The walls are on the front and back instead of on the sides. I did this to ensure that the holed structure wouldn't create friction while the Strandbeest was moving.
I also extended the base with front and back board with holes. This makes it easier to secure the control unit on to the rod.
This file needs to be printed out once. Standard gcode settings.
[5] sb-motorbox-adapter_long+arms
This file contains two couplers to connect the crank to TT motor. The arm structure is also adjusted to fit the couplers.
This file needs to be printed out once. Set the infill to 60%.
[3D Printed] Assemble Legs
Assemble the 6 sets of leg pairs as shown.
The key here is the nut and bolts used.
The original instruction suggests using M3x12 nuts and bolts. This was very secure, but it was too tight and ended up causing friction while the Strandbeest tried to move, even when I added lubricant.
I then tried to use M2x14 nuts and bolts, but they were too loose.
I finally used M2.5x14 nut and bolts. The Strandbeest moved much more smoothly, but the bolt was still a bit too lose, so it needed some glue. The glue also makes it harder for you to change the Strandbeest after this point.
After assembling all the legs, apply grip tape to the tips of the legs to prevent slipping.
[3D Printed] Assemble Crank Couplers
It is much easier to screw on couplers before putting them onto the supporting rod.
Here, I had similar trade-offs between the M3x20 and M2.5x25 nuts and bolts. Again, a M2.5x25 worked better for me.
Another tip is to use washers to remove legs and cranks stuck on each other during movement. I put two washers in between any touching parts.
Basically, the order goes:
- Start with a bolt
- 2 washers
- Male coupler
- leg A
- 2 washers
- leg B
- leg B'
- 2 washers
- leg A'
- female coupler
- 2 washers
- nut
Sometimes, the washers need to be adjusted later on during the test—you might find that some parts can easily get stuck, requiring you to adjust the washers.
[3D Printed] Connect Cranks.
Connect in this order:
- female coupler
- arm
- male coupler
as shown. Press to secure the connection.
Add TT Motor Coupler and the arm with the circular hole for the coupler.
[3D Printed] Install the Assembled Parts Onto the Rods.
Install the structure on the M2.5x400mm rods. Add spacers by cutting lengths of straws so each leg is upright. In my case, these are spacers of 6mm and 10mm. Yours might be different, depending on how tight you screw on the nuts and bolts as well as how many washers you used.
Note that it is much easier to install the fully assembled sections on to the rods rather than install part by part. It becomes very hard to press the parts together tightly, increasing the chances of the whole thing falling apart.
[3D Printed] Install Control Unit.
Secure the control unit with zip ties. Fit the coupler onto the TT motors, then tighten the zip ties to secure the position.
[3D Printed] Test and Adjust.
The testing and adjustment both turned out to take a long time. I needed to adjust the length of the spacers and the number of washers so that the legs wouldn't get stuck with other parts during movement.
Also, even though both sets of the legs moved fine, they had slightly different levels of flexibility, making it so that the motors didn't drive the legs at the same speed—and the Strandbeest still couldn't walk straight!
After some adjustments, it finally worked!
I've been working on this project for a year now, and it's finally come to an end! I learned a lot from this project, and I hope you will too!