The original aim for the Zergling robot was to produce a kit for £2.50, however, this proved to be difficult. The main costs were due to the motors and PCB. Therefore, i needed to come up with a solution that removed these costs. Solution, a brush-bot or bristle-bot, these are very simple vibrating robots. Again, following the Starcraft universe LINK, these are the Zergling larva, as shown in figure 1.
Figure 1 : Larva
This is a proof of concept, went for a easily available motor LINK, only 22p. Typically you would use a custom made motor with offset weight, the type used in mobile phones, but these are a little more expensive and limit the types of weights that could be used e.g. planning to make a propeller shaped one. Downsides of this motor are that its lot larger and heavier. The legs of a brush-bot are typically soft flexible plastic e.g. silicon rubber. To make these i 3D printed a mould, into which i pressed / poured silicon rubber, as shown in figure 2.
Figure 2 : Legs (right), mold (left)
Again, used the very nicely designed battery box from Thingiverse (LINK), combined with a simple base and clamp, as shown in figure 3. Glued the legs and motor clamp onto the base. The battery box is a friction fit i.e. needs to be removable so that the battery can be replaced. The assembled Larva is shown in figure 4. A video of it in action is available here (LINK). Perhaps a little slow, perhaps the legs are a little too flexible? From a few trial runs its very sensitive to initial leg position i.e. how it is placed on the table. Next experiment will be to add front whiskers to try and balance the load / make the robot's movements more predictable. However, will take this as a success, you can cast the legs using a mould and it does move.
Figure 3 : Version 1 3D model
Figure 4 : Version 1 larva
Small improvements, added a bracket to hold the weight (m3 nut), also added a propeller LINK, hopefully to give a little more forwards thrust, keep the robot moving in a straight line. However, i think the body will block/deflect this airflow, but it looks faster :). A video of this robot in action is available here (LINK). The 3D model can be downloaded here: LINK. The highly complex circuit diagram is shown in figure 6.
Figure 5 : Version 1.1 larva
Figure 6 : Circuit diagram 1.1
The main disadvantage of the first robot is the lack of control. I could add a second vibrating motor to select/change the 'rotation of vibration', but i decided to go for a more traditional BeetleBot LINK. Used the same motors as before and again 3D printed a chassis, as shown in figure 7. The 3D model can be downloaded here: LINK. Also used an existing battery box, but this time a 2xAA (link above), thought the extra weight may give a little more traction, however, may need to move the batteries again so that the robot's centre of gravity is over the drive wheels. Note, green items are either the motors or micro-switches. Finally, may need to modify the front, make it more curved i.e. flat faced robots tend to get stuck in corners, were as rounder robots tend to naturally spin free.
Figure 7 : Version 2 larva (assembled top, parts bottom)
The "circuit" for this robot is very simple, each motor is connected to a microswitch, single pole, double through (SPDT). When the switch is not pressed the motor is connected across one of the batteries, driving its wheel 'forwards'. When the robot bumps into an obstacle the switch is pressed, disconnecting the the motor from this battery and connecting it across the second battery. The trick here is that the batteries are wired to give +1.5V, 0V, -1.5V, therefore the second battery is effectively reversed i.e. a negative voltage, which therefore causes that motor to reverse direction, hopefully moving the robot away from the obstacle. The circuit (wiring) diagram is shown in figure 8. The other trick is to ensure that when the robot is moving forwards i.e. its default behaviour, each motor is powered by a different battery, otherwise the batteries will not discharge evenly.
Figure 8 : Circuit diagram 2
Figure 9 : assembled robot
When wiring the robot ensure that the switch controlling each motor is mounted on the opposite side of the robot. When the switch is pressed you want the switch to remain pressed, if the controlled motor is on the same side of the robot as the switch the robot will just oscillate i.e. move backwards then forwards, by reversing the motor on the opposite side the robot keeps the active switch pressed into the wall, allowing the robot time to turn. When assembled if the robot spins around in circles you will need to reverse the wires on one of the motors. If it does not turn away from the wall you will need to switch over the switches. Although simple, the robot does work quite well. The completed robot is shown in figure 9, as with over robots had to move the batteries over the drive motors to get better traction. The 3D model can be downloaded here: LINK. A video of it in action is available here (LINK).
To rotate the robot away from an obstacle in a more predictably way, i decided to try a simple RC timer + relay. When a switch is pressed the capacitor is charged via the 470 ohm resistor (just to limit in rush current), as the voltage across the capacitor passes 0.7V the transistor will switch on, energising the relay, reversing one of the motors. This motor will remain reversed for approximately 1 second, hopefully spinning the robot away from the obstacle (hopefully). To test the circuit it was simulated in SPICE, as shown in figure 10 (LINK), the collector resistor simulates the coil resistance of the relay. The hope here is that once the relay is triggered the hold voltage/current will be significantly smaller than the initial turn on values, allowing the relay to remain on for a longer period of time. The full circuit diagram is shown in figure 11, the eagle schematic can be downloaded here: (LINK).
Figure 10 : SPICE
Figure 11 : Circuit diagram 3
Using the eagle schematic a netlist can be produced that can be imported into VeeCad to produce a layout as shown in figure 12 (LINK). The assembled robot is shown in figure 13. A video of this robot in action is available here (LINK).
Figure 12 : Veroboard layout
Figure 13 : assembled robot
As the circuit board is under the robot you don't really see the LED, also there is no snubber on the relay contacts i.e. the back EMF from reversing the motor will generate a relatively large voltage that could damage the relay contacts (arcing/sparks), therefore, decided to remove the LED and add a simple RC snubber. Ideally this should be across the switch contacts, but have put it across the motor to simplify the layout. Not sure if it was needed but also reduced R1 i.e. the base resistor, to 4K7 ohms. This was because the 3V relay's coil resistance was a little lower than i thought i.e. needed more collector current. The 10K resistor should be fine, but just wanted to make sure the relay turned on at lower voltages i.e. as the batteries start to run out. Final parts list:
Costing comes in quite cheap, the most expensive part is the relay at £1, followed by the microswitchs at 41p, and the motors at 22p. Final cost is still within the original £2.50 budget, even when you include veroboard and batteries.
Figure 14 : Circuit diagram 4
Figure 15 : Veroboard layout
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Contact details: email - firstname.lastname@example.org, telephone - 01904 32(5473)Back