About

The robotic arm was constructed from popsicle sticks using tape and glue. Programming was done on open-source Arduino Software (IDE). The map function was used to calibrate the coordinate position of my arm (measured by the accelerometer gyroscope) to the position at which the servo motor was at.

Materials used include:


Accelerometer and Gyroscope

The accelerometer and gyroscope work hand in hand to keep track of the motion and position of the arm. Our smart phones have similar components which allow them to detect certain actions like when we tilt the screen. The main difference between the accelerometer and gyroscope is that the accelerometer measures linear acceleration while the gyroscope measures angular velocity. In other words, if you think about your space in the X, Y and Z coordinates, the accelerometer will measure how fast you move along the axes. On the other hand, the gyroscope will measure how fast you rotate around the axes. For example, if you place your phone flat on a table and spin it round and round, that will be detected by the gyroscope. In contrast, if you slide your phone across the table, that will be detected by the accelerometer.

The GY-521 used here consists of both the accelerometer and gyroscope. It has 6DOF (Six Degrees of Freedom) meaning there are 6 parameters of measurement:


Hall Effect Sensor and Servo Motors

The hall effect sensor's main purpose in this project was to serve as input for determining the actions of the end effector which in this case was the gripper. The hall effect sensor has the ability to detect the presence of a magnetic field and outputs a voltage that is directly proportional to the magnitude of the magnetic field. A small magnet was attached to my thumb and a small light on the hall effect sensor would light up each time my thumb came in close contact to my index finger. The program was written such that if the presence of a magnetic field is detected, the gripper would close; otherwise, it would remain open.

The functionality of the servo motors were initially tested out with potentiometers. Each of the MG996R Servo Motor had a range of rotation from 0 to 180 degrees. Potentiometers serve as variable resistors and since voltage is proportional to resistance, we could slide the potentiometer back and forth such that different values of voltage are read in. For example if we had a supply voltage of 5V, you would measure 5V if you had the potentiometer slid all the way and 2.5V if you had it slid halfway. The mapping function is useful in this case because we could map the analog voltage read in with the position of the servo. Therefore it would move towards 180 degrees when 5V are read in and 90 degrees when 2.5 V are read in. The arduino microcontroller's ADC (analog to digital converter) would read in the voltage values and and convert them with a resolution of 10 bits meaning we could get 210 or 1024 different values which is more than enough in this case. The same mapping function was used in order to map the position of the accelerometer/gyroscope to the angle position of the servo motor.