This page is no longer being updated. Please visit http://affordableeducationrobot.github.io/v1.0/

AERobot Software

Harvard University

AERobot can be reprogrammed by connecting directly to a computers USB port, so all a user needs is a computer, AERobot, and software installed to program the robot.  We modified Minibloqs ( http://blog.minibloq.org/ ), a graphical programming environment, to allow a novice programmer to easily program AERobot, without worrying about a syntax of a programming language.  Click here for information on how to download and install everything needed to program AERobot with Minibloq. While not visible to a user, the firmware for AERobot also uses a modified version of the V-USB (http://www.obdev.at/products/vusb/index.htmlbased atmega USBASP bootloader ( http://www.obdev.at/products/vusb/usbasploader.html ) to allow the robot to be programmed over a standard USB port.  

programming example


The following is a view of minibloqs graphical programming environment (click to enlarge), showing: A) compile and program button, B) List of possible actions, C) Program creation panel, D) Automatically generated code panel

A user writes programs by selecting actions from the action panel (below), and uses them to create programs in the program creation panel (top picture C).  As a user creates a program, there is also an option to display the c code that is automatically generated from the graphical program (top picture D).


Action panel, a list of possible robot actions (including custom actions for AERobot of "Set LED color" and "move motors").
Many of these actions have inputs parameters, and we also created custom input parameters for AERobot sensors.  The image below shows these parameters. 
input parameters, including custom sensor parameters of bump sense, distance sense, ambient light sense, and line sense (top right icons)  

By hovering the cursor over any of the icons, an information box will appear explaining what the parameter is, as shown below.


The following is a simple example graphical program.  This program is an infinite loop that checks if the front distance sensor is less than 100, if so turn LED red and move backwards, else turn LED green and move forward.
once the user is ready to program the robot with their code, they simply plug AERobot into the computers USB port, and press the compile and download button (top figure A).  Minibloq will automatically compile the code and download it to the robot.  The following are 2 more complex example programs, corresponding generated code, and videos of the robot behavior edge following light seeking 


The AERobot uses a modified version of the V-USB (http://www.obdev.at/products/vusb/index.htmlbased atmega USBASP bootloader ( http://www.obdev.at/products/vusb/usbasploader.html ) to allow the robot to be programmed over the USB port.

The AERobot bootloader code can be downloaded here.  This only needed if you want to build the robot from scratch.  Pre-assembled PCB's will already have the firmware included.