A robot kit for $50 that is easy to get started with, expandable, re-usable, and open to your design choices!
The basic kit will include a CPU, two motors and wheels, roller ball, motor driver, obstacle sensors, ultrasonic distance sensor, switches, and battery.
The base will be designed and made by the robotocist- using materials they have on hand. (Note: for the first iteration we may have free example bases available.)
The goal is to encourage and facilitate creative problem solving and exploration from the beginning.
Basic tutorials will be available online.
Community challenges will be organized- where the focus will be on exploring the task to be solved and coming up with your own solution. These are not competitions, but an opportunity to share solutions and learn with others.
The power of microcontrollers has increased greatly in recent years, and their costs have plummeted. Current microcontrollers are perhaps better described as SOCs- Systems On a Chip.
We are planning on using the Espressif ESP32S2-Saola-1 Wrover module:
- native USB + serial converter
- 4Mb flash, 320kb RAM, 2MB additional PSRAM, at up to 240MHz
- ~40 GPIO pins
- built in WS2812 RGB LED
- 3V3 logic
As well, the base kit includes:
- L293D dual H-Bridge (potential upgrade to TB??? more power efficient equivalent)
- two geared DC motors
- roller ball
- 4 x micro switches
- 4 x IR obstacle sensors (can also be used for line following)
- 1 x HC-SR04+ ultrasonic distance sensor
- 2 x shaft encoder discs
- 2 x IR rotational sensors
The goal of the base kit is to make something that moves, and can solve some interesting spatial problems. There is plenty of room for expansion to add servos, more motors, lights, a camera, remote control, etc.
And if robotics isn’t the right area of interest, the Saola is powerful capable of being used as a music player, internet of things interface, etc, etc.
There are four levels of software development that will be supported:
- microblocks - a graphical block based development system, similar to MakeCode, but support for the ESP32S2 and some more advanced features
- Circuit Python - a powerful version of the easy to learn and use python language. You can type in a single command, see the results, and then add it to your program. Many libraries, and supported by Adafruit. This is seen as the main language of focus.
- Arduino - C/C++ using the Arduino frameworks. Start with the Arduino IDE, move to PlatformIO (and Visual Studio Code)
Beyond that there are some interesting options.
If you’re interested in higher performance- use the esp_idf libraries directly, and explore assembly language.
If you’re interested in advanced robotics algorithms- thanks the on-board WiFi, it can be used as part of a ROS (Robot Operating System) network of 'bots.
Pictorial Glossary of Parts
|IR obstacle sensor|
|IR rotational encoder + encoder disc (fits on motor shaft)|
|Ultrasonic distance sensor|
|geared DC motor + wheel|
very, very draft…
For all the programming environments…
- hello world - echo on serial port (verify basic programming)
- blink - verify basic hardware IO
- move - move forward/back
- line follow
- move in maze
- move item
CP and beyond:
these could probably be done in microblocks if someone adds it to the microblock core VM.
- accurate move- use the rotary encoder and move the wheels such that it’s accurate
*At this point a “booster pack” of parts might be needed- e.g. servo motors, color sensors, …
- power budget: Saola has ~800mA avail; 500+ used by esp32s2. May need an external 3v3 regulator
- tool for documenting hardware schematics. Fritzing? KiCAD?
- initial brainstorming, notes, discussion on forum.makeit.zone
- when proof of concept is working/starting to have code, move to e.g. GitHub; forum.makeit.zone can become a support/discussion forum.
Project is on github.