Mecanum Omni Wheels Robot с GRBL стъпкови двигатели Arduino Shield: 4 стъпки
Mecanum Omni Wheels Robot с GRBL стъпкови двигатели Arduino Shield: 4 стъпки
Anonim
Mecanum Omni Wheels Robot с GRBL стъпкови двигатели Arduino Shield
Mecanum Omni Wheels Robot с GRBL стъпкови двигатели Arduino Shield
Mecanum Omni Wheels Robot с GRBL стъпкови двигатели Arduino Shield
Mecanum Omni Wheels Robot с GRBL стъпкови двигатели Arduino Shield
Mecanum Omni Wheels Robot с GRBL стъпкови двигатели Arduino Shield
Mecanum Omni Wheels Robot с GRBL стъпкови двигатели Arduino Shield

Mecanum Robot - Проект, който исках да изградя, откакто го видях в блога за мехатроника на Деяна: howtomechatronics.com

Деян наистина свърши добра работа, обхващайки всички аспекти от хардуера, 3D принтирането, електрониката, кода и приложението за Android (изобретателят на приложения на MIT)

Това е страхотен проект, който освежава всички умения на производител.

Имах няколко промени по проектите

Не исках да използвам персонализираната печатна платка, която той използва, но стар щит от GRBL, който имах у дома.

Исках да използвам BlueTooth

Така:

Консумативи

Arduino Uno + GRBL щит

Стъпкови двигатели

HC-06 BlueTooth модул

12V Lipo батерия

Стъпка 1: Хардуер

Хардуер
Хардуер
Хардуер
Хардуер

Отпечата колелата и ги сглоби както тук:

Свързани 4 стъпкови двигателя към шасито (в моя случай неизползвано чекмедже нагоре надолу)

Прокарайте кабелите към върха на робота.

Стъпка 2: Електроника

Електроника
Електроника
Електроника
Електроника
Електроника
Електроника

Използвах моя HC-06 BT модул, Най -трудното беше да настроите щита GRBL да работи с 4 стъпкови двигателя, тъй като няма добро ръководство за това, Необходимо е да се поставят джъмпери, както може да се види на приложената снимка, за да може изходът "Инструмент" на щита да управлява и стъпков двигател. също трябва да поставите джъмпера "Enable"

окабеляване на 4 -те степера и това е всичко.

Захранвах и от 12V батерии - два стена - един за Arduino и един за GRBl Shield

Стъпка 3: Arduino код

/* === Arduino Mecanum Wheels Robot === Управление на смартфон чрез Bluetooth от Dejan, www. HowToMechatronics.com Библиотеки: RF24, www. HowToMechatronics.com AccelStepper от Mike McCauley: www. HowToMechatronics.com

*//* 2019-11-12 Gilad Meller (https://www.keerbot.com - променете кода, за да работите с GRBL arduino мотор щит Стъпковите двигатели в щита са картографирани като (стъпка/посока): 2/5 3 /6 4/7 12/13 с помощта на A4988 драйвер 12V

Кодът на Деян използва SoftwareSerial, а моят ще използва стандартните RX, TX щифтове (0, 1) на Arduino Uno Забележка: Уверете се, че сте пренасочили RX TX щифтовете, когато надстройвате скица към arduino или качването няма да успее.

*/ #включва

// Определете стъпковите двигатели и щифтовете, които ще използват AccelStepper LeftBackWheel (1, 2, 5); // (Тип: драйвер, STEP, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // Стъпка4

int incomingByte = 0, c; // за входящи серийни данни int wheelSpeed = 100;

void setup () {Serial.begin (9600); // отваря сериен порт, задава скорост на предаване на данни на 9600 bps // Задава първоначални стойности за началните стойности LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// чете входящия байт: incomingByte = Serial.read ();

c = incomingByte; ключ (c) {случай 71: Serial.println ("Получих Завъртане надясно W"); rotateRight (); прекъсване; случай 65: Serial.println ("Получих Завъртане наляво Q"); завърти наляво(); прекъсване; случай 1: Serial.println ("Получих BK/LFT"); moveRightBackward (); прекъсване; случай 2: Serial.println ("Получих BK"); moveBackward (); прекъсване; случай 3: Serial.println ("Получих BK/RT"); moveRightBackward (); прекъсване; случай 4: Serial.println ("Получих ЛЯВО"); moveSidewaysLeft ();

прекъсване; случай 5: Serial.println ("Получих STOP"); stopMoving (); прекъсване; случай 6: Serial.println ("Получих RT"); moveSidewaysRight (); прекъсване; случай 7: Serial.println ("Получих FWD/LFT"); moveLeftForward (); прекъсване; случай 8: Serial.println ("Получих FWD"); продължавай напред(); прекъсване; случай 9: Serial.println ("Получих FWD/RT"); moveRightForward (); прекъсване; по подразбиране: Serial.print ("Не е команда"); Serial.println (incomingByte, DEC); прекъсване; }} // 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); }

Стъпка 4: Appinventor

Ново приложение на appinventor с различна и по -опростена функционалност (без записи)

Моля, изпратете съобщение и аз ще ви изпратя - качванията са неуспешни.

Пази се.

Препоръчано: