Talaan ng mga Nilalaman:

Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield: 4 na Hakbang
Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield: 4 na Hakbang

Video: Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield: 4 na Hakbang

Video: Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield: 4 na Hakbang
Video: Simon's Omni-Directional 3D Printed Robot, George School 2013-14 2024, Nobyembre
Anonim
Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Sa GRBL Stepper Motors Arduino Shield

Mecanum Robot - Isang proyekto na nais kong buuin mula nang makita ko ito sa blog ng gjan mechatronics ng Dejan: howtomechatronics.com

Si Dejan ay talagang gumawa ng isang mahusay na trabaho na sumasaklaw sa lahat ng mga aspeto mula sa hardware, 3D printing, electronics, code at isang Android app (imbentor ng MIT's App)

Ito ay isang mahusay na overhoul na proyekto na nagre-refresh ng lahat ng mga kasanayan ng isang tagagawa.

Mayroon akong kaunting mga pagbabago na dapat gawin sa mga proyekto

Hindi ko nais na gamitin ang pasadyang ginawang PCB na ginamit niya, ngunit isang matandang kalasag na GRBL na mayroon ako sa bahay.

Nais kong gamitin ang BlueTooth

Kaya:

Mga gamit

Arduino Uno + GRBL Shield

Stepper motor

Module ng HC-06 BlueTooth

12V Lipo Battery

Hakbang 1: Hardware

Hardware
Hardware
Hardware
Hardware

Nai-print ang mga gulong at pinagsama ang mga ito tulad ng dito:

Nakakonekta ang 4 na mga motor ng Stepper sa tsasis (sa aking kaso isang hindi nagamit na drawer pataas pababa)

Na-redirect ang mga kable sa tuktok ng robot.

Hakbang 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Ginamit ko ang aking module na HC-06 BT, Ang pinakamahirap na bahagi ay upang itakda ang kalasag ng GRBL upang gumana sa 4 na motor ng Stepper dahil walang magandang gabay para doon, Kailangan ng isang paglagay ng Jumpers tulad ng makikita sa naka-attach na larawan, upang makagawa ang output na "Tool" ng kalasag upang makontrol din ang isang stepper motor. kailangan ding ilagay ang "Paganahin" ang Jumper

kable ng 4 steppers at iyon iyon.

Nagbigay din ako ng kuryente mula sa 12V na baterya - dalawang stes - isa para sa Arduino at isa para sa GRBl Shield

Hakbang 3: Arduino Code

/ * === Arduino Mecanum Wheels Robot === Kontrol ng smartphone sa pamamagitan ng Bluetooth ni Dejan, www. HowToMechatronics.com Library: RF24, www. HowToMechatronics.com AccelStepper ni Mike McCauley: www. HowToMechatronics.com

* / / * 2019-11-12 Gilad Meller (https://www.keerbot.com - baguhin ang code upang gumana kasama ang GRBL arduino motor shield Ang mga motor ng stepper sa kalasag ay nai-map bilang (hakbang / direksyon): 2/5 3 / 6 4/7 12/13 gamit ang A4988 driver 12V

Ang code ni Dejan ay gumagamit ng SoftwareSerial at ang minahan ay gagamitin ang karaniwang RX, TX pin (0, 1) ng Arduino Uno Note: Siguraduhing rempve ang mga pin ng RX TX kapag pinapataas ang sketch sa arduino o mabibigo ang pag-upload.

* / # isama

// Tukuyin ang mga motor ng stepper at ang mga pin na gagamit ng 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 papasok naByte = 0, c; // para sa papasok na serial data int wheelSpeed = 100;

void setup () {Serial.begin (9600); // bubukas ang serial port, nagtatakda ng rate ng data sa 9600 bps // Itakda ang mga paunang halaga ng binhi para sa steppers LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {kung (Serial.available ()> 0) {// basahin ang papasok na byte: ComingByte = Serial.read ();

c = papasok naByte; switch (c) {case 71: Serial.println ("Natanggap ko ang Paikutin sa kanan W"); iikot pa puntang kanan(); pahinga; kaso 65: Serial.println ("Natanggap ko ang Paikutin ang kaliwang Q"); paikutin ang Kaliwa (); pahinga; kaso 1: Serial.println ("Nakatanggap ako ng BK / LFT"); ilipatRightBackward (); pahinga; kaso 2: Serial.println ("Nakatanggap ako ng BK"); ilipatBackward (); pahinga; kaso 3: Serial.println ("Nakatanggap ako ng BK / RT"); ilipatRightBackward (); pahinga; kaso 4: Serial.println ("Nakatanggap ako ng KALIWAN"); ilipatSidewaysLeft ();

pahinga; kaso 5: Serial.println ("Nakatanggap ako ng STOP"); stopMoving (); pahinga; kaso 6: Serial.println ("Natanggap ko ang RT"); ilipatSidewaysRight (); pahinga; kaso 7: Serial.println ("Nakatanggap ako ng FWD / LFT"); ilipatLeftForward (); pahinga; kaso 8: Serial.println ("Nakatanggap ako ng FWD"); sumulong(); pahinga; kaso 9: Serial.println ("Nakatanggap ako ng FWD / RT"); ilipatRightForward (); pahinga; default: Serial.print ("Hindi isang utos"); Serial.println (papasok naByte, DEC); pahinga; }} // moveBackward (); ilipatRobot ();

}

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

void moveForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } walang bisa moveBackward () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } walang bisa moveSidewaysRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } walang bisa moveSidewaysLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } walang bisa rotateLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } walang bisa rotateRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } walang bisa moveRightForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (wheelSpeed); } walang bisa moveRightBackward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (0); } walang bisa 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); }

Hakbang 4: Tagataguyod

Isang bagong appinventor app na may iba at mas simpleng pag-andar (Walang Mga Pag-record)

Mangyaring ipadala ang msg at ipadala ko sa iyo - nabigo ang mga pag-upload.

Ingat.

Inirerekumendang: