Sadržaj:

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

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

Video: Mecanum Omni Wheel Robot sa GRBL koračnim motorima Arduino štit: 4 koraka
Video: Simon's Omni-Directional 3D Printed Robot, George School 2013-14 2024, Studeni
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 ispisa, elektronike, koda i aplikacije za Android (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

Tako:

Pribor

Arduino Uno + GRBL štit

Koračni motori

HC-06 BlueTooth modul

12V Lipo baterija

Korak 1: Hardver

Hardver
Hardver
Hardver
Hardver

Ispisali su kotače i sastavili ih kao ovdje:

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

Provucite kabele 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 na 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đer je potrebno staviti kratkospojnik "Omogući"

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

Također sam napajao iz 12V baterija - dvije strane - jedna za Arduino i jedna za GRBl Shield

Korak 3: Arduino kod

/* === Arduino Mecanum Wheel Robot === Upravljanje pametnim telefonom putem Bluetootha, Dejan, www. HowToMechatronics.com Knjižnice: 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 štitnikom motora GRBL arduino Koračni motori u štitu su mapirani kao (korak/smjer): 2/5 3 /6 4/7 12/13 pomoću A4988 upravljačkog programa 12V

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

*/ #include

// Definirajte koračne motore i igle koje ć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 = dolazniByte; switch (c) {case 71: Serial.println ("Primio sam Rotate right W"); rotateRight (); pauza; slučaj 65: Serial.println ("Primio sam Zakreni lijevo Q"); rotateLeft (); pauza; slučaj 1: Serial.println ("Primio sam BK/LFT"); moveRightBackward (); pauza; slučaj 2: Serial.println ("primio sam BK"); moveBackward (); pauza; slučaj 3: Serial.println ("Primio sam BK/RT"); moveRightBackward (); pauza; slučaj 4: Serial.println ("primio sam LIJEVO"); moveSidewaysLeft ();

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

Molimo pošaljite poruku i ja vam šaljem - učitavanja ne uspijevaju.

Čuvaj se.

Preporučeni: