Impetus

My name is Joshua Grauman and I live in South Central Los Angeles. I moved to South LA with my family to care for and provide opportunities in a low resource community, especially for children. We have been active in local public schools, running kids camps, youth groups, and after school programs. One program I ran was an after school robotics program. I wanted a low cost robotics system to teach programming and robotics that included visual programming but also showed the correspondence between the visual representation and generated code. The system needed to work well with teaching curriculum, not overwhelming beginning students. I also wanted a system that was reliable, extensible, open, and simple. Not finding a low cost system that met my needs, I began working on my own. After multiple revisions of both hardware and software, I have a working prototype system that meets the following goals:

Features

Hardware

Because the system is built on STM32 and the powerful mbed libraries, the board and software support hardware interrupts, timers, callbacks, serial/I2C/SPI communication, PID loops, string manipulation and more.

Visual Programming Software

The visual programming software is at the heart of the robotics platform. It generates C++ code from visual programming blocks. It allows students to dive into programming robotics systems easily. All the blocks can be modified or new ones added using text based configuration files making it easy to add or extend sensors or devices to the system. Each block is assigned a different "level" so that lessons can be designed to progressively introduce new features and concepts without overwhelming beginning students. The code that is generated is color coded to the visual blocks to see how the visual representation translates into actual code. You can also select blocks to see what code corresponds to those blocks. The software is fully customizable and could be completely reconfigured to even generate other systems' code (such as Arduino). The software supports save/open, import/export, zoom, copy/paste, printing, comments, functions, as well as programming, pausing, reseting, and controlling the board.

Visual Control Software

The Visual Control Software allows a computer to interface to the robotics board over a serial (Bluetooth) connection. It's polished look allows students to visualize various aspects of complex systems, and have the joy of being in complete control of their system (who doesn't love fancy remote controls!). Controls can be set to inputs or outputs, allowing full control and feedback of the board and whatever sensors or systems are connected to it. Like the programming software, the control software is highly configurable using only a text file. You can control almost every aspect of the look and style of each of the buttons and dials, as well as which Bluetooth codes the controls send or are updated by. You can easily create completely new dials and change the position and size of all the controls. Each button or dial can simultaneously display multiple sources of data and can send multiple data inputs as well.