Introduction: 2020 Bot

Twenty Minutes. Twenty Dollars. Build a Bot.

  • 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.


Parts:

-or-

Tools:

    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

    This is the trickiest out of all the prep work. Although it is 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.

    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.

    Click for the Wiring Checklist PDF.

    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.

    Plenty of resources exist that help you get started with Arduino:

    Arduino Getting Started - Arduino.cc

    Instructable's Arduino Class

    and many more (Google is your friend!)

    The typical steps to follow are:

    1. Download and install the Arduino IDE from Arduino.cc
    2. 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 ;-)
    3. Download the .ZIP file for the Timer One Library from GitHub
    4. Download the .ZIP file for the 2020 Bot Library and Demo Code from GitHub
    5. Start the Arduino IDE.
    6. Select Sketch->Include Library->Add .ZIP Library...
    7. Select the .ZIP file you downloaded for the Timer One Library
    8. Repeat for the .ZIP file you downloaded for the 2020 Bot Library
    9. Plug the 2020 Bot Arduino Nano into your computer via the USB cable
    10. Tell the Arduino software you are using a Nano by selecting Tools->Board->Arduino Nano
    11. Select your Arduino Nano's port under Tools->Port
    12. Load the Demo code by selecting File->Examples->_2020Bot_Library->_2020Bot_Demo
    13. Send it to the 2020 Bot by selecting Sketch->Upload

    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!

    Comments

    author
    jsmb made it! (author)2017-07-04

    Jay, thank you for the huge amount of work you've done to provide this design!

    I worked with my two sons and two of their friends this weekend and we got four 2020Bots working. They had a great time. I thought I'd share some of my experiences and comments.

  • Remote controls: I had completely forgotten to get batteries ready for them, and the ones I ordered didn't have them! I found that I had some CR2032 batteries, which worked but I think are actually a bit thicker than the CR2025 that would fit them, so it was a bit of a squeeze getting them in. The glue was failing on many of my remotes and a couple simply fell apart, but on the upside I had spares.
  • I also had to scramble to find a mini-USB cable -- apparently I have loads of micro-USB but possibly only one mini-USB.
  • I think the wiring diagram has two errors (possibly parallax-induced?). The blue circles at j2 and j3 should be at j3 and j4 respectively. (The hookup checklist says j3 and j4.)
  • Because I hadn't built a test one myself, I didn't yet understand some of the reasons for positioning some parts. I doubt you're keen to revise the videos, but if you do, it might help to observe that:

    (a) The axle positioning, centered in the side cutouts, is to ensure that the wheels are centered and can move freely.

    (b) The top part of the chassis also needs to be positioned so that the wheels will be free to move.

    (c) The IR sensor needs to be positioned so that there's enough space behind it to attach wires to the sensor. In fact, it might be faster overall to attach wires to the sensor and driver before sticking them on?

  • If your foam board is single-sided and you care about which colour is going to be displayed, be mindful when joining the top foam pieces that they will be upside-down when attached to the motors to form the frame.
  • Once the robot is assembled and being tested, it's likely that some of the motors are connected reversed. It seems to me that it's simpler to swap the wires where they are plugged into the breadboard rather than unscrewing and rescrewing them in the motor driver board.
  • Our bots moved significantly faster than the video led us to expect! In the video, had you loaded a program with speed set to less than 100?

    Again, my participants had a great time, and we all appreciate the energy and effort you put into publishing this design. (They did joke that 20 minutes was not their experience by a long shot... :-)

  • 2020BotB-july2017.jpg
    author
    RoboJay (author)jsmb2017-07-26

    The wiring diagram was off exactly how you said. I've uploaded a corrected version. Thanks again!

    author
    RoboJay (author)jsmb2017-07-08

    Awesome job - and thanks for all the feedback!

    I'll go through your comments/corrections/etc. and fix what I can.

    Remotes - Yes, some ship with batteries, some don't. There was a couple month period around the beginning of the year when battery shipping regulations in China were in flux, and many suppliers just pulled all batteries from products to avoid problems (I ran into this myself with a large order).

    USB Cables - the Nanos I order direct from China come with cables, which can help. The ones on Amazon may not (or you might need to search around).

    Wiring diagram - Ok, I'll check into it. I definitely had a mistake in there at one point and thought I fixed it (and this sounds like the same mistake). Seems like I didn't fix it or at least didn't propagate the fix.

    Part positioning - Yes, this can be tricky. I'm working on a revision of the template that has positioning "hints" built in. When assembling the IR receivers at Maker Faire, I did end up having people put the wires on before mounting to the robot. I'll get that into the notes.

    Foam color - I haven't played with multi-color foam yet. Good note.

    Motor Direction - Sure, you can swap the jumpers instead of the motor wires. Technically, it's the motor wires that would be wrong. Functionally, it doesn't matter (unless you go to debug it later and get confused).

    Speed - Maybe you have one of the other gearbox ratios? At 6V, I'd expect the wheels to be at about 90 RPM. It's also possible I had the speed turned down or even low batteries for the video.

    Time - Yeah, definitely longer than 20 minutes unless all the prep-work has been done for you. With all the prep-work done, we were cranking robots out in about 30 minutes at Maker Faire. But, that's also with me right there explaining things. At least I now have an idea where the time snags are and am working on an update (e.g. the new templates, different tape, other hints).

    Again, thanks a bunch for the feedback and congratulations on the build!

    --Jay

    author
    jsmb (author)2017-06-30

    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.

    author
    RoboJay (author)jsmb2017-06-30

    You're absolutely right! Sorry about that!!!

    I'll fix the quantity in the Instructable.

    Thanks! Have fun building.

    --Jay

    author
    RoboJay (author)2017-05-23

    Twenty volunteers built twenty robots over two days at Bay Area Maker Faire 2017. Everyone went home with their robot!

    Many thanks to: Timothy, Nicky, Rithwik, Gurneet, Tanush, Derin, Ashwin, Jaenoven, Tracey, Eva, Elizabeth, Isabel, Noah, Daniel, Steven, Dylan, Tanish, Aarush, Chiania, Owen

    See the slideshow here: https://youtu.be/oPtRow91oMk

    author
    RoboJay (author)2017-05-18

    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

    author
    TheThinker (author)2017-05-07

    Voted!

    author
    DIY Hacks and How Tos (author)2017-05-06

    Cool robot. You've got my vote.

    author

    Thanks!

    author
    TheThinker (author)2017-05-06

    Well done! I think I'll use this for a robot class I'm teaching for Boy Scouts.

    author
    RoboJay (author)TheThinker2017-05-07

    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.

    author
    RoboJay (author)2017-05-07

    Stop by and see the 2020 Bot at the 2017 Maker Faire Bay Area, May 19th-21st. I'll be doing build demos and may even ask spectators for help!

    2020 Bot: http://makerfaire.com/maker/entry/60008/

    Maker Faire Info: http://makerfaire.com/bay-area/

    At the Faire, you should be able to use their app to find me by entry #60008, or search for 2020 Bot :-)

    About This Instructable

    1,313views

    18favorites

    License:

    Bio: I'm a freelance hard - firm - soft waregineer who loves sharing and learning.
    More by RoboJay:2020 Bot
    Add instructable to: