Robot Info

Python Robot

We have designed a low cost robot which can be easily programmed via Python. Its purpose is to teach kids programming and electronics skill via fun challenges. 

The software is based on the MircoPython project. When the robot is plugged into a computer it comes up as a flash storage device. This allows Python scripts to be stored and executed straight from the robot’s memory. In addition a Python command prompt is available via a serial connection for executing commands in real time.

The robot’s hardware includes car like LED lights (headlight, tail light, indicators). In the first lessons these lights will be switched on and off. 

The micro controller’s in built analogue to digital converter can be used to measure the battery voltage and the battery current. A battery charger circuit is included and the battery will be charged when the robot is plugged into a USB port.

Currently the robot includes a 3 axis digital accelerometer. For the final version this will be changed to a sensor with an additional 3 axis gyroscope. The sensor can be read and programmed via the SPI bus.

Further lessons will teach handling of hardware and software interrupts. Hardware interrupts are created by pressing buttons or by the accelerometer when new data is available. Software interrupts can be created by CPU timers for example to blink the indicator lights. With pulse width modulation (PWM) it is possible to control the brightness of the tail light to switch from normal to brake lights. 

Extension boards make it possible to detect obstacles, control the robot via WiFi and add a camera. 

The distance sensor for obstacle detection includes a laser system and is based on the ‘time of flight’ of the laser light. The chip also includes a brightness sensor for switching the robot’s LEDs automatically when it gets dark. The sensor is controlled via the I2C bus.

Detailed tutorials will be provided to make it easier for teachers to prepare for lessons. The resources will also make it possible for motivated kids to learn about programming, micro controllers and Python at their own pace.

Current prototype

 Current Prototype

Current hardware of the prototype:

Item Description Interface
Micro USB Charging + Communication USB FS Device
Micro SD card slot Storage of Python scripts and data SDIO
Buttons User and reset button GPIO
Switches DIP switch for DFU mode and to disable reset button  
LEDs Head lights, tail lights and blinkers GPIO (PWM)
Accelerometer LIS3DSH from ST SPI + GPIO
Charging + Power supply LTC4081 from Linear  
Battery 500mAh LiPo  
Battery current  MAX4069 from Maxim (bi-directional) A/D Converter
Battery voltage Resistor network A/D Converter
Motor drivers DRV8835 from TI GPIO (PWM)
Motors 2 x Bipolar stepper motors, diameter 15 mm  
Distance sensor VL6180 from ST via extension header I2C + GPIO
Programming Via extension header SWD
Camera Via extension header I2C + DCMI
WiFi Via extension header GPIO + UART + SPI


A video demonstrating the laser 'time of flight' distance sensor.

You need to a flashplayer enabled browser to view this YouTube video


Computer rendering of the production concept. Main changes are the addition of an audio amp, digital volume adjustment and speaker to play audio files using the digital to analogue converter of the micro controller. 


Testing of the micro controller digital to analogue converter. Sound files are stored in the wave format on the SD card.

You need to a flashplayer enabled browser to view this YouTube video

embed video powered by Union Development