Phew! That was amazing!
I had a blast at Bay Area Maker Faire building 2020 Bots all day Saturday and Sunday. Once an hour, a couple attendees got a chance to build their own 2020 Bot and take it home with them.
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.
When you build a robot, it’s nice to have layers of sensors. You can think of the layers either top down (maybe starting with a 3D laser scanner), or from the bottom up (are my motors stalled?). Proximity sensing sits on one of the lower layers, and generally is used as “Hey, there’s something near me, and it might be in general direction X”.
Using infrared LEDs and detectors is an inexpensive and common approach to basic proximity sensing.
Once you’ve built your 2020 Bot and played around with it a bit, the next step is writing your own programs. The 2020 Bot uses an Arduino Nano micro controller. A simple web search will turn up plenty of references. Here’s a good link to get you started:
Here is a hookup diagram and a wiring checklist to go along with the 2020 Bot video instructions. 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.
This probably qualifies as my first real robot. Still works after 20+ years.
I built it as part of the final project in my grad school Artificial Intelligence course. The professor made sure I understood the project was a software project, and not to get hung up on the hardware side (fortunately, being an electrical engineer in a comp-sci class made that a little easier).
Here’s my final report, along with all the typos intact…