Arduino - Баланс - Балансиращ робот - Как да направите?: 6 стъпки (със снимки)
Arduino - Баланс - Балансиращ робот - Как да направите?: 6 стъпки (със снимки)
Anonim
Image
Image

В този урок ще научим как да направим Arduino балансиращ (балансиращ) робот, който да се балансира. Първо можете да разгледате видео урока по -горе.

Стъпка 1: Необходим хардуер

Сглобяване на робота
Сглобяване на робота

Arduino Board (Uno) -

MPU-6050 GY521 Acc+Gyro-https://bit.ly/2swR0Xo

DC 6V 210RPM кодиращ редуктор -

L298N Драйвер на двигателя -

Бутон за превключване -

Комплект винтове за гайки с шестоъгълна резба M3 -

Акрилен лист Perspex -

3.7v 18650 акумулаторна литиево-йонна+зарядно устройство-https://bit.ly/2LNZQcl

9V батерия -

Джъмперни проводници -

Пистолет за горещо лепило -

Стартов комплект и консумативи на Arduino (по избор): Arduino Board & SCM Supplies #01 -

Arduino Board & SCM Supplies #02 -

Arduino Basic Learning Starter Kit #01 -

Arduino Basic Learning Starter Kit #02 -

Arduino Basic Learning Starter Kit #03 -

Начален комплект Mega 2560 с урок -

Комплект сензорен модул за Arduino #01 -

Комплект сензорен модул за Arduino #02 -

Стъпка 2: Сглобяване на робота

Сглобяване на робота
Сглобяване на робота
Сглобяване на робота
Сглобяване на робота
Сглобяване на робота
Сглобяване на робота
  • Пробийте четири ъгъла от 3 акрилни листа. (Изображения 1 и 2)
  • Между всеки акрилен лист ще има около 8 кантиметра / 3,15 инча. (Изображение 3)
  • Размери на робота (приблизително) 15 см x 10 см x 20 см. (Изображение 4)
  • DC двигателят и колелата ще бъдат поставени в центъра (средната линия) на робота. (Изображение 5)
  • L298N Motor Driver ще бъде поставен в центъра на първия етаж (средната линия) на робота. (Изображение 6)
  • Дъската Arduino ще бъде поставена на втория етаж на робота.
  • Модулът MPU6050 ще бъде поставен на последния етаж на робота. (Изображение 7)

Стъпка 3: Връзки

Връзки
Връзки
Връзки
Връзки

Тествайте MPU6050 и се уверете, че работи! Свържете първо MPU6050 към Arduino и тествайте връзката, като използвате кодовете в урока по -долу. Даха трябва да се показва на серийния монитор

Инструкции за инструкции - MPU6050 GY521 6 -осен акселерометър+жироскоп

Урок за YouTube - MPU6050 GY521 6 -осен акселерометър + жироскоп

Модулът L298N може да осигури +5V, необходими на Arduino, стига входното му напрежение да е +7 V или повече. Избрах обаче да има отделен източник на захранване за двигателя

Стъпка 4: Как работи балансирането?

Как работи балансирането?
Как работи балансирането?
Как работи балансирането?
Как работи балансирането?
Как работи балансирането?
Как работи балансирането?
  • За да поддържат робота балансиран, двигателите трябва да противодействат на падането на робота.
  • Това действие изисква обратна връзка и коригиращ елемент.
  • Елементът за обратна връзка е MPU6050, който дава както ускорение, така и въртене във всичките три оси, които се използват от Arduino за познаване на текущата ориентация на робота.
  • Коригиращият елемент е комбинацията от мотор и колело.
  • Самобалансиращият се робот е по същество обърнато махало.
  • Тя може да бъде балансирана по -добре, ако центърът на масата е по -висок спрямо осите на колелата.
  • Ето защо поставих батерията отгоре.
  • Височината на робота обаче е избрана въз основа на наличността на материали.

Стъпка 5: Изходен код и библиотеки

Изходен код и библиотеки
Изходен код и библиотеки
Изходен код и библиотеки
Изходен код и библиотеки

Разработеният код за балансиращия робот е твърде сложен. Но няма нужда да се притеснявате. Ще променим само някои данни.

Нуждаем се от четири външни библиотеки, за да работи самобалансиращият се робот

  • PID библиотеката улеснява изчисляването на стойностите P, I и D.
  • Библиотеката LMotorController се използва за задвижване на двата двигателя с модула L298N.
  • Библиотеката I2Cdev и библиотеката MPU6050_6_Axis_MotionApps20 са за четене на данни от MPU6050.

Изтегляне на библиотеки

PID -

LMotorController -

I2Cdev -

MPU6050 -

Вземете изходния код -

Какво е PID?

  • В теорията на управлението, за да се поддържа стабилна някаква променлива (в този случай позицията на робота) се нуждае от специален контролер, наречен PID.
  • P за пропорционална, I за интегрална и D за производна. Всеки от тези параметри има „печалби“, обикновено наричани Kp, Ki и Kd.
  • PID осигурява корекция между желаната стойност (или вход) и действителната стойност (или изход). Разликата между входа и изхода се нарича „грешка“.
  • ПИД контролерът намалява грешката до възможно най -малката стойност чрез непрекъснато регулиране на изхода.
  • В нашия самобалансиращ се робот Arduino входът (който е желаният наклон, в градуси) се задава от софтуер.
  • MPU6050 отчита текущия наклон на робота и го подава към PID алгоритъма, който извършва изчисления за управление на двигателя и поддържане на робота в изправено положение.

PID изисква стойностите на усилванията Kp, Ki и Kd да бъдат „настроени“на оптимални стойности

Вместо това ще коригираме стойностите на PID ръчно

  1. Направете Kp, Ki и Kd равни на нула.
  2. Регулирайте Kp. Твърде малко Kp ще накара робота да падне (недостатъчна корекция). Твърде много Kp ще накара робота да се движи бурно напред -назад. Достатъчно добър Kp ще накара робота леко да се движи напред -назад (или да се колебае малко).
  3. След като Kp е настроен, регулирайте Kd. Добрата стойност на Kd ще намали трептенията, докато роботът стане почти стабилен. Също така, точното количество Kd ще поддържа робота да стои, дори и да бъде натиснат.
  4. И накрая, задайте Ki. Роботът ще се колебае, когато е включен, дори ако Kp и Kd са настроени, но ще се стабилизира с времето. Правилната стойност на Ki ще съкрати времето, необходимо на робота да се стабилизира.

Предложение за по -добри резултати

Препоръчвам ви да създадете подобна рамка за роботи, използвайки материалите, използвани в този проект, за да накарате изходния код за Balance Robot да работи стабилно и ефективно.

Стъпка 6: За поддръжка

За поддръжка
За поддръжка
  • Можете да се абонирате за моя канал в YouTube за още уроци и проекти.
  • Можете също да се абонирате за поддръжка. Благодаря ти.

Посетете моя канал в YouTube -

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