Boe-Bot with Crawler Legs
Description: Boe-Bot with Crawler Legs
Experience level: Intermediate
Time required: 3 hours construction, 8 hours programming
While the Boe-Bot's construction was relatively simple, it provided me with an excellent introduction to robotics. In the course of this project, I learned all about how servos operate as well as how a STAMP module works. In order to utilize this knowledge, I also learned some of the BASIC programming language.
Building the Kit
Before I began building the kit, I knew I was ultimately going to use the Crawler Kit (P/N: 282976) for the Boe-Bot, so I made a mental note to skip the steps provided in the manual concerning the wheels and installed the crawler legs instead. I also knew that when I had to run tests to determine parameters, I would be running them with the crawler legs instead of the wheels. This meant that instead of adding the wheels, I would be adding the crawler legs.
Many of the programs I did that are present in the instruction manual are not included in this article. However, for anyone engaging in this project, I strongly recommend they give these other programs a try because they really help to get a grasp of what exactly they are programming. Doing these other programs really helps you learn BASIC. It's pretty fun, makes the ultimate project that much more fulfilling, and seriously cuts down on time to change parameters because you understand the programming language.
Onto the construction of the Crawler Boe-Bot
These are the pieces you will use to construct the Chassis of the Boe-Bot. Notice the STAMP module is already in the board.
Before constructing the robot, it is a good idea to calibrate your servo motors. This way, the servos will turn at the same rate given a specific pulse. In order to do this, follow the instructions located on pages 60-70. Calibrating the motors correctly will make your program writing later on much easier, in that you won't have to take into account how much more sensitive one motor is than the other. Once again, I strongly suggest you try to do many of the programs before you build the Bot. However, you can do these programs after the Boe-Bot is built.
1. Insert the rubber ring in the center of the chassis.
2. Attach the 4 standoffs to the chassis by using 4-40 screws. Note that for each corner there are 2 screw-holes, and you want to attach the standoffs in the outermost of the two screw-holes.
3. Remove the servo-horns from the servo motors by unscrewing the front screw. Then attach them to the chassis as shown below with four 4-40 screws and four 4-40 nuts.
4. Attach the battery pack as shown in the picture above using two 4-40 screws and two 4-40 nuts (the nuts are located on the other side of the chassis). Mark the servo wires 'Left' and 'Right' using a little piece of tape (where the closer servo is left and farther is right). Then pull all wires through the rubber ring.
Typically, this would be the point in time where we would screw on the wheels to the servos. However, we are adding the crawler legs to this kit, so we begin construction on the crawler legs! As a quick note before assembling the crawler legs, many of the pieces look very similar, and for some, the only difference is a millimeter or two in height. So make sure you are using the right piece each time.
5. Set up the metal sides such that they mirror each other like shown below.
6. Attach a 3/4" nylon standoff to each center screw-hole using a 10 mm screw.
7. Then attach a 1" nylon standoff to each side of each metal siding using a 12 mm screw. On the side with 2 cut out lines, make sure to screw it into the lower hole. On the side with 3 cut out lines, insert a nylon washer between the metal siding and the standoff.
8. Then using a 12 mm screw, attach one "leg" (the metal arm with 4 holes) to each standoff with a plastic screw cover. Make sure each leg is screwed in using the third hole from the top (where the top is the side with the hole closest to the edge) (see photo for reference).
9. Using a 7/64" drill bit or a hobby knife, expand one of the holes at the end of the servo horns.
10. Assemble the middle legs as described in the user's manual. Pay close attention to the order and orientation and make sure you have pliers handy.
11. Attach the middle segment of the middle legs to the middle nylon standoffs using a 12 mm screw.
12. Attach the other two segments as described in the user's manual, and once again, make sure you are using all the correct components in the correct order.
13. Now that you've completed construction of the legs, attach them to the chassis as described in the instructions.
14. Close all of the screw-caps.
15. Screw in the STAMP Board.
16. Plug in the battery to the plug marked 6-9 VDC
17. Plug in the "left" servo wire into the P13 port and the "right" servo wire into the P12 port.
Your Boe-Bot is now complete, and you are now ready to program the Bot to do your bidding!
Of course, I strongly recommend you check out the book included with the Boe-Bot so you can learn the programming behind the Boe-Bot.
Testing and Deciding
There are over 5 different ways to have your Boe-Bot navigate its environment, from a pre-programmed route to clinging to shadows. For my purposes, I used my newfound programming skills to utilize two of these ways: by feel and by infrared sensor. I chose to experiment with these two because there was circuitry involved, and these methods seemed like they would work best with the crawler legs.
The first method of navigation I tried was navigating with whiskers. I built the circuit as it was instructed in the book, resulting in a circuit that looked like this:
The premise of the circuit is that under normal conditions, the Boe-Bot will have a completed circuit going through STAMP ports P5 and P7, allowing the neutral program to run. I set this program to tell the Boe-Bot to step forward. However, whenever the whiskers hit a wall, they touch a metal spike in the circuit, thus shorting the circuit. Now no voltage is applied to either P5 and/or P7. This tells the STAMP to run a different program. I designed this program to tell the Boe-Bot to back up and turn in the corresponding direction (depending on which whisker hit the metal spike). Hypothetically, this program would allow the Boe-Bot to roam around a room until its battery died.
However, I ran into one major problem with this design. Whenever the Boe-Bot ran into a wall, it continued running into the wall, going nowhere. I looked over at the circuit, and it was wired correctly. When I tested to see if the programs ran correctly when I manually pushed in the whiskers, the programs worked like clockwork. So I came to the conclusion that the whiskers weren't being pushed in far enough when they hit the wall. Sure enough, when I watched it walking into the wall, this was true. All that was needed to fix this problem was to attach a little extra metal on the outside of the spikes, so the whiskers wouldn't need to be pushed back as far to trigger the right program. Nonetheless, I decided to move on to a new mode of navigation: infrared headlights.
My next method of navigation was to try using infrared headlights. I built the circuit based on the schematic given in the book, resulting in the following circuit:
The basic idea of infrared headlights is that two headlights (LEDs) would send out a pulse of infrared light, and if this light was reflected by a nearby obstacle or a wall, the infrared receptors would send a pulse to the STAMP to run a program based on which headlight sent the signal. In theory, this program would allow the Boe-Bot to roam around the room avoiding obstacles and continue walking around.
Now THIS was a method of navigation that worked out well for me. The Boe-Bot did exactly what it was supposed to do; I had written a simple program telling the Boe-Bot to walk forward until it was a little less than a foot from a wall, and then change directions to avoid colliding with the wall. It worked perfectly, masterfully avoiding walls and roaming around the office for quite some time.
All in All
All in all, my experiences with the Boe-Bot were merely a sampling of the entire kit, for there is so much more to do with the STAMP module. Not only are there several methods to navigate with, but also many more strategies to use within these methods that I never even touched. With a good understanding of the module and programming and a good imagination, the sky is the limit.
Ben Adler is currently a first year student at Rice University. While generally undecided about his major, he plans on majoring in some type of science or engineering. He is an audiophile and loves to recycle unwanted speakers, making his own speaker systems.