Robotic Arm with Claw
My project is a robotic arm with a claw. Each of the joints in the arm has a servo that can be controlled remotely with a potentiometer.
Area of Interest
Computer Programming and Robotics
Brooklyn Technical High School
How it works
I finished my project! For my final milestone, I completed the robotic arm by building the mechanical structure, attaching the servos, and adding potentiometers to remotely control their movements. I also put the Arduino Uno microcontroller and the breadboard power strips on the arm’s platform so it was more compact. Pictures of the completed arm can be seen in the slideshow to the left.
How it works
The process in which the potentiometer controlled the servo remained virtually unchanged. The only difference was recording the value the potentiometer reports in one circuit and sending that value wirelessly to another circuit with the servo. Also, I realized a mistake I made with my first milestone. I accidentally connected two pins of the potentiometer incorrectly. This was the reason the potentiometer’s value changed exponentially.
To add the NRF24H01 transceivers to the Arduino, I wired each pin on the transceiver to its corresponding pin on the Arduino microcontroller. I connected the power pin on the transceiver to the 3.3V pin on the Arduino microcontroller. I also connected the ground pin on the transceiver to the ground pin on the Arduino microcontroller. The CE, CSN, MOSI, MISO, and SCK pins all deal with SPI (Serial Peripheral Interface) communications, or communications between with the Arduino microcontroller and itself. The CE (Circuit Enable) pin is used to communicate if the transceiver is active and whether it is transmitting or receiving. CE can connect to any digital pin on the Arduino microcontroller; on the Arduino Uno it is on 3 and on the Nano it is on 2. The CSN (Chip Select Not) pin identifies which chip the transceiver communicates with and, like the CE pin, can connect to any digital pin. On the Uno, it connects to 4 and on the Nano, it is on 3. The MOSI (Master Output Slave Input) pin is for when the microcontroller sends data to the transceiver, and has to be connected to pin 11. The MISO (Master Input Slave Output) pin is the opposite: It handles communication from the transceiver to the microcontroller, and goes to pin 12. Finally, the SCK (Serial Clock) pin is for establishing the rate at which data is sent between the transceiver and microcontroller, and connects to pin 13. For full wiring, refer to figure 1. After I wired my project, I created two separate program scripts, one for the Arduino Uno and one for the Nano. In the Nano’s script, the potentiometer’s reported value is transmitted, and in the Uno’s script, the value is received and written onto the servo.
For my second milestone, I controlled a servo with a potentiometer remotely through Bluetooth. Figure 2 shows both of the completed circuits. I used an Arduino Uno in the servo’s circuit, and an Arduino Nano in the potentiometer’s circuit. I added an NRF24H01 transceiver in both circuits so that they could communicate with each other.
My first milestone was to control a servo with a potentiometer. It was important to make the controls smooth—I wanted the servo to rotate at a constant speed when the potentiometer was turned. See figure 1 for the completed circuit.
How it works
The potentiometer is a variable resistor. When a current flows through it, the potentiometer provides a resistance that can be controlled with a knob. The stronger the resistance is, the lower the voltage is coming out of the circuit. In figure 2, if Z1 represents the potentiometer, Vout can be controlled. This is significant because the potentiometer reports a value based off Vout on a 0 to 1023 scale. The minimum value represents the minimum Vout the potentiometer can allow and the maximum value represents the maximum Vout the potentiometer can allow. This value is mapped onto a 0 to 180 scale. I write this value onto the servo, meaning the servo has a 180 degree range of motion. For full wiring, see figure 3.
How it works
The switch on the top is connected to an electric circuit inside the box. Flicking it activates a motor connected to an arm, causing the arm to continuously rotate upwards. It rotates upwards until it opens the hatch and hits the switch back to its original position. This switches the polarity of the voltage, reversing the direction of the current through the motor. This causes the arm to start rotating in the opposite direction. The arm rotates downwards until it activates an internal switch. This opens the circuit, turning the motor off. For circuit diagram photos, see the slideshow to the left (Images source: http://frivolousengineering.com/uselessmachineexplained.htm).