Bluetooth Robot Arm + App | Arduino & Android




Introduction: Bluetooth Robot Arm + App | Arduino & Android

About: Hi! I'm Hugo, 15 yo student from the Alps. I spend most of my spare time programming, tinkering, building electronic stuff, observing planets through my telescope, learning to pilot airplanes, reading and day…

As of summer 2016, it had been a little more than a year since I had started programming. What I used to do was mostly little projects using LEDs, LCDs, sensors, etc, that required a few hours of work.
But this summer, I thought I should do a more concrete project, that would require me to work for multiple weeks, during which I would learn a lot more skills.
Building a robotic arm was great, but I wouldn't learn a lot... So I decided to build it and also create an app to control it, because I had never created any app, nor any Java program.
The app is for Android and works using Bluetooth.

In this Instructable, I will show you how I did and how to do it.

Let's learn !

Step 1: How It Works

The structure of the arm is made of Legos, but because you certainly don't own the same bricks as me, I didn't design any plan, or any guidelines to build it. However, you can see the overall on the pictures.
In this Instructable, I describe all the electronics and code.

The arm has 4 servos, including one for the claw, all connected to an Arduino Uno.

In the app, there are 6 arrow buttons, and 3 normal buttons.

The 'Start' button initializes the Bluetooth.

The arrow buttons send a byte to the Arduino via Bluetooth when they are pressed, and another byte when released.
When the Arduino receives a byte, the corresponding servo starts moving in a direction, and stops when the other byte is received.

For the claw, there are 2 buttons: 'Open' and 'Close'.
When you press 'Close', a byte is sent and the servo of the claw writes an angle closing it.
Opposite for the 'Open' button.

I may upload a video of the arm soon.

Step 2: Components and Tools Needed

For this project you need:
- an Arduino Uno,
- a permanent breadboard,
- male/male & male/female jumper wires,
- 4 servos,
- a Bluetooth module (HC-05),
- an Android phone,
- Legos or custom 3D printed parts,
- a soldering iron and solder,
- some hot glue,
- eventually tighteners to fix the servos to the structure,
- Android Studio (because my app is not available on the Play Store),
- the Arduino software.

Step 3: Robot Arm: Circuit

Here is a Fritzing sketch of the electronic circuit of the arm.

Step 4: Fix the Motors to the Structure

I hot glued the servos to the main structures and their horn to the moving parts of the structure. For more strenght and durability, I added tighteners (see photo).
For the claw. I attached 2 strings to the horn, connected to a part of the claw. With gears on each part of the claw, when one moves, the other one does the same (see video).

Step 5: Robot Arm : Code

Here is the code of the arm that goes in the Arduino.

Step 6: The App

The files of the app are available on GitHub.

Please not that you have to press the 'Start' button 2 times in order for the phone to connect to the BT module. I may solve this later.

Step 7: The Development Process

Because this was a big project for me, I had to separate the development in several parts:

First, I developed the arm, but even this had to be developed in different parts.
First, I built the Lego structure.
Then, I developed the claw, activated by push-buttons, and then activated by a serial command (first video). On this video, you can see that the claw doesn't close well, but I solved it later during the development process.
After the claw, I developed the 'shoulder' and 'elbow' of the arm.
I assumed that the app would send a continuous flow of bytes, so during the development, it would work with continuous press push-buttons (second video).

Then I developed the app. I had to learn a lot about Java, the Android environment, etc.
First, I designed it in the WYSIWYG interface of Android Studio (What You See Is What You Get), then I programmed the Bluetooth setup and finally the buttons.

But as it turned out, I couldn't send a continuous stream of data via Bluetooth, so I programmed it to send single bytes, and reprogrammed the Arduino with single press push-buttons.

After a little more than a month of work.... It worked!

Thanks a lot to people on StackOverflow, Android Forums and the Arduino Forum for their help when I needed some, especially about Android development.
Thanks also to OpenClassrooms, a great French website where I learned Java and the basics of Android.

Maker Olympics Contest 2016

Participated in the
Maker Olympics Contest 2016

Be the First to Share


    • Stone Concrete Cement Contest

      Stone Concrete Cement Contest
    • Build a Tool Contest

      Build a Tool Contest
    • Pets Challenge

      Pets Challenge



    5 years ago

    sorry just app...

    Hugo Trombert
    Hugo Trombert

    Reply 5 years ago

    For the Arduino, you can download the code in Step 5.

    For the app, there is a link to GitHub in Step 6. From there you can download a Zip with all the files of the app, and you will have to upload it to your phone using Android Studio (I didn't want to put it in the Play Store for several reasons)

    Maybe the display will not be perfect because it was programmed for my Moto G, but if you have Android dev. skills, you can fix it. The app should work even if it displays badly.

    I may do it if I have time.

    Let me know if you have a problem


    5 years ago

    thax for your project.but i didnt see any android app in your github file and any arduino code!!?? may you add them here instead of videos maybe.