Hexapod servo test 2

  Рет қаралды 19,430

Jerry Hanna

Jerry Hanna

5 жыл бұрын

It's alive! 12 servos running on a PCA9685 board

Пікірлер: 20
@obelusstem199
@obelusstem199 4 ай бұрын
This design is amazing! I like how you have only two servos per limb
@ukrainerobotics
@ukrainerobotics Жыл бұрын
Great job!
@JASMVNT
@JASMVNT Жыл бұрын
How you guys do this! It's Amazoing.👍👍
@GCKteamKrispy
@GCKteamKrispy 6 ай бұрын
How did you remove jittering of these servos?
@waynew6707
@waynew6707 5 жыл бұрын
Is that running a canned cycle or are you controlling the movement?
@Pathan_aamir2212
@Pathan_aamir2212 Жыл бұрын
Is it ready
@Anime-zp9gd
@Anime-zp9gd 6 ай бұрын
Which servos are used
@xs1l3n7x
@xs1l3n7x 8 ай бұрын
That looks really good. Are the 3d printed parts available to anyone?
@jerryhanna7869
@jerryhanna7869 8 ай бұрын
Sure. www.thingiverse.com/thing:3629836
@marshallsober
@marshallsober Жыл бұрын
can you share the 3d model ? it seems like the best ive seen.
@jerryhanna7869
@jerryhanna7869 Жыл бұрын
www.thingiverse.com/thing:3629836
@RomanGen1
@RomanGen1 Жыл бұрын
are sg90 can handle such weight ?
@jerryhanna7869
@jerryhanna7869 Жыл бұрын
There are always 4 of the legs on the ground so the weight is always split between multiple sg90s.
@surendarmalai96
@surendarmalai96 2 ай бұрын
yo can i get the files used to design this? building one rn
@jerryhanna7869
@jerryhanna7869 2 ай бұрын
www.thingiverse.com/thing:3629836
@khaledmostafa9980
@khaledmostafa9980 Ай бұрын
Hi buddy i have this robot as a project in my collage can you just gimme any link for anyone can build amazing code ?
@jerryhanna7869
@jerryhanna7869 Ай бұрын
Here's the main code... #include #include #define CUSTOM_SETTINGS #define INCLUDE_GAMEPAD_MODULE #include Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); int DELAY_BETWEEN_MOVES = 10; int staticpos = 375; int delta1 = 120; int delta2 = 50; int delta3 = 38; unsigned char direction = 'h'; unsigned char previousdirection = 'h'; void setup() { pwm.begin(); Dabble.begin(9600); pwm.setPWMFreq(60); zeropoz(); delay(3000); } void loop() { previousdirection = direction; getdir(); switch(direction) { case 'U' : forward(); break; case 'D' : backward(); break; case 'L' : turnleft(); break; case 'R' : turnright(); break; case '-' : if(DELAY_BETWEEN_MOVES = 10) DELAY_BETWEEN_MOVES -= 5; direction = previousdirection; break; case 'h' : zeropoz(); break; default : forward(); } } void getdir() { Dabble.processInput(); if (GamePad.isUpPressed()) { direction = 'U'; } if (GamePad.isDownPressed()) { direction = 'D'; } if (GamePad.isLeftPressed()) { direction = 'L'; } if (GamePad.isRightPressed()) { direction = 'R'; } if (GamePad.isSquarePressed()) { direction = 'h'; } if (GamePad.isCirclePressed()) { direction = previousdirection; } if (GamePad.isCrossPressed()) { direction = '-'; } if (GamePad.isTrianglePressed()) { direction = '+'; } if (GamePad.isStartPressed()) { direction = previousdirection; } if (GamePad.isSelectPressed()) { direction = previousdirection; } } void zeropoz() { pwm.setPWM(0, 0, 375); pwm.setPWM(1, 0, 375); pwm.setPWM(2, 0, 375); pwm.setPWM(3, 0, 375); pwm.setPWM(4, 0, 375); pwm.setPWM(5, 0, 375); pwm.setPWM(6, 0, 375); pwm.setPWM(7, 0, 375); pwm.setPWM(8, 0, 375); pwm.setPWM(9, 0, 375); pwm.setPWM(10, 0, 375); pwm.setPWM(11, 0, 375); pwm.setPWM(12, 0, 375); } void walkpoz() { int pdelta1 = 60; pwm.setPWM(0, 0, 375); pwm.setPWM(1, 0, 375); pwm.setPWM(2, 0, 375-pdelta1); pwm.setPWM(3, 0, 375); pwm.setPWM(4, 0, 375+pdelta1); pwm.setPWM(5, 0, 375); pwm.setPWM(6, 0, 375); pwm.setPWM(7, 0, 375); pwm.setPWM(8, 0, 375-pdelta1); pwm.setPWM(9, 0, 375); pwm.setPWM(10, 0, 375+pdelta1); pwm.setPWM(11, 0, 375); } void forward() { Group1Up(); delay(DELAY_BETWEEN_MOVES); Group2Bw(); delay(DELAY_BETWEEN_MOVES); Group1Fw(); delay(DELAY_BETWEEN_MOVES); Group1Down(); delay(DELAY_BETWEEN_MOVES); Group2Up(); delay(DELAY_BETWEEN_MOVES); Group1Bw(); delay(DELAY_BETWEEN_MOVES); Group2Fw(); delay(DELAY_BETWEEN_MOVES); Group2Down(); delay(DELAY_BETWEEN_MOVES); } void backward() { Group1Up(); delay(DELAY_BETWEEN_MOVES); Group2Fw(); delay(DELAY_BETWEEN_MOVES); Group1Bw(); delay(DELAY_BETWEEN_MOVES); Group1Down(); delay(DELAY_BETWEEN_MOVES); Group2Up(); delay(DELAY_BETWEEN_MOVES); Group1Fw(); delay(DELAY_BETWEEN_MOVES); Group2Bw(); delay(DELAY_BETWEEN_MOVES); Group2Down(); delay(DELAY_BETWEEN_MOVES); } void turnleft(void) { Group1Up(); delay(DELAY_BETWEEN_MOVES); Group2Right(); delay(DELAY_BETWEEN_MOVES); Group1Left(); delay(DELAY_BETWEEN_MOVES); Group1Down(); delay(DELAY_BETWEEN_MOVES); Group2Up(); delay(DELAY_BETWEEN_MOVES); Group1Right(); delay(DELAY_BETWEEN_MOVES); Group2Left(); delay(DELAY_BETWEEN_MOVES); Group2Down(); delay(DELAY_BETWEEN_MOVES); } void turnright(void) { Group1Up(); delay(DELAY_BETWEEN_MOVES); Group2Left(); delay(DELAY_BETWEEN_MOVES); Group1Right(); delay(DELAY_BETWEEN_MOVES); Group1Down(); delay(DELAY_BETWEEN_MOVES); Group2Up(); delay(DELAY_BETWEEN_MOVES); Group1Left(); delay(DELAY_BETWEEN_MOVES); Group2Right(); delay(DELAY_BETWEEN_MOVES); Group2Down(); delay(DELAY_BETWEEN_MOVES); } void Group1Up() { for(int jk=375+delta2; jk>=375-delta1; jk--) { pwm.setPWM(1, 0, jk); //knee left back pwm.setPWM(5, 0, jk); //knee left front pwm.setPWM(9, 0, jk); //knee right middle } } void Group2Up() { for(int jk=375+delta2; jk>=375-delta1; jk--) { pwm.setPWM(3, 0, jk); //knee left middle pwm.setPWM(7, 0, jk); //knee right front pwm.setPWM(11, 0, jk); //knee righ back } } void Group1Down() { for(int jk=375-delta1; jk
@josemunoz-ev3dt
@josemunoz-ev3dt 7 ай бұрын
U still have the code? Would u share it? 😢
@jerryhanna7869
@jerryhanna7869 7 ай бұрын
#include #include #define CUSTOM_SETTINGS #define INCLUDE_GAMEPAD_MODULE #include Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); int DELAY_BETWEEN_MOVES = 10; int staticpos = 375; int delta1 = 120; int delta2 = 50; int delta3 = 38; unsigned char direction = 'h'; unsigned char previousdirection = 'h'; void setup() { pwm.begin(); Dabble.begin(9600); pwm.setPWMFreq(60); zeropoz(); delay(3000); } void loop() { previousdirection = direction; getdir(); switch(direction) { case 'U' : forward(); break; case 'D' : backward(); break; case 'L' : turnleft(); break; case 'R' : turnright(); break; case '-' : if(DELAY_BETWEEN_MOVES = 10) DELAY_BETWEEN_MOVES -= 5; direction = previousdirection; break; case 'h' : zeropoz(); break; default : forward(); } } void getdir() { Dabble.processInput(); if (GamePad.isUpPressed()) { direction = 'U'; } if (GamePad.isDownPressed()) { direction = 'D'; } if (GamePad.isLeftPressed()) { direction = 'L'; } if (GamePad.isRightPressed()) { direction = 'R'; } if (GamePad.isSquarePressed()) { direction = 'h'; } if (GamePad.isCirclePressed()) { direction = previousdirection; } if (GamePad.isCrossPressed()) { direction = '-'; } if (GamePad.isTrianglePressed()) { direction = '+'; } if (GamePad.isStartPressed()) { direction = previousdirection; } if (GamePad.isSelectPressed()) { direction = previousdirection; } } void zeropoz() { pwm.setPWM(0, 0, 375); pwm.setPWM(1, 0, 375); pwm.setPWM(2, 0, 375); pwm.setPWM(3, 0, 375); pwm.setPWM(4, 0, 375); pwm.setPWM(5, 0, 375); pwm.setPWM(6, 0, 375); pwm.setPWM(7, 0, 375); pwm.setPWM(8, 0, 375); pwm.setPWM(9, 0, 375); pwm.setPWM(10, 0, 375); pwm.setPWM(11, 0, 375); pwm.setPWM(12, 0, 375); } void walkpoz() { int pdelta1 = 60; pwm.setPWM(0, 0, 375); pwm.setPWM(1, 0, 375); pwm.setPWM(2, 0, 375-pdelta1); pwm.setPWM(3, 0, 375); pwm.setPWM(4, 0, 375+pdelta1); pwm.setPWM(5, 0, 375); pwm.setPWM(6, 0, 375); pwm.setPWM(7, 0, 375); pwm.setPWM(8, 0, 375-pdelta1); pwm.setPWM(9, 0, 375); pwm.setPWM(10, 0, 375+pdelta1); pwm.setPWM(11, 0, 375); } void forward() { Group1Up(); delay(DELAY_BETWEEN_MOVES); Group2Bw(); delay(DELAY_BETWEEN_MOVES); Group1Fw(); delay(DELAY_BETWEEN_MOVES); Group1Down(); delay(DELAY_BETWEEN_MOVES); Group2Up(); delay(DELAY_BETWEEN_MOVES); Group1Bw(); delay(DELAY_BETWEEN_MOVES); Group2Fw(); delay(DELAY_BETWEEN_MOVES); Group2Down(); delay(DELAY_BETWEEN_MOVES); } void backward() { Group1Up(); delay(DELAY_BETWEEN_MOVES); Group2Fw(); delay(DELAY_BETWEEN_MOVES); Group1Bw(); delay(DELAY_BETWEEN_MOVES); Group1Down(); delay(DELAY_BETWEEN_MOVES); Group2Up(); delay(DELAY_BETWEEN_MOVES); Group1Fw(); delay(DELAY_BETWEEN_MOVES); Group2Bw(); delay(DELAY_BETWEEN_MOVES); Group2Down(); delay(DELAY_BETWEEN_MOVES); } void turnleft(void) { Group1Up(); delay(DELAY_BETWEEN_MOVES); Group2Right(); delay(DELAY_BETWEEN_MOVES); Group1Left(); delay(DELAY_BETWEEN_MOVES); Group1Down(); delay(DELAY_BETWEEN_MOVES); Group2Up(); delay(DELAY_BETWEEN_MOVES); Group1Right(); delay(DELAY_BETWEEN_MOVES); Group2Left(); delay(DELAY_BETWEEN_MOVES); Group2Down(); delay(DELAY_BETWEEN_MOVES); } void turnright(void) { Group1Up(); delay(DELAY_BETWEEN_MOVES); Group2Left(); delay(DELAY_BETWEEN_MOVES); Group1Right(); delay(DELAY_BETWEEN_MOVES); Group1Down(); delay(DELAY_BETWEEN_MOVES); Group2Up(); delay(DELAY_BETWEEN_MOVES); Group1Left(); delay(DELAY_BETWEEN_MOVES); Group2Right(); delay(DELAY_BETWEEN_MOVES); Group2Down(); delay(DELAY_BETWEEN_MOVES); } void Group1Up() { for(int jk=375+delta2; jk>=375-delta1; jk--) { pwm.setPWM(1, 0, jk); //knee left back pwm.setPWM(5, 0, jk); //knee left front pwm.setPWM(9, 0, jk); //knee right middle } } void Group2Up() { for(int jk=375+delta2; jk>=375-delta1; jk--) { pwm.setPWM(3, 0, jk); //knee left middle pwm.setPWM(7, 0, jk); //knee right front pwm.setPWM(11, 0, jk); //knee righ back } } void Group1Down() { for(int jk=375-delta1; jk
@josemunoz-ev3dt
@josemunoz-ev3dt 7 ай бұрын
@@jerryhanna7869 luv u so much!! how could I thank you
Hexapod Gait demo. Fast and slow..
2:49
Zenta
Рет қаралды 34 М.
DELETE TOXICITY = 5 LEGENDARY STARR DROPS!
02:20
Brawl Stars
Рет қаралды 17 МЛН
Climbing to 18M Subscribers 🎉
00:32
Matt Larose
Рет қаралды 26 МЛН
Как быстро замутить ЭлектроСамокат
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 14 МЛН
BirdBot, an energy-efficient robot leg inspired by birds' legs
3:20
Dynamic Locomotion Group
Рет қаралды 123 М.
I Built a Ball Balancing Robot
8:55
Aaed Musa
Рет қаралды 1 МЛН
I Taught My Hexapod a Slam Attack
8:03
Aecert Robotics
Рет қаралды 147 М.
The Making of PhantomX Hexapod MK-IV
6:37
Trossen Robotics
Рет қаралды 38 М.
I Completely Scrapped My Hexapod's Code
5:51
Aecert Robotics
Рет қаралды 34 М.
5 Amazing Spider Robots (hexapods / Octopods) you must see.
12:52
Orwell the Hexapod Robot
0:38
Derelict Robot
Рет қаралды 112 М.
3D Printed Arduino Hexapod Part II - Leg Design
3:17
Will Cogley
Рет қаралды 155 М.