Introduction: Inverted Pendulum Robot Using a Reaction Wheel

This project's purpose is to build a robot capable of balancing itself on a corner of a square plate by using a reaction wheel attached to the middle of the board. The MPU6050 takes the current angle of the board with respect to the vertical axis and transfers this information to the Arduino Uno. The Arduino Uno corrects the board's position by spinning the reaction wheel in the appropriate direction and speed.

Step 1: Gather Materials

- Arduino Uno Microcontroller

- MambaMax Pro Motor Driver (by castlecreations.com)

- DC Motor from a CPU's hard disk drive

- MPU6050 Gyro+Accelerometer

- Reaction Wheel (we made ours with a simple lid off a peanut butter jar)

- Project Breadboard with +5 V, variable 0 to +15 V, variable 0 to -15 V voltage supplies

- Jumper Wires - 19 cm x 19 cm wooden board (cut from a clipboard)

- Two 1.5 inch diameter washers

- Two wooden blocks

- metallic rod with diameter slightly smaller than washer's hole

- screw

- drill for making holes

Step 2: Construct the Robot

Mount the DC motor in the middle of the square wooden board:

- Drill a hole in the middle of the board such that it is bigger than the short shaft of the DC motor.

- Drill additional holes for the mounting holes of the DC motor.

- Put the DC motor through the hole and screw the motor on the board.

Mount the Reaction Wheel on the Motor:

- Screw the reaction wheel on the DC motor.

Mounting the wooden board:

- Drill a hole on each of the two wooden blocks such that the metallic rod can be shoved tight in between the two boards. Also, drill a hole on one corner of the wooden block. This will be the pivot point on which the board will balance itself.

- Shove the metallic rod on one of the wooden blocks, put the washer on, then the board, then another washer and finally the other wooden block. The robot's body is now complete.

Attach electrical components:

- Mount the MPU6050 on top of the wooden board such that it is on top of the board when the board is balancing on the opposite corner.

- Screw the Arduino Uno on one of the wooden blocks such that it is on the side where the motor's connections are closest.

Step 3: Make the Appropriate Electrical Connections

Refer to the Image for the electrical circuit schematic.

After constructing the circuit, connect the MambaMax Pro to the breadboard's +15 power supply. Adjust it to +9 volts.

Step 4: Create the Robot's Software

Upload the provided code onto the Arduino's IDE.

Additional libraries may need to be attached in case you do not already have them.

The libraries needed to make the code function are:

PID library

I2C library

MPU6050 library

If you do not have these, they can be found in the Arduino website. Follow the instructions provided in that site for the proper installation steps.

Step 5: Test the Robot

- Upload Arduino software code into the Arduino Uno.

- Turn on the Arduino's serial monitor (CTRL + Shift + m)

- Turn on the switch on the MambaMax Pro

- Type a character on the input line of the serial monitor to begin calibration of the motor.

- Watch the robot's reaction wheel spin.

Step 6: Go Further

This robot is currently incomplete so next steps are required to make the robot functional. The required steps are listed as such:

- Attach a bigger reaction wheel with weights weights attached to the outer radius of the reaction wheel.

- Program the motor driver to function in reverse.

- Program the Arduino's PID controller to function such that the reaction wheel balances the robot depending on the robot's current angular position.