Mecanum Omni Wheels Robot With GRBL Stepper Motors Arduino Shield: 4 Steps
Mecanum Omni Wheels Robot With GRBL Stepper Motors Arduino Shield: 4 Steps
Anonim
Mecanum Omni Wheels Robot With GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot With GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot With GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot With GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot With GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot With GRBL Stepper Motors Arduino Shield

Mecanum Robot - Et prosjekt jeg ønsket å bygge helt siden jeg så det på Dejans gread mekatronikkblogg: howtomechatronics.com

Dejan gjorde virkelig en god jobb med å dekke alle aspektene fra maskinvare, 3D -utskrift, elektronikk, kode og en Android -app (MITs App -oppfinner)

Dette er et flott overhoul -prosjekt som oppdaterer alle ferdighetene til en maker.

Jeg hadde få endringer i prosjektene

Jeg ønsket ikke å bruke den skreddersydde PCB han brukte, men et gammelt GRBL -skjold jeg hadde hjemme.

Jeg ønsket å bruke BlueTooth

Så:

Rekvisita

Arduino Uno + GRBL Shield

Trinnmotorer

HC-06 BlueTooth-modul

12V Lipo batteri

Trinn 1: Maskinvare

Maskinvare
Maskinvare
Maskinvare
Maskinvare

Skrev ut hjulene og monterte dem som her:

Koblet 4 trinnmotorer til kabinettet (i mitt tilfelle en ubrukt skuff opp ned)

Førte kablene til toppen av roboten.

Trinn 2: Elektronikk

Elektronikk
Elektronikk
Elektronikk
Elektronikk
Elektronikk
Elektronikk

Jeg brukte min HC-06 BT-modul, Det vanskeligste var å sette GRBL -skjoldet til å fungere med 4 trinnmotorer siden det ikke er noen god guide for det, Det er et behov for å sette Jumpers som det kan sees på det vedlagte bildet, for å få "Tool" -utgangen til skjermen til også å styre en trinnmotor. må også sette "Enable" Jumper

tilkobling av de fire stepperne og det er det.

Jeg leverte også strøm fra 12V batterier - to ruter - en for Arduino og en for GRBl -skjoldet

Trinn 3: Arduino -kode

/* === Arduino Mecanum Wheels Robot === Smarttelefonkontroll via Bluetooth av Dejan, www. HowToMechatronics.com Libraries: RF24, www. HowToMechatronics.com AccelStepper av Mike McCauley: www. HowToMechatronics.com

*** /6 4/7 12/13 ved bruk av A4988 driver 12V

Dejans kode bruker SoftwareSerial, og min vil bruke standard RX, TX -pinner (0, 1) til Arduino Uno Merk: Sørg for å rempve RX TX -pinnene når du laster opp skisse til arduinoen, ellers vil opplastingen mislykkes.

*/ #include

// Definer stepper motorer og pins som vil bruke AccelStepper LeftBackWheel (1, 2, 5); // (Type: 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; // for innkommende serielle data int wheelSpeed = 100;

ugyldig oppsett () {Serial.begin (9600); // åpner seriell port, setter datahastigheten til 9600 bps // Angi innledende frøverdier for trinnene LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// read the incoming byte: incomingByte = Serial.read ();

c = incomingByte; switch (c) {case 71: Serial.println ("Jeg mottok Rotate right W"); roter til høyre(); gå i stykker; sak 65: Serial.println ("Jeg mottok Roter til venstre Q"); Rotér mot venstre(); gå i stykker; sak 1: Serial.println ("jeg mottok BK/LFT"); moveRightBackward (); gå i stykker; sak 2: Serial.println ("jeg mottok BK"); Flytt tilbake(); gå i stykker; sak 3: Serial.println ("jeg mottok BK/RT"); moveRightBackward (); gå i stykker; sak 4: Serial.println ("Jeg mottok VENSTRE"); moveSidewaysLeft ();

gå i stykker; sak 5: Serial.println ("Jeg mottok STOPP"); stopMoving (); gå i stykker; sak 6: Serial.println ("jeg mottok RT"); moveSidewaysRight (); gå i stykker; sak 7: Serial.println ("Jeg mottok FWD/LFT"); moveLeftForward (); gå i stykker; sak 8: Serial.println ("Jeg mottok FWD"); gå fremover(); gå i stykker; sak 9: Serial.println ("Jeg mottok FWD/RT"); moveRightForward (); gå i stykker; standard: Serial.print ("Ikke en kommando"); Serial.println (incomingByte, DEC); gå i stykker; } } //Flytt tilbake(); 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); }

Trinn 4: Appinventor

En ny appinventor -app med annerledes og enklere funksjonalitet (ingen opptak)

Send melding og jeg sender til deg - opplastningene mislykkes.

Ha det fint.