BBK About Projects Links News Contact

uPyBot Micro Python Robot Project

This page provides more details about my Micro Python Robot. Additionally, there are links provided to its source code on GitHub and the short video demos.

uPyBot Demos

Those two demos show uPyBot in action. There is a very simple script developed in Micro Python which executes "random walk" program demonstrated by the two videos. uPyBot makes a random move and detects obstacles. Both videos are about 20 seconds long.

uPyBot GutHub Repository

My uPyBot robot Micro Python source code on GitHub is available here .

uPyBot Hardware Overview

uPyBot is controlled by Micro Python Hardware Board (named pyboard) which is running Micro Python script. Both Micro Python as well as Micro Python Board are very well documented on the Micro Python Web Page (micropython.org). uPyBot is assembled from off-the-shelf components (see Botland ) supported by a small interface board (assembled by myself) which handles some additional required electronic components.

A schematic of the uPyBot robot is shown in the pictures. Four NiMH rechargeable batteries through power on/off switch and fuse provide power to the DC/DC step-up/step-down converter which generates 5[V] stabilized output used to power the pyboard (version 1.1) and all other components. The L298N based motor driver is used to control the left and right motor. Movement of the left and the right wheel is detected by the two independent encoders WSR-08834. The HC-SR04 ultrasonic sensor is used to detect obstacles. The interface board holds also the CR2025 battery used to provide power for the pyboard Real Time Clock to keep it working when the main power is off. There is also a simple buzzer connected using the 2N4401 transistor so pyboard can turn on and off a beep signal. There is also a possibility to connect PIR movement detection sensor (planned for the future). This robot can of course be extended and additional components and sensors can be added to extend its functionality if required.

uPyBot Software Overview

I developed a very simple script in Micro Python (about 340 lines of Python code) to control uPyBot robot. It includes classes that correspond to uPyBot key components: Beeper, Encoder, Motor, UltraSonicSensor, and uPyBot itself. Those classes form a basic structure of the system and implement all methods required to control this robot. Based on those classes finally, 10 lines of Python code execute "random walk" program through an infinite loop. Using those basic classes and their methods far more complicated uPyBot robot control algorithms can be developed.

<<