In this project, we are going to make a Robotic Arm that will be controlled by an Arduino microcontroller. It will be controlled via Bluetooth with the help of an android remote control app.
How To Control a Robotic Arm Using Arduino?
Now as we know the abstract of our project. Let us gather some more information about the circuitry and start building a Bluetooth controlled robotic arm and control it via Bluetooth.
Step 1: Collecting The Components
The best approach to start any project is to make a complete list of components. This is not only an intelligent way to start a project but it also saves us from many inconveniences in the middle of the project. A list of components of this project is given below:
Step 2: Studying The Components
As we have a complete list of all the components that we are going to use, let’s move a step ahead and go through a brief study of all the components. Arduino Nano is a microcontroller board that carries out various operations in different circuits. It requires a C Code that tells the board what tasks to perform and how. It has 13 digital I/O pins which mean that we can operate 13 different devices. Arduino Nano has exactly the same functionality as Arduino Uno but in quite a small size. The microcontroller on the Arduino Nano board is ATmega328p.If you want to control more than 13 devices, use Arduino Mega. HC-05 Wireless Bluetooth Serial Transceiver: We need wireless communication in this project, so we will use Bluetooth technology and for that module that will be used is HC-05. This module has several programmable baud rates but the default baud rate is 9600 bps. It can be configured as either master or slave, whereas another module HC-06 can work only in slave mode. This module has four pins. One for VCC (5V) and the remaining three for GND, TX, and RX. The default password of this module is 1234 or 0000. If we want to communicate between two microcontrollers or communicate with any device with Bluetooth functionality like a Phone or Laptop HC-05 helps us to do that. Several Android applications are already available which makes this process a lot easier. A typical Robotic Arm is made up of several segments and usually have 6 joints in it. It contains a minimum of 4 stepper motors which are controlled by the computer. Stepper motors are different from other DC motors. They move precisely in exact increments. These robotic arms are used to carry out various operations. We can operate them manually through a remote control or we can program them to work autonomously.
Step 3: Assembling The Components
Now as we know about the working of all the main components used. Let’s start assembling them and make a circuit to build a remote-controlled robotic arm.
Step 4: Getting Started With Arduino
If you are not already familiar with the Arduino IDE, don’t worry because a step by step procedure to set-up and use Arduino IDE with a microcontroller board is explained below. To download the code, click here.
Step 5: Downloading The App
As we have now assembled the whole circuitry and uploaded the code in the microcontroller board. lets download a mobile app that will work as a remote control for the robotic arm. A free app is available on the google play store. The name of the app is the Little Arm Robot Control. To make a Bluetooth connection, turn on the Bluetooth on your mobile. Go to the settings and pair your mobile with the HC-05 module. After doing this, press the Bluetooth button in the app. If it turns green, it means that the app is now connected and ready to operate the robotic arm. There are sliders to set operate the robotic arm as desired.
Step 6: Understanding the Code
The code is well commented and easy to understand. Bur still, it is briefly explained below.
- In the start, A library is included to write a code to operate servo motors. Another library math.h is included to perform different mathematical operations in the code. Four objects are also initialized to be used for the four servo motors.
- Then a structure is declared to take values for the base, shoulder, and elbow servo motors.
- After this, some variables are initialized to store the desired grip, delay, and position of the servo motor. the speed is set to be 15, and an object is made to take the value of the angle in the structure.
- void setup() is a function that is used to set the pins of Arduino as INPUT or OUTPUT. Here in this function, we have declared that the pin of the motors will be connected to which pins of the Arduino. It is also ensured that the Arduino doesn’t read serial input for too long. Initial Position and Baud Rate is also set in this function. Baud Rate is the speed by which the microcontroller board will communicate with the servos and Bluetooth module attached.
- servoParallelControl() is a function that is used to detect the current position of the robotic arm and move it according to the command given through the mobile app. If the current position is less than the actual, the arm will move up and vice versa. This function will return the value of the current position and the speed of the servo.
- void loop() is a function that runs repeatedly in a loop. This function reads the data coming serially and store the angle of each servo in the structure. Initially, the status of all the servos is set to zero. Here a function servoParallelControl() is called and parameters are passed in it. this function will return the value and it will be stored in a variable of status. Now, this was the whole procedure of making a robotic arm. After burning the code and downloading the app, the robot should work perfectly fine when the sliders on the app are moved. You can also program the arm to work autonomously to perform the desired task.