Оглавление:

HeadBot - самобалансирующийся робот для изучения и распространения STEM: 7 шагов (с изображениями)
HeadBot - самобалансирующийся робот для изучения и распространения STEM: 7 шагов (с изображениями)

Видео: HeadBot - самобалансирующийся робот для изучения и распространения STEM: 7 шагов (с изображениями)

Видео: HeadBot - самобалансирующийся робот для изучения и распространения STEM: 7 шагов (с изображениями)
Видео: Headbot 2024, Июль
Anonim
Image
Image
3D-печать корпуса, крышки и платы электроники
3D-печать корпуса, крышки и платы электроники

Headbot - двухфутовый самобалансирующийся робот - является детищем команды робототехники Южного Юджина (SERT, FRC 2521), участвующей в соревнованиях FIRST Robotics Competition из Юджина, штат Орегон. Этот популярный информационно-пропагандистский робот регулярно появляется в школах и на общественных мероприятиях, собирая толпы как взрослых, так и детей. Поскольку робот прочен и прост в управлении с помощью телефона или планшета Android, дети в возрасте от трех лет могут успешно управлять им. А поскольку бот может надевать самые разные шляпы, маски и другие костюмы, он станет интересным дополнением практически к любому собранию. Члены SERT используют бота для набора новых членов команды и для пробуждения общего интереса к STEM в сообществе.

Общая стоимость проекта составляет примерно 200 долларов (при условии, что у вас есть 3D-принтер и устройство Android), хотя эта сумма может быть меньше 100 долларов, если у вас есть хорошо укомплектованный магазин электроники с легким доступом к припоям и термоусадочным трубкам., перемычки, резисторы, конденсаторы, батарейки и кабель micro USB. Если у вас уже есть некоторый опыт работы с электроникой, строительство не вызывает затруднений, и это дает прекрасную возможность для тех, кто хочет учиться. Для тех, кто проявляет особый интерес к робототехнике, Headbot также предоставляет хорошую платформу для развития навыков настройки пропорционально-интегрально-производной (PID) для управления с обратной связью.

Запасы

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

Электронные компоненты

  • 1x микроконтроллер ESP32
  • 2x шаговых двигателя
  • 2x A4988 Драйверы шагового двигателя
  • 1x гироскоп / акселерометр MPU-6050
  • 1x 100 мкФ конденсатор
  • 1x UBEC (универсальная схема устранения батареи)
  • 1x делитель напряжения (1x резистор 10 кОм и 1x резистор 26,7 кОм)
  • 2x 5-миллиметровые светодиодные лампы RGB с общим анодом
  • 6 резисторов 220 Ом
  • Провода перемычки (мужчина-мужчина и женщина-женщина)
  • Электропровод
  • 3 штекера разъема JST SM
  • 2x 4-батарейный корпус
  • Термоусадка
  • Припой

Аппаратное обеспечение

  • 1x 3D-печатный корпус, крышка и электрическая плата (см. Инструкции ниже)
  • 2x 5-дюймовых прецизионных дисковых колеса
  • 2 ступицы колеса 0,770 дюйма с отверстием 5 мм
  • 8 аккумуляторных батарей AA и зарядное устройство
  • 1x Головка из пенопласта
  • 1x 2,5-дюймовый кусок ПВХ-трубы 3/4 дюйма (для прикрепления головки)
  • 8 стопорных шайб M3 (для крепления двигателей)
  • 8 винтов M3 x 8 мм (для крепления двигателей)
  • 8 винтов 6-32 x 3/8 дюйма (для крепления колес на ступицы)
  • 2x застежки-молнии
  • Клейкая лента или клейкая лента
  • 2 жестких металлических стержня или прочной проволоки (например, вырезанной из проволочных вешалок) прибл. 12 дюймов в длину

Рекомендуемые инструменты

  • Инструмент для зачистки проводов
  • Кусачки
  • Паяльник
  • Тепловая пушка
  • Электрическая дрель
  • 1 "x 16" лопаточная насадка
  • Набор шестигранных ключей
  • Пистолет для горячего клея
  • Кабель Micro USB с угловой вилкой

Шаг 1: 3D-печать корпуса, крышки и платы электроники

3D-печать корпуса, крышки и платы электроники
3D-печать корпуса, крышки и платы электроники
3D-печать корпуса, крышки и платы электроники
3D-печать корпуса, крышки и платы электроники

Распечатайте на 3D-принтере корпус, крышку и плату электроники. Загрузите файлы stl здесь. Детали должны быть напечатаны из PLA с разрешением 0,25 мм и заполнением 20%, без каких-либо оснований или опор.

Шаг 2: Добавьте двигатели, колеса и ленту к кожуху

Image
Image
Подготовьте плату электроники
Подготовьте плату электроники

Двигатели: поместите шаговые двигатели в нижнюю часть корпуса (так, чтобы провода выходили из верхней части двигателей) и закрепите винтами M3x8 мм и шайбами контргайки M3, используя соответствующий шестигранный ключ или отвертку. Установите ступицы колес на оси и закрепите, затянув установочные винты на плоской части оси.

Колеса: натяните резиновые кольца на внешней стороне диска колеса. Закрепите колеса на ступицах колес винтами 6-32x3 / 8”. (Колеса могут плотно прилегать к ступице. Если это так, расположите как можно лучше, затем медленно затягивайте винты, переходя от винта к винту и повторяя, чтобы позволить винтам установить колесо на место.)

Подготовьте колпачок и трубу из ПВХ: накройте верхнюю часть кожуха изолентой или клейкой лентой, чтобы колпачок надевал плотно и надежно. Прикрепите ленту к одному концу 2,5-дюймового отрезка ¾-дюймовой трубы из ПВХ, чтобы она вошла в отверстие в крышке с плотной и надежной посадкой. При необходимости, на другой конец ПВХ можно добавить ленту, чтобы обеспечить плотное прилегание к отверстию в основании головки.

Шаг 3: Подготовьте плату электроники

Image
Image

Приклейте ленту к плате электроники: Приклейте клейкую ленту или клейкую ленту по бокам электронной платы так, чтобы она входила в направляющие внутри корпуса с плотной посадкой.

Гироскоп / акселерометр MPU-6050: припаяйте контакты к гироскопу / акселерометру MPU-6050 так, чтобы длинная сторона контактов находилась на той же стороне печатной платы, что и микросхемы. Используйте достаточное количество горячего клея, чтобы прикрепить MPU к небольшой полке, выступающей из основания платы электронов, ориентированной так, чтобы штыри находились слева от платы, если вы смотрите на полку.

Драйвер шагового двигателя A4988: используйте небольшую отвертку, чтобы повернуть небольшой токоограничивающий потенциометр на каждом драйвере шагового двигателя A4988 по часовой стрелке до упора. Снимите бумагу с ленты на радиаторах для драйверов двигателей и нанесите ее, чтобы закрыть микросхемы в середине печатной платы. Используйте горячий клей, чтобы закрепить драйверы двигателя (потенциометрами вверх) на стороне платы электроники напротив полки с MPU, так чтобы штыри выступали через две пары вертикальных прорезей в верхней части платы электроники (следите за тем, чтобы клей не попал на штифты, так как они должны выступать с той же стороны, что и MPU). Проденьте стяжку-молнию через небольшие отверстия над каждым приводом двигателя, чтобы закрепить ее на месте.

Микроконтроллер ESP32: вставьте кабель micro USB в разъем на микроконтроллере ESP32 (он будет использоваться для удержания конца печатной платы на небольшом расстоянии от платы электроники, чтобы обеспечить доступ к разъему после включения ESP32. приклеен на место). Поместите ESP32 так, чтобы вилка была справа, если вы смотрите на сторону микросхемы, и используйте достаточное количество клея, чтобы закрепить его на печатной плате, так чтобы штыри выступали через горизонтальные прорези в середине платы в сторону с MPU (возьмите следите за тем, чтобы клей не попал на контакты или кабель USB). После того, как клей застынет, отсоедините USB-кабель.

Шаг 4: Электронная схема

Image
Image
Электронная схема
Электронная схема
Электронная схема
Электронная схема

Общие инструкции: Следуйте принципиальной схеме (загрузите PDF-файл ниже для версии с высоким разрешением), чтобы создать жгуты проводов, необходимые для соединения электронных компонентов. Соединения между двумя контактами могут быть выполнены напрямую с помощью одной перемычки «мама-мама». Соединения между 3 или более контактами могут быть выполнены с помощью более сложных жгутов проводов, описанных ниже. Жгуты можно создать, разрезав перемычки «мама-мама» пополам, а затем при необходимости спаяв их вместе с другими компонентами (резисторами, конденсатором, вилками, короткими проводами). Во всех случаях используйте термоусадочные трубки для изоляции паяного соединения.

Батарейные блоки: убедитесь, что батарейные блоки могут войти в прорези в основании корпуса, напечатанного на 3D-принтере. Если они не подходят, используйте пилку, чтобы придать им форму, пока они не встанут. Обрежьте провода от двух штекеров разъема JST SM с внутренней резьбой (оставив около дюйма) и припаяйте по одному к выводам от каждого блока батарей.

Основной жгут питания: основной жгут питания получает вход от двух вилок JST SM, при этом + провод от одного разъема соединяется с минусовым проводом от другого для последовательного подключения двух аккумуляторных блоков (в результате получается комбинированный вход 12 В.). Другие выводы подключаются через конденсатор 100 мкФ (для буферизации скачков напряжения; более короткая ножка этого конденсатора подключается к выводу -, а более длинная ножка подключается к выводу +12 В) и с делителем напряжения, состоящим из резистора 10 кОм (подключен к выводу -) и резистор 26,7 кОм (подключен к выводу + 12 В) с перемычкой-розеткой между резисторами, идущими к выводу SVP на ESP32 (это обеспечивает масштабированный вход с максимальным напряжением 3,3 В, который используется для обеспечивают считывание оставшегося напряжения в аккумуляторных батареях). Дополнительные женские перемычки обеспечивают входы +12 В (2 перемычки) и - (2 перемычки) на выводы VMOT и соседние GND, соответственно, на шаговых драйверах. Кроме того, к выводам +12 В и - основного жгута питания припаян универсальный блок отключения аккумулятора (UBEC) (вход UBEC находится на стороне бочкообразного конденсатора), а выходы + 5 В и - UBEC припаяны. к розетке JST SM.

Вход 5 В для ESP32: припаяйте штекер JST SM штекера к двум штекерам-перемычкам, чтобы обеспечить входы на входы 5 В и GND для ESP32 от UBEC (этот штекер позволяет легко отключать, когда ESP32 получает питание от вход micro USB, когда код загружается в микроконтроллер).

Жгут питания 3,3 В: припаяйте 7 перемычек-розеток для подключения вывода 3,3 В на ESP32 к выводу VCC на MPU, выводам VDD и MS1 на каждом из драйверов шагового двигателя и к штекерной перемычке, обеспечивающей питание светодиодных глазков. (что позволяет легко отключить питание глаз, когда ESP32 получает питание от micro USB во время загрузки кода).

Жгут заземления: припаяйте 3 перемычки-перемычки для подключения контакта GND на ESP32 к контактам GND (рядом с контактом VDD) на каждом из драйверов шагового двигателя.

Жгут включения шагового двигателя: припаяйте 3 перемычки с внутренней резьбой для соединения контакта P23 на ESP32 с контактами ENABLE на каждом из драйверов шагового двигателя.

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

  • GND на ESP32 к GND на MPU
  • P21 на ESP32 к SCL на MPU
  • P22 на ESP32 в SDA на MPU
  • P26 на ESP32 к DIR на левом шаговом драйвере
  • P25 на ESP32 до STEP на левом шаговом драйвере
  • Перемычки SLEEP и RESET на левом шаговом драйвере
  • P33 на ESP32 к DIR на правом шаговом драйвере
  • P32 на ESP32 в STEP на правом шаговом драйвере
  • Перемычки SLEEP и RESET на правом шаговом драйвере

Подключите UBEC: гнездовой штекер JST SM на выходе UBEC можно подключить к соответствующему штекеру, который подает питание и заземление на входы 5 В и GND на ESP32. Однако этот штекер следует отсоединять, когда ESP32 питается от микро-USB (например, при загрузке кода), иначе обратный ток от ESP32 к основному жгуту питания нарушит правильное функционирование ESP32.

Установите плату электроники: Вставьте плату электроники в направляющие внутри корпуса.

Подсоедините кабели двигателя: подключите провода от левого двигателя к левому шаговому приводу, при этом синий, красный, зеленый и черный провода подключены к контактам 1B, 1A, 2A и 2B соответственно. Подключите провода от правого двигателя к правому шаговому драйверу, при этом синий, красный, зеленый и черный провода подключены к контактам 2B, 2A, 1A и 1B соответственно (обратите внимание, что двигатели подключены зеркально, так как они имеют противоположные ориентации). Заправьте лишнюю проводку двигателя в нижнюю часть кожуха.

Подсоедините аккумуляторные блоки: вставьте аккумуляторные блоки в их карманы в корпусе и подключите их разъемы JST SM с гнездом к соответствующим штекерам на входе основного жгута питания (провода от переднего аккумуляторного блока можно провести через отверстие в центре платы электроники для доступа к вилке сзади). Батарейные блоки можно отсоединить, чтобы можно было легко вставить новые батареи. При переводе переключателя питания на любой аккумуляторной батарее в положение «выключено» питание цепи будет отключено (поскольку блоки включены последовательно) - переключатели на задней панели ботов должны быть включены, чтобы цепь была под напряжением.

Шаг 5: Подготовьте голову и глаза

Image
Image
Подготовьте голову и глаза
Подготовьте голову и глаза
Подготовьте голову и глаза
Подготовьте голову и глаза

Удлините отверстие в основании головки: используйте сверло с перфорацией 1 дюйм, чтобы увеличить глубину отверстия в нижней части головки, чтобы оно заканчивалось выше уровня глазков (полезно положить небольшой кусок ленты в соответствующем месте на валу долота, чтобы указать, когда была достигнута соответствующая глубина). Вставьте сверло на 2-3 дюйма в отверстие перед сверлением, чтобы не повредить отверстие отверстия (вам понадобится плотная посадка на трубу из ПВХ, которая будет прикреплять ее к крышке обсадной колонны). Сохраните несколько больших кусочков пенопласта, чтобы пополнить глаза позже.

Создайте крючки для проталкивания / вытягивания проводов: на одном конце жесткого металлического стержня согните небольшой N-образный элемент (он будет использоваться для проталкивания проводов для питания светодиодных глазков через головку из пенополистирола). Согните небольшой крючок на конце другого жесткого металлического стержня (он будет использоваться, чтобы выудить проволоку из отверстия в нижней части головы).

Провода: завяжите большие петли на концах красного, желтого, зеленого и синего проводов, используя тугие узлы. Работая с одной проволокой за раз, зацепите петлю за конец N-образного крючка и протолкните ее через ушко головы, сохраняя путь горизонтальным и направляя к отверстию в центре головы. Когда проволока вставлена в отверстие, используйте стержень с крючком, чтобы захватить петлю снизу головы, и вытяните ее из отверстия, вытащив и другой стержень из проушины (оставив 2–3 дюйма проволоки на низ головы и свисает из глаза). Повторите процесс с тремя другими цветными проводами, следуя по тому же пути от проушины к центральному отверстию (используйте помеченную стяжку, чтобы скрепить эти провода вместе и указать, какой глазок они контролируют). Повторите то же самое с еще 4 проводами во втором ушке.

Присоедините светодиоды RGB: укоротите провода на светодиодах RGB, отметив общий анод (более длинный вывод и обратите внимание на расположение R (одиночный вывод на одной стороне анода, как показано на принципиальной схеме) и Выводы G и B (два вывода на другой стороне анода). Припаяйте соответствующие провода, которые свешиваются от одного из глазков к светодиоду (красный к аноду, желтый к R, зеленый к G и синий к B)., изолируя соединения с помощью термоусадочной трубки. Вставьте провода светодиода в головку, но оставив его немного выступающим, пока его не можно будет проверить. Повторите процесс с другим светодиодом и проводами от другого глаза.

Присоедините перемычки: припаяйте резистор 220 Ом и перемычку с гнездовым разъемом к каждому из желтых, зеленых и синих проводов, выступающих из нижней части головки. Соедините два красных провода и припаяйте к перемычке с разъемом «папа» (примечание: это единственная перемычка «папа», необходимая в схеме).

Подключите перемычки и прикрепите головку: протяните перемычки через трубку из ПВХ в крышке и вставьте ПВХ в отверстие в головке, закрепив ее на крышке. Присоедините вилку перемычки питания к перемычке на жгуте проводов питания 3,3 В, а перемычки RGB с розеткой - к ESP32 (желтый, зеленый и синий провода левого глаза к P4, P0 и P2 соответственно, а также желтый, зеленый и синий провода правого глаза на Р12, Р14 и Р27 соответственно). Наконец, прикрепите головку / крышку к основному кожуху.

Шаг 6. Загрузите код и установите Driver Station

Загрузите код и установите Driver Station
Загрузите код и установите Driver Station
Загрузите код и установите Driver Station
Загрузите код и установите Driver Station
Загрузите код и установите Driver Station
Загрузите код и установите Driver Station

Установка кода HeadBot на ESP32: Загрузите и установите Arduino IDE на свой компьютер. Посетите https://github.com/SouthEugeneRoboticsTeam/ursa и нажмите «Загрузить Zip» под зеленой кнопкой «Клонировать или загрузить». Переместите заархивированную папку в любое место на вашем компьютере и переименуйте ее в «ursa».

Откройте ursa.ino с помощью Arduino IDE. В меню настроек в разделе «Файл» добавьте https://dl.espressif.com/dl/package_esp32_index.json к «URL-адресам дополнительных плат». Установите esp32boards от Espressif Systems в Инструменты> Менеджер доски. Выберите «esp32 dev module» в меню «Инструменты»> «Плата». Установите PID библиотеки Бретта Борегарда, щелкнув «Управление библиотеками» в меню «Эскиз».

Подключитесь к ESP32 с помощью кабеля USB-MicroUSB. Выберите доску в разделе Инструменты. Нажмите и удерживайте маленькую кнопку с надписью «I00» рядом с разъемом micro USB на ESP32, затем нажмите кнопку загрузки на Arduino IDE и отпустите «I00», когда Arduino IDE сообщит, что это «Connecting…». После завершения загрузки кабель MicroUSB можно отключить.

Установка станции с драйверами HeadBot: Загрузите и установите Processing на свой компьютер. Посетите https://github.com/SouthEugeneRoboticsTeam/ursa-ds-prototype и загрузите код. Откройте «ursaDSproto.pde» с помощью среды разработки. Установите библиотеки Ketai, Game Control Plus и UDP с помощью диспетчера библиотек Processing (Sketch> Import Library). Если вы используете приводную станцию на своем компьютере, выберите режим Java в раскрывающемся меню в правом верхнем углу окна обработки; чтобы запустить его на Android, установите Android Mode for Processing, щелкнув раскрывающееся меню «Java» в правом верхнем углу. Затем подключите устройство, включите отладку по USB, выберите Android Mode. Чтобы запустить приводную станцию, нажмите «Выполнить эскиз». Если ваш компьютер подключен к устройству Android, на него будет установлена станция водителя.

Шаг 7: Запустите HeadBot и настройте значения PID

Image
Image
Конкурс робототехники
Конкурс робототехники

Запуск: Убедитесь, что аккумуляторные блоки подключены, а выход UBEC подключен к входному разъему ESP32. Когда Headbot лежит на боку в устойчивом положении, включите питание, сдвинув выключатель питания на обоих аккумуляторных блоках в положение ON, оставив Headbot неподвижным на несколько секунд, пока гироскоп инициализируется. После небольшой задержки вы сможете увидеть сигнал Wi-Fi головного бота (SERT_URSA_00) на устройстве, которое вы будете использовать для управления ботом - выберите его и введите пароль «Headbot». После подключения запустите приложение приводной станции на телефоне / планшете или запустите сценарий приводной станции в разделе «Обработка» на своем компьютере. После того, как программа запустится и будет установлено соединение, вы должны увидеть, как значение «шага» начинает реагировать, показывая наклон Headbot.

Установка значений PID: чтобы иметь возможность управлять Headbot, вам необходимо настроить значения PID. Для версии Headbot, описанной здесь. Если щелкнуть квадрат в верхнем левом углу приводной станции, появятся ползунки для регулировки значений. Три верхних ползунка предназначены для регулировки P, I и D для угла (PA, IA и DA) - эти значения имеют первостепенное значение для поддержания баланса Headbot. Три нижних ползунка предназначены для регулировки P, I и D для скорости (PS, IS и DS) - эти значения важны для того, чтобы Headbot мог правильно регулировать скорость движения в соответствии с вводом джойстика. Хорошие начальные значения для этой версии Headbot: PA = 0,08, IA = 0,00, DA = 0,035, PS = 0,02, IS = 0,00 и DS = 0,006. После установки этих значений щелкните поле «Сохранить настройки» в верхнем левом углу приводной станции (это сохраняет настройки в более надежной форме, которая выдержит перезагрузку бота).

Попробуем: нажмите на зеленую полосу джойстика в правом верхнем углу приводной станции, чтобы открыть джойстик для управления роботом. Встаньте Headbot в почти сбалансированном положении и нажмите темно-зеленый квадратик Enable в правом верхнем углу (нажатие на соседнее красное поле отключит бота). Если все пойдет хорошо, у вас будет самобалансирующийся головной робот, но, скорее всего, вам потребуется точная настройка значений PID. По сравнению с P обычно мало I или D, так что начните с этого. Слишком мало, и он не будет отзывчивым. Слишком много, и он будет колебаться взад и вперед. Начните со значений Angle PID, внося небольшие изменения, чтобы увидеть, как это повлияет на ситуацию. Некоторый термин D для угловой петли может помочь минимизировать колебания, но небольшое количество может быстро вызвать большое дрожание, поэтому используйте его с осторожностью. Если значения угла правильные, Headbot должен выдерживать легкие толчки, не падая. При балансировке Headbot ожидаются небольшие подергивания, поскольку шаговые двигатели перемещаются с полушагом на 0,9 градуса при каждой регулировке.

Как только баланс будет достигнут, попробуйте управлять автомобилем, делая небольшие движения джойстиком, внося небольшие изменения в значения Speed PID, чтобы бот реагировал плавно и изящно. Увеличение члена I может быть полезно для предотвращения того, чтобы робот не придерживался установленной скорости. Однако будьте осторожны - изменения значений ПИД-регулятора скорости потребуют дальнейших корректировок значений ПИД-регулятора угла (и наоборот), поскольку контуры ПИД-регулятора взаимодействуют.

Изменения общего веса и распределения веса Headbot (например, при ношении очков, масок, париков или головных уборов) потребуют дополнительной настройки значений PID. Кроме того, если костюмы слишком сильно нарушают баланс, вам может потребоваться настроить начальное значение pitchOffset в коде ursa.ino и перезагрузить код в ESP32.

Конкурс робототехники
Конкурс робототехники

Финалист конкурса робототехники

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