RBX is a project that I have been working on for some time now. It is a robotics kit designed for young tinkerers. It consists of a set of Lego-compatible "bricks" made with common components, such as LED, pushbutton, servo, motor etc. The brick housings are printed using a 3D printer. The components are hooked up to a microcontroller via standardized "ports". Programming is done via a variant of Javascript (a port of Duktape) on a browser-based IDE.
I started the project because I found that block-based programming environment such as Lego Mindstorm are a little too simple for older kids (8 - 12 year old), yet the long compile-run cycle of Arduino is not suitable for tinkering and quick prototyping. Something that sits in the middle is needed.
On the hardware side, one of the first obstacles for a child trying to break into microcontroller programming is hooking up the desired circuitry on a breadboard. Anything beyond the the introductory "Hello World" LED example requires a ton of wiring. If servos or motors are involved, a separate power rail is required, which makes things even more complicated.
RBX uses various JST connectors to connect to the microcontroller (which is based on the ESP32 dev board). These are called "ports", which maps to the microcontroller pins. The ports come in 2, 3 and 4-pin variety, and each port has a unique identifier.
In this way, hooking up components becomes a plug-and-play affair. Since the connectors need to be matching and oriented correctly, this makes it less likely for components to be hooked up the wrong way.
Programming is done via a browser-based IDE served directly from the microcontroller. Once the microcontroller is powered on, the user is able to connect via a web browser and start entering and running JavaScript code immediately.
The entire project can be found on Github. It uses FreeCAD for designing the 3D housing, KiCAD for designing the microcontroller PCBs, and Platformio for coding the firmware.
Project website: https://rbx.randseq.org/
Showcase: https://rbx.randseq.org/tutorials
GitHub repository: https://github.com/victor-chew/rbx
Comments
Post a Comment