This project aims at building a low-cost robot out of readily available Lego bricks and motors. Controlled by an Arduino microcontroller and connected to a Laptop or Desktop machine via XBee wireless modules, the robot can be driven and steered via a Python- and Qt4-based GUI. The final goal of the project is to interface the Arduino with an Android-based cell phone and utilize the built in sensors (built-in accelerometer, gyroscope and camera) and communication (Wi-Fi, Bluetooth, GSM, and 4G) capabilities of the phone.

Parts list of the robot:

  • 1 Arduino Nano
  • 2 XBee Pros
  • 1 Motor Driver 1A Dual TB6612FNG
  • 1 7.4 V 2 cell LiPo battery
  • Lego Technic parts including 2 motors

Currently the system is set up to stream any data back to the host computer (the laptop running the GUI), which acts as the brain of the robot. This is one big advantage over implementing the controller and autonomy on the Arduino microcontroller. All control algorithms can be implemented using the high-level language Python and easily debugged on the host computer. The microcontroller just acts as the motor controller that receives its input over the wireless channel.

Eventually, a cell phone will be interfaced to the microcontroller via Bluetooth and run all control algorithms onboard the robot. Current cell phones provide sufficient computing power even for computer vision tasks and the fact that current phones integrate all relevant sensors in one small package promise to provide a compact and capable device for controlling the robot autonomously.

The wiring diagram is the same as shown on with an added SoftwareSerial connection for the Xbee wireless chip on pin 2 and 4. A detailed wiring diagram will be available shortly. The current version of source code for the entire project can be found here. Photos of the current robot prototype can be found below as well as a screenshot of the GUI used for controlling the robot.