Build a Robot (Autonomous Navigation)
Goals: powerful, yet inexpensive and easy (just follow the instructions).
Disclaimer: I am not responsible for any misfortune incurred as a result of this content.
What to get:
What |
Notes |
Price * |
DFRobot Romeo |
robotshop.com part: RB-Dfr-36 |
$37 |
USB A/B cable |
Search ÒUSB A/B cableÓ on amazon.com for an example. You can probably find this, cheap, at a thrift store. |
$2 |
6-AA Battery Holder |
robotshop.com part: RB-Cyt-50 |
$1 |
2.1mm DC Barrel Male Plug w/ Cable |
robotshop.com part: RB-Cyt-124 |
$1 |
Wire stripper |
|
|
Electrical tape |
|
$1 |
Six (or more) AA batteries |
|
$10 |
Clipboard |
About 9Ó wide, or at least 6 ¼Ó wide. At least 10 ¼Ó long from one end of the board to the opening edge of the clip. This will be the chassis. You can probably find this at a thrift store. |
$1 |
Ruler |
To measure and to make straight lines |
|
Razor knife |
Used to score the clipboard |
|
Serrated knife |
Can be an old serrated kitchen knife. Or you could even use a Sawzall. Used to cut the clipboard. |
|
Drill |
|
|
Tamiya Twin Motor Gearbox |
robotshop.com part: RB-Tam-01 |
$10 |
Tamiya Narrow Tire Set |
robotshop.com part: RB-Tam-26 |
$7 |
Pololu Ball Caster with 1" Plastic Ball |
robotshop.com part: RB-pol-96 |
$5 |
Philips screwdriver(s) |
To mount gearbox and ball caster |
|
25' #22 Gauge Hook-Up Wire |
robotshop.com part: RB-Ibo-88 |
$2 |
Permanent marker |
To mark wires for identification |
|
Two rubber bands |
One big enough to wrap around the battery holder and the gearbox, to keep the battery holder on the clipboard. The other is optional, and used to synch the two motors together. Maybe look for these when you get to that point in the instructions. |
|
DFRobot URM V3.2 Ultrasonic Sensor |
robotshop.com part: RB-Dfr-11 |
$15 |
230mm F / F 10 Pin Jumper Wire |
robotshop.com part: RB-Dfr-109 |
$2 |
Tamiya Universal Arm Set |
Optional.
Can simply tape parts to the chassis instead (itÕs a choice of solidity and
aesthetics). |
$7 |
Two 4-40 x 3/8" Socket Cap Screws |
Fastenal part: 1123043 ? |
¢ |
Two 4-40 Machine Screw Nuts |
Fastenal part: 36012 |
¢ |
3/32Ó Allen Wrench |
Optional |
|
Pololu LSM303DLHC 3-Axis Compass Module |
robotshop.com part: RB-Pol-201 or pololu.com part: 1273 |
$18 |
One 2-56 x 1/2" 18-8 Grade Socket Cap Screw |
Fastenal part: 73402 |
¢ |
One 2-56 Machine Screw Nut |
If you decide not to purchase the Tamiya Universal Arm Set, then get three of these (in total) to use as spacers. Fastenal part: 36006 |
¢ |
2mm Allen Wrench |
Optional |
|
DFRobot Serial Bluetooth Module |
robotshop.com part: RB-Dfr-10 |
$22 |
* Prices are approximate and do not include taxes or shipping
Tools are italicized.
You can stop at any double-line/color change in the table above (in case you have a budget to keep). Here is a list of each group – its purpose and accumulative cost:
- Processing ($39)
- Battery Power ($52)
- Mobility ($77)
- ÒSightÓ ($101)
- Orientation ($119)
- Telecommunication ($141)
Instruction photos and source code
are coming soon. If you have any questions, please feel free to email alan@olsen.org
Instructions:
Note: Although the DFRobot Romeo isnÕt an actual ÒArduino,Ó I refer to it as one throughout the following instructions
Stage 1 – Processing (Arduino)
1. Download and install the Arduino software
a. From here - http://arduino.cc/en/main/software
b. Or search Google for ÒArduino downloadÓ
2. Plug USB cable into Arduino board and computer
3. Open the Arduino software
4. Select the board (ÒToolsÓ menu \ ÒBoardÓ \ Arduino Duemilanove)
5. Open the blinking LED example program (ÒFileÓ menu \ Examples \ Basics \ Blink)
6. Upload the program to the Arduino (ÒFileÓ menu \ ÒUploadÓ)
7. Wait for upload to complete (the TX/RX or transmit/receive LEDs stop blinking)
8. Observe that the LED program is running
9. Unplug USB cable from Arduino
Stage 2 – Battery Power
1. Strip the wires ends for the battery holder and the DC Barrel plug
2. Twist the end of the red/positive wire on the battery holder together with the wire for the center of the DC barrel plug
3. Twist the end of the black/negative wire on the battery holder together with the wire for the outside of the DC barrel plug
4. Insert batteries into holder
5. (Optional: If you have a voltometer/multimeter, you can test to make sure that the polarity is correct by inserting the meterÕs positive probe in the center of the DC barrel and touch the negative probe to the outside of the barrel. If the reading is positive, then the connection is setup properly)
6. Lay/press exposed wire ends flat against the wireÕs plastic shielding (do this for each wire)
7. Use electrical tape to conceal exposed wire ends by taping it to the wireÕs plastic shielding (do this for each wire)
8. Plug the DC barrel into the Arduino
9. Observe that the LED program is running
10. Unplug the DC barrel from the Arduino
Preparing the Chassis for Remaining
Stages
Cutting
1. Using a razor, score a straight line along the clipboard, 10 ¼Ó in towards the clip, parallel to the clip.
2. Score both sides thoroughly
3. Apply pressure to break the board along the line
4. Use the blade to clean up the frayed area
5. Note: The cut end of the board is the ÒbackÓ of the robot
6. Using a pencil, draw a line down the middle of the board, long-ways on the top and bottom of the clipboard
7. Using the serrated knife, cut two 2 ½Ó long lines in from the back of the robot. One line 1 3/8Ó above the middle line, the other 1 3/8Ó below.
8. Cut two 2 ½Ó long lines in from the back of the robot. One line 2 ½Ó above the middle line, the other 2 ½Ó below.
9. Score a line between the front-most ends of the 1 3/8Ó mark and the 2 ½Ó mark, above the middle line (Score thoroughly on both sides of the clipboard). Repeat with marks below the middle line.
10. Apply pressure to remove each of the two small rectangular segments
11. Use the blade to clean up the frayed area
Drilling
1. Flip the clipboard over to the bottom side of the robot
2. Place both rectangular segments on top of each other, lay them long-ways along the middle line, 5/8Ó from the front of the robot
3. Use enough tape to temporarily secure these segments firmly on the board
4. The ball caster enclosure has a large/wide dip, and a small/narrow dip. Place the flat side of the enclosure on top of the rectangular segments, at the front of the rectangular segments, with the large/wide dip pointing towards the front of the robot.
5. Hold the enclosure firmly in place with one hand
6. With the other hand, draw through each hole onto the rectangular segments
7. Remove the enclosure
8. With a 3/32Ó bit, drill where the dots were marked
9. Remove [and dispose of] the tape
10. Remove [and keep] the rectangular segments
11. Flip the clipboard back over to the top side of the robot
12. (Orientation) If you plan on ever installing the compass - With a 3/32Ó bit, drill a hole anywhere (say, ½Ó) below the front-most hole of the Arduino
13. With a ~7/32Ó bit, drill two holes about 2 ¾Ó apart from each other, centered along the middle line, 1 ½Ó from the front of the robot
14. Repeat previous step, but 3Ó from the back of the robot (this time, only one hole is really necessary - used to send wires from the battery holder to the Arduino)
15. With a 7/64Ó bit, drill two holes 2 ¼Ó apart from each other, centered along the middle line, 1Ó from the back of the robot (used to mount the gearbox)
16. Center the Arduino on the middle line, with the USB connecter facing the back of the robot, and the opposite end of the Arduino located 2Ó away from the front of the robot
17. Hold the Arduino firmly in place with one hand
18. With the other hand, draw thick dots through each hole of the Arduino onto the clipboard (you really only need to do this for the holes that you want anchored to the clipboard)
19. Remove the Arduino
20. If you will be using more than just tape to anchor the Arduino to the clipboard (i.e. if you bought the Tamiya Universal Arm Set) - With a 7/64Ó bit, drill where the dots were marked
21. (ÒSightÓ) If you plan on ever anchoring an ultrasonic sensor onto the board with the Tamiya Universal Arm Set (rather than taping it down) - With a 7/64Ó bit, drill two holes 1 13/16Ó apart from each other, centered along the middle line, 3/8Ó from the front of the robot
22. Optional: Erase the middle lines
Stage 3 – Mobility
1. Flip clipboard over to the bottom side of the robot
2. Place rectangular clipboard segments back where they were when drilling
3. Stack all of the included ball caster ÒspacersÓ on top of the rectangular segments, and the ball caster enclosure on top of that
4. Use the included screws and nuts to mount the enclosure
5. Insert the rollers, and finally the ball caster
6. Assemble gearbox and wheels (following any included instructions)
7. Put wheels on axels
8. Optional: Fasten a rubber band around the motor casing (this may help keep the unit together and reduce gear noise)
9. Cut four 9 ½Ó wires
10. Strip wire ends
11. Attach wires to motors (insert ends through small metal eyelids located on the sides of the motors, then bend/fold them back and/or solder them)
12. Holding the gearbox with mounting holes closest to you and motors extending upward, mark the opposite end of each wire with a marker:
a. Close, left motor wire, one mark
b. Far, left motor wire, two marks
c. Close, right motor wire, three marks
d. Far, right motor wire, four marks
13. Using included screws and nuts, mount the gearbox on the bottom of the robot
14. Pass detached wire-ends through the front-most, large hole, below the middle line
15. Tape middle of wires to the clipboard (so they donÕt sag when the robot is right-side-up)
16. Flip the clipboard back over to the top side of the robot
17. Insert wires into motor driver terminals, and secure them in with a screw driver:
a. One mark goes in +M1
b. Two marks goes in -M1
c. Three marks goes in +M2
d. Four marks goes in -M2
18. Cut two 13Ó wires
19. Strip wire ends
20. Remove tape from battery holder wires
21. Twist in one new wire-end into each batter holder wire-end
22. Re-tape wires
23. Mark the detached wire-ends with a marker:
a. The one attached to the positive (red) wire, one mark
b. The one attached to the negative (black) wire, two marks
24. Pass detached wire-ends through the back-most, large hole
25. Flip clipboard over to the bottom side of the robot
26. Pass wire-ends through the front-most, large hole, above the middle line
27. Tape middle of wires to the clipboard (so they donÕt sag when the robot is right-side-up)
28. Flip the clipboard back over to the top side of the robot
29. Insert wires into motor power terminals (one mark goes in VIN, two marks goes in GND), and secure them in with a screw driver
30. Position Arduino according to the previous ÒDrillingÓ instructions
31. You can either tape the Arduino to the clipboard (i.e. if you didnÕt buy the Tamiya Universal Arm Set), or use some of the screws and nuts included in the Tamiya Universal Arm Set to anchor the Arduino to the clipboard
32. Place battery holder, flat, just above where the gearbox is
33. Use a rubber band to secure the battery holder to the clipboard and gearbox
34. Plug USB cable into Arduino board
35. Upload mobility program (Not available for download yet - stay tuned)
36. Unplug USB cable from Arduino
37. Plug the DC barrel into the Arduino
38. Observe that the mobility program is running
39. Unplug the DC barrel from the Arduino
Stage 4 – ÒSightÓ
0. Regarding the ultrasonic sensor, "Before you wire anything up, dependant on the version you have make sure the two jumpers to the right hand side of the device are set to TTL mode. You'll also find a secondary jumper on the left hand side, you must break this connection or you may damage your device." (from http://milesburton.com/URM37_Ultrasonic_Distance_Measurement_Library#URM37_Setup)
1. Peel off 5 jumper wires (they can remain attached to each other)
2. Plug jumper wires onto the ultrasonic sensor on pins 1, 2, 7, 8, and 9
3. Plug the other end of pin 1 onto Analog 5V #2
4. Plug the other end of pin 2 onto Analog GND #2
5. Plug the other end of pin 7 onto Analog 5V #3
6. Plug the other end of pin 8 onto Digital #9
7. Plug the other end of pin 9 onto Digital #8
8. Either tape the jumper ends (attached to the sensor) to the front end of the robot/clipboard, or complete the following two steps to anchor it with screws.
9. Use the 4-40 screws and nuts to mount the bottom, back (pin-side) of the ultrasonic sensor to the half-circles on the angle brackets (in the Tamiya Universal Arm Set). You can tighten them with your fingers or with a 3/32Ó Allen Wrench
10. Use two screws and nuts from the Tamiya Universal Arm Set to mount the first holes of the angle bracket (i.e. the holes farthest from the half-circles) to the front of the robot (put the bracket underneath the clipboard, pointing up)
11. Download and setup the sensorÕs Arduino library
a. From here - https://github.com/milesburton/URM37
b. Or search Google for ÒURM37 libraryÓ or ÒDFRobot URM V3.2 Ultrasonic Sensor libraryÓ
12. Restart the Arduino software
13. Plug USB cable into Arduino board
14. Upload ÒsightÓ program (Not available for download yet - stay tuned)
15. Observe that the ÒsightÓ program is running
16. Unplug USB cable from Arduino
Stage 5 – Orientation
1. Solder the straight pins on to the compass, with the long ends up
2. Peel off 4 jumper wires (they can remain attached to each other)
3. Plug jumper wires onto pins for VIN, GND, SCL, SDA
4. Plug the other end of VIN onto Analog 5V #5
5. Plug the other end of GND onto Analog GND #5
6. Plug the other end of SCL onto Analog In #5
7. Plug the other end of SDA onto Analog In #4
8. Use the 2-56 screw and nut to mount the compass to the robot. Also, use the smallest spacer from the Tamiya Universal Arm Set (if purchased), or the additional 2-56 nuts, to put space between the compass and the clipboard. You can tighten the screw with your fingers or with a 2mm Allen Wrench
9. Download and setup the sensorÕs Arduino library
a. From here - https://github.com/pololu/LSM303
b. Or search Google for ÒLSM303 libraryÓ
10. Restart the Arduino software
11. Plug USB cable into Arduino board
12. Upload orientation program (Not available for download yet - stay tuned)
13. Observe that the orientation program is running
14. Unplug USB cable from Arduino
Stage 6 – Telecommunication
Note: Bluetooth and USB share the same communication channel on the Arduino, so the Bluetooth adapter has to be unplugged in order to upload anything via USB
1. Plug USB cable into Arduino board
2. Upload telecommunication program (Not available for download yet - stay tuned)
3. Unplug USB cable from Arduino
4. Insert Bluetooth adapter on Arduino
5. Plug the DC barrel into the Arduino
6. Run telecommunication client on computer (Not available for download yet - stay tuned)
7. Observe that the telecommunication program is running
8. Unplug the DC barrel from the Arduino
Instruction photos and source code are coming soon. If you have any questions, please feel free to email alan@olsen.org
(Last
updated 7/13/2013)