Balancing Robot

Using the TX Controller and some I2C sensors you can build a balacing robot. Some Arduino-based models have been shown, but this one consist entirely out of fischertechnik parts, apart from the sensor.

It uses a gyro (to measure rotation, or the speed of falling) and an accelerometer (to determine ‘up’) that are connected to the TX’s I2C interface. 100 per second the sensors are read, the data filtered and the motor PWMs calculated and adjusted using a PID controller. The TX has plenty of power to do the math.

The robot can balance just using the gyro and accelerometer data, but it has no sense of where it is, and if it is moving. To control that, this model also uses a (non-ft) quad encoder sensor ( on the wheels and a IC to transform the quad encoder data into counter signals that the counter inputs of the TX can handle. Adding position and speed into the PID controller, the robot can stay in place, even when out of balance, or move using the ft remote control. Unfortunately the TX (unlike the Robo Interface) has no infrared receiver. so to use the remote controller, I simply connected two motor outputs of the remote controller to TX inputs in analogue 10V mode. When operated they give a nice reading between 5-9V that can be used as inputs in the PID controller to drive the robot.

Some pictures below, but this is all about movement, so you need to see the video of the balancing robot here:

In dieser Galerie gibt es 10 Bilder:

Balancing Robot
Robot Balancing
The back side
The gyro/accelerometer
The drive part - 1
The drive part - 2
The wheel encoders
The program
Next Project: Ball bot