Оглавление:

Создание самобалансирующегося робота на Arduino с дистанционным управлением: B-robot EVO: 8 шагов
Создание самобалансирующегося робота на Arduino с дистанционным управлением: B-robot EVO: 8 шагов

Видео: Создание самобалансирующегося робота на Arduino с дистанционным управлением: B-robot EVO: 8 шагов

Видео: Создание самобалансирующегося робота на Arduino с дистанционным управлением: B-robot EVO: 8 шагов
Видео: Балансирующий робот своими руками на ардуино и шаговых двигателях 2024, Июль
Anonim
Image
Image
Создание самобалансирующегося робота на Arduino с дистанционным управлением: B-robot EVO
Создание самобалансирующегося робота на Arduino с дистанционным управлением: B-robot EVO
Создание самобалансирующегося робота на Arduino с дистанционным управлением: B-robot EVO
Создание самобалансирующегося робота на Arduino с дистанционным управлением: B-robot EVO

Подписаться Другие автора:

Pybot: Python + роботизированная рука, напечатанная на 3D-принтере
Pybot: Python + роботизированная рука, напечатанная на 3D-принтере
Pybot: Python + роботизированная рука, напечатанная на 3D-принтере
Pybot: Python + роботизированная рука, напечатанная на 3D-принтере
Простой моторизованный вращающийся дисплей (на базе Arduino + управляемый с вашего смартфона)
Простой моторизованный вращающийся дисплей (на базе Arduino + управляемый с вашего смартфона)
Простой моторизованный вращающийся дисплей (на базе Arduino + управляемый с вашего смартфона)
Простой моторизованный вращающийся дисплей (на базе Arduino + управляемый с вашего смартфона)
Роботизированный захват для руки
Роботизированный захват для руки
Роботизированный захват для руки
Роботизированный захват для руки

О себе: Мы любим роботов, DIY и забавную науку. JJROBOTS стремится приблизить открытые роботизированные проекты к людям, предоставляя оборудование, хорошую документацию, инструкции по сборке + код, информацию о том, как это работает… Подробнее о jjrobots »

------------------------------------------------

ОБНОВЛЕНИЕ: здесь есть новая и улучшенная версия этого робота: B-robot EVO, с новыми функциями

------------------------------------------------

Как это работает?

B-ROBOT EVO - это самобалансирующийся робот Arduino с дистанционным управлением, созданный из деталей, напечатанных на 3D-принтере. Имея всего два колеса, B-ROBOT может постоянно поддерживать равновесие, используя свои внутренние датчики и приводя в движение двигатели. Вы можете управлять своим роботом, заставляя его двигаться или вращаться, отправляя команды через смартфон, планшет или ПК, пока он поддерживает равновесие.

Этот самобалансирующийся робот считывает данные своих инерционных датчиков (акселерометры и гироскопы, встроенные в микросхему MPU6000) 200 раз в секунду. Он вычисляет свое положение (угол по отношению к горизонту) и сравнивает этот угол с целевым углом (0º, если он хочет сохранить равновесие без движения, или положительный или отрицательный угол, если он хочет двигаться вперед или назад). Используя разницу между целевым углом (скажем, 0º) и фактическим углом (скажем, 3º), он управляет системой управления, чтобы посылать правильные команды двигателям для поддержания своего баланса. Команды двигателям - это ускорения. Например, если робот наклонен вперед (угол поворота робота составляет 3º), он посылает на двигатели команду ускоряться вперед, пока этот угол не уменьшится до нуля для сохранения баланса.

Шаг 1. Еще немного подробнее…

Немного подробнее…
Немного подробнее…
Немного подробнее …
Немного подробнее …
Немного подробнее …
Немного подробнее …

Физическая проблема, которую решает B-ROBOT, называется перевернутым маятником. Это тот же механизм, который нужен для балансировки зонта над рукой. Точка поворота находится под центром масс объекта. Больше информации о перевернутом маятнике здесь. Математическое решение проблемы непросто, но нам не нужно понимать это, чтобы решить проблему с балансом нашего робота. Что нам нужно знать, так это то, что делать, чтобы восстановить баланс робота, чтобы мы могли реализовать алгоритм управления для решения проблемы.

Система управления очень полезна в робототехнике (промышленной автоматизации). По сути, это код, который получает информацию от датчиков и целевых команд в качестве входных данных и, как следствие, создает выходные сигналы для управления исполнительными механизмами робота (двигателями в нашем примере) для регулирования системы. Мы используем ПИД-регулятор (пропорциональный + производный + интегральный). Этот тип управления имеет 3 константы для регулировки kP, kD, kI. Из Википедии: «ПИД-регулятор вычисляет значение« ошибки »как разницу между измеренным [Входным] и желаемым заданным значением. Контроллер пытается минимизировать ошибку, регулируя [Выход] ». Итак, вы указываете ПИД-регулятору, что измерять («Вход»), где вы хотите, чтобы это измерение было («Заданное значение») и переменную, которую вы хотите настроить, чтобы это произошло («Выход».)

Затем ПИД регулирует выход, пытаясь сделать вход равным заданному значению. Для справки, резервуар для воды, который мы хотим заполнить до уровня, входом, уставкой и выходом будут уровнем в соответствии с датчиком уровня воды, желаемым уровнем воды и водой, закачанной в резервуар. kP - пропорциональная часть и основная часть управления, эта часть пропорциональна ошибке. kD - это производная часть, которая применяется к производной ошибки. Эта часть зависит от динамики системы (зависит от робота, веса двигателей, инерции…). Последний, kI, применяется к интегралу ошибки и используется для уменьшения устойчивых ошибок, это похоже на обрезку на конечном выходе (подумайте о кнопках обрезки на рулевом колесе автомобиля с дистанционным управлением, чтобы машина ехала полностью прямо, kI удаляет смещение между требуемым целевым и фактическим значением).

На B-ROBOT команда рулевого управления от пользователя добавляется к выходным данным двигателей (один двигатель с положительным знаком, а другой с отрицательным знаком). Например, если пользователь отправляет команду рулевого управления 6 для поворота вправо (от -10 до 10), нам нужно добавить 6 к значению левого мотора и вычесть 6 из правого мотора. Если робот не движется вперед или назад, результатом команды рулевого управления является вращение робота.

Шаг 2: А как насчет пульта дистанционного управления?

"loading =" ленивый"

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