Do you like my hacking? If so, please consider leaving something in the
Fediverse (Mastodon etc): @Sprite_tm@social. spritesmods.com
To make a bristlebot who can go forward, I needed to be able to steer it. There is more than one way to do that: on youtube are videos of people who use a servo to make the bot 'grab the floor' left or right of it, and even people who use propellors to steer the bot. I decided on what seemed to be the most straightforward way: join two bristlebots at an angle to each other. This way, when both motors are on, the bot should go forward just as any bristlebot would do. When just one motor is on, though, the 'dead' toothbrush head should function as an anchor, making the whole device turn around it. Ok, so much for theory; let's build it!
We start with two brushes. Unfortunately, the only toothbrushes I could get for
cheap were brushes with straight bristles. They have to be at an inclination
with the ground for the bristlebot to work, so that needed fixing.
The easiest way to fix it is to shave off the bristles in such a way that the head
of the brush itself is at an angle with the floor.
And this is the result. As you can see, the bristles are at an angle with the
underlying surface, which is just what we need for the 'bot to work.
And with the motor in place, the bristlebot principle is visible. All that's
left is building a second one of these, and gluing them together. With that, the
steering and movement part is done.
To correct any deviation from the straight line I wanted the bot to move in, the bot has to know what that deviation is. I decided to use an age-old project of mine for that: while I couldn't find the mouse I used in this project anymore, I did find one with the ADNS5020-chipset, which interfaces to a microcontroller in about the same way. I got out the sensor plus its optical assembly and proceeded to put it in between the V of the two joined bristlebots.
This is the mouse sensor hardware. The original LED in the mouse was a 5mm red
one, but because that would take too much room, I decided on replacing it with
a much smaller SMD white LED.
And here's the contraption glued together: the two bristlebots conjoined in a
V-shape with the mouse sensor snugly in between them. The inclination of the
brushes actually makes the device seem aerodynamic.
Back view. The sensor needs to be at a certain distance from the surface.
Luckily, that's documented in the datasheet, or can be measured in the
original mouse.
A mouse sensor, two demolished toothbrushes and two motors don't make an
intelligent robot. Some intelligence to tie it all together is needed. I
decided on this bare-bones schematic to make the bot do it's thing:
(The microcontroller, by the way, is an ATTiny13 AVR; I forgot to label it
in the schematic.)
And after some frantic soldering, the bot ended up looking like this. The
'tail' actually is the ISP-connector I used to program the AVR; the jumper
is a makeshift on/off-switch
With the hardware in place and the glue drying, it was time to build the software that controlled it all.