Obsah:

Kolový robot Mecanum Omni s krokovými motory GRBL Arduino Shield: 4 kroky
Kolový robot Mecanum Omni s krokovými motory GRBL Arduino Shield: 4 kroky

Video: Kolový robot Mecanum Omni s krokovými motory GRBL Arduino Shield: 4 kroky

Video: Kolový robot Mecanum Omni s krokovými motory GRBL Arduino Shield: 4 kroky
Video: Introducing RR1: Real Robot One - a DIY Desktop Robotic Arm 2024, Červenec
Anonim
Robot Mecanum Omni Wheels s krokovými motory GRBL Arduino Shield
Robot Mecanum Omni Wheels s krokovými motory GRBL Arduino Shield
Kolový robot Mecanum Omni s krokovými motory GRBL Arduino Shield
Kolový robot Mecanum Omni s krokovými motory GRBL Arduino Shield
Robot Mecanum Omni Wheels s krokovými motory GRBL Arduino Shield
Robot Mecanum Omni Wheels s krokovými motory GRBL Arduino Shield

Mecanum Robot - projekt, který jsem chtěl vybudovat od chvíle, kdy jsem ho viděl na blogu Dejan's gread mechatronics: howtomechatronics.com

Dejan opravdu odvedl dobrou práci pokrývající všechny aspekty od hardwaru, 3D tisku, elektroniky, kódu a aplikace pro Android (vynálezce aplikace MIT)

Jedná se o skvělý overhoul projekt, který osvěžuje všechny dovednosti tvůrce.

Na projektech jsem musel udělat několik změn

Nechtěl jsem použít PCB na zakázku, který použil, ale starý GRBL štít, který jsem měl doma.

Chtěl jsem použít BlueTooth

Tak:

Zásoby

Arduino Uno + GRBL štít

Krokové motory

Modul HC-06 BlueTooth

12V Lipo baterie

Krok 1: Hardware

Hardware
Hardware
Hardware
Hardware

Vytiskněte kola a sestavte je zde:

K podvozku jsou připojeny 4 krokové motory (v mém případě nepoužívaná zásuvka vzhůru nohama)

Vedl kabely k horní části robota.

Krok 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Použil jsem modul HC-06 BT, Nejtěžší bylo nastavit štít GRBL tak, aby fungoval se 4 krokovými motory, protože na to neexistuje dobrý průvodce, Existuje potřeba umístit propojky, jak je vidět na přiloženém obrázku, aby výstup „štítu“nástroje také ovládal krokový motor. také je třeba dát propojku "Povolit"

zapojení 4 stepperů a je to.

Také jsem dodával energii z baterií 12V - dva stes - jeden pro Arduino a jeden pro GRBl Shield

Krok 3: Arduino kód

/* === Arduino Mecanum Wheels Robot === Ovládání smartphonu přes Bluetooth od Dejan, www. HowToMechatronics.com knihovny: 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 se štítem motoru GRBL arduino Krokové motory ve štítu jsou mapovány jako (krok/směr): 2/5 3 /6 4/7 12/13 pomocí ovladače A4988 12V

Dejanův kód používá SoftwareSerial a můj bude používat standardní piny RX, TX (0, 1) Arduino Uno Poznámka: Ujistěte se, že jste odstranili piny RX TX, když uplading skica na arduino nebo nahrávání selže.

*/ #zahrnout

// Definujte krokové motory a piny, které budou používat AccelStepper LeftBackWheel (1, 2, 5); // (Typ: driver, 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; // pro příchozí sériová data int wheelSpeed = 100;

neplatné nastavení () {Serial.begin (9600); // otevírá sériový port, nastavuje rychlost přenosu dat na 9600 bps // Nastavuje počáteční počáteční hodnoty pro steppery LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// přečte příchozí bajt: incomingByte = Serial.read ();

c = incomingByte; přepínač (c) {případ 71: Serial.println ("Obdržel jsem Otočit doprava W"); rotateRight (); přestávka; případ 65: Serial.println („Obdržel jsem Otočit doleva Q“); rotateLeft (); přestávka; případ 1: Serial.println („Obdržel jsem BK/LFT“); moveRightBackward (); přestávka; případ 2: Serial.println („Obdržel jsem BK“); jít zpět(); přestávka; případ 3: Serial.println („Obdržel jsem BK/RT“); moveRightBackward (); přestávka; případ 4: Serial.println („Obdržel jsem VLEVO“); moveSidewaysLeft ();

přestávka; případ 5: Serial.println („Obdržel jsem STOP“); stopMoving (); přestávka; případ 6: Serial.println („Obdržel jsem RT“); moveSidewaysRight (); přestávka; případ 7: Serial.println („Obdržel jsem FWD/LFT“); moveLeftForward (); přestávka; případ 8: Serial.println („Obdržel jsem FWD“); moveForward (); přestávka; případ 9: Serial.println („Obdržel jsem FWD/RT“); moveRightForward (); přestávka; výchozí: Serial.print ("Není to příkaz"); Serial.println (incomingByte, DEC); přestávka; } } //jít zpět(); moveRobot ();

}

void moveRobot () {LeftBackWheel.runSpeed (); LeftFrontWheel.runSpeed (); RightFrontWheel.runSpeed (); RightBackWheel.runSpeed (); }

void moveForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (speedSpeed); RightFrontWheel.setSpeed (speedSpeed); 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 (speedSpeed); RightFrontWheel.setSpeed (speedSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void rotateLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (speedSpeed); RightBackWheel.setSpeed (wheelSpeed); } void rotateRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (speedSpeed); 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 (speedSpeed); RightFrontWheel.setSpeed (speedSpeed); RightBackWheel.setSpeed (0); } neplatný tahLeftBackward () {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á aplikace appinventor s jinou a jednodušší funkčností (žádné záznamy)

Zašlete prosím zprávu a já vám ji pošlu - nahrávání se nezdaří.

Opatruj se.

Doporučuje: