Have you always wanted to build a robot but didn't have the time, money, or know how?

Do you need an inexpensive and easy to build robot project for your maker space, classroom, or camp?

Are you preparing for the robot revolution and need to build your personal robot army?

Follow these instructions to build a robot you can remote control, or let it wander around autonomously. The parts are easy to find online and at your local craft store, and will cost around $20. I'll provide links to parts that I've used to build the 2020 Bot.

2020 Bot Features

Arduino Nano Microcontroller

Infrared LED and Infrared Receiver, for remote control and proximity sensing

Differential drive with (2) DC Brush Motors and Gearboxes

Dual Motor Driver

4xAA Battery Box with On/Off Switch

Solderless Breadboard with room for expansion

Foam Board and Double Stick Tape Construction

Re-use all the parts for your own robot design - just buy more foam board and tape!

The 2020 Bot project has a long history, but you're not here for history, you want to build something! For those who are interested, head over to my blog (RoboJay.us) and read through the 2020 Bot posts.

These build instructions are primarily video based. Each step will show a few images of the process along with some extra notes.

Let's get started!

Step 1: Parts and Tools

Here are the parts and tools you'll need. The links will take you to parts I've bought and tested. Some items can only be purchased in multiple pieces, which will push the total cost higher. Team up with some friends to help keep costs down!

To build the 2020 Bot completely from scratch does require soldering and some specialized tools (i.e. heat gun or pin crimper). The ultimate goal is to find suppliers who have already performed some of the prep work on parts.

If you're buying parts to use for a class or group project, you might want to prep parts beforehand. The "Twenty Minute" build time assumes all the prep work has been completed.

Step 2: Motor Prep

The motors don't come with wires attached. We'll add them.

These motors are DC brush motors, which tend to create a fair amount of electrical "noise" that can cause problems with our circuits (especially sensors!) and nearby radio receivers. One way to reduce the noise is by adding a small capacitor between each motor terminal and the motor case. We'll add those too.

Step 3: Battery Box Prep

The battery box normally comes with wires attached (yay!), but if we want to reliably insert them into our solderless breadboard, they need pins added (boo!).

Two methods are shown in the video. One uses crimp pins, the other uses solder pins. If you're building just one 2020 Bot and don't already own a pin crimp tool, I'd go with the solder method. However, if you're putting together a bunch of 2020 Bots, or already own a crimper, that method results in a cleaner looking end product.

Step 4: Motor Driver Prep (OPTIONAL)

Update January 2018: This step is now OPTIONAL. Read this section, and see the note at the end.

This is the trickiest out of all the prep work. Although it is OPTIONAL (was HIGHLY RECOMMENDED) that you do this step, if you're a bit squeamish working with surface mount components, you could skip it.

The motor driver inputs have pull-up resistors. They are connected to the same voltage we drive the motors with, which in this design is 6V from the 4xAA batteries. The problem is that the Arduino uses 5V, and creates this from the 6V batteries using a voltage regulator. If we apply 6V to the Arduino pins, current will flow into the Arduino, and could possibly damage it. Additionally, any noise from the motors could leak into the Arduino regulated 5V and cause troubles for us.

On the plus side, the pull-up resistors limit the amount of current that will flow, so damage probably won't occur in our design. But, it is possible. There can be large voltage spikes when motors stop or change direction.

January 2018 note: I took a closer look at the motor driver signals both with and without the pull-up resistors installed. The motor driver has a voltage clamping circuit on its inputs, which prevents the pull-ups from pulling the signal lines too high. There's still the possibility of noise from the unregulated power going back through to the Arduino, but removing the pull-ups is probably over kill.

Step 5: Chassis Cutout

Now we'll start making some real progress!

Click on this link, Chassis Template PDF, to download the template used to cut out the chassis. It's a good idea to cut on a proper surface like a cutting board, and PLEASE BE CAREFUL using the hobby knife.

Step 6: Chassis Assembly

Build the chassis!

Take your time to align pieces before sticking them to the double sided tape. Depending on the tape you use, you may only get one chance (at least without tearing the foam board).

Step 7: Attach Electronics to the Chassis

Here's where you'll mount the Motor Driver, IR Receiver, and Solderless Breadboard to the chassis. Just like with the chassis assembly, take your time aligning the pieces before touching the tape.

Step 8: Wiring

Hook it all up!

Take your time... Pay attention to which holes the wires insert into on the Solderless Breadboard.

Refer to the video, wiring diagram, and wiring checklist.

Note: The diagram has a couple breadboard locations that are different than what are called out in the video and checklist, but they are functionally equivalent.

Step 9: Programming

If you followed along with the Wiring video, I skipped over the details of how to upload the demo program to the 2020 Bot. This section needs an entire video and screencast Instructable all of its own!

When building 2020 Bots for a class or group project, similar to the prep recommendation, you may want to pre-load all your 2020 Bots with the demo software.

Here are the basics...

The microcontroller board used in the 2020 Bot is compatible with the Arduino family of microcontroller products based on the Atmel ATmega328. Specifically, we're using an Arduino Nano. Using an Arduino compatible board lets us take advantage of all the software and libraries written for these devices. You will need software running on your personal computer (Mac, Windows, or Linux) that allows you to write (or at least download) software for the Arduino Nano on the 2020 Bot.

You may need drivers to communicate with the Arduino Nano. If you purchased the CH340G version of the Nano through my suggested link, Windows 10 folks are all set, but Mac users need this driver. If you're running Linux, you should be able to figure out what you need ;-)

Although the Demo software shows off the 2020 Bot features, it is difficult for beginners to understand. I will be adding simpler examples to the 2020 Bot Library over time.

Step 10: Running the Demo Code

The 2020 Bot Demo lets the robot be either remote controlled, or operate in autonomous mode.

When you power on the robot, it starts in remote control mode. Pressing the arrow keys on the IR remote will drive the robot in the different directions. Pressing the "OK" button in the middle of the arrow keys will stop the robot. Don't hold the buttons down, just press and release. Each time forward or reverse is pressed, the robot will drive in that direction for a short time. While it's diving, you can always press another button (like OK to stop). The left and right buttons will have the robot pivot the robot in place just a little.

Robots really should be free to do what they want, and that's what happens in autonomous mode. To start autonomous mode, press the # key on the remote. The robot will start wandering around, using it's IR LED and IR Receiver to detect obstacles. It's a simple sensor, and won't always detect things. When the robot needs your help, press the * key to go back to remote control mode.

Step 11: Don't Stop Now!

Ok, you've built the 2020 Bot, now what?

Learn how to code, or, if you already know, learn how to code with a real robot!

Add more electronics for sensing or interacting with the world.

It's only made of foam board and tape. Have a cool design idea? Build it!

I truly believe so much can be learned using easy to find, inexpensive parts, along with a bit of creativity. Follow further developments of the 2020 Bot at 2020bot.com and other projects on my blog RoboJay.us

If you build a 2020 Bot, I'd love to hear from you! Let me know where I can make the instructions better. Thanks!

Make it Glow Contest 2018

Plastics Contest

Optics Contest

10 Discussions

These are wonderfully detailed plans. However, it's not 2 capacitors per robot! It's 2 per motor, so 4 per robot. I overlooked this and ordered 10 for three robots... care to fix that so others don't make the same miscalculation?

Fortunately I had some capacitors from a previous project. I have some excited kids scheduled to do a build this weekend.

I added two motor control examples to the 2020 Bot library (https://github.com/robojay/_2020Bot_Library)

One uses the delay() function between motions. This is great for ease of understanding, but not so great to use in practice. The delay() function blocks the robot from doing most other tasks until the time expires.

The second example uses millis() and a timestamp to step through the motions. This lets the robot do other important tasks, such as blinking the LED, while still controlling motions.

On a slightly different topic, if you want to understand a little more about the infrared proximity sensing used on the 2020 Bot, here are slides and demo code for a presentation I gave to the Nashua Robot Builders: https://github.com/robojay/IrProximityDemo

Thanks - exactly the type of class this was designed for! Grab a supply of googly eyes, markers, stickers, etc. to let them customize their bots. Extra bits and pieces of the foam board make great add-ons too.