Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Mecanum Robot - Projekti, jonka halusin rakentaa siitä lähtien, kun näin sen Dejanin gread -mekatroniikkablogissa: howtomechatronics.com
Dejan teki todella hyvää työtä, joka kattoi kaikki laitteiston, 3D -tulostuksen, elektroniikan, koodin ja Android -sovelluksen näkökohdat (MIT: n sovellusten keksijä)
Tämä on hieno uudistusprojekti, joka virkistää kaikki valmistajan taidot.
Minulla oli muutamia muutoksia projekteihin
En halunnut käyttää mittatilaustyönä piirilevyä, jota hän käytti, mutta vanhaa GRBL -kilpiä minulla oli kotona.
Halusin käyttää BlueToothia
Niin:
Tarvikkeet
Arduino Uno + GRBL -kilpi
Askelmoottorit
HC-06 BlueTooth-moduuli
12V Lipo -akku
Vaihe 1: Laitteisto
Tulostin pyörät ja kooin ne kuten tässä:
Liitetty 4 askelmoottoria runkoon (minun tapauksessani käyttämätön laatikko ylöspäin)
Reititettiin kaapelit robotin yläosaan.
Vaihe 2: Elektroniikka
Käytin HC-06 BT -moduulia, Vaikein osa oli asettaa GRBL -kilpi toimimaan neljän askelmoottorin kanssa, koska siihen ei ole hyvää ohjetta, Neuleet on asetettava, kuten oheisesta kuvasta näkyy, jotta suojan "Työkalu" -lähtö voidaan ohjata myös askelmoottorilla. täytyy myös laittaa "Ota käyttöön" -hyppy
johdot 4 askelmaa ja siinä kaikki.
Toin myös virran 12 V: n paristoista - kahdesta stesistä - yhden Arduinolle ja toisen GRBl Shieldille
Vaihe 3: Arduino -koodi
/* === Arduino Mecanum Wheels Robot === Dejanin älypuhelimen ohjaus Bluetoothin kautta, www. HowToMechatronics.com Kirjastot: RF24, www. HowToMechatronics.com AccelStepper, kirjoittanut Mike McCauley: www. HowToMechatronics.com
*//* 12.11.2019 Gilad Meller (https://www.keerbot.com - muokkaa koodia toimimaan GRBL -arduino -moottorisuojuksen kanssa. Kilven askelmoottorit kuvataan (vaihe/suunta): 2/5 3 /6 4/7 12/13 käyttäen A4988 -ohjainta 12V
Dejanin koodi käyttää SoftwareSerialia, ja omani käyttävät Arduino Unon vakio -RX-, TX -nastoja (0, 1).
*/ #sisältää
// Määritä askelmoottorit ja tapit käyttävät AccelStepper LeftBackWheel (1, 2, 5); // (Tyyppi: kuljettaja, VAIHE, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // Askel4
int saapuva tavu = 0, c; // saapuville sarjatiedoille int wheelSpeed = 100;
void setup () {Serial.begin (9600); // avaa sarjaportin, asettaa tiedonsiirtonopeudeksi 9600 bps // Aseta alkuarvot steppereille LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);
}
void loop () {if (Serial.available ()> 0) {// lue saapuva tavu: inputingByte = Serial.read ();
c = saapuva tavu; kytkin (c) {tapaus 71: Serial.println ("Sain Kierrä oikealle W"); kierrä oikealle(); tauko; tapaus 65: Serial.println ("Sain Kierrä vasemmalle Q"); käänny vasemmalle(); tauko; tapaus 1: Serial.println ("Sain BK/LFT"); moveRightBackward (); tauko; tapaus 2: Serial.println ("Sain BK"); liikkua takaperin(); tauko; tapaus 3: Serial.println ("Sain BK/RT"); moveRightBackward (); tauko; tapaus 4: Serial.println ("Sain LEFT"); moveSidewaysLeft ();
tauko; tapaus 5: Serial.println ("Sain STOP"); stopMoving (); tauko; tapaus 6: Serial.println ("Sain RT"); moveSidewaysRight (); tauko; tapaus 7: Serial.println ("Sain FWD/LFT"); moveLeftForward (); tauko; tapaus 8: Serial.println ("Sain FWD"); liikkua eteenpäin (); tauko; tapaus 9: Serial.println ("Sain FWD/RT"); moveRightForward (); tauko; oletus: Serial.print ("Ei komento"); Serial.println (saapuva tavu, DEC); tauko; } } //liikkua takaperin(); moveRobot ();
}
void moveRobot () {LeftBackWheel.runSpeed (); LeftFrontWheel.runSpeed (); RightFrontWheel.runSpeed (); RightBackWheel.runSpeed (); }
void moveForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void moveBackward () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-pyörän nopeus); RightBackWheel.setSpeed (-pyörän nopeus); } void moveSidewaysRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-pyörän nopeus); RightBackWheel.setSpeed (wheelSpeed); } void moveSidewaysLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (-pyörän nopeus); } void rotateLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void rotateRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (-pyörän nopeus); RightBackWheel.setSpeed (-pyörän nopeus); } void moveRightForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (wheelSpeed); } void moveRightBackward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-pyörän nopeus); RightBackWheel.setSpeed (0); } void moveLeftForward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (0); } void moveLeftBackward () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (-pyörän nopeus); } void stopMoving () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (0); }
Vaihe 4: Appinventor
Uusi appinventor -sovellus, jolla on erilaiset ja yksinkertaisemmat toiminnot (ei tallennuksia)
Lähetä viesti ja minä lähetän sinulle - lataukset epäonnistuvat.
Pitää huolta.