Съдържание:
- Стъпка 1: Променено е местоположението на урока
- Стъпка 2: Създайте робот за диференциално задвижване SnappyXO
- Стъпка 3: Свържете електрониката
- Стъпка 4: Инсталирайте библиотеката PreciseMovement Arduino
- Стъпка 5: Код
- Стъпка 6: Как работи
Видео: SnappyXO Precision Mover Robot: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Накарайте вашия робот Arduino да отиде направо за определено разстояние или да завърти до определен ъгъл с помощта на библиотеката PreciseMovement Arduino.
Роботът се нуждае от търкаляща се топка или еквивалент, за да сведе до минимум триенето при усукване.
www.pololu.com/product/954
Можете да кажете на робота да премине напред на определено разстояние или да завърти до определен ъгъл. Програмата определя позицията си с помощта на мъртви сметки. Тъй като оценките на позицията разчитат само на скоростта на колелото, приплъзването ще предизвика значителна грешка. Дизайнерът на робота трябва да внимава да сведе до минимум риска от подхлъзване.
Това е тествано за работа с SnappyXO робота.
Стъпка 1: Променено е местоположението на урока
Урокът е преместен на страницата по -долу. Този урок вече не се поддържа.
sites.google.com/stonybrook.edu/premo
Стъпка 2: Създайте робот за диференциално задвижване SnappyXO
Библиотеката PreciseMovement, която ще използваме, е съвместима само с роботи с диференциално задвижване. Можете да изберете да използвате други роботи с 2 колела.
Стъпка 3: Свържете електрониката
За стандартния оптичен енкодер SnappyXO:
D0 (изход на енкодер) -> Arduino Digital Pin
VCC -> Arduino 5V
GND -> GND
Мощност на двигателя и Arduino:
Източникът на захранване на двигателя трябва да е подходящ за моторите, които използвате. За комплекта SnappyXO се използват батерии 4AA за захранване на двигателя и 9V батерия за захранване на Arduino. Уверете се, че всички те имат общ GND.
Стъпка 4: Инсталирайте библиотеката PreciseMovement Arduino
Изтегли:
github.com/jaean123/PreciseMovement-library/releases
Как да инсталирате Arduino Library:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Стъпка 5: Код
Код на Arduino:
create.arduino.cc/editor/ whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Тези параметри изискват корекция. Други параметри, обозначени като препоръчани в кода, могат да бъдат коригирани за по -добра производителност.
- Проверете и настройте щифтовете на двигателя под ARDUINO PINS.
-
Задайте LENGTH и RADIUS.
- LENGTH е разстоянието от лявото колело до дясното колело.
- RADIUS е радиусът на колелото.
-
Задайте PULSES_PER_REV, който е броят на импулсите, които кодерът извежда за едно завъртане на колелото.
- Обърнете внимание, че това е различно от броя импулси, които енкодерът извежда за един оборот на вала на двигателя, освен ако енкодерите не са свързани за отчитане директно от вала на колелото.
- PULSES_PER_REV = (импулси на един оборот на вала на двигателя) x (предавателно отношение)
-
Задайте STOP_LENGTH, ако видите, че роботът превишава стрелбата след движението напред.
Роботът ще спре, след като прогнозната позиция е на STOP_LENGTH от целта. По този начин STOP_LENGTH е приблизителното разстояние, необходимо за спиране на робота
-
PID параметри
KP_FW: Това е пропорционалният компонент на движението напред. Увеличете това, докато роботът тръгне направо. Ако не можете да го накарате да премине направо, като настроите това, тогава хардуерът вероятно е виновен. (напр. разминаване на колелата и т.н.)
KP_TW: Това е пропорционалният компонент на PID за усукващо движение. Просто започнете от ниска стойност и увеличете това, докато скоростта на завъртане или ъгловата скорост на робота по време на усукване, е достатъчно бърза, но не причинява превишаване. За да правите наблюдения, можете да накарате робота да се редува от 0 до 90 и обратно, като вмъкнете следното във функцията за цикъл
Поставете това в цикъл, за да настроите KP_FW:
mover.forward (99999);
Поставете това в цикъл, за да редувате от 0 до 90, за да настроите KP_TW:
mover.twist (90); // Twist 90 CW
забавяне (2000);
mover.twist (-90) // Twist 90 CCW
забавяне (2000);
Обърнете внимание, че за да се обърне действително ъгловата скорост на TARGET_TWIST_OMEGA, KI_TW също трябва да бъде настроен, тъй като пропорционалният контролер никога няма да се установи на точната цел. Не е необходимо обаче да се усуква с точно тази ъглова скорост. Ъгловата скорост просто трябва да бъде достатъчно бавна.
Стъпка 6: Как работи
Ако се интересувате как работи, прочетете.
Движението напред се поддържа прави, като се използва алгоритъм за чисто преследване по права линия. Повече за Pure Pursuit:
PID контролерът на усукване се опитва да поддържа ъгловата скорост на усукване на TARGET_TWIST_OMEGA. Обърнете внимание, че тази ъглова скорост е ъгловата скорост на целия робот, а не на колелата. Използва се само един PID контролер и изходът е скоростта на запис на ШИМ както на левия, така и на десния двигател. За изчисляване на ъгъла се прави мъртва сметка. След като ъгълът достигне прага на грешка, роботът спира.
Препоръчано:
PAPER HUNGRY ROBOT - Pringles Recycle Arduino Robot: 19 стъпки (със снимки)
PAPER HUNGRY ROBOT - Pringles Recycle Arduino Robot: Това е друга версия на Hungry Robot, която построих през 2018 г. Можете да направите този робот без 3D принтер. Всичко, което трябва да направите, е просто да закупите кутия Pringles, серво мотор, сензор за близост, arduino и някои инструменти. Можете да изтеглите всички
[DIY] Spider Robot (Quad Robot, Quadruped): 14 стъпки (със снимки)
[DIY] Spider Robot (Quad Robot, Quadruped): Ако имате нужда от допълнителна подкрепа от мен, ще бъде по-добре да ми направите подходящо дарение: http: //paypal.me/RegisHsu2019-10-10 актуализация: Новият компилатор ще предизвика проблем с изчисляването на плаващото число. Вече промених кода. 2017-03-26
Joy Robot (Robô Da Alegria) - 3D отпечатан с отворен код, Arduino Powered Robot!: 18 стъпки (със снимки)
Joy Robot (Robô Da Alegria) - 3D отпечатан с отворен код, Arduino Powered Robot !: Първа награда в конкурса за колела Instructables, Втора награда в състезанието Arduino на Instructables и Подгласничка в предизвикателството Design for Kids. Благодаря на всички, които гласуваха за нас !!! Роботите се появяват навсякъде. От промишлени приложения до вас
Raspberry Pi A1332 Precision Hall - Сензор за ъгъл на ефекта Java Урок: 4 стъпки
Raspberry Pi A1332 Precision Hall - Сензор за ъгъл на ефекта Java Урок: A1332 е 360 ° безконтактен програмируем сензор за положение на магнитния ъгъл с висока разделителна способност. Той е предназначен за цифрови системи, използващи I2C интерфейс. Изграден е по технология Circular Vertical Hall (CVH) и програмируем микропроцесорен сигнал
Arduino: Precision Lib за стъпков двигател: 19 стъпки
Arduino: Precision Lib за стъпков двигател: Днес ще ви покажа библиотека за пълен стъпалов двигател с крайни превключватели и движение на двигателя с ускорение и микро стъпка. Този Lib, който работи както с Arduino Uno, така и с Arduino Mega, ви позволява да премествате двигателите, базирани не само на