How can I make Braccio only perform a one degree rotation of a servo, without performing the Soft Start?

From this guide (https://www.arduino.cc/en/Guide/Braccio) I copied the code to disable Soft Start of Tinkerkit Braccio, which is:

pinMode(12, OUTPUT); you need to set HIGH the pin 12
digitalWrite(12, HIGH);


Braccio.begin(SOFT_START_DISABLED); and set a proper parameter to disable the soft start

I edited the testBraccio90 example from the library Braccio by Andrea Martino to implement the previous code:

#include
#include

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

void setup() {
pinMode(12, OUTPUT);
digitalWrite(12, HIGH);
Braccio.begin(SOFT_START_DISABLED);
}

// The original example from Andrea Martino had more comments, and had the setup configured like this:
// void setup() {
// Braccio.begin();
// }

void loop() {
Braccio.ServoMovement(20, 90, 90, 90, 90, 90, 73);
}

Problem is it doesn't seem to successfully disable Soft Start: after the upload, Braccio does a different Soft Start then the previous (seems to cycle through different Soft Starts) before finishing with the pose specified in Braccio.ServoMovement()

My intent is to stop the robot in the position specified in Braccio.ServoMovement(), and then upload a slightly different value of a servo to facilitate the comparison between two different degrees.

Example:

// This is the void loop now, same of the above:
Braccio.ServoMovement(20, 90, 90, 90, 90, 90, 73);
// This is the only thing I'd like to see the robot arm do
Braccio.ServoMovement(20, 90, 90, 90, 90, 90, 72);
// I just decreased by one the value of the last servo

If I do this change now, it will still perform the Soft Start.

How can I make the robot only perform a one degree rotation of a servo, without performing the Soft Start?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.

I wish the soft start was a bit more documented. It is hard to understand its use and usage. My understanding is that it is simply a period of time (8 seconds by default) where the motors are only given a fraction of their nominal power, so that they can reach a safe start position without breaking anything in case there is something in the way.

Braccio.begin()

Does the Soft Start and initializes a default pose that is equivalent to calling

Braccio.ServoMovement(20, 0, 40, 180, 170, ,0, 73)

In the (limited) experiences I did, I could not get the arm to start without activating the softstart. You can however change the initial pose by modifying the braccio library. For what you want to do, there are, I think, 3 options:

  • Modify the Braccio library
  • Find a better library. The default one is really limited, and there is more than 100 braccio libraries on github
  • Simply copy all the braccio.cpp file into your sketch and modify the begin() function to accept initial pose parameters.