Kazalo:

Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino ščit: 4 koraki
Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino ščit: 4 koraki

Video: Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino ščit: 4 koraki

Video: Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino ščit: 4 koraki
Video: CNC Shield V3 Relay Control 2024, November
Anonim
Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino Shield
Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino Shield
Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino Shield
Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino Shield
Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino Shield
Mecanum Omni Wheel Robot z koračnimi motorji GRBL Arduino Shield

Mecanum Robot - Projekt, ki sem ga želel zgraditi, odkar sem ga videl na Dejanovem blogu mehatronike poželenih: howtomechatronics.com

Dejan je res dobro opravil vse vidike strojne opreme, 3D tiskanja, elektronike, kode in aplikacije za Android (MIT -ov izumitelj aplikacij)

To je odličen nadgradni projekt, ki osveži vse sposobnosti izdelovalca.

Pri projektih sem imel nekaj sprememb

Nisem hotel uporabiti PCB po meri, ki ga je uporabil, ampak star ščit GRBL, ki sem ga imel doma.

Hotel sem uporabiti BlueTooth

Torej:

Zaloge

Arduino Uno + GRBL ščit

Koračni motorji

Modul HC-06 BlueTooth

12V Lipo baterija

1. korak: Strojna oprema

Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema

Kolesa so natisnili in jih sestavili, kot je prikazano tukaj:

Priključeni 4 koračni motorji na ohišje (v mojem primeru neuporabljen predal s stranjo navzdol)

Kable napeljite na vrh robota.

2. korak: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Uporabil sem svoj HC-06 BT modul, Najtežje je bilo nastaviti ščitnik GRBL za delo s štirimi koračnimi motorji, saj za to ni dobrega vodila, Obstaja potreba po namestitvi skakalcev, kot je prikazano na priloženi sliki, da bo izhod "Orodje" ščita tudi za krmiljenje koračnega motorja. Prav tako morate postaviti mostiček "Omogoči"

ožičenje 4 korakov in to je to.

Napajal sem tudi iz 12V baterij - dve strani - eno za Arduino in eno za GRBl Shield

3. korak: Arduino koda

/* === Arduino Mecanum Wheels Robot === Upravljanje pametnega telefona prek Bluetootha Dejan, www. HowToMechatronics.com Knjižnice: RF24, www. HowToMechatronics.com AccelStepper avtorja Mike McCauley: www. HowToMechatronics.com

*//* 2019-11-12 Gilad Meller (https://www.keerbot.com - spremenite kodo za delo s ščitnikom motorja GRBL arduino Koračni motorji v ščitu so preslikani kot (korak/smer): 2/5 3 /6 4/7 12/13 z uporabo gonilnika A4988 12V

Dejanova koda uporablja programsko opremo SoftwareSerial, moja pa bo uporabljala standardne zatiče RX, TX (0, 1) Arduino Uno Opomba: Poskrbite, da boste zatiči RX TX pri nadgradnji skice na arduino ali nalaganje ne uspeli.

*/ #vključi

// Določimo koračne motorje in zatiče, ki bodo uporabljali AccelStepper LeftBackWheel (1, 2, 5); // (Vrsta: voznik, STEP, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // Stepper4

int incomingByte = 0, c; // za dohodne serijske podatke int wheelSpeed = 100;

void setup () {Serial.begin (9600); // odpre zaporedna vrata, nastavi hitrost prenosa podatkov na 9600 b/ s // Nastavi začetne vrednosti semena za koračnike LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// preberite dohodni bajt: incomingByte = Serial.read ();

c = dohodniByte; stikalo (c) {primer 71: Serial.println ("Prejel sem Zavrti desno W"); rotateRight (); zlom; primer 65: Serial.println ("Prejel sem Zavrti levo Q"); rotateLeft (); zlom; primer 1: Serial.println ("prejel sem BK/LFT"); moveRightBackward (); zlom; primer 2: Serial.println ("prejel sem BK"); moveBackward (); zlom; primer 3: Serial.println ("prejel sem BK/RT"); moveRightBackward (); zlom; primer 4: Serial.println ("prejel sem LEFT"); moveSidewaysLeft ();

zlom; primer 5: Serial.println ("Prejel sem STOP"); stopMoving (); zlom; primer 6: Serial.println ("prejel sem RT"); moveSidewaysRight (); zlom; primer 7: Serial.println ("prejel sem FWD/LFT"); moveLeftForward (); zlom; primer 8: Serial.println ("prejel sem FWD"); premikaj se naprej(); zlom; primer 9: Serial.println ("prejel sem FWD/RT"); moveRightForward (); zlom; privzeto: Serial.print ("Ni ukaz"); Serial.println (incomingByte, DEC); zlom; }} // moveBackward (); 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 (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void moveSidewaysRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void moveSidewaysLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void rotateLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void rotateRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void moveRightForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (wheelSpeed); } void moveRightBackward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); 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 (-wheelSpeed); } void stopMoving () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (0); }

4. korak: Appinventor

Nova aplikacija appinventor z drugačno in enostavnejšo funkcijo (brez posnetkov)

Prosim, pošljite sporočilo in jaz vam pošljem - nalaganje ne uspe.

Poskrbite.

Priporočena: