Today, I will teach you how to make an Android powered and controlled Two-Wheel Self-Balancing robot with Lego NXT.
Firstly, let's see a testing video for the final robot.
Here is another testing on the slope:
To build this robot, all the things you need are list below:
- Two Android devices. One for balancing control and one for remote control. The one what I use for balancing control is Nexus 7, for remote control is an Android smart phone with a simple control app.
- Lego NXT kit.
- An Android ADK board. The one I use is called HippoADK.
- A ADK board to Lego shield. The one I use is HippoADK-Lego Shield.
- A battery.
How does this robot work?
By using the HippoADK board and HippoADK-Lego Shield, Nexus 7 can read the status of the Lego Motors and can also control the Lego Motors. While balancing, with the gyroscope sensor in Nexus 7, the robot can adjust the status of the Lego Motors to keep balance. Hippo-ADK is an open-source electronics prototyping platform based on Android. By combining an Arduino-like microcontroller board with Android, not only does it allows you to tap into the powerful resources of your smart devices, but also to do so in an amazingly simple and elegant manner.
For more about HippoADK, you can see more details here.
Let's go to see how to build this robot.
Step 1: Assembly Instructions
The attach pdf file is the assembly instructions of the main part of the robot by LEGO NXT.
Step 2: Add ADK parts and battery to the robot
1. Add battery as the above pictures show.
2. Add HippoADK and HippoADK-Lego Shield as above pictures show.
Step 4: Add Nexus 7 to the robot
After assemble the Lego parts of the robot, you can program the robot using our graphical programming platform based on App Inventor. As you can see the code is incredibly simple we can show it in one picture.
BalanceFilterDemo is attached. You can use it to test the Kalman filter together with the phone's accelerometer and gyroscope.
You can easily add Nexus 7 to the robot as above pictures show.
Step 5: Run the robot
Put the robot on the desk, turn on the power and run the robot.