GRBL Stepper Motors Arduino Shield ilə Mecanum Omni Wheels Robot: 4 Addım
GRBL Stepper Motors Arduino Shield ilə Mecanum Omni Wheels Robot: 4 Addım
Anonim
GRBL Stepper Motors Arduino Shield ilə Mecanum Omni Wheels Robot
GRBL Stepper Motors Arduino Shield ilə Mecanum Omni Wheels Robot
GRBL Stepper Motors Arduino Shield ilə Mecanum Omni Wheels Robotu
GRBL Stepper Motors Arduino Shield ilə Mecanum Omni Wheels Robotu
GRBL Stepper Motors Arduino Shield ilə Mecanum Omni Wheels Robotu
GRBL Stepper Motors Arduino Shield ilə Mecanum Omni Wheels Robotu

Mecanum Robotu - Dejanın diş mexanizmi blogunda gördüyümdən bəri qurmaq istədiyim bir layihə: howtomechatronics.com

Dejan həqiqətən də aparat, 3D çap, elektronika, kod və bir Android tətbiqinin bütün aspektlərini əhatə edən yaxşı bir iş gördü (MIT -in App ixtiraçısı)

Bu, istehsalçının bütün bacarıqlarını təzələyən böyük bir yenidənqurma layihəsidir.

Layihələrdə bir neçə dəyişiklik etməliyəm

İstifadə etdiyi xüsusi hazırlanmış PCB -dən istifadə etmək istəmirdim, amma evdə olduğum köhnə bir GRBL qalxanı.

BlueTooth istifadə etmək istədim

Belə ki:

Təchizat

Arduino Uno + GRBL Qalxanı

Step motorlar

HC-06 BlueTooth modulu

12V Lipo Batareya

Addım 1: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

Təkərləri çap edib burdakı kimi yığdı:

Şassiyə 4 pilləli mühərrik qoşulmuşdur (mənim vəziyyətimdə istifadə olunmamış çekmece yuxarı yuxarı)

Kabelləri robotun üstünə yönləndirdi.

Addım 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

HC-06 BT modulumdan istifadə etdim, Ən çətin şey, GRBL qalxanının 4 Stepper mühərriki ilə işləməsini təmin etmək idi, çünki bunun üçün yaxşı bir bələdçi yoxdur.

Qalxanın "Alət" çıxışını həm də bir pilləli motoru idarə etmək üçün əlavə olunmuş şəkildə göründüyü kimi tullananların qoyulmasına ehtiyac var. də "Enable" Jumper qoymaq lazımdır

4 stepperin naqillərini çəkin və bu da budur.

Mən də 12V batareyadan güc verdim - iki stes - biri Arduino üçün, biri də GRBl Shield üçün

Addım 3: Arduino Kodu

/* === Arduino Mecanum Wheels Robot === Bluetooth vasitəsilə Dejan, www. HowToMechatronics.com Kitabxanaları: RF24, www. HowToMechatronics.com AccelStepper by Mike McCauley: www. HowToMechatronics.com

*//* 2019-11-12 Gilad Meller (https://www.keerbot.com - GRBL arduino motor qalxanı ilə işləmək üçün kodu dəyişdirin Qalxandakı step motorları (addım/istiqamət) olaraq xəritələnir: 2/5 3 /6 4/7 12/13, A4988 sürücüsü 12V istifadə edir

Dejan kodunda SoftwareSerial istifadə olunur və mənimki Arduino Uno standart RX, TX pinlərini (0, 1) istifadə edəcək Qeyd: Arduinoya eskiz hazırlayarkən RX TX pinlərini açdığınızdan əmin olun, yoxsa yükləmə uğursuz olacaq.

*/ #daxil edin

// AccelStepper LeftBackWheel (1, 2, 5) istifadə edəcək step motorlarını və sancaqları təyin edin; // (Növ: sürücü, STEP, DIR) - Step1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper 2 AccelStepper RightBackWheel (1, 4, 7); // Stepper 3 AccelStepper RightFrontWheel (1, 12, 13); // Step4

int incomingByte = 0, c; // daxil olan serial məlumatları üçün int wheelSpeed = 100;

void setup () {Serial.begin (9600); // serial portunu açır, məlumat sürətini 9600 bps -ə təyin edir // Stepperlər üçün ilkin toxum dəyərlərini təyin edin LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// gələn baytı oxuyun: incomingByte = Serial.read ();

c = gələn Bayt; keçid (c) {dava 71: Serial.println ("Mən sağa döndərdim W"); rotateRight (); fasilə; hal 65: Serial.println ("Sola döndərdim"); rotateLeft (); fasilə; hal 1: Serial.println ("BK/LFT aldım"); moveRightBackward (); fasilə; hal 2: Serial.println ("BK aldım"); moveBackward (); fasilə; hal 3: Serial.println ("BK/RT aldım"); moveRightBackward (); fasilə; hal 4: Serial.println ("SOL aldım"); moveSidewaysLeft ();

fasilə; hal 5: Serial.println ("STOP aldım"); stopMoving (); fasilə; hal 6: Serial.println ("RT aldım"); moveSidewaysRight (); fasilə; hal 7: Serial.println ("FWD/LFT aldım"); moveLeftForward (); fasilə; hal 8: Serial.println ("FWD aldım"); önə doğru irəlilə(); fasilə; hal 9: Serial.println ("FWD/RT aldım"); moveRightForward (); fasilə; default: Serial.print ("Əmr deyil"); Serial.println (incomingByte, DEC); fasilə; }} // moveBackward (); moveRobot ();

}

boş hərəkət MoveRobot () {LeftBackWheel.runSpeed (); LeftFrontWheel.runSpeed (); SağFrontWheel.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); } boşluq 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); }

Addım 4: Tətbiqçi

Fərqli və daha sadə funksiyalara malik yeni bir tətbiq ixtiraçısı (Qeydlər yoxdur)

Zəhmət olmasa mesaj göndərin və mən də sizə göndərim - yükləmələr uğursuz oldu.

Özündən müğayət ol.