Android & Arduino Remote Controlled Robotic Car

This is a 4-week project, start to finish, to build a remote controlled robotic car. The car is controlled by an Android app via Bluetooth LE. The car is built using an Arduino and some off-brand Chinese motors. The shell of the car is supposed to be 3D printed. Funny thing is they ran out of material for my group, and hence we had to be creative!


One of the competition the car will enter is to compete on a map, move your group’s block (coloured) from one end of the map back to the “home”. Given that, we need some sort of structure that enable a grabbing mechanism.

A lot of groups printed a shell that fits the size of the cube very closely. Turned out this is a terrible idea. Because the motors are nowhere designed for fine control, it is very hard to even grab the cube in the first place. Plus, it is a competition, who ever finish first wins. So time is of the essence.

We decided to go with a more open and ultra minimalistic design. In fact, our car is basically just the Arduino board, motors and wheels, the battery, and two chopsticks. Yes chopsticks. We glued chopsticks at a V shape to the front of the car, and it works like a charm. The chopsticks are long enough to grab the cube, and the V shape is wide enough to grab the cube. The chopsticks are also flexible enough to allow the car to move around the cube. Also, the car is very light in weight, so it is easy to move around.

Our rather naked car recieved some looks obviously. But once it shows its true power, people are amazed. It is very fast, and very agile. It can easily grab the cube and move it around. It is also very easy to control. The chopsticks are also very easy to replace, so if they break, we can just replace them.

Android App

I came in knowing nothing about Java, nor Android. But I ended up making a working remote control app!

The purpoe of the app is small enough, so I did not have to worry about complex concepts such as OOP. Plus, the Java way of writing code is pretty easy to understand if you know English.

The layout of the app was simple as well. Upper half of the screen was some controls for speed, and a little window for debug message. Lower half of the screen was a campus-like button matrix for direction control.

Bluetooth LE

Communication between the Android app and the Arduino is done via Bluetooth LE. The Arduino is the central device, and the Android app is the peripheral device. The Android app is the one that initiates the connection, and the Arduino is the one that accepts the connection.

The Android app is the one that sends the command to the Arduino. All commands are encoded in a single character. This plain and simple method work