Atri S. | BlueStamp Engineering
The project I chose was to build and operate a robot arm using an Arduino and servo motors. The goal is to be able to control the arm through Bluetooth using a mobile app.

Atri S.

Phone-Controlled Robot Arm

Engineer School Area of Interest Grade
Atri S.
Lick-Wilmerding High School
Electrical Engineering and Computer Science
Rising Junior

FIRST MILESTONE

My final milestone is my robot arm complete with HC-05 bluetooth mobile control and PS2 joystick control. The main premise of my project was to be able to control the robot arm wirelessly from a mobile device, and in this milestone I achieved that. I started with Bluetooth control, and writing some code to allow for bluetooth connection my Arduino. Once done, I developed an app on MIT App Inventor for wireless robot control and to commmunicate with the Arduino via Bluetooth. After I got my bluetooth app working with the robot, I transitioned to making a modification, using the PS2 joystick sensors. I wired each of the pins to the corresponding analog, ground and VCC pins and wrote a sketch file for control with the joysticks, which was similar to my potentiometer code but with many more variables and analog inputs. Through both the bluetooth and PS2 control parts of my project, I encountered a lot of problems. Namely the bluetooth module code had to be tweaked countless times to establish a bluetooth connection. Also, at first, I didn’t have access to an Android device, which was important because using bluetootth with MIT APP Inventor only works on Android (iOS has some privacy and secuirty featuers that don’t allow such direct bluetooth connections). With the PS2 joysticks, when using the library built for PS2 controller use on Arduino (PS2X_lib), the controller wasn’t being detected, even though my wiring was correct, so I had to alter my code quite a bit to work without the module.
My first milestone was setting up and hooking up the Arduino Uno with a servo and a Bluetooth reciever. I first started with connecting my Arduino board with another board called the Arduino Sensor Shield v5, the sensor shield on top of the arduino. This will allow me to connect multiple servos at once very easily. I connected one servo to the sensor shield board and connected my Arduino to my computer to make sure my servo worked properly. I wrote a simple program to rotate a servo back and forth to test its range of motion and to experiment with coding servos. I ran into a couple of issues along the way. The first was from getting the error “Compilationerror: error 13 INTERNAL”, which came from not having the servo library installed. My other issue was with the sensor shield board, as when I connected a servo to the proper pins on the board, sometimes the servo would be unresponsive. I easily fixed this by using a different servo.

SECOND MILESTONE

My second milestone was fully assembling my robot arm and operating it via potentiometers. I started with separating all my screws into their various lengths and went step by step assembling my robot. I then mounted my Arduino onto the bottom plate of my robot, and connected my 4 servos and HC-05 bluetooth sensor to the sensor shield v5 board on top. After testing the ranges of motion for each of the servos in my robot arm, I wired four potentiometers to my sensor shield board’s analog, ground and VCC pins, and wrote a program that would read the values of the potentiometers and convert those readings into positions for my servos. Some challenges I ran into were with assembly, as there were many different lengths of screws and types of nuts, and I had mixed some of the placements of certain screws up. Because of this, I had to redo parts of my assembly, which took more time. Lock nuts were also very hard to fully screw in, and took lots of effortand time as well.

FINAL MILESTONE

My final milestone is my robot arm complete with HC-05 bluetooth mobile control and PS2 joystick control. The main premise of my project was to be able to control the robot arm wirelessly from a mobile device, and in this milestone I achieved that. I started with Bluetooth control, and writing some code to allow for bluetooth connection my Arduino. Once done, I developed an app on MIT App Inventor for wireless robot control and to commmunicate with the Arduino via Bluetooth. After I got my bluetooth app working with the robot, I transitioned to making a modification, using the PS2 joystick sensors. I wired each of the pins to the corresponding analog, ground and VCC pins and wrote a sketch file for control with the joysticks, which was similar to my potentiometer code but with many more variables and analog inputs. Through both the bluetooth and PS2 control parts of my project, I encountered a lot of problems. Namely the bluetooth module code had to be tweaked countless times to establish a bluetooth connection. Also, at first, I didn’t have access to an Android device, which was important because using bluetootth with MIT APP Inventor only works on Android (iOS has some privacy and secuirty featuers that don’t allow such direct bluetooth connections). With the PS2 joysticks, when using the library built for PS2 controller use on Arduino (PS2X_lib), the controller wasn’t being detected, even though my wiring was correct, so I had to alter my code quite a bit to work without the module.