Obsah:

Robot na kolesách Mecanum Omni s krokovými motormi GRBL, štít Arduino: 4 kroky
Robot na kolesách Mecanum Omni s krokovými motormi GRBL, štít Arduino: 4 kroky

Video: Robot na kolesách Mecanum Omni s krokovými motormi GRBL, štít Arduino: 4 kroky

Video: Robot na kolesách Mecanum Omni s krokovými motormi GRBL, štít Arduino: 4 kroky
Video: Какао на колесах #rc 2024, November
Anonim
Robot na kolesách Mecanum Omni s krokovými motormi GRBL Arduino Shield
Robot na kolesách Mecanum Omni s krokovými motormi GRBL Arduino Shield
Robot na kolesách Mecanum Omni s krokovými motormi GRBL Arduino Shield
Robot na kolesách Mecanum Omni s krokovými motormi GRBL Arduino Shield
Robot na kolesách Mecanum Omni s krokovými motormi GRBL Arduino Shield
Robot na kolesách Mecanum Omni s krokovými motormi GRBL Arduino Shield

Mecanum Robot - Projekt, ktorý som chcel vybudovať odkedy som ho videl na blogu Dejan's gread mechatronics: howtomechatronics.com

Dejan odviedol dobrú prácu pokrývajúcu všetky aspekty od hardvéru, 3D tlače, elektroniky, kódu a aplikácie pre Android (vynálezca aplikácie MIT)

Jedná sa o rozsiahly projekt, ktorý obnovuje všetky schopnosti tvorcu.

Na projektoch som urobil niekoľko zmien

Nechcel som použiť PCB na mieru, ktorú použil, ale starý štít GRBL, ktorý som mal doma.

Chcel som použiť BlueTooth

Takže:

Zásoby

Štít Arduino Uno + GRBL

Krokové motory

Modul HC-06 BlueTooth

12V Lipo batéria

Krok 1: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér

Vytlačte kolesá a zostavte ich ako tu:

K podvozku sú pripojené 4 krokové motory (v mojom prípade nepoužívaná zásuvka hore dole)

Veďte káble k hornej časti robota.

Krok 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Použil som svoj modul HC-06 BT, Najťažšie bolo nastaviť štít GRBL na prácu so 4 krokovými motormi, pretože na to neexistuje dobrý sprievodca.

Je potrebné vložiť prepojky, ako je vidieť na priloženom obrázku, aby výstup štítu „Nástroj“mohol ovládať aj krokový motor. Tiež je potrebné dať prepojku "Povoliť"

zapojenie 4 stepperov a je to.

Napájal som tiež z batérií 12V - dva stupne - jeden pre Arduino a jeden pre GRBl Shield

Krok 3: Arduino kód

/* === Arduino Mecanum Wheels Robot === Ovládanie smartfónu cez Bluetooth od Dejan, www. HowToMechatronics.com Knižnice: RF24, www. HowToMechatronics.com AccelStepper od Mike McCauley: www. HowToMechatronics.com

*//* 2019-11-12 Gilad Meller (https://www.keerbot.com - upravte kód tak, aby fungoval so štítom motora GRBL arduino Krokové motory v štíte sú mapované ako (krok/smer): 2/5 3 /6 4/7 12/13 pomocou ovládača A4988 12V

Dejanov kód používa SoftwareSerial a môj bude používať štandardné piny RX, TX (0, 1) Arduino Uno Poznámka: Uistite sa, že ste odpájali piny RX TX, keď aktualizujete náčrt na arduino alebo sa načítanie nepodarí.

*/ #include

// Definujte krokové motory a kolíky, ktoré budú používať AccelStepper LeftBackWheel (1, 2, 5); // (Typ: ovládač, 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; // pre prichádzajúce sériové údaje int wheelSpeed = 100;

void setup () {Serial.begin (9600); // otvára sériový port, nastavuje rýchlosť prenosu dát na 9600 bps // Nastavuje počiatočné hodnoty počiatočných hodnôt pre steppery LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// prečítajte prichádzajúci bajt: incomingByte = Serial.read ();

c = incomingByte; prepínač (c) {prípad 71: Serial.println ("Prijal som Otočiť doprava W"); rotateRight (); prestávka; prípad 65: Serial.println („Dostal som Otočiť doľava Q“); otočiť doľava(); prestávka; prípad 1: Serial.println („Prijal som BK/LFT“); moveRightBackward (); prestávka; prípad 2: Serial.println („Prijal som BK“); moveBackward (); prestávka; prípad 3: Serial.println („Prijal som BK/RT“); moveRightBackward (); prestávka; prípad 4: Serial.println („Prijal som VĽAVO“); moveSidewaysLeft ();

prestávka; prípad 5: Serial.println („Dostal som STOP“); stopMoving (); prestávka; prípad 6: Serial.println („Prijal som RT“); moveSidewaysRight (); prestávka; prípad 7: Serial.println („Prijal som FWD/LFT“); moveLeftForward (); prestávka; prípad 8: Serial.println („Dostal som FWD“); pohnúť sa vpred(); prestávka; prípad 9: Serial.println („Dostal som FWD/RT“); moveRightForward (); prestávka; predvolené: Serial.print ("Nie je to príkaz"); Serial.println (incomingByte, DEC); prestávka; }} // 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 (speedSpeed); } 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); } neplatný ťahLeftForward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (0); } neplatný ťahLeftBackward () {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); }

Krok 4: Appinventor

Nová aplikácia appinventor s inou a jednoduchšou funkčnosťou (žiadne nahrávky)

Pošlite prosím správu a ja vám ju pošlem - nahrávanie zlyhá.

Opatruj sa

Odporúča: