RoDI is in its escence and Arduino-based board with a WiFi module, motors, sensors and a clever firmware on it.
Let's break it into its main parts.
The brains of RoDI is an ATMEGA328p 8 bits microcontroller (the same used on the Arduino UNO), connected to an ESP8266 WiFi module from Espressif. The other components include:
- Two 360 degrees micro servo motors
- Up to three Ultrasonic sensors (HC-SR04)
- Two infrarred sensors for line following (QRD1114)
- An user LED
- A WS2812b RGB smart led
- An Inertial Measurement Unit, including an accelerometer and a gyroscope (MPU6050)
- A light sensor (LDR)
- An integrated battery charger for a LiIon cell
All of these are designed into a custom PCB.
Since the brains of RoDI is a custom Arduino, it can simply be programmed writing an Arduino sketch using the Arduino IDE. The default firmware we use is called rodi-web.
RoDI-web is a web-service interface for RoDI. It allows programmers to control RoDI by simply using HTTP requests, ie., from a web browser, a bash script, and basically any programming language.
Thanks to the implemented firmware, you can use almost any language to control RoDI (provided that you use the rodi-web firmware).
The default programming IDE for RoDI is turlteblocksjs developed by Walter Bender.
We've developed a plugin for RoDI, which let us control RoDI using this great IDE.
Other amazing people have already contributed with great libraries for controlling RoDI in Python, Smalltalk and even created an Android app for teleoperating RoDI.