„Mecanum Omni“ratų robotas su GRBL žingsniniais varikliais „Arduino Shield“: 4 žingsniai
„Mecanum Omni“ratų robotas su GRBL žingsniniais varikliais „Arduino Shield“: 4 žingsniai
Anonim
„Mecanum Omni“ratų robotas su „GRBL Stepper Motors Arduino Shield“
„Mecanum Omni“ratų robotas su „GRBL Stepper Motors Arduino Shield“
„Mecanum Omni“ratų robotas su „GRBL Stepper Motors Arduino Shield“
„Mecanum Omni“ratų robotas su „GRBL Stepper Motors Arduino Shield“
„Mecanum Omni“ratų robotas su „GRBL Stepper Motors Arduino Shield“
„Mecanum Omni“ratų robotas su „GRBL Stepper Motors Arduino Shield“

„Mecanum Robot“- projektas, kurį norėjau sukurti nuo tada, kai pamačiau jį Dejano greado mechatronikos tinklaraštyje: howtomechatronics.com

Dejanas tikrai padarė gerą darbą, apimdamas visus techninės įrangos, 3D spausdinimo, elektronikos, kodo ir „Android“programos aspektus (MIT programų išradėjas)

Tai puikus kapitalinio remonto projektas, atnaujinantis visus kūrėjo įgūdžius.

Turėjau nedaug pakeitimų projektuose

Nenorėjau naudoti pagal jo užsakymą pagamintos PCB, bet namuose turėjau seną GRBL skydą.

Norėjau naudoti „BlueTooth“

Taigi:

Prekės

„Arduino Uno“+ „GRBL Shield“

Žingsniniai varikliai

„HC-06 BlueTooth“modulis

12V Lipo baterija

1 žingsnis: Aparatūra

Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga

Atspausdino ratus ir surinko juos, kaip čia:

Prie korpuso prijungti 4 žingsniniai varikliai (mano atveju nenaudojamas stalčius aukštyn žemyn)

Kabeliai nukreipti į roboto viršų.

2 žingsnis: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Aš naudoju savo HC-06 BT modulį, Sunkiausia buvo nustatyti GRBL skydą, kad jis veiktų su 4 žingsniniais varikliais, nes tam nėra gero vadovo, Būtina įdėti džemperius, kaip matyti iš pridedamo paveikslėlio, kad skydo „įrankis“išvestis taip pat valdytų žingsninį variklį. taip pat reikia įdėti jungiklį „Įgalinti“

prijungti 4 žingsnius ir viskas.

Aš taip pat tiekiau maitinimą iš 12 V baterijų - dviejų stalų - vieną „Arduino“ir kitą „GRBl Shield“

3 žingsnis: „Arduino“kodas

/* === „Arduino Mecanum Wheels Robot“=== „Smartphone“valdymas per „Bluetooth“„Dejan“, www. HowToMechatronics.com Bibliotekos: RF24, www. HowToMechatronics.com Mike McCauley „AccelStepper“: www. HowToMechatronics.com

*//* 2019-12-12 Giladas Melleris (https://www.keerbot.com - modifikuokite kodą, kad jis veiktų su GRBL arduino variklio skydu. Skydo žingsniniai varikliai pažymėti taip (žingsnis/kryptis): 2/5 3 /6 4/7 12/13 naudojant A4988 tvarkyklę 12V

Dejano kodas naudoja „SoftwareSerial“, o mano - standartinius „Arduino Uno“RX, TX kaiščius (0, 1).

*/ #įtraukti

// Apibrėžkite žingsninius variklius ir kaiščius, kurie naudos „AccelStepper LeftBackWheel“(1, 2, 5); // (Tipas: vairuotojas, STEP, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // Stepper4

int gaunamas baitas = 0, c; // gaunamiems serijiniams duomenims int wheelSpeed = 100;

void setup () {Serial.begin (9600); // atidaro nuoseklųjį prievadą, nustato duomenų perdavimo spartą iki 9600 bps // Nustatykite pradines žingsnių reikšmes LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// skaityti gaunamą baitą: inputingByte = Serial.read ();

c = gaunamas baitas; jungiklis (c) {71 atvejis: Serial.println („Gavau pasukti į dešinę W“); rotateRight (); pertrauka; 65 atvejis: Serial.println („Gavau pasukti kairę Q“); rotateLeft (); pertrauka; 1 atvejis: Serial.println („Gavau BK/LFT“); moveRightBackward (); pertrauka; 2 atvejis: Serial.println („Gavau BK“); Judėk atgal(); pertrauka; 3 atvejis: Serial.println („Gavau BK/RT“); moveRightBackward (); pertrauka; 4 atvejis: Serial.println („Gavau LEFT“); moveSidewaysLeft ();

pertrauka; 5 atvejis: Serial.println („Gavau STOP“); stopMoving (); pertrauka; 6 atvejis: Serial.println („Gavau RT“); moveSidewaysRight (); pertrauka; 7 atvejis: Serial.println („Gavau FWD/LFT“); moveLeftForward (); pertrauka; 8 atvejis: Serial.println („Gavau FWD“); judėti į priekį(); pertrauka; 9 atvejis: Serial.println („Gavau FWD/RT“); moveRightForward (); pertrauka; numatytasis: Serial.print ("Ne komanda"); Serial.println (gaunamas baitas, DEC); pertrauka; } } //Judėk atgal(); 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 žingsnis: „Appinventor“

Nauja „Appinventor“programa su skirtingomis ir paprastesnėmis funkcijomis (be įrašų)

Prašome atsiųsti žinutę, o aš jums - įkelti nepavyksta.

Rūpinkitės.