I was a founding member of a team of 7 High School
Students who created RoBox. We worked together to create a very
low-cost, take-home robotics kit. Setting out to do so in May of
2017, we taught our first week-long camp in late July 2017. This
summer, we taught our second week long camp at Qualcomm. This time
with updated software are and hardware.
The RoBox kit aims to be extremely affordable, while still giving students the opportunity to build, program, and customize their own bot! The kids start by attaching the electronics to the plastic board. Then they wire up all the components, decorate and put on the paper walls. Next they are ready to plug in the bluetooth dongle from the kit into a laptop and open up the RoBox website. On the website there is a Block based programming environment the students can use to program their robot. The students put the blocks together to create programs, then they hit run and the robot will execute them. The website also gives the students the ability to drive their robot using a usb remote controll that is plugged into the laptop. The website and Robox do this by intereacting using 2 languages we created: RXL and RCL.
In this project I used the following technologies:
HTML
CSS
Javascript
PHP
I also practiced
Working with a team of programmers
Integrating an outisde library and interface with my own
Using specilized tools to work with the external library
Specialized Problem Solving
Software Inventions
The User Interface and RoBox Programming
The User interface is the block based programming environment that
allows the students to program their RoBox. The challenges are the
part of the website that contain this user interface and allow and
encourage the students to program.
The challenges are made up of 3 things: the workspace, the blocks, and
the peripherals. The workspace is the Blocky workspace created by a
collaboration between Google and MIT. This workspace allows the
initiallization of blocks, and the functions of dragging them and
fitting them into other blocks in the workspace.
The blocks are objects written in java script that employ Block
blocky's Block class. I custom created the blocks for RoBox and wrote
the Javascript that translated the individual blocks into RXL
languange commands. The peripherals includes many miscelanous
functions.
The first is the first button at the bottom of the screen that says
RUN. The RUN button compiles the program in blocky, translates it to
RXL, and reorganizes the RXL code. It then send the code to the RoBox
through the use of a google chrome app which allows us to send data to
a bluetooth dongle plugged into the computer, which allows us to send
data to the RoBox. Next is the STOP button, which simply gives the
command to the RoBox to stop any program that it is currently
running. Both the RUN and STOP commands include RCL. The Next are the
CONNECT and DISCONNECT buttons which use RCL and the bluetooth dongle
to communicated with the RoBox, allowing a user to easily connect and
disconnect to the RoBox. Next is the HELP box and button. The Help box
pops up a window whenever the webpage is loaded or the HELP button is
clicked. This box contains the information about the challange and
gives hints about how to create a solution. Finally there is the SAVE
button. This creates a local file on the users computer that saves the
data about the currently displayed program that Blockly uses to load
programs. The button is superfulous as the website saves the data
whever someone leaves the page as to ensure a students work is
saved. The data is then loaded everytime the webpage is opened.
The Testing and Driving Pages
The testing page is a page that allows the student to individual test each part of the RoBox. This page is mainly used to check if the RoBox was built correctly and is also used for debugging. It employs RXL and RCL. The driving page allows the student to plug in a controller and manually drive the RoBox. This page employs the sole use of RCL to make the response time of the RoBox much quicker. This is possible because the commands are very simple and predictable.
The Hardware
The board that functions as the main control system is DFRobot’s Romeo BLE Mini board. We chose this board because of it’s compact size (1.77” x 1.52’’) and Bluetooth functionality. Furthermore, it has 8 digital and 4 analog pins – enough to support all of our sensors, motors, and our battery box. The Robots conatins the following sensors:
Ultrasonic Sensor
Analog Light Sensor
Infared Receiver
The Robot also contains 2 low power motors and the following peripheral electronics:
3 Color LEDs
Infared Laser
Speaker
RoBox
Low Cost Robot Kit!
Low cost, web programable robot kit created by a team of highschoolers. To make robotic learning accessible to low income students.
My Role(s)Designer, Lead software and GUI Engineer