JustAnotherMakerChannel

JustAnotherMakerChannel

This is Just Another Maker Channel... I really hope I can inspire someone to take an interest in engineering, or to just share some of my knowledge (I'm sure I had some somewhere!)

I have a few projects lined up and this is the space where I'm going to share and document them. If you like the content or find it interesting then please give a like, leave a comment and hit the subscribe button!

Thanks,
Dan

Desk Mounted Video Arm

Desk Mounted Video Arm

How Do Stepper Motors Work

How Do Stepper Motors Work

3D Printed Mini Tripod

3D Printed Mini Tripod

Пікірлер

  • @SrGreck
    @SrGreck4 күн бұрын

    Hi there! I really enjoyed your video on the 28byj-48 motor. Do you have the 3D model available for download? I'm interested in creating a new internal reduction for the motor and would find it super useful. Also, do you know if the sizes in the model are accurate? Any insights would be appreciated!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel4 күн бұрын

    Yes I can share the model, what format would be useful for you, I modelled it in fusion 360. It should be quite accurate though I think the gears are just an approximation, I.e. the teeth are not accurate involute profiles.

  • @SrGreck
    @SrGreck4 күн бұрын

    @@JustAnotherMakerChannel Fantastic! Thanks for being willing to share the model. Fusion 360 format works perfectly for me. And no worries about the gear teeth; I can work with approximations.

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel4 күн бұрын

    I've just uploaded the files and you can find them here: www.thingiverse.com/thing:6620639 Sometimes Thingiverse is not very good and the link might not work until it decides to, you might have to check back in an hour or two.

  • @SrGreck
    @SrGreck4 күн бұрын

    @@JustAnotherMakerChannel Great! Thank you for sharing the link. I've managed to download the files successfully.

  • @panmaneecnc
    @panmaneecnc19 күн бұрын

    Thank you very much for your information and I have taken your information to study and adapted it into python for learning. If anyone is interested, you can follow and test and try it at this link. colab.research.google.com/drive/1tpKsER2IazlSDh9AVQmRVnxvxA4uU8Hm?usp=sharing

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel19 күн бұрын

    Thank you for the positive feedback and thank you for this contribution!

  • @panmaneecnc
    @panmaneecnc19 күн бұрын

    @@JustAnotherMakerChannel You are amazing. I will continue to share the knowledge you have given me with my friends.

  • @yoashuain1
    @yoashuain120 күн бұрын

    Really? 5V for your unmodified stepper, and 12V for your modded stepper? G... I wonder why. 😂😊

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel20 күн бұрын

    The power figures are comparable, I.e. the higher voltage and alternative driving mode produce more torque whilst consuming less power and thus producing less heat.

  • @rezageraldy-gn1jw
    @rezageraldy-gn1jw29 күн бұрын

    could i ask you sir. we kinda have problem when it comes to writing j3 and j2 arduino. we use your formula but the output show nan. we are not missing any single information for video even though it only one mistake. so pls help us this for high school project.

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel29 күн бұрын

    Can you share your code?

  • @a330turbinex7
    @a330turbinex7Ай бұрын

    Superb!!!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    Thank you so much :)

  • @guilhermeconstantinov
    @guilhermeconstantinovАй бұрын

    should the angle really be negative? depending on the value, the J3 is negative

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    I’m not sure exactly where you are referring to in the video

  • @guilhermeconstantinov
    @guilhermeconstantinovАй бұрын

    why were these values added? const double Y_Rest = 70.0; const double Z_Rest = -80.0;

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    These values were added so that the movements can be made relative to a ‘resting’ position, without them it’s not as practical to plan movements from the centre of J1.

  • @guilhermeconstantinov
    @guilhermeconstantinovАй бұрын

    @@JustAnotherMakerChannel got it, thanks for the explanation

  • @rtenenbown
    @rtenenbownАй бұрын

    Hello, great video! Will you please share your wiring schematic with the DRV8825 and controller board?

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    Sorry for the late reply, if you check out my ‘how do stepper motors work’ video there is an example at 11:30, just substitute the A1 & A2 for orange and pink and the B1 & B2 for blue and yellow. Hope this helps :)

  • @brandonheat5262
    @brandonheat5262Ай бұрын

    does it matter if J1 has offset away from J2? I see there are many designs of 3 dof leg in this way.

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    Yes it would have an effect on the XY solution, I think you would need to calculate the angle for J1 first, then using that angle and the offset to J2 calculate the X and Y value for where J2 is now located and subtract those from the X and Y used to calculate J2 and J3

  • @saveusfromidiocracy35
    @saveusfromidiocracy35Ай бұрын

    Hexapod with Parkinsons 😂. Good effort. Try using better servos

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    I agree better servos are a must for version 2!

  • @ainbrisk545
    @ainbrisk545Ай бұрын

    very cool! thanks for the explanation (and the take apart), very helpful in understanding the motor

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    Thank you, glad you liked it :)

  • @Davut_Bay
    @Davut_BayАй бұрын

    Hello, can you give me your e-mail address? I need to consult you about a few issues.

  • @AnJo888
    @AnJo888Ай бұрын

    Hello, there. Good hacking video. My only doubt is: how the comparison between a 5V motor and 12V hacked should be interpreted... I mean, using a higher voltage wouldn't affect the results?

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    Thank you :) The change in voltage is mainly due to the change in driving mode. The original driver runs as constant voltage, whereas the modification allows the stepper to be controlled as constant current. Although the modified motor driver is running at 12V the motor will not have a constant 12V across the coils, this is mainly why I included the power values as they are more representative of what's going on, as an example looking at the first modified test @4:08, the motor is using 30% less power overall but producing almost 4 times the torque, since this test is performed at 50mA per coil and the original unmodified motor had a current draw of 340mA with a constant 5V applied we could in theory run the modified motor at 5V and still achieve 50mA per coil and still see an increase in torque, it's just easier to find stepper drivers that work at higher voltages as they can generally accelerate the motors faster by using a higher voltage. I hope that was useful :)

  • @senaalfarabi4077
    @senaalfarabi4077Ай бұрын

    I want ask something, in minute 3:25 . Are L variable is range between servo 2 and the lowest point of foot point can be?

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    L is from servo 2 to the position of the foot, where we want to position it, there will be a range of motion that can be achieved depending on the lengths J2L and J3L. I hope this answers your question :)

  • @senaalfarabi4077
    @senaalfarabi4077Ай бұрын

    Another question at 9:37 , where you can get y,90 and z,-60?

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    No problem, those are physical measurements, I obtained them from the CAD model of the design with the leg in the 'resting' position that I wanted.

  • @DiepBlueC
    @DiepBlueCАй бұрын

    can you post your sketch as a comment or something? It is hard to read in the video. Thanks for posting!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannelАй бұрын

    I’m working away in Spain this week, but I will add the code on Monday when I am back at home :)

  • @durgeshbg
    @durgeshbg2 ай бұрын

    03:11 that's where i lost track, cool work btw might get into robotics sometime in the future, thanks

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    You should, it’s a fascinating subject, glad you liked the video :)

  • @noweare1
    @noweare12 ай бұрын

    The 5 volt test, the motor did not seem to sound correct and the shaft did not move smoothly. You might have to drive them at a different frequency to find the sweet spot.

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Yes, they did seem strange, I remember having issues trying to ramp the speed too quickly too!

  • @AugustoCoelhoHenriques
    @AugustoCoelhoHenriques2 ай бұрын

    i believe that your plastic pieces has a deforming factor greater than metal so dispite your theory about scale is corret you need a better deforming factor material, in first stage you can easily bend the metal sheet because is not plastic that is deforming it but that metal rod. If you apply 90% plastic but just the tip of some metal you can achieve better results i believe

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Great information, I certainly need to read more about metal forming!

  • @Moonrakerd
    @Moonrakerd2 ай бұрын

    Id say cast the tools out of pewter

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    I haven’t done any pewter casting before, is it tricky? I’ve done a few lead weights in the past.

  • @Moonrakerd
    @Moonrakerd2 ай бұрын

    @@JustAnotherMakerChannel looks easy enough, I bought some and the solder heater, but havent tried much yet :))

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Thanks for the tip I might give it a try :)

  • @AngelDLM08
    @AngelDLM082 ай бұрын

    Interesting to see strength and durability comparsion with eSUN ePLA-CF, they claim 15-20% carbon fibers, while Bambu makes PLA-CF and PETG-CF 5%, and only PA6-CF, PAHT-CF (PA12) and PET-CF is probably 15% (MSDS says 12-20%) Printed some parts with Bambu PLA-CF 5% and I'm disappointed, it negligible stiffer than eSUN PLA+ but doubles the price and will wear AMS unit faster

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    I think when I manage to get a more robust process I might try some material comparisons, all of the green parts were done in Bambu PETG and the black tooling was a generic ABS that’s around 2 years old, but prints very well!

  • @AndrossUT
    @AndrossUT2 ай бұрын

    You know you might be able to finish the hinge roll by using the 180 bend jig first and also giving the "sharp" end a

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    I think the end of your comment might be missing? Were you going to say use the first concept after the 180 bend?

  • @Duraltia
    @Duraltia2 ай бұрын

    @07:00 Classic... Imagine doing your CAD on like a 77" Screen like I occasionally do which totally ruins ANY and ALL sense of scale of a part 🤣

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    CAD secretly plots against us 😂

  • @ramseyerbeat9133
    @ramseyerbeat91332 ай бұрын

    thank you very much for your prompt answer, you are a genial teacher, now i understand the code… please keep on going!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    You’re welcome and thank you it means a lot :)

  • @ramseyerbeat9133
    @ramseyerbeat91332 ай бұрын

    this is a great work, congratulations! I built it too, but i do not understand the code, in special the arrey with the moves. can you please link the example for writing, so i can learn the movements? thank you very much!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Thank you, I'll try to explain the movement array in this reply... I'll copy in the first 5 commands of the array: const double lines[62][4] = {{0.0, 0.0, 40.0, 1000}, {-30.0, 40.0, 20.0, 200}, {-30.0, 40.0, -20.0, 200}, {60.0, 40.0, -20.0, 1600}, {60.0, 60.0, 20.0, 200}, Each command has 4 elements, this is the zero command {0.0, 0.0, 40.0, 1000}, because arrays start at index 0. The elements are X, Y, Z and duration, so the zero command {0.0, 0.0, 40.0, 1000} is 0 X, 0 Y, 40Z and should take 1000ms to achieve the position. The first command element {-30.0, 40.0, 20.0, 200} is -30X, 40Y and 20Z with duration 200ms, so the arm should move -30mm in X whilst also moving 40mm in Y and DOWN 20mm in Z (From 40Z in the previous command) and take 200ms to achieve the motion. This piece of code simply increments through the commands until the end: if (started == false | J1Tar.isFinished() == true){ commandStep++; if (commandStep > 61) { ended = true; } And this piece of code is where the information from each command is read from the array: double xMove = lines[commandStep][0]; double yMove = lines[commandStep][1]; double zMove = lines[commandStep][2]; uint16_t duration = lines[commandStep][3] * 2; This is where the motion ramps are that command the joints: J1Tar.go(xMove, duration); J2Tar.go(yMove, duration); J3Tar.go(zMove, duration); I hope this makes sense :)

  • @daleyarrow5358
    @daleyarrow53582 ай бұрын

    I do enjoy a good side quest! The unexpected plastic metal press was a bonus! MORE BEEF REQUIRED!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    More beef indeed, I suppose 1kg of plastic is still cheaper than a £70 arbor press, so I can add a lot of material!

  • @messerschmidtfpv4419
    @messerschmidtfpv44192 ай бұрын

    Does a Part 3 for the Hexapod comes? with Controller Control?

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    It’s somewhere on my big list of videos, I seem to add more to the list than I can keep up with!

  • @messerschmidtfpv4419
    @messerschmidtfpv44192 ай бұрын

    @@JustAnotherMakerChannel Have you seen the code with an PCA9685? (Part1)

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    @messerschmidtfpv4419 I think I actually have one of those somewhere, or maybe I just looked at them, it would definitely be a better way to go, I might remake the hexapod a to be a little bit more physically robust and use a PCA9685

  • @gedr7664
    @gedr76642 ай бұрын

    so cool! good work

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Thank you! Cheers!

  • @katierobinson5399
    @katierobinson53992 ай бұрын

    Love a good side quest 👌

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Always do the side quests before the main story :)

  • @messerschmidtfpv4419
    @messerschmidtfpv44192 ай бұрын

    Hello I would like to use WiFi, but the servos are controlled via GPIOs that support ADC2 and that is not recommended. So I had no choice but to use a PCA9685. In the original code, the servo values are transferred directly; for the PCA, these must be converted into PWM signals. I can proudly say: it's done. with a few additional functions. but this example code already works. I also integrated an IMU straight away. #include <math.h> #include <Ramp.h> #include <Wire.h> #include <Adafruit_PWMServoDriver.h> #include <Adafruit_MPU6050.h> #include <Adafruit_SSD1306.h> #include <Adafruit_Sensor.h> Adafruit_MPU6050 mpu; Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); #define USMIN_J1 500 #define USMIN_J2 400 #define USMIN_J3 750 #define USMAX 2400 #define USMAX_J1 2500 #define SERVO_FREQ 50 // Debug #define DEBUG #ifdef DEBUG #define DEBUG_PRINTL(x) Serial.println(x) #define DEBUG_PRINT(x) Serial.print(x) #else #define DEBUG_PRINTL(x) #define DEBUG_PRINT(x) #endif // MIDDLE LEFT LEG // x // ^ // | // | // y <------o // Servo pins const int J1Pin = 0; const int J2Pin = 1; const int J3Pin = 2; // Variable für Servo-Positionen int pi_pos = 45; int ya_pos = 45; // Vorherige Werte für Gyrodaten float oldPitch = 0.0; float oldYaw = 0.0; float offset_ = 0.35; // Constants const double J2L = 57.0; // Length of J2 (57 - 2.35)mm const double J3L = 110.0; // Length of J3 110mm const double Y_Rest = 70.0; const double Z_Rest = -80.0; const double J3_LegAngle = 15.4; // Joint Variables double J1Act = 0.0; double J2Act = 0.0; double J3Act = 40.0; rampDouble J1Tar = 0.0; rampDouble J2Tar = 0.0; rampDouble J3Tar = 40.0; // Command Variables bool started = false; bool ended = false; uint8_t commandStep = 0; // Commands const double lines[62][4] = {{0.0, 0.0, 40.0, 1000}, {-30.0, 40.0, 20.0, 200}, {-30.0, 40.0, -20.0, 200}, {60.0, 40.0, -20.0, 1600}, {60.0, 60.0, 20.0, 200}, {-30.0, 30.0, 20.0, 200}, {-30.0, 30.0, -20.0, 200}, {60.0, 30.0, -20.0, 1600}, {60.0, 50.0, 20.0, 200}, {-30.0, 20.0, 20.0, 200}, {-30.0, 20.0, -20.0, 200}, {60.0, 20.0, -20.0, 1600}, {60.0, 40.0, 20.0, 200}, {-30.0, 10.0, 20.0, 200}, {-30.0, 10.0, -20.0, 200}, {60.0, 10.0, -20.0, 1600}, {60.0, 30.0, 20.0, 200}, {-30.0, 0.0, 20.0, 200}, {-30.0, 0.0, -20.0, 200}, {60.0, 0.0, -20.0, 1600}, {60.0, 20.0, 20.0, 200}, {-30.0, 40.0, 20.0, 200}, {-30.0, 40.0, -20.0, 200}, {-30.0, 0.0, -20.0, 800}, {-30.0, 20.0, 20.0, 200}, {-20.0, 40.0, 20.0, 200}, {-20.0, 40.0, -20.0, 200}, {-20.0, 0.0, -20.0, 800}, {-20.0, 20.0, 20.0, 200}, {-10.0, 40.0, 20.0, 200}, {-10.0, 40.0, -20.0, 200}, {-10.0, 0.0, -20.0, 800}, {-10.0, 20.0, 20.0, 200}, {0.0, 40.0, 20.0, 200}, {0.0, 40.0, -20.0, 200}, {0.0, 0.0, -20.0, 800}, {0.0, 20.0, 20.0, 200}, {10.0, 40.0, 20.0, 200}, {10.0, 40.0, -20.0, 200}, {10.0, 0.0, -20.0, 800}, {10.0, 20.0, 20.0, 200}, {20.0, 40.0, 0.0, 200}, {20.0, 40.0, -20.0, 200}, {20.0, 0.0, -20.0, 800}, {20.0, 20.0, 0.0, 200}, {30.0, 40.0, 0.0, 200}, {30.0, 40.0, -20.0, 200}, {30.0, 0.0, -20.0, 800}, {30.0, 20.0, 0.0, 200}, {40.0, 40.0, 0.0, 200}, {40.0, 40.0, -20.0, 200}, {40.0, 0.0, -20.0, 800}, {40.0, 20.0, 0.0, 200}, {50.0, 40.0, 0.0, 200}, {50.0, 40.0, -20.0, 200}, {50.0, 0.0, -20.0, 800}, {50.0, 20.0, 0.0, 200}, {60.0, 40.0, 0.0, 200}, {60.0, 40.0, -20.0, 200}, {60.0, 0.0, -20.0, 800}, {60.0, 20.0, 0.0, 200}, {0.0, 0.0, 40.0, 200}}; // Funktion zum Begrenzen des Werts auf ein Maximum int limitToMaxValue(int value, int maxLimit) { if (value > maxLimit) { return maxLimit; } else { return value; } } // Funktion zum Addieren von altem und neuem Wert float addValues(float oldValue, float newValue) { if (newValue > 0.2 || newValue < -0.2) { oldValue = oldValue + newValue; } return oldValue ;// + newValue; } void setJ1(int servo, int pos) { //This first bit of code makes sure we are not trying to set the servo outside of limits int sendPos; if (pos > 179) { pos = 179; } if (pos < 0) { pos = 0; } sendPos = USMIN_J1 + ((USMAX_J1 - USMIN_J1) / 180 * pos); if (servo > -1 && servo < 16) { //only try to move valid servo addresses pwm.writeMicroseconds(servo, sendPos); } } void setJ2(int servo, int pos) { int sendPos; if (pos > 179) { pos = 179; } if (pos < 0) { pos = 0; } sendPos = USMIN_J2 + ((USMAX - USMIN_J2) / 180 * pos); if (servo > -1 && servo < 16) { //only try to move valid servo addresses pwm.writeMicroseconds(servo, sendPos); } } void setJ3(int servo, int pos) { int sendPos; if (pos > 179) { pos = 179; } if (pos < 0) { pos = 0; } sendPos = USMIN_J3 + ((USMAX - USMIN_J3) / 180 * pos); if (servo > -1 && servo < 16) { //only try to move valid servo addresses pwm.writeMicroseconds(servo, sendPos); } } void setup() { // DEBUG #ifdef DEBUG Serial.begin(9600); #endif if (!mpu.begin()) { Serial.println("Sensor init failed"); while (1) yield(); } Serial.println("Found a MPU-6050 sensor"); pwm.begin(); pwm.setOscillatorFrequency(27000000); pwm.setPWMFreq(SERVO_FREQ); // Analog servos run at ~50 Hz updates delay(10); UpdatePosition(0, 50, 30); delay(5000); } void loop() { // Update position J1Act = J1Tar.update(); J2Act = J2Tar.update(); J3Act = J3Tar.update(); CartesianMove(J1Act, J2Act, J3Act); if (ended == false){ // Check if command finished if (started == false | J1Tar.isFinished() == true){ commandStep++; if (commandStep > 61) { ended = true; } double xMove = lines[commandStep][0]; double yMove = lines[commandStep][1]; double zMove = lines[commandStep][2]; uint16_t duration = lines[commandStep][3] * 2; J1Tar.go(xMove, duration); J2Tar.go(yMove, duration); J3Tar.go(zMove, duration); started = true; } } } void CartesianMove(double X, double Y, double Z){ // OFFSET TO REST POSITION Y += Y_Rest; Z += Z_Rest; // CALCULATE INVERSE KINEMATIC SOLUTION double J1 = atan(X / Y) * (180 / PI); double H = sqrt((Y * Y) + (X * X)); double L = sqrt((H * H) + (Z * Z)); double J3 = acos( ((J2L * J2L) + (J3L * J3L) - (L * L)) / (2 * J2L * J3L) ) * (180 / PI); double B = acos( ((L * L) + (J2L * J2L) - (J3L * J3L)) / (2 * L * J2L) ) * (180 / PI); double A = atan(Z / H) * (180 / PI); // BECAUSE Z REST IS NEGATIVE, THIS RETURNS A NEGATIVE VALUE double J2 = (B + A); // BECAUSE 'A' IS NEGATIVE AT REST WE NEED TO INVERT '-' TO '+' UpdatePosition(J1, J2, J3); } void UpdatePosition(double J1, double J2, double J3){ // MOVE TO POSITION setJ1(J1Pin, 90 - J1); setJ2(J2Pin, 90 - J2); setJ3(J3Pin,J3 + J3_LegAngle - 90); //DEBUG_PRINT("J1: "); DEBUG_PRINTL(J1); //DEBUG_PRINT("J2: "); DEBUG_PRINTL(J2); //DEBUG_PRINT("J3: "); DEBUG_PRINTL(J3); }

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    I'm sorry your comment seemed to require approval, I assume it's just because of the length, thank you for your effort :)

  • @isaiahnelson3643
    @isaiahnelson36432 ай бұрын

    Enjoying the content and your process through making stuff. Subbed.

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Thank you :)

  • @TubeClemens
    @TubeClemens2 ай бұрын

    Excellent video clear explanation. I build a hexapood myself. One question if I have a J1L=60 how does this affect the code?

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Hi @TubeClemens, Do you mean you wish to have J2 not directly above and inline with J1 and call this offset J1L? If so then as a quick shot at this you would need to think about the following: @3:30 the Y value would need to have 60 taken off as this would be a fixed offset by J1L=60, similar to @9:41 where we apply an offset to Y to account for the leg resting position, but I think the real answer is below. @11:53 when we go back and substitute H in, we would substitute (H - J1L). For a quick look I think that would be the solution you are asking for. Hope this helps :)

  • @TubeClemens
    @TubeClemens2 ай бұрын

    @@JustAnotherMakerChannel Thank you very much this is exactly what I meant. I wil give it a try.

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Great @TubeClemens, I’m glad I could help, please let me know how it goes :)

  • @MrAlexxx91
    @MrAlexxx912 ай бұрын

    i like a lot the design and i'd like to print. it semms like the STLs files are not there. Unlikely I'm not capable of setting up the plate with those files..

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    I can see 5 of .3mf files on thingiverse, is that not the case for you?

  • @MrAlexxx91
    @MrAlexxx912 ай бұрын

    @@JustAnotherMakerChannel exactly, I don't know how to separate the parts and prepare them for printing :( I'd like to learn but I don't have the time to do that.

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    What slicing software do you use for your printer?

  • @MrAlexxx91
    @MrAlexxx912 ай бұрын

    @@JustAnotherMakerChannel i use cura and I own a creality cr-10s pro v2. I know to do only basic stuff with the software

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel2 ай бұрын

    Ok, so I've just installed Cura V5.6.0 and if I open any of the files, they initially look like one part but you can select them individually with the mouse and move them around on your print plate separately, so the files should work just fine. Maybe make sure you are using the latest version of Cura, I think .3mf file support was only added in V5 onwards :)

  • @Purely_Satisfying
    @Purely_Satisfying3 ай бұрын

    I think I am going to make one!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Fantastic! Please let me know how you get on :)

  • @Sjeedughait
    @Sjeedughait3 ай бұрын

    Maybe reverse engineer in algorytme and iterations something touchable. Like start and stop animations. Moving a robot engine by hand can be recored by software as steps. With or without a rhyme or repeatative steps in it. It is basically acting and can be started with dancing lessons. Like walse and rumba. Some rhyme can be distellid from that for your robot. Overlapping formulas can be used for more complex movements. Just coordinates with two equals signs.

  • @evil_lime4378
    @evil_lime43783 ай бұрын

    How did you calculate the C angle at 10:15? Only part of the (excellent) vid that stumped me

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    My apologies for not being clearer, that angle is measured from the design, the reason being that the servo arm is not aligned with the leg. Really though it could have been designed in line and the angle C would not be needed at all!

  • @as2gmvenom835
    @as2gmvenom8353 ай бұрын

    Interesting video with a good explanation. I want to mention that you can use the same rules to make the leg move in a straight line rather than an arc instead of using interpolation. How: Use the variable names at 3:50 and 11:30 as a reference. Let J0 be the third angle of the triangle J3-J2-J0 at the cross point of J2 (Y) and J3L. Get the lines j3, j2, and j0. *You have to calculate the j3, j2, and j0 lines when the leg is in the stand position. Now you can calculate the angles J3, J2, and J0 from the given j3, j2, and j0 lines. The trick is to make the j3 line equal = j3/CosJ1. now the angles J3 and J2 will depends on J1 You just need to set J3 and J2 in the code. J3 = ArcCos((j2^2+j0^2-(j3/cosJ1)^2)/2*j2*j0) J2 = ArcCos(((j3/CosJ1)^2+j0^2-j2^2)/2*(j3/CosJ1)*j0) Boooom you got a straight line. Thank you!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Thank you, some interesting information that I’ll make the time to digest when I’m less tired. I don’t think it’s the IK solution that causes the arced motion rather the mechanical system, I have no direct control over the speed of the servos and thus when all changed at once from their respective starting angles to end angles they all move as fast as possible which is not necessarily linear. Since I have no influence over the servos speed, interpolation gives a very simple way to get an approximated linear move that can be refined by taking more smaller steps. I can’t immediately see how a change in end point calculation could achieve anything else?

  • @as2gmvenom835
    @as2gmvenom8353 ай бұрын

    @@JustAnotherMakerChannel 11:40 You used Pythagoras to get H so that's why the leg caused a rotary motion (arc) instead of a straight line. Because you calculated the radius of a circle with J1 its centre Description: Let's be in the same view by agreeing this. ****************************************************************************************************** - the joint J1 causes the arc motion because it has to rotate the leg causing circular motion (an arc). - [To convert an arc to a straight line] >> you must increase the radius (for each increase in angle) ~ exponentially. Ex. if J1 = 0 degree, radius = 10 cm when J1 = 15 degree, radius must be = 10.3528 cm when J1 = 60 degree, radius must be = 20 cm How to increase the radius (you called it H) >> [the radius length increase(+)] >> by decreasing(-) the angle of J2 and increasing(+) the angle of J3 assume the lower and the upper bones = 20 cm and J3=60 degree and J2 = 60 degree the radius = [upper_bone_cm / cos(180-J3-J2)] + [lower_bone_cm /cos (J2)] * (radius is result of looking at the leg from top view) * >> 20/cos(180-60-60) + 20/cos(60) >> 10 + 10 >> the radius = 20 cm [The equation] >> to convert the arc into a straight line radius = 20 / cos(J1) ** but you need to know the angles of J2 & J3 to adjust the radius changing its length in the code ** [you have to create an algorithm]>> that changes the angle values of J2 and J3 (this causes a change in the length of the radius) depending on the angle value of J1 using a loop for( J1 = 0 degree ; J1 < 60 degree ; J1 +1 degree each cycle) { total_length_or_radius_cm = (upper_bone_cm / cos(180-J3-J2)) + (lower_bone_cm /cos (J2)) J3= Arccos (((lower_bone_cm^2 + upper_bone_cm^2 - (total_length_or_radius_cm / cos(J1))) / 2 * upper_bone_cm * lower_bone_cm) J2= Arccos (((total_length_or_radius_cm/cos(J1))^2 + upper_bone_cm^2 - lower_bone_cm^2 ) / 2 * upper_bone_cm * (total_length_or_radius_cm / cos(J1))) or J3 = ArcCos((j2^2+j0^2-(j3/cosJ1)^2)/2*j2*j0) J2 = ArcCos(((j3/CosJ1)^2+j0^2-j2^2)/2*(j3/CosJ1)*j0) delay = 100 ms \\increase the value of delay to decrease the motion speed and the vibration that caused by the momentum. } app.gemoo.com/share/image-annotation/615760982094012416?codeId=vzxdG9ZpE6o7n if you didn't get me or the images links dose not work type a guest account so i can send you images or a video

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    [QUOTED]"11:40 You used Pythagoras to get H so that's why the leg caused a rotary motion (arc) instead of a straight line. Because you calculated the radius of a circle with J1 its centre "[QUOTED] The solution I presented is correct, the value of H will change depending on the X & Y co-ordinate of the position required and therefore does not to be manually increased or manipulated. To achieve a positional deviation in X, all 3 joints require motion. This is accounted for in the video by substituting Y @11:57 for H to allow the J2 & J3 kinematics to be calculated on the plane projected by J1's changing angle, which ultimately accounts for the arced path of J1. The TOP-VIEW diagram you have presented in the link is exactly what we are doing @ 11:40, H is calculated using X & Y with Pythagoras, I can see that the underlying semi-transparent image does not make that too clear as I've arbitrarily drawn a vertical line from the Y axis, the value H shown @11:40 is exactly what you are referring to as 'H+L' in the link, which we cannot calculate from cos(J1) namely because we are trying to calculate J1, it is unknown. The example of arced motion shown @12:19 has no J1 involvement, no X or Z movement, only Y movement from 1 singular point to another singular point, the motion is arced because both J2 & J3 need to move by different amounts and travel at an uncontrolled speed and the inability to maintain position during the deceleration of the other axes. It's not very easy to see but @12:24 J2 completes it's movement in a fraction of the time that J3 takes, this causes the leg to plunge downwards from J2 moving and then upwards to the correct position as J3 catches up (then some overshoot and oscillation) I really appreciate all of the time and effort you have spent with your responses and the link and pictures too, I had to look through it a good few times and for a moment I was questioning whether my solution was correct! Let me know if you have and other questions :)

  • @as2gmvenom835
    @as2gmvenom8353 ай бұрын

    @@JustAnotherMakerChannel I used trigonometry to calculate the H, and you used pythagoras to calculate the H. Sorry, I just misunderstood you, You are right! I was confident because I made a hexapod and used this equation with mg996r and it was working. now i realize that if I am right, that does not mean you are wrong I was too hasty. Thank you, I have learned a lot because of you.

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Thank you, I really appreciate all your comments :)

  • @GuilhermeLimait
    @GuilhermeLimait3 ай бұрын

    The most simple way to learn it that I’ve seen so far, thanks for it❤

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    You're very welcome! Thank you so much, I really appreciate the comment :)

  • @osamahabdulbaqial-ameri6056
    @osamahabdulbaqial-ameri60563 ай бұрын

    Hi, How can I get the stl files to print the hexapod😅

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Hi, I've finally uploaded them, you can find them here: www.thingiverse.com/thing:6463619 I'll also put this in the description.

  • @adieaf61
    @adieaf613 ай бұрын

    Excellent

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Thank you so much 😀

  • @katierobinson5399
    @katierobinson53993 ай бұрын

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Thank You!

  • @andrewwillcoxon8073
    @andrewwillcoxon80733 ай бұрын

    Great design and I'd love to give it a whirl. It looks like the actual parts files are not out on Thingiverse. Just a file of the completed model. Thanks for sharing!!!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Thanks for the info, I’ll check thingiverse to see why the files haven’t worked.

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    I have re-uploaded the parts, hopefully they will appear soon :)

  • @andrewwillcoxon8073
    @andrewwillcoxon80733 ай бұрын

    @@JustAnotherMakerChannel Thank you!

  • @sub2seany
    @sub2seany3 ай бұрын

    IF ANYONE CAN DAN CAN , unreal make as usual

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Thank you so much, I should have more content coming soon :)

  • @ScottFleckenstein
    @ScottFleckenstein3 ай бұрын

    Well done!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Thank you :)

  • @daleyarrow5358
    @daleyarrow53583 ай бұрын

    I thought you'd unalived, its been that long! Satisfying fit on the servo cable mind, I like!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    It has been far too long since the last video. And that cable fit was the most satisfying part by far!

  • @katierobinson5399
    @katierobinson53993 ай бұрын

    I’ve been waiting for this, incredible once again 👌

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Glad you like it!

  • @moon-gc2go
    @moon-gc2go3 ай бұрын

    Theres a way to not make it jittery just add i2c bus or library in arduino

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Thanks for the feedback, I do use the servo and ramp libraries but I didn't make any special effort to think about the servo slew rates or PID. There is definitely an element of variability between the servos that is more noticeable when trying to coordinate motion with them.

  • @xHugoSamu
    @xHugoSamu4 ай бұрын

    I'm new to this... Can someone explain? How do you go from 5v to 12v? Arent those completely different motors (there are 5v 28byj48 and 12v 28byj48). Because in another video, a 5v when converted to bipolar, the voltage became 10v, not 12v. Another thing, in the 12v tests, how dod you increase the current??

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    The stepper driver is used to limit the current, so you can drive the motors at higher voltages to reduce the chance of skipped steps under load and rely on the current limiting to try and prevent the motor from getting too hot. To adjust the current in the video I just adjusted the current limiting potentiometer on the stepper driver.

  • @grahamnichols1416
    @grahamnichols14164 ай бұрын

    How is your hexapod steering progressing (assuming you've had the time)?

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Unfortunately I haven't had the time, I haven't uploaded a video in so long (until today) because I've just had so much going, some things not so good but mostly good things, i'm really hoping to get some momentum going in the channel again and this is definitely on the list, perhaps with something bigger and better though ;)

  • @grahamnichols1416
    @grahamnichols14163 ай бұрын

    @@JustAnotherMakerChannel I hope the good things increase for you/. :)

  • @grahamnichols1416
    @grahamnichols14164 ай бұрын

    That is really well explained = an instant subscription. Tada!

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    Thank you very much, I really appreciate it :)

  • @messerschmidtfpv4419
    @messerschmidtfpv44194 ай бұрын

    Hello, thanks for the tutorial. where can I find the STL file to print myself?

  • @JustAnotherMakerChannel
    @JustAnotherMakerChannel3 ай бұрын

    I will have a look back for the files and try to get them online in the next week - though it is not the best design.