Оглавление:

Самобалансирующийся робот: 6 шагов (с изображениями)
Самобалансирующийся робот: 6 шагов (с изображениями)

Видео: Самобалансирующийся робот: 6 шагов (с изображениями)

Видео: Самобалансирующийся робот: 6 шагов (с изображениями)
Видео: Балансирующий робот | esp8266 | [Проект №1] 2024, Ноябрь
Anonim
Самобалансирующийся робот
Самобалансирующийся робот

В этом руководстве мы покажем вам, как построить самобалансирующегося робота, который мы сделали в рамках школьного проекта. Он основан на некоторых других роботах, таких как nBot и еще один Instructable. Роботом можно управлять со смартфона Android через соединение Bluetooth. Поскольку это руководство охватывает только процесс сборки, мы также написали документ, охватывающий технические основы кода и электроники. Он также содержит ссылки на использованные источники, так что вы можете взглянуть на них, если документ недостаточно подробен для вас.

Чтобы выполнить все этапы этого проекта, вам понадобятся навыки 3D-печати или какой-либо другой умный способ прикрепить колеса к двигателям.

Шаг 1. Требования

Требования
Требования
Требования
Требования
Требования
Требования

Робот основан на плате контроллера бесколлекторного подвеса Martinez. Есть несколько небольших вариаций этой платы, но если у вас есть плата с микросхемой ATmega328 и контроллерами двигателей L6234, все будет в порядке. Если вы выполните поиск по запросу «плата Martinez» в Картинках Google, вы увидите, что есть несколько плат с простым разъемом для чипа IMU и / или аккумулятора, а не с разъемами для контактов или отверстиями. В последнем случае это пригодится, если вы закажете комплект выводов, которые затем можно будет впаять в отверстия.

Список запчастей

Некоторые элементы в этом списке содержат ссылки на интернет-магазины.

  • Контроллер: Martinez BoardDX.com (также поставляется с IMU и некоторыми контактами заголовка).
  • IMU: MPU6050
  • Аккумулятор (аккумулятор 3S LiPo емкостью 450 мАч) Примечание: вам также понадобится зарядное устройство 3S LiPo на eBay.com
  • 2x Мотор: Бесщеточный мотор 2208, KV100DX.com
  • Колеса (вы можете получить их из существующих игрушек или LEGO)
  • 6x винт M2 5 мм
  • Винт 8x M3 (длина зависит от материала вашего экстерьера, один должен быть очень длинным)
  • Чип Bluetooth HC-05 (убедитесь, что у него установлена плата последовательного интерфейса, а не только голый чип) ВАЖНО: Убедитесь, что на чипе есть контакт с надписью KEY.
  • Провода: от женщины к женщине DuPont Покупки пакета из 20 проводов будет более чем достаточно.
  • Лента на липучке
  • USB-кабель для подключения контроллера к ПК
  • Необязательно: Заголовок pinsDX.com (вы можете обрезать или сломать их до нужной длины)
  • Пластиковые шайбы и распорки

Наконец, вам понадобится немного акрила, дерева или картона, а также клей или скотч, чтобы создать структуру, удерживающую все компоненты.

Шаг 2: Конфигурация чипа Bluetooth

Конфигурация чипа Bluetooth
Конфигурация чипа Bluetooth

Как только вы овладеете всеми деталями, самое время настроить чип Bluetooth. Вам понадобится USB-кабель для подключения платы контроллера к компьютеру, а также IDE Arduino для связи с компонентами.

Для этого вам необходимо скачать файл:

HC-05_Serial_Interface.ino

Затем выполните следующие действия:

  1. Подключите контроллер к компьютеру с помощью кабеля USB.
  2. Откройте файл.ino с помощью Arduino IDE.
  3. В среде IDE перейдите в Инструменты, Плата и убедитесь, что для него установлено значение Arduino / Genuino Uno.
  4. Теперь перейдите в Инструменты, Порт и установите его на COM-порт, к которому подключен контроллер. Обычно порт только один. Если их несколько, проверьте диспетчер устройств (в Windows), чтобы узнать, какой из них является контроллером.
  5. Теперь нажмите кнопку «Загрузить» в среде IDE и дождитесь завершения загрузки. Затем отсоедините USB-кабель от компьютера или контроллера.

После этого подключите HC-05 с помощью кабелей DuPont следующим образом:

Контроллер HC-05

КЛЮЧ + 5V GND GND TXD RX RXD TX

Теперь снова подключите USB-кабель, затем подключите контакт VCC HC-05 к другому + 5В на контроллере. Светодиод должен мигать с интервалом ~ 1 секунда.

В среде Arduino IDE выберите правильный COM-порт, затем перейдите в Инструменты, Serial Monitor.

Установите для параметра Line Ending в Serial Monitor значение Both NL & CR. Установите скорость передачи на 38400. Теперь вы можете использовать Serial Monitor для отправки команд настройки на микросхему Bluetooth. Это команды:

AT Проверить соединение

AT + NAME Получить / установить отображаемое имя Bluetooth AT + UART Получить / установить скорость передачи AT + ORGL Сбросить заводские настройки по умолчанию AT + PSWD Получить / установить пароль Bluetooth

Чтобы изменить имя, пароль и скорость передачи данных устройства Bluetooth, отправьте следующие команды:

AT + NAME = "Пример названия"

AT + PSWD = "PassWord123" AT + UART = "230400, 1, 0"

Для параметров «Имя» и «Пароль» можно задать все, что угодно, только не забудьте установить скорость передачи данных с помощью той же команды, что и указанная выше. Это устанавливает скорость 230400 бод с 1 стоповым битом и без контроля четности. После настройки снова подключите USB-кабель (чтобы выйти из режима настройки) и попробуйте подключить телефон к микросхеме. Если все работает, отключите USB-кабель и переходите к следующему шагу.

Шаг 3: прикрепление колес к двигателям

Крепление колес к двигателям
Крепление колес к двигателям
Крепление колес к двигателям
Крепление колес к двигателям

Колеса, которые использовались в этом проекте, имеют неизвестное происхождение (они лежали в ящике с множеством других вещей). Чтобы прикрепить колеса к двигателям, мы напечатали на 3D-принтере деталь, совпадающую с отверстиями для винтов на двигателях. Детали были прикручены с помощью трех 5-миллиметровых болтов 2M на двигатель. Обе детали имеют штифт, который подходит к отверстиям в осях колес.

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

Шаг 4: Создание экстерьера

Создание экстерьера
Создание экстерьера

Для экстерьера использовались два куска дерева одинаковой формы. Для начала мы отметили окружность мотора в центре нижней части детали. Затем мы отметили каждый угол линией под углом 45 градусов, убедившись, что осталось достаточно места для двигателя внизу по центру. Затем мы скрепили два куска дерева и отпилили углы. В завершение мы отшлифовали углы, чтобы они были менее острыми, и удалили занозы.

Пришло время просверлить отверстия для винтов и оси, выступающей из задней части двигателя. Если при сверлении вы сжимаете куски дерева вместе, вам нужно просверлить каждое отверстие только один раз.

Чтобы создать схему отверстий для винтов, мы использовали лист бумаги, поместили его на заднюю часть двигателя и с помощью карандаша вдавили отверстия для винтов прямо через бумагу. Затем лист бумаги с четырьмя отверстиями для шурупов был помещен на дерево, чтобы мы могли отметить расположение отверстий, которые нужно было просверлить. Для просверливания отверстий используйте сверло на 3,5 мм. Теперь с помощью карандаша и линейки найдите центр этих отверстий и сделайте отверстие для оси с помощью сверла 5 мм. Прикрепите двигатели винтами M3, но оставьте один из более широких винтов вне одного двигателя.

Чтобы вставить разъем двигателя и провод внутри робота, мы также просверлили отверстие диаметром 8 мм немного выше двигателя. Убедитесь, что у проводов достаточно места, чтобы они могли изгибаться, но при этом не слишком сильно их напрягать.

Важно работать как можно точнее, чтобы создать (почти) идеально симметричный внешний вид

Шаг 5: Установка компонентов

Установка компонентов
Установка компонентов

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

Мы разместили контроллер в центре так, чтобы порт USB был направлен вниз, чтобы мы могли подключить кабель между колесами. Вы также можете направить его на одну из сторон.

Установите аккумулятор как можно выше, чтобы робот стал тяжелее сверху. Также поместите порт зарядки в легкодоступное место рядом с краем.

Чип Bluetooth

Подключите контакт VCC чипа Bluetooth к + 5 В на контроллере, а заземление Bluetooth - к GND контроллера. Контакт TXD контроллера подключается к Bluetooth RX, а контакт RXD на контроллере подключается к контакту Bluetooth TX. Затем просто приклейте чип Bluetooth где-нибудь на деревянной панели с помощью липкой ленты.

Чип движения

У чипа движения есть два отверстия для винтов, поэтому мы прикрепили чип с помощью прокладки таким образом, чтобы центр чипа падал на центр двигателя. Ориентация не имеет значения, так как робот калибруется при загрузке. Обязательно используйте пластиковую шайбу под головку винта, чтобы предотвратить короткое замыкание.

Затем используйте провода DuPont для подключения контактов к контроллеру. Каждый вывод на контроллере обозначен так же, как и на микросхеме управления движением, поэтому его подключение не требует пояснений.

Выключатель

Подключить выключатель питания очень просто. Мы взяли один из старого устройства и сняли его с печатной платы. Чтобы использовать его в качестве выключателя питания для робота, вы подключаете положительный провод аккумулятора к контакту (при условии, что это трехконтактный переключатель) на той стороне, на которой вы хотите включить переключатель. Затем подключите центральный контакт к положительному входу питания контроллера. Мы припаяли провода DuPont к переключателю, чтобы батарея не была постоянно прикреплена к переключателю.

Соединение сторон

Теперь вы знаете расположение компонентов, и у вас есть две стороны робота. Последним шагом в создании робота будет соединение двух сторон друг с другом. мы использовали четыре набора из трех кусков дерева, склеенных вместе, и прикрутили их по бокам так, чтобы наш чип движения находился на средней оси робота. Следует сказать, что используемый материал, при условии, что он достаточно прочен, не имеет большого значения. Вы даже можете использовать более тяжелое соединение сверху, чтобы еще больше увеличить высоту центра масс. Но в отличие от вертикального положения центра масс, горизонтальное положение центра масс должно сохраняться как можно дольше над осью колеса, поскольку кодирование кода для чипа движения стало бы довольно сложным, если бы горизонтальный центр массы перемещенных.

Теперь вы готовы загрузить код и настроить контроллер.

Шаг 6: загрузка и настройка кода

Чтобы загрузить код, вам понадобится компьютер с Arduino IDE. Загрузите файл.ino ниже и откройте его с помощью Arduino IDE. Его загрузка в контроллер выполняется так же, как и с кодом из настройки Bluetooth.

Чтобы робот работал, вам необходимо скачать приложение Joystick bluetooth Commander из Play Store. Включите питание робота и поместите его на пол спереди или сзади. Запустите приложение и подключитесь к чипу Bluetooth. Поле данных 1 изменится с XXX на ГОТОВО после того, как робот откалибровал себя (5 секунд, чтобы положить его на бок, а затем 10 секунд калибровки). Вы можете включить робота, переключив кнопку 1 в приложении. Теперь поместите робота вертикально на землю и отпустите, как только почувствуете, что моторы включаются. Это когда робот сам начинает балансировать.

Теперь робот готов к настройке, поскольку его стабильность, вероятно, невысока. Вы можете попробовать, работает ли он без дополнительной настройки, но вы должны сделать робота почти идентичным нашему, чтобы он работал правильно. Поэтому в большинстве случаев вам следует настроить контроллер так, чтобы он лучше всего работал с вашим роботом. Это довольно просто, несмотря на то, что на это уходит много времени. Вот как это сделать:

Настройка контроллера

Где-то в коде вы найдете 4 переменные, начинающиеся с k. Это kp, kd, kc и kv. Начните с установки всех значений на ноль. Первое значение, которое нужно установить, - kp. Значение kp по умолчанию - 0,17. Попробуйте установить его намного ниже, например 0,05. Выключите робота, загрузите код и посмотрите, как он пытается балансировать. Если он падает вперед, увеличьте значение. Самый разумный способ сделать это - интерполировать:

  1. Установите значение на что-нибудь низкое и попробуйте
  2. Установите значение на что-нибудь высокое и попробуйте
  3. Установите среднее значение из двух и попробуйте
  4. Теперь попробуйте выяснить, лучше ли он сбалансирован на низком или высоком значении, и усредните текущее значение и то, при котором он работал лучше.
  5. Продолжайте, пока не найдете золотую середину

Лучшее место для значения kp - это когда оно находится на грани недостаточной и избыточной компенсации. Таким образом, иногда он будет падать вперед, поскольку не успевает за своей скоростью падения, а иногда он будет падать назад, потому что он пролетит мимо в другом направлении.

После того, как вы установили значение kp, установите kd. Это можно сделать так же, как и с kp. Увеличивайте это значение до тех пор, пока робот не будет почти сбалансирован, так что он будет раскачиваться вперед и назад, пока не упадет. Если вы установите его слишком высоко, вы уже можете заставить его сбалансироваться довольно аккуратно, но когда баланс будет нарушен слишком сильно, он упадет (например, когда вы его толкнете). Так что попробуйте найти место, где он не совсем сбалансирован, но довольно близко.

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

Пришло время установить кв. Интерполируйте это, пока не найдете значение, при котором робот перестанет раскачиваться, останется сбалансированным и сможет выдержать легкий толчок. Слишком высокая установка отрицательно сказывается на устойчивости. Попробуйте поиграть с kv и kp, чтобы найти точку, в которой оно наиболее стабильно. Это самый трудоемкий этап настройки.

Последнее значение - kc. Это значение заставляет робота вернуться в последнее положение после компенсации толчка или чего-то еще. Вы можете попробовать здесь тот же метод интерполяции, но в большинстве случаев значение 0,0002 должно работать хорошо.

Вот и все! Теперь ваш робот готов. Управляйте роботом с помощью джойстика на смартфоне. Однако будьте осторожны, поскольку движение вперед на максимальной скорости может привести к падению робота. Поэкспериментируйте с переменными контроллера, чтобы максимально это компенсировать. Наиболее логичным шагом было бы взглянуть на значение kp для этого, поскольку оно напрямую компенсирует текущий угол робота.

Важное примечание о батареях LiPo

Рекомендуется регулярно проверять напряжение вашей LiPo батареи. Батареи LiPo не должны разряжаться ниже 3 В на элемент, при измерении 9 В на 3S LiPo. Если напряжение упадет ниже 3 вольт на элемент, это приведет к необратимой потере емкости аккумулятора. Если напряжение упадет ниже 2,5 В на элемент, выбросьте аккумулятор и купите новый. Зарядка LiPo-элемента с напряжением менее 2,5 В опасна, так как внутреннее сопротивление становится очень высоким, что приводит к перегреву аккумулятора и потенциальной опасности возгорания во время зарядки..

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