author
2Instructables25,807Views6CommentsJoined November 12th, 2014

Tell us about yourself!

Complete Your Profile

Achievements

10K+ Views Earned a bronze medal
  • Upside Up - Robot Balancing Revisited

    Sure, I would be happy to.If you have ever played with a DC motor, and slowly increased the voltage from 0V, you will notice that for very small voltages, the motor does not turn, is just kind of sits there and buzzes. That results in a kind of dead zone for the motor for those low voltage values. It turns out that when balancing a robot, the motor voltage goes from positive(+) to negative(-) and back, passing through this low voltage range quite frequently. The MotorSlack variable and constant are what I came up with to jump over this "dead zone", and remove this range of voltages during which there is no corrective force being applied. By adding the variable to positive PWM values, and subtracting it from negative values, the absolute value of PWM sent to the motor will ...

    see more »

    Sure, I would be happy to.If you have ever played with a DC motor, and slowly increased the voltage from 0V, you will notice that for very small voltages, the motor does not turn, is just kind of sits there and buzzes. That results in a kind of dead zone for the motor for those low voltage values. It turns out that when balancing a robot, the motor voltage goes from positive(+) to negative(-) and back, passing through this low voltage range quite frequently. The MotorSlack variable and constant are what I came up with to jump over this "dead zone", and remove this range of voltages during which there is no corrective force being applied. By adding the variable to positive PWM values, and subtracting it from negative values, the absolute value of PWM sent to the motor will never be less than MotorSlack, effectively jumping from (+)MotorSlack to (-)MotorSlack when going through 0 from (+) to (-) voltages for example.The MOTOR_X_SLACKMOD constants are defined in the SimpleRobot.h file, and allow fine tuning of the values for each motor, as I found each motor had slightly different behavior.I hope that helps. Have fun!

    View Instructable »
  • dustnnotes commented on dustnnotes's instructable Upside Up - Robot Balancing Revisited2 months ago
    Upside Up - Robot Balancing Revisited

    Yes, it worked well for me, but I did have to connect V-logic to 3.3V on the motor shield (using the provided pads).

    My concern about the Arduino Uno would primarily be the 32K of Flash - I am not sure the program would fit. I would recommend getting the 101 and motor shield.

    View Instructable »
  • dustnnotes commented on dustnnotes's instructable Upside Up - Robot Balancing Revisited8 months ago
    Upside Up - Robot Balancing Revisited

    Sure! Figure 4 in step 5 is a diagram of how the sensors are connected to the PID controller. The accelerometer and and the gyroscope are used by the complementary filter to generate an estimated angle. This estimated angle is then compared to a set point, and the difference is used in the proportional and Integral terms of the PID controller. The gyroscope is then used directly in the differential term. Hope that helps!

    View Instructable »
  • dustnnotes commented on dustnnotes's instructable Upside Up - Robot Balancing Revisited10 months ago
    Upside Up - Robot Balancing Revisited

    I am not very familiar with the Arduino Leonardo, but a quick search shows it does not include the IMU. So you would need to add an IMU to your robot, and adapt the code that interacts with the IMU. So the short answer is the code as it stands will not work in Leonardo, but with changes, it probably could be made to work.

    View Instructable »
  • Simple Self-balancing Robot w/ Galileo Gen 2

    Thanks for the comment! I agree it could be more stable. I spent some time investigating better balancing performance, and was a bit surprised at what I found ... check out if interested : https://www.instructables.com/id/Upside-Up-Robot-Ba...

    View Instructable »