Active Ball Joint Mechanisim Using Fusion 360, and Arduino Uno R3

by kikoASN in Workshop > 3D Printing

1361 Views, 7 Favorites, 0 Comments

Active Ball Joint Mechanisim Using Fusion 360, and Arduino Uno R3

Screenshot 2023-06-19 180722.png
active ball and socket mechanisim
ball and socket mechanisim thelat moves

Hello everyone, my name is Ahmed, and I currently attend Sharjah American International School Dubai, when I built this project I was in Grade 9 but I am in grade 11 now. I really like this project because it was so easy to make most of my projects that I build now take weeks to complete, but I built this one in a day. I hope you enjoy building it as much as I did

Supplies

I used a ender 5 pro to print this but you can use any 3d printer that fits the model on it

my supplies were

  • 3d printer and acces to fusion 360 if you want to design it but i have shared stl files for it already.
  • 2- 28byj-48 stteper motor
  • 1- arduino uno r3
  • 1- mini breadboard
  • 17- femal to male jumper cables
  • 2- male to male jumper cabels
  • 1- HW-504 Joystick Breakout Module, or spark fun joystick module
  • 3d printed parts (2 of these slt models should be printed: half gear ball, and piece that the stepper motor end attaches to)

my tools were

  • drill
  • super glue
  • small screws

Designing the Pieces in Fusion 360

using revolve on a gear to make it a ball.png
Screenshot 2023-06-19 170550.png
Screenshot 2023-06-19 171039.png

You dont have to design it this is just to show how i designed it in case you want to know how

Basicaly I got a big gear and a small gear model then I used the revolve toot on fusion 360 to make one a ball and used the gear ball to make the othe small gear that will be the thing to turn it later on.

Then I designed the holders I over complicated the holder between the stepper motors and the base acedentallly becuase I was planning for the gear to move the ball from its side not from on top so I printed a second half to allow it to be on top. I desined a T shape that would be able to use the holes in the stepper motor then I connected it to a horizontal rectangle piece with a rectangle hole for the piece that attaches to the end of a stepper motor to fit in. This allowed the 2 motors to be connected to each other. Then I made 2 pieces that glue to together then to the base, and that was how I designed it.

How It Works

Basically it has a ball gear and another custom gear that can move the ball foreword and backwards and anothet stepper motor rotates the ball. it is controlled using a joystick module and a arduino uno r3.

Assembly

Screenshot 2023-06-19 174042.png
Screenshot 2023-06-19 174056.png
Screenshot 2023-06-19 174109.png
Screenshot 2023-06-19 174436.png
Screenshot 2023-06-19 174445.png

first we print all the pieces then we get the 2 halfs and glue them together. Then we get the gear and super glue the rectangle to its center so it can attach to stepper motor 1. Then we screw the stepper motor to the smal T shape holder and we glue the 2nd rectangle to the part with a hole in it. Then we screw the 2nd stepper motor to the T shape of the 1st half of the holder that ataches to the base and we glue the 2 pieces, and then glue it to the base.

Curcuit Diagram

Screenshot 2023-06-19 173151.png
Screenshot 2023-06-19 174012.png

Just for the joystick module the black wire goes to the ground the red wire goes to the power, the pink wire goes to the x axis, and yellow wire goes to the y axis if you are usong another other model of joystick module.

Code

now we finished building and the curcuit so we do the programming

this was the code.

just be sure to download the stepper.h library on arduino.ide


#include <Stepper.h>


const int stepsPerRevolution = 64; // change this to fit the number of steps per revolution

// for your motor



// initialize the stepper library for both steppers:

Stepper small_stepper(stepsPerRevolution, 8, 10, 9, 11);

Stepper small_stepper2(stepsPerRevolution, 3, 5, 4, 6);


void setup() {


 // set the speed of the motors

 small_stepper.setSpeed(300);  // set first stepper speed

 small_stepper2.setSpeed(300);  // set second stepper speed

}



void loop() {


 int sensorReading = analogRead(A0); // read value from joystick X-axis


 if (sensorReading < 490) {

  small_stepper.step(1); // step left

 }

 if (sensorReading > 540) {

  small_stepper.step(-1); // step right

 }


 int sensorReading2 = analogRead(A1); // read value from joystick Y-axis


 if (sensorReading2 < 490) {

  small_stepper2.step(1); // step forward

 }

 if (sensorReading2 > 540) {

  small_stepper2.step(-1); // step backward

 }


}

Enjoy

ball and socket mechanisim thelat moves
active ball and socket mechanisim

sorry for the backround noise.