Mecanum Omni Wheel Robot sa GRBL koračnim motorima Arduino štit: 4 koraka
Mecanum Omni Wheel Robot sa GRBL koračnim motorima Arduino štit: 4 koraka
Anonim
Mecanum Omni Wheel Robot sa GRBL koračnim motorima Arduino štit
Mecanum Omni Wheel Robot sa GRBL koračnim motorima Arduino štit
Mecanum Omni Wheel Robot sa GRBL koračnim motorima Arduino štit
Mecanum Omni Wheel Robot sa GRBL koračnim motorima Arduino štit
Mecanum Omni Wheel Robot sa GRBL koračnim motorima Arduino štit
Mecanum Omni Wheel Robot sa GRBL koračnim motorima Arduino štit

Mecanum Robot - Projekt koji sam želio izgraditi otkad sam ga vidio na Dejanovom blogu mehatronike Gread: howtomechatronics.com

Dejan je zaista napravio dobar posao pokrivajući sve aspekte od hardvera, 3D štampe, elektronike, koda i Android aplikacije (MIT -ov izumitelj aplikacija)

Ovo je sjajan nadgradni projekt koji osvježava sve vještine proizvođača.

Imao sam nekoliko promjena na projektima

Nisam htio koristiti PCB po mjeri koji je on koristio, ali stari GRBL štit koji sam imao kod kuće.

Htio sam koristiti BlueTooth

Dakle:

Supplies

Arduino Uno + GRBL štit

Koračni motori

HC-06 BlueTooth modul

12V Lipo baterija

Korak 1: Hardver

Hardver
Hardver
Hardver
Hardver

Odštampali su točkove i sastavili ih kao ovde:

Povezana 4 koračna motora na šasiju (u mom slučaju nekorištena ladica okrenuta prema dolje)

Provucite kablove do vrha robota.

Korak 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Koristio sam svoj HC-06 BT modul, Najteže je bilo postaviti GRBL štit za rad sa 4 koračna motora jer za to nema dobrog vodiča, Postoji potreba za postavljanjem skakača kao što se može vidjeti na priloženoj slici, kako bi izlaz "Alat" štitnika također upravljao koračnim motorom. takođe je potrebno staviti kratkospojnik "Omogući"

ožičenje 4 stepenika i to je to.

Napajao sam i napajanje iz 12V baterija - dvije strane - jedna za Arduino i jedna za GRBl Shield

Korak 3: Arduino kod

/* === Arduino Mecanum Wheels Robot === Upravljanje pametnim telefonom putem Bluetootha od Dejana, www. HowToMechatronics.com Biblioteke: RF24, www. HowToMechatronics.com AccelStepper by Mike McCauley: www. HowToMechatronics.com

*//* 2019-11-12 Gilad Meller (https://www.keerbot.com - izmijenite kôd za rad sa GRBL arduino štitnikom motora Koračni motori u štitu su mapirani kao (korak/smjer): 2/5 3 /6 4/7 12/13 koristeći A4988 drajver 12V

Dejanov kôd koristi SoftwareSerial, a moj će koristiti standardne RX, TX pinove (0, 1) Arduino Uno Napomena: Obavezno prebacite RX TX pinove prilikom nadogradnje skice na arduino ili prijenos neće uspjeti.

*/ #include

// Definirajte koračne motore i pinove koji će koristiti AccelStepper LeftBackWheel (1, 2, 5); // (Tip: 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; // za dolazne serijske podatke int wheelSpeed = 100;

void setup () {Serial.begin (9600); // otvara serijski port, postavlja brzinu prijenosa podataka na 9600 bps // Postavlja početne početne vrijednosti za stepere LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// čitanje dolaznog bajta: incomingByte = Serial.read ();

c = incomingByte; prekidač (c) {slučaj 71: Serial.println ("Primio sam Rotiraj desno W"); rotateRight (); break; slučaj 65: Serial.println ("Primio sam Rotiraj lijevo Q"); rotateLeft (); break; slučaj 1: Serial.println ("Primio sam BK/LFT"); moveRightBackward (); break; slučaj 2: Serial.println ("primio sam BK"); moveBackward (); break; slučaj 3: Serial.println ("Primio sam BK/RT"); moveRightBackward (); break; slučaj 4: Serial.println ("Primio sam LIJEVO"); moveSidewaysLeft ();

break; slučaj 5: Serial.println ("Primio sam STOP"); stopMoving (); break; slučaj 6: Serial.println ("Primio sam RT"); moveSidewaysRight (); break; slučaj 7: Serial.println ("Primio sam FWD/LFT"); moveLeftForward (); break; slučaj 8: Serial.println ("primio sam FWD"); krenuti naprijed(); break; slučaj 9: Serial.println ("Primio sam FWD/RT"); moveRightForward (); break; default: Serial.print ("Nije naredba"); Serial.println (incomingByte, DEC); break; }} // 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); }

Korak 4: Appinventor

Nova aplikacija appinventor s različitim i jednostavnijim funkcijama (bez snimanja)

Molim vas pošaljite poruku i ja vam šaljem - učitavanje ne uspijeva.

Čuvaj se.