Introduction: How to Build the ProtoBot - a 100% Open Source, Super-Inexpensive, Educational Robot
The ProtoBot is a 100% open source, accessible, super inexpensive, and easy to build robot. Everything is Open Source--Hardware, Software, Guides, and Curriculum--which means anyone can access everything they need to build and use the robot.
It's a great way to learn the basics of soldering, electrical engineering, and programming.
This Instructable covers how to build one, from the bare board, components, and 3D printed pieces, to a fully assembled (and hopefully functional!) ProtoBot.
(If you want to learn more about the ProtoBots in general, and/or The ProtoBot Project, visit https://theprotobotproject.wordpress.com, or the ProtoBots Github, at https://github.com/Bobcatmodder/ProtoBots)
You can also find a PDF Version of this guide at https://github.com/Bobcatmodder/ProtoBots/blob/master/Guides/ProtoBot%20Complete%20Build%20Guide.pdf
Step 1: Supplies: Parts
Once you're ready to get started, here's what you'll need. Quantities are for 1 robot.
Parts: (Link #1 is eBay, #2 is AliExpress, usually cheaper)
- 2 x N20 Gearmotors, 300RPM, 12V (link, link)
- 1 x Arduino Nano (link, link)
- 2 x Plastic Wheels, 39MM, 3MM hole (Lot of 10: Yellow link, Yellow link, Pink link)
- 2 x Tactile limit switches (10 pieces link)
- 2 x 220 Ohm resistors (100 pieces: link, link)
- 4 x 10K resistors (100 pieces: link, link)
- 1 x L293D motor driver (link, link)
- 2 x TCRT5000L IR Sensor (10 Pieces: link, link)
- 7 x DuPont Female-Female wires (40 Pieces: link, link)
- 1 x 9V Battery Clip (10 pieces: link, link)
- 18 x male header pins (200 pieces: link, already bent 90 degrees link)
- 32 x Female Header Pins (400 pieces: link, link)
The quantities only apply to listings where a single item is sold (Arduinos and motors), since everything else is in bulk and you'll have extras leftover. When the listings are in excess of the quantity needed, it's usually cause it's cheaper to buy in bulk than single items. I'm not complaining!
One more thing: Everything here is coming from China, and therefore shipping normally takes a month, and sometimes two in extreme cases. However, I've never had anything not show up eventually.
Step 2: Supplies: Parts (the Rest of Them)
But wait! There's more!
You still need a few more parts, namely, the 3D printed parts, the circuit board, the battery, and the "Hook and Loop Fastner" (Like Velcro, for example) for the battery.
- Hook and loop fastner (eBay Link, one meter of the stuff)
- Battery (eBay Link, but just buy it at the store)
3D Printed Parts:
- STL files are at https://github.com/Bobcatmodder/ProtoBots/tree/master/STLs.
- When you go to print, resize them to 105% size, and change infill to 30%. No supports are needed, you determine if you need a raft. Antennas may fit easier onto the bump sensors if scaled a little larger.
- If you want to try etching it yourself, go ahead. Everything you should need is at https://github.com/Bobcatmodder/ProtoBots/tree/master/PCB
What I did (The easier way, if you don't already have the stuff):
- I used www.pcbway.com, and they'll let you do 5 pieces for $5, not counting shipping. When we make 20 or so pieces for STEM camps, it costs about $24, shipping included.
- Create an account with them, upload the gerber file zip, and they'll get you your requested number of boards.
Step 3: Supplies: Tools
Now this is possibly already stuff you have, but I'll give links here anyways.
Tools: (Links to Amazon)
- Soldering iron ($7 on Amazon, but we've used them in camps, and I'm very impressed, they outperform the 25$ Wellers we have.)
- Solder (Comes with the $7 iron, so you don't need it now, but this will last you forever)
- Helping Hands (Not needed, I haven't bought myself any yet, but they sure make life easier)
- Solder Sucker (Really helpful when it's not clogged)
- Brass wool cleaner (For keeping your iron tip in good condition)
- Soldering Iron Holder (So you don't accidentally lay your arm on the iron)
- Wire Clippers (You will need these)
- Wire Strippers (You can do without, but they make life much easier)
- Needle Nose Pliers (Not absolutely needed, but nice)
- High Temp Hot Glue gun and Glue (CA Glue or something else might work too)
The conservative spender may be shaking his or her head at this huge amass of tools to be purchased, but keep in mind- Each of these tools, if properly cared for, will last for years, and can be used for a variety of things besides making little robots. (That being said, I feel you!)
Step 4: Motor and Bump Sensor Assembly: Cut, Strip, 'n Tin Wires
Let's get started with the wires for the Bump Sensors and Motors. You'll need to set up you soldering iron and a workplace for soldering, and you may want some form of ventilation. A small, low speed fan is nice.
- Separate 2 sets of 4 wires from your Female to Female jumpers.
- Use your wire cutters to cut them in the middle of each set.
- Using your strippers, strip about 5MM or 1/4th insulation off the ends of the wires.
- Separate the wire ends, then twist the individual copper strands to keep them tidy.
- Tin each wire end by holding your tinned iron on top of the wire, while applying the wire to your solder.
When you're done, you should have 4 sets of 2 wires each, with 2 tinned wires on one end, and 2 female connectors on each end.
Step 5: Motor and Bump Sensor Assembly: Solder Motors and Sensors
Keep your soldering iron on, 'cause we're not quite done yet...
- For each set of wires, bend the tinned ends 180 degrees apart.
- Insert the wire ends into the connector tabs on the motors and bump sensors, as shown in the pictures.
- Secure the motors and sensors somehow.
- Using your tinned iron, solder the wires to the connector tabs.
Step 6: IR Sensor Assembly: Cut, Strip, 'n Tin
With your motors and bump sensors finished, it's time to move on to the IR sensors.
- Separate a set of 3 female-female wires.
- Cut them in half.
- Strip about 5MM or 1/4 inch of insulation off the ends.
- Tin the wires by holding them on your solder, then applying your tinned iron.
When you're done, you should have 2 sets of 3 wires with the female connectors on one end, and tinned wire ends on the other.
Step 7: IR Sensor Assembly: Prepare Sensors
This is probably the hardest soldering you'll have to do. Take your time!
- Use your clippers to cut off the extra leads, leaving about 5MM or 1/4 inch exposed from the plastic body of the sensor.
- Figure out the orientation of your sensor based on the picture.
- Bend the GND lead for the Blue LED over to contact the GND lead of the Black LED.
- Secure the sensors, then use your soldering iron to make a solder connection between the GND leads that you connected.
Step 8: IR Sensor Assembly: Solder Wires
Now we're ready to connect the wires to the IR sensors.
- Separate the wire ends, so that you've got the individual wires separated about 2.5CM, or 1 inch.
- Begin soldering the wires, in order, to each of the 3 leads from the sensor.
- If you're using masking tape like me, when you've finished with one side, flip the sensor over and solder the other side.
Note: Since the DuPont Wires are randomly colored, it isn't easy to stick with a color convention, so I'd just recommend keeping it consistent between sensor pairs. I usually try do them in order, with GND, Sense, and then +5V, with the darkest end color being GND.
Step 9: Assemble Battery Cable
Last, but not least, we'll need to solder the battery cable together.
- Get your last 2-pin length of male headers, then push the plastic divider piece down to roughly the middle of the pins.
- Using a pair of pliers, bend one side at a 90 degree angle.
- Secure it somehow (I used a piece of foam, then added masking tape to keep the headers in place when the foam melted).
- Tin each pin, so it'll be easy to solder the wires to.
- Ensuring the polarity is correct (Red = +, Black = -), solder the battery connector to the pins.
(If your battery connectors don't come pre-stripped and tinned, you'll need to do that.)
In hindsight, it might be a good idea to put a small piece of heat-shrink tubing over the joint between the wires and header pins.
Step 10: Take a Break
Now that you've finished the sensors and motors, it's a good idea to take a break. I've assembled loads of parts for the ProtoBots, and I still need to take breaks now and then.
While you're taking your break, go ahead and take the opportunity to clean up all the little bits of metal and wire insulation on your workspace. Then, get a breath of fresh air, and get yourself a nice drink of something refreshing.
When you feel sufficiently refreshed, feel free to continue!
Step 11: Assemble Arduino
Let's get on with it, starting with putting the Arduino together.
- Take the Arduino out of the plastic bag it came in
- Find the two 15-pin lengths of headers, and insert them, short side up, into the Arduino, as shown.
- Insert the arduino into a board to make sure the headers stay at the correct angle while soldering.
- Beginning at the corners, solder each pin to the Arduino.
When you're finished, check for any solder bridging two pins. To remove excess solder, just melt it in the middle with your iron, and then drag it back away from the pins. If that doesn't work, try sucking up the excess with your solder sucker.
You'll notice I didn't solder the set of 6 pins- Those are the ICSP pins, used for programming it without the USB. We don't need them for the ProtoBot, but you can choose to solder them in, if you wish.
Step 12: Assemble the Board: Gather Parts
You should have all the parts you'll need for the board, but take a moment to gather them in the quantities you'll need.
- 1 x ProtoBotBoard
- 1 x Assembled Arduino Nano
- 2 x 220 ohm resistors
- 4 x 10K Resistors
- 1 x 14 pin length of male header pins
- 2 x 15 pin length of female header pins
- 1 x 2 pin length of female header pins
- 1 x L293D motor driver chip
To cut the female headers, I use the wire clippers, and clip them on an extra pin. You'll have to sacrifice a pin for each cut, but you should have plenty left over anyway.
Step 13: Assemble the Board: Solder Female Header Pins
You can skip the female header pins if you want, but it makes it easy to reuse the Arduino or troubleshoot in case something goes wrong.
- Insert the Arduino into the female header pins. (In this case, we're just using it to keep them aligned)
- Insert the Arduino/header pin assembly into the board, and secure it to the board.
- Beginning at the corner pins, solder the female header pins to the board.
Step 14: Assemble the Board: Solder Motor Driver Chip
Time to solder the motor driver!
- Insert the motor driver into the board, with the notch on the top of the chip aligned with the gap in the outline on the board.
- Secure it with some masking tape.
- Solder each pin, beginning with the ones in the corner, then continuing to the rest.
Step 15: Assemble the Board: Solder 10K Resistors
When you're done with the motor driver, we'll move on to the 10K resistors.
- Find you 4 10K resistors. They could be blue or tan in color, but whichever, they should match color bands in the diagram.
- Bend the leads on each resistor at a 90 degree angle downwards.
- Insert each of the 4 resistors into the spots marked "10K" on the board.
- Use masking tape to secure them to the board (Or just bend the leads, but masking tape works better).
- Solder each one, being careful not to fill in the other holes around them.
- When you're finished, clip off the extra lead above the solder joint, then remove the masking tape.
Note: I've rarely had issues with this, but sometimes clipping leads after soldering can break traces on the board, which is usually non-repairable. Take care!
Step 16: Assemble the Board: Solder the 220 Ohm Resistors
Now let's do the 220 ohm resistors.
- As with the 10K resistors, the 220 ones could be tan or blue, just make sure they match the color bands, as shown in the diagram.
- Bend the leads at 90 degrees, then insert them into the spots marked "220".
- Secure them with masking tape, or bend the leads.
- Solder the leads into the board.
- When you're finished, clip the leads, then remove the masking tape.
Step 17: Assemble the Board: Sensor Header Pins
Let's move on to headers for connecting the sensors.
- Break your set of 14-pin length male headers into 4 x 2-pin lengths, and 2 x 3-pin lengths.
- Use masking tape to secure the headers, short side down, into the spots of the boards marked "BL", "BR" (2-pin lengths), and "IRR" and "IRL" (3-pin lengths). You'll have 2 sets of 2-pin lengths left, don't worry about them for now.
- Solder the pins in place from the underside of the board. I did the 2-pin and 3-pin lengths separately, but you could do them all together.
- Remove the masking tape
Step 18: Assemble the Board: Motor Header Pins
Remember those two extra 2-pin header lengths? We're gonna use those to connect the motors.
- Using a pair of pliers, bend the longer side of the leads at a 90 degree angle.
- Insert them into the spots on the board marked "MR" and "ML".
- Secure them with masking tape.
- Solder them in place, then remove the masking tape.
Step 19: Assemble the Board: Battery Connector
Almost done! We just need to add the battery connector.
- Get your 2-pin length of female header pins, and insert them into the spot on the board marked "Bat.".
- Secure them in place with a piece of masking tape.
- Solder the pins into the board, then remove the masking tape.
Step 20: Assemble Board: Check Everything
Before you finish, take a look at the board, and make sure everything is how and where it should be.
- Solder bridges (when solder is connecting two pins together)
- Stuff placed the wrong way, or in the wrong place
- Improperly connected/soldered pins
Solder bridges are easy enough to fix, just use a solder sucker and a hot iron to get rid of the extra.
Stuff that's been soldered in the wrong way will need to be de-soldered and put back in the right way. Same procedure as removing bridges, just do it to every pin on whatever that needs to be removed.
Step 21: Take a Break!
By now, you've been soldering a while. It might be a good idea to take a break, get a breath of fresh air, and stretch those neck muscles.
While you're at it, you can clean up the soldering stuff and put away your iron, then set your hot glue gun out to start heating up.
Step 22: Robot Assembly: Gather Parts
Now you're ready to assemble the ProtoBot!
Let's make sure you've got the parts you need.
- 1 x ProtoBotBoard with Arduino Nano inserted
- 1 x 3D printed base
- 2 x 3D printed Antenna parts
- 4 x 3D printed board supports
- 2 x Bump sensors
- 2 x IR Sensors
- 2 x N20 Gear motors
- 2 x 39MM plastic wheels (3mm diameter inside hole)
- 1 x battery connector
- 1 x 9V Battery
- 1 set of Hook and Loop Fastner (Like Velcro), cut to about the length of the 9V battery
You'll also need a hot glue gun and glue, preferably High-Temp.
Step 23: Robot Assembly: Glue Motors
Let's start with the motors
- Put a generous dab of hot glue in the motor mounts.
- Place the motors into the holders, with the wires going back out of the back of the robot.
Note: Be careful that you don't get hot glue into the area that the gearboxes will be, they'll gum up and not work. I generally place my dab of glue on the ends of the motor mounts that are closest to the middle of the robot to ensure it doesn't travel to the ends, where the gearbox is.
Step 24: Robot Assembly: Bump Sensors
Let's do the bump sensors now.
- Fit your Antenna onto a bump sensor, as shown.
- Once you've got it on, you can add a dab of hot glue to secure it, if you wish.
- Put dabs of hot glue on each bump sensor platform on the base.
- Press the bump sensors into place, making sure they're lined up with the edges of the platform.
Note: Depending on how well your printer works, the antenna can be hard to put on. Just be careful not to bed the bump sensors, or break them. (This is why printing them a little larger helps a lot)
Step 25: Robot Assembly: IR Sensors
EyeR sensors! (Hehe, Geddit? Ok, ok, eye'll stop now)
- Put a dab of glue at the top of the IR sensor mounts.
- Bend the wires from the IR sensors out of the way, then insert them into the mounts, so that the tops protrude a little.
Step 26: Robot Assembly: Attach Board
Let's attach the board to the Robot now.
- Prepare your 4 circuit board supports.
- Put a dab of hot glue on each corner of the board.
- Attach the board supports to each corner.
- When you've finished, put a dab of hot glue on each support.
- Attach the board to the robot body, with the motor driver and pins towards the back, and sensor connection pins towards the front.
Step 27: Robot Assembly: Connect Wires, Add Wheels
Let's connect all the sensors and motors.
- Take the wires from the bump and IR sensors, and feed them up through the hole in the robot base.
- Plug the left motor into the port labeled "ML"
- Plug the right motor into the port labeled "MR"
- Attach your wheels to the motors.
- If they're pink, they'l had a "D" shaped hole which needs to align with the flat spot on the motor shaft.
- If they're yellow, they can go on however, but you'll likely want to add some glue to make sure they don't just spin.
- Plug the left and right bump sensors into their respective ports, labeled "BL" and "BR". The order of the wires doesn't matter here. (Note that the sensor that's on the right is not going to plug into the right port, because the antenna is actually on the left.)
- Figure out which wires are which on your IR sensors, based on the diagram and which wires are where, then plug them into the correct pins on the board, labelled PWR, IN, and GND. (Right sensor in "IRR", left sensor in "IRL").
Step 28: Robot Assembly: Attach 9V Battery
Now we'll attach the battery.
- Get your hook and loop fastener (IE, Velcro) and cut a piece of each side about as long as the battery.
- Attach one side to the bottom of the base, where the battery goes.
- Figure out which way the battery will sit, based on the direction of the wires coming from the battery lead, then attach the hook and loop fastener (IE, Velcro) so it will fit correctly. (See pictures. It doesn't matter too much if you don't get it correctly oriented.)
- Feed the wire from the battery through the hole in the base.
Step 29: Finished!
Plug the battery in! If no magic smoke escapes, you're good!
The next step is to program it, but we'll cover that in another instructable. (Will link here, as soon as I get it done)
If you're impatient, can't wait, and know how to use Arduino Libraries, the library can be found here: https://github.com/Bobcatmodder/ProtoBots/tree/master/Library
If you want to learn more about the ProtoBots in general, and/or The ProtoBot Project, visit https://theprotobotproject.wordpress.com, or the ProtoBots Github, at https://github.com/Bobcatmodder/ProtoBots
Participated in the
Epilog Challenge 9
3 years ago on Step 2
Have access to everything except 3D printer. Is there a purchase source for those parts?
Reply 3 years ago
I don't have one officially. I'd be happy to print and ship the parts to you. (You can find my contact info in the last step.)
You could also use an online 3D printing service like Shapeways.
Finally, also check at your local library for a 3D printer--I believe many libraries are getting them, and will let you print for materials + a small fee. (My local small-town library has a couple of printers.)
Thanks for your interest!
3 years ago
Congrats! Instructables staff featured this project on our social media for #OpenSourceSaturday!
You can see the posts here:
We’d also like to send you a prize, so be sure to check your PMs. :)
Reply 3 years ago
Awesome, what an honor! Thanks for the heads up!
3 years ago
Just a small point, but the older ("tan") 220 ohm resistors are colour-coded red-red-brown-gold. That's 2-2-1-5, i.e. 22 x 10^1 +/- 5%. Third band is brown, not black.
The multiplier band on 4-band (5%) resistors is always going to be 1 number more than the multiplier band on the newer ("blue") 5-band (1%) resistors, where 220 ohm is red-red-black-black-brown = 2-2-0-0-1 = 220 x 10^0 +/-1%.
Reply 3 years ago
You're right! Thanks for pointing that out. If I still have the image files on my computer, I'll edit it and replace the photo.
Tip 5 years ago
That's true- I've been toying with the idea of an RGB LED, or/and a piezo buzzer, plus a few other minor improvements. Actually, I'll just upload the Fritzing file to the GitHub, so you can do it if you want.
Next time I redesign the board, I'll probably add those, plus breakouts for all the Arduino pins, to make it easier to add your own sensors/modules. When I get time, that is... It is on my to-do list!
Tip 5 years ago
Why don't you add an RGD LED to the PCB?
It will not make it much more expensive, but add a lot of fun.
5 years ago on Step 29
You guys did a great job documenting your project. I like what your are focusing on. Keep up the good work!
Reply 5 years ago
Thanks! I certainly plan to.