Braccio Robotic Arm

The TinkerKit Braccio is a sophisticated and fully operational robotic arm designed to be controlled by an Arduino microcontroller. Developed by TinkerKit, Braccio offers a versatile platform for robotics enthusiasts and professionals alike, providing the flexibility to be assembled in various configurations to perform multiple tasks.

Key Features

Versatile Assembly:

The Braccio robotic arm can be assembled in different ways, allowing it to adapt to a wide range of applications. Whether it’s lifting objects, performing precise movements, or interacting with the environment, Braccio’s modular design makes it capable of handling diverse tasks.

End Effector Support:

The arm is equipped with an end effector that can support various objects, enhancing its versatility. This feature allows Braccio to be used in applications such as picking and placing objects, holding tools, or even performing intricate operations that require precision.

Arduino Controlled:

At the core of its functionality is the Arduino microcontroller, which provides powerful yet user-friendly control over the robotic arm. Using Arduino, users can program Braccio to perform complex sequences of movements and tasks, leveraging the vast ecosystem of Arduino libraries and resources.

Educational and Practical Applications:

Braccio is ideal for educational purposes, allowing students and hobbyists to learn about robotics, programming, and automation. Additionally, it is suitable for practical applications in fields like manufacturing, research, and development where precise robotic manipulation is required.

Braccio assembly configurations and end-effector options  [Image courtesy of Arduino.org/braccio] 

Assembly

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. 

The Braccio robotic arm kit comes with a comprehensive set of components to build a fully functional robotic arm. The kit includes the following items:

Assembly Hardware

Motors and Electronics

Arduino Compatible Shield: A shield that allows easy connection of the servo motors to the Arduino microcontroller.

Tools and Accessories

Assembly Steps

Organize the Components:

Assemble the Base:

Attach the Servo Motors:

Connect the Joints:

Install the Arduino Shield:

Organize the Cables:

Power Supply Connection:

Final Assembly Check:

With all components properly assembled and connected, the Braccio robotic arm is now ready for programming and operation. Follow the provided software instructions to start controlling the arm with your Arduino, and explore the various configurations and tasks the Braccio can perform. This versatile and educational project provides a hands-on experience with robotics, mechanical assembly, and Arduino programming.

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.

Braccio motor shield 

Note: Do not use Pin 12 on the Arduino board when using the Braccio Motor Shield. Pin 12 is reserved for managing the voltage level of the Soft-start function and is indicated by a dot on the shield instead of the number "12".

Key Features

Servo Motor Control:

TWI (I2C) Communication:

Serial Communication:

Stackable Design:

Important Considerations

Serial Communication Limitation:

Power Supply:

Braccio shield connectors: 

Connectors M1 to M6: These connectors correspond to the six servo motors of the Braccio robotic arm. Each connector is tied to the Pulse Width Modulation (PWM) capable outputs of the Arduino board, facilitating precise control over the servos' positions and movements. Here is the detailed mapping of the connectors to their respective functions: (Motor M1-M6 serve as digital outputs)

M1: Controls the base rotation from 0 to 180 degrees.

M2: Controls the shoulder movement from 15 to 165 degrees.

M3: Controls the elbow movement from 0 to 180 degrees.

M4: Controls the wrist vertical movement from 0 to 180 degrees.

M5: Controls the wrist rotation from 0 to 180 degrees.

M6: Controls the gripper, with 10 degrees indicating fully open and 73 degrees indicating fully closed.

Braccio motor shield and Arduino uno. Image courtesy of Arduino.org/braccio 

The terminal connectors on the Braccio Motor Shield are mapped to the following pins on the shield and the Arduino board:


Pinouts

The Braccio Motor Shield features 12 standard 3-pin connectors. The orange connectors labeled M1 through M6 are connected to the PWM-capable outputs of the Arduino board and can drive either servo motors or LED lights. The connectors labeled I0 through I5 serve as analog inputs.

Here is the detailed mapping of the connectors to their respective pins on the shield and the Arduino board:

Analog Inputs:

Connectors I0 to I5: These connectors serve as analog inputs, allowing the Arduino to read sensor data or other analog signals. Here is the detailed mapping of these connectors to their respective pins:

Software Integration for Braccio Robotic Arm

To begin controlling the Braccio robotic arm, the first step is to download and install the TinkerKit Braccio Library. This can be done either from the Arduino website or directly through the Library Manager in the Arduino Software (IDE). Simply search for "Braccio" in the Library Manager and install the TinkerKit Braccio Library.

Once the library is installed, you can begin programming the Braccio robotic arm using the provided functions. The library offers two main functions for controlling the arm:

#include <Braccio.h>

void setup() {

  Braccio.Begin();  // Initialize the Braccio robotic arm

}

void loop() {

  // Set desired positions for each servo motor

  // Adjust the step delay and servo positions as needed

  // Example movement

  Braccio.ServoMovement(50, 90, 90, 90, 90, 90, 90);  

  delay(1000);  // Delay between movements

}


Simple Movement Test

To perform a basic movement test with the Braccio robotic arm, you can use the Braccio.ServoMovement() function to set the desired positions for all servo motors. Below is an example code snippet taken from the Arduino IDE example folder:

#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, 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);

}

To locate this example code in the Arduino IDE, navigate to:

File => Examples => Braccio => SimpleMovements 

In this example, the Braccio.ServoMovement() function sets all servo motors to specific positions (in degrees) with a step delay of 50 milliseconds between movements. You can modify the servo positions and step delay according to your requirements.

/*

Step Delay: a milliseconds delay between the movement of each servo. 

M1=base degrees. 

M2=shoulder degrees. 

M3=elbow degrees. 

M4=wrist vertical degrees. 

M5=wrist rotation degrees. 

M6=gripper degrees. 

*/

By running this example code, you can observe the Braccio robotic arm performing basic movements according to the specified servo positions. This serves as a starting point for further experimentation and integration of more complex movements and functionalities.

»»» END of    Braccio Robotic Arm »»»