Go Down

Topic: Braccio Troubleshooting (Read 454 times) previous topic - next topic

chrisfadel

Jun 30, 2020, 08:37 pm Last Edit: Jun 30, 2020, 08:38 pm by chrisfadel
I recently purchased an Arduino Braccio for a research project. For those who don't know, it is a robotic arm kit that Arduino sells on their website. It includes its own shield to control the 6 servos as well as a power adapter for said shield.

After building the robot, wiring all the motors, powering the shield, and connecting the shield to an Arduino Uno, I loaded an example code from the Braccio library and...nothing happened. The robot didn't move. The IDE is recognizing the board and is connected to the right COM port. I even went as far as to uninstall the Arduino IDE but nothing changed.

Does anyone have any idea what could be causing this issue and what I can do to fix it? I'm happy to provide more details if necessary.

Idahowalker

Why not just provide the details right from the get-go?

Could you post your code, formatted and in code tags, so that someone might go "AhHa!" or not?

chrisfadel

I didn't add it because it is the example that comes with the Braccio library. I included it below.

 /*
  testBraccio90.ino

 testBraccio90 is a setup sketch to check the alignment of all the servo motors
 This is the first sketch you need to run on Braccio
 When you start this sketch Braccio will be positioned perpendicular to the base
 If you can't see the Braccio in this exact position you need to reallign the servo motors position

 Created on 18 Nov 2015
 by Andrea Martino

 This example is in the public domain.
 */

#include <Braccio.h>
#include <Servo.h>


Servo base;
Servo shoulder;
Servo elbow;
Servo wrist_rot;
Servo wrist_ver;
Servo gripper;

void setup() { 
  //Initialization functions and set up the initial position for Braccio
  //All the servo motors will be positioned in the "safety" position:
  //Base (M1):90 degrees
  //Shoulder (M2): 45 degrees
  //Elbow (M3): 180 degrees
  //Wrist vertical (M4): 180 degrees
  //Wrist rotation (M5): 90 degrees
  //gripper (M6): 10 degrees
  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: the toungue is open, 73: the gripper is closed.
  */
 
  // the arm is aligned upwards  and the gripper is closed
                     //(step delay, M1, M2, M3, M4, M5, M6);
  Braccio.ServoMovement(20,         90, 90, 90, 90, 90,  73); 
   
}

Idahowalker

#3
Jun 30, 2020, 11:43 pm Last Edit: Jun 30, 2020, 11:44 pm by Idahowalker
Code: [Select]
#include <Braccio.h>
#include <Servo.h>


Servo base;
Servo shoulder;
Servo elbow;
Servo wrist_rot;
Servo wrist_ver;
Servo gripper;

void setup() {
Serial.begin( Thesamebuadrate as theserialmonitor);
  //Initialization functions and set up the initial position for Braccio
  //All the servo motors will be positioned in the "safety" position:
  //Base (M1):90 degrees
  //Shoulder (M2): 45 degrees
  //Elbow (M3): 180 degrees
  //Wrist vertical (M4): 180 degrees
  //Wrist rotation (M5): 90 degrees
  //gripper (M6): 10 degrees
  Braccio.begin();
Serial.println( "woot woot );


}

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: the toungue is open, 73: the gripper is closed.
  */
 
  // the arm is aligned upwards  and the gripper is closed
                     //(step delay, M1, M2, M3, M4, M5, M6);
Serial.println( "ackerrbingzing");
  Braccio.ServoMovement(20,         90, 90, 90, 90, 90,  73);
serial.Println( "gleebaplolowheels");
   
}


Why not add in a few serial prints to see what's going on; like I did?

chrisfadel

I tried using the serial prints like you suggested. They show up in the serial monitor, but the robot still doesn't respond at all. So I have a bit more confidence that the code is working properly.

wildbill

What do you have powering the shield?

Go Up