FWD Skill Zone
  • home
  • Power
    • Breadboard Power Supply
    • Variable Power Supply
    • DC to DC Boost Converter
  • Robotics
    • Braccio Robotic Arm
    • Voice-activated robotic arm
    • Smart Robot Car
  • Electronics
    • Arduino 101
    • Arduino 102
    • Arduino 103
    • Short Range Radar System
  • 3D print
  • VHDL
    • Intro to VHDL
    • 2 to 4 Binary Decoder
    • 3 to 8 Binary Decoder
    • Universal Shift Register
  • Verilog
    • Intro to Verilog
    • Verilog Construction
    • Verilog Examples
  • Machine Learning
    • Deep Learning
    • Transfer Learning
  • Contact us
  • home
  • Power
    • Breadboard Power Supply
    • Variable Power Supply
    • DC to DC Boost Converter
  • Robotics
    • Braccio Robotic Arm
    • Voice-activated robotic arm
    • Smart Robot Car
  • Electronics
    • Arduino 101
    • Arduino 102
    • Arduino 103
    • Short Range Radar System
  • 3D print
  • VHDL
    • Intro to VHDL
    • 2 to 4 Binary Decoder
    • 3 to 8 Binary Decoder
    • Universal Shift Register
  • Verilog
    • Intro to Verilog
    • Verilog Construction
    • Verilog Examples
  • Machine Learning
    • Deep Learning
    • Transfer Learning
  • Contact us
Picture
Braccio Robotic Arm:
​According to the manufacturer, the TinkerKit Braccio is a fully operational robotic arm that can be controlled by Arduino micro-controller. Braccio robotic arm can be assembled in several ways for multiple tasks as shown in picture bellow. Braccio can also support various objects on the end effector which makes it versatile in its functions.
Picture
Image courtesy of Arduino
Picture
Braccio assembly configurations and end-effector options. Image courtesy of Arduino.org/braccio

Assembly:
The robotic arm kit consists of
  • Assembly Hardware
    • Screws
    • Flat Washer
    • Hexagon Nut
  • Springs
  • Servo Motors: 2 x SR 311, 4 x SR 431
  • Arduino compatible Shield
  • Power Supply 5V, 5A
  • Phillips Screwdriver
  • Spiral Cable Protection Wrap
  • Assorted Plastic Parts
​Braccio robotic arm comes with a detailed assembly instruction manual that can be found here, download an electronic copy. Besides, Arduino.org has also provided a video that shows step by step instructions on how to assemble the robotic arm.
Braccio Motor Shield:
The Braccio Motor shield is used to drive the six servo motors. The shield will be installed stacked directly onto the Arduino UNO or Arduino Mega 2560 boards. The Braccio shield connectors labeled M1 through M6 are connected to the PWM capable outputs of the Arduino board and are used to drive the six servo motors of the Braccio robotic arm.
Besides, the 4-pin TWI connector (blue) allows the Arduino board to communicate with devices that support the TWI (Two Wire Interface) or I2C (Inter-Integrated Circuit) protocol through the Wire library in Arduino.
Picture
Braccio motor shield
Note: Do not use Pin 12. It is used to manage the voltage level of the Soft-start (on the shield there’s a dot instead of “12”).
Braccio shield connectors:
Motor M1-M6 serve as digital outputs.
  • M1: base degrees. From 0 to 180 degrees
  • M2: shoulder degrees. From 15 to 165 degrees
  • M3: elbow degrees. From 0 to 180 degrees
  • M4: wrist vertical degrees. From 0 to 180 degrees
  • M5: wrist rotation degrees. From 0 to 180 degrees
  • M6: gripper degrees. From 10 to 73 degrees.
10: gripper is open, 73: the gripper is closed.
The 4-pin SERIAL connector (yellow) allows the board to communicate with other devices that support serial communication. Unfortunately, the pins on this connector are not labeled and you need to check continuity between these pins and the shield header pins.
Starting from the end close to the reset button, the sequence followed is GND, +5V, TX and RX. However, it worth it to double check these pinouts.
​NOTE: If you’re sending or receiving data to and from the computer, this serial connector is not available.
Picture
Braccio motor shield and Arduino uno. Image courtesy of Arduino.org/braccio
The Braccio Motor Shield has 12 standard 3-pin connectors. The orange connectors labeled M1 through M6 are connected to the PWM capable outputs of the Arduino board and they can drive servo motors or LED lights. The connectors labeled I0 through I5 are analog inputs. 
​The terminal connectors on the Braccio Motor Shield are connected to the following pins on the shield and the Arduino board:
Connector  label             Shield pin
     M1                                      11
     M2                                      10
     M3                                      9
     M4                                      6
     M5                                      5
     M6                                      3
     I0                                        A0 (aka 14)
     I1                                        A1 (15)
     I2                                        A2 (16)
     I3                                        A3 (17)
     I4                                        A4 (18)
     I5                                        A5 (19)
    TWI                                   SCL, SDA
    Serial                                   RX0, TX0
Software:
Now is the time to play with Braccio.
First, download the TinkerKit Braccio Library either from Arduino website or using the Library manager of the Arduino Software (IDE) and search for Braccio.The only two functions from the downloaded library are Braccio.Begin() and Braccio.ServoMovement (step delay, M1, M2, M3, M4, M5, M6). By using these two functions, the basic movements of the arm can be performed.
Simple movement test:
The function Braccio.servoMovement will be used to set all the servos motors to their desired positions including a milliseconds delay between the movements. Please refer to the paragraph above, "Braccio shield connectors" to set the parameters for the step delay and to identify each motors.
The following code is taken from Arduino IDE example folder. Open Arduino sketch and locate the example file.
File => examples => simpleMovements
simpleMovements.ino
#include <Braccio.h>
#include <Servo.h>
Servo base;
Servo shoulder;
Servo elbow;
Servo wrist_rot;
Servo wrist_ver;
Servo gripper;
void setup() {
Braccio.begin();
}
void loop() {
/*
Step Delay: a milliseconds delay between the movement of each servo. 
            Allowed values from 10 to 30 msec.
M1=base degrees. Allowed values from 0 to 180 degrees
M2=shoulder degrees. Allowed values from 15 to 165 degrees
M3=elbow degrees. Allowed values from 0 to 180 degrees
M4=wrist vertical degrees. Allowed values from 0 to 180 degrees
M5=wrist rotation degrees. Allowed values from 0 to 180 degrees
M6=gripper degrees. Allowed values from 10 to 73 degrees. 
                    10: is open, and 73: is closed.
*/
//           (step delay, M1, M2, M3, M4, M5, M6);
Braccio.ServoMovement(20, 0, 15, 180, 170, 0, 73);
//Wait 1 second
delay(1000);
Braccio.ServoMovement(20, 180, 165, 0, 0, 180, 10);
//Wait 1 second
delay(1000);
}
»»» END of    Braccio Robotic Arm »»»
For more fun with Braccio, please visit the project "Voice-activated Robotic Arm" section of this website
  • home
  • Power
    • Breadboard Power Supply
    • Variable Power Supply
    • DC to DC Boost Converter
  • Robotics
    • Braccio Robotic Arm
    • Voice-activated robotic arm
    • Smart Robot Car
  • Electronics
    • Arduino 101
    • Arduino 102
    • Arduino 103
    • Short Range Radar System
  • 3D print
  • VHDL
    • Intro to VHDL
    • 2 to 4 Binary Decoder
    • 3 to 8 Binary Decoder
    • Universal Shift Register
  • Verilog
    • Intro to Verilog
    • Verilog Construction
    • Verilog Examples
  • Machine Learning
    • Deep Learning
    • Transfer Learning
  • Contact us