Arduino - Баланс - Балансирующий робот - Как сделать ?: 6 шагов (с картинками)
Arduino - Баланс - Балансирующий робот - Как сделать ?: 6 шагов (с картинками)
Anonim
Image
Image

В этом уроке мы узнаем, как сделать балансирующего (балансирующего) робота Arduino, который уравновешивает сам себя. Сначала вы можете посмотреть видеоурок выше.

Шаг 1: необходимое оборудование

Сборка робота
Сборка робота

Плата Arduino (Uno) -

MPU-6050 GY521 Acc + гироскоп -

Комплект мотор-редукторов кодировщика постоянного тока 6 В, 210 об / мин -

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

Кнопка переключения -

Набор гаек M3 с шестигранной резьбой и распорной втулкой -

Акриловый лист Perspex -

Литий-ионная аккумуляторная батарея 18650 3,7 в + зарядное устройство -

Батарея 9 В -

Провода перемычки -

Пистолет для горячего клея -

Стартовый комплект и принадлежности для Arduino (необязательно): плата Arduino и расходные материалы SCM # 01 -

Расходные материалы для платы Arduino и SCM # 02 -

Стартовый комплект для базового обучения Arduino # 01 -

Стартовый комплект Arduino Basic Learning # 02 -

Стартовый комплект для базового обучения Arduino # 03 -

Стартовый комплект Mega 2560 с руководством -

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

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

Шаг 2: Сборка робота

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

Шаг 3: Подключения

Подключения
Подключения
Подключения
Подключения

Протестируйте MPU6050 и убедитесь, что он работает! Сначала подключите MPU6050 к Arduino и проверьте соединение, используя коды из приведенного ниже руководства. Даха должен отображаться на последовательном мониторе

Учебное пособие - 6-осевой акселерометр MPU6050 GY521 + гироскоп

Учебное пособие на YouTube - 6-осевой акселерометр MPU6050 GY521 + гироскоп

Модуль L298N может обеспечить необходимое для Arduino + 5 В, если его входное напряжение составляет +7 В или больше. Однако я решил использовать отдельный источник питания для двигателя

Шаг 4: Как работает балансировка?

Как работает балансировка?
Как работает балансировка?
Как работает балансировка?
Как работает балансировка?
Как работает балансировка?
Как работает балансировка?
  • Чтобы робот оставался сбалансированным, двигатели должны противодействовать падению робота.
  • Это действие требует обратной связи и корректирующего элемента.
  • Элементом обратной связи является MPU6050, который дает как ускорение, так и вращение по всем трем осям, которые используются Arduino для определения текущей ориентации робота.
  • Корректирующим элементом является комбинация двигателя и колеса.
  • Самобалансирующийся робот - это, по сути, перевернутый маятник.
  • Его можно лучше сбалансировать, если центр масс находится выше по отношению к осям колес.
  • Вот почему я поместил аккумулятор сверху.
  • Однако высота робота была выбрана исходя из наличия материалов.

Шаг 5: исходный код и библиотеки

Исходный код и библиотеки
Исходный код и библиотеки
Исходный код и библиотеки
Исходный код и библиотеки

Код, разработанный для балансировочного робота, слишком сложен. Но волноваться не о чем. Мы только изменим некоторые данные.

Нам нужно четыре внешних библиотеки, чтобы заставить работать самобалансирующийся робот

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

Скачать библиотеки

PID -

LMotorController -

I2Cdev -

MPU6050 -

Получите исходный код -

Что такое PID?

  • В теории управления для поддержания постоянной некоторой переменной (в данном случае положения робота) требуется специальный контроллер, называемый ПИД-регулятором.
  • P для пропорционального, I для интегрального и D для производного. Каждый из этих параметров имеет «усиление», обычно называемое Kp, Ki и Kd.
  • ПИД-регулятор обеспечивает коррекцию между желаемым значением (или входом) и фактическим значением (или выходом). Разница между входом и выходом называется «ошибкой».
  • ПИД-регулятор снижает погрешность до минимально возможного значения, непрерывно регулируя выход.
  • В нашем самобалансирующемся роботе 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 -

Рекомендуемые: