Balancing robot

Schematics for the AVR ATmega328P and interface to Raspberry-Pi and schematics of the motor power driver are available below.

Software GIT repository: https://github.com/eyalabraham/balancing-robot

Inspired by many projects on the web:

- Stability and PID tuning http://forum.arduino.cc/index.php?topic=197688.0 and http://forum.arduino.cc/index.php/topic,8652.html

- Kalman filtering http://www.x-firm.com/?page_id=148 and http://forum.arduino.cc/index.php/topic,8652.html

- How to use an Accelerometer and Gyro http://www.hobbytronics.co.uk/accelerometer-info

- Using an L293 motor driver http://electronics.stackexchange.com/questions/114796/using-l293-h-bridge-to-drive-dc-motor-with-pwm

- Battery voltage indicator circuit http://www.instructables.com/id/9v-battery-status-indicator-circuit/

... and many many others.

DAGU motors mounted with magnetic discs and Hall effect sensor as wheel encoders

MPU-6050 Gyro/Accelerometer sensor mounted at wheel axis level

Motor battery pack next to L293 motor driver circuit (missing battery indicator circuit added later)

Using two "piggy backed" L293 IC, and separate logic voltage from a 5.6v Zener

AVR ATmega328p and some logic for PWM signals on the CPU board

Board is power by separate LiPo packs and connected to a Raspberry-Pi through the ribbon cable on the right

RPi communicates through a serial connection and has an SPI bus connection to program the AVR (inspired by Gert Board https://projects.drogon.net/raspberry-pi/gertboard/)

An earlier version

Single battery pack, motor driver and AVR on the same board and external DASA serial programmer

Schematics

balancing-robot-2of2.pdf
balancing-robot-1of2.pdf