Coasterbot, aka Robie the Robot
Robie is a coasterbot I designed and built as part of the MAKE: Robot Build Contest. As required, Robie uses DVDs as an integral part of his structure. He can navigate his way around a room, avoid obstacles, and support additional sensors.
The chassis consists of one standard-sized DVD and two mini-DVDs linked by loosely fitted screws. The DVD up front has two Boebot wheels, while the mini-DVDs each have a caster in the bottom center and form a swishing tail for the robot. The minis also provide extra space for additional sensors, processors, or transport capacity. I used two mini-DVDs here, but more could be added very easily.
For obstacle avoidance, Robie uses a PING))) ultrasonic sensor. The sensor is mounted on a servo and can rotate 180 degrees. The motors are modified Hitachi HS-322HD servos, used with an L293D H-bridge. The microprocessor used is an Ardweeny Arduino, programmed using Processing.
There are two power sources: a 9V battery for the Ardweeny and H-bridge, and 4 x 1.5V AAA batteries to drive all three servos.
Photos
Photos are available at my Flickr coasterbot set. There are also a number of them incorporated as part of my build log here.
Schematic
Here is Robie’s electronic layout. It is rather similar to the one-hour coasterbot build done by MAKE, but with the addition of the PING))) sensor and its positional servo. Not shown: voltage regulator, provided by the Solarbotics kit.
An Eagle file is available on request.
Video
I have quite a few videos of this project, which were featured in this blog as they occurred. There is also a complete list of them at my YouTube channel (tagged coasterbot). For a summary, though, the following are the most useful and fun:
Kids Playing with Coasterbot. The title says it all. The kids really had fun with this.
Official “Contest Entry” Video. Robie navigates his way around a room and out of some tight corners.
Coasterbot folding: An early design concept which was featured in the MAKE online blog. I did not end up using this in the final version, but it’s a possibility for future design direction.
Materials
- 1 DVD
- 2 mini-DVDs
- 2 Boebot wheels with flat rubber treads
- 2 Hitachi HS-322HD servos, modified for continuous rotation
- Ardweeny
- Solarbotics breadboard voltage regulator kit
- L293D quadruple half-H driver
- Solderless breadboard (3.25″ x 2.125″)
- PING))) sensor and mounting bracket
- Parallax servo motor
- 9V battery with holding clip and snap leads
- 4 AAA batteries with case and built-in switch
- 2 casters
- Assorted screws, nuts, and washers
- Foam tape.*
*Please note: The foam tape is only used for a few components on top of the DVD. I did not use it for the servos driving the wheels! If this robot needs to be displayed anywhere, I will happily replace the foam tape with a more permanent fixture.
Software
The Ardweeny was programmed using Processing, a variant of Java. The algorithm is straightforward. Robie moves forward until the PING))) sensor detects an object that is in front and within a certain distance. When that happens, he looks to see if there is a good path 45 degrees away, defined as something further than front object distance threshold * sqrt of 2 (if it is less, that means the object is wide enough to force another turn if we go 45 degrees). If that fails, he looks for a path 90 degrees away. If that also fails, he backs up and periodically looks for a good “forward” path of 45 or 90 degrees. If Robie has been backing up for a while, he will do a 180 when there is room to do so. If there is no room to turn around, he will keep backing up and repeat that loop.
[…] the Robot: [Project Site] [Video] […]
[…] the Robot: [Project Site] [Video] […]
[…] the Robot: [Project Site] [Video] […]
[…] the Robot: [Project Site] [Video] […]
[…] I decided to go ahead and cannibalize Robie’s PING))) ultrasonic sensor, partly because Robie sadly did not survive the kids playing with him, and I am already familiar with the PING))) library […]