Робот-машинка на micro:bit с движением по линии и огибанием препятствий
Робот на Микробит microbit (инструкция)
1 Введение
Создайте колесного многозадачного робота на новой плате micro:bit и из простых электронных компонентов, которые есть у каждого кто занимается робототехникой на Ардуино. Проект признан показать, что плата micro:bit имеет все возможности платы Ардуино и даже больше. Тем самым демонстрируется богатый потенциал платы micro:bit в робототехнике.
2 Комплектующие
Некоторые элементы вы можете заказать в магазине МРобот по ссылкам:
Платформа-шасси робота. В проекте использована двухколесная платформа, но вы можете использовать любую подходящую на ваш взгляд платформу
Макетная плата на 400 точек
2ААА батарейный отсек
2S Li-Po аккумулятор 7.4В или 4АА/5АА батарейный отсек с батарейками
Двухпозиционный переключатель
Провод папа-мама 30см 20 шт.
Провод мама-мама 30см 10 шт.
3 Программное обеспечение
Для программирования робота понадобится онлайн-редактор MakeCode
4 Инструменты для сборки
Возможно вам понадобятся некоторые инструменты для сборки робота:
Набор отверток
Винты, гайки
Клей
Паяльник
Двухсторонняя клейкая лента
Дрель
Канцелярский нож
Защитные очки
5 Сборка робота
5.1 Шасси
Сперва надо подобрать шасси для робота. Вы можете выбрать любое шасси, желательно трехколесное с двумя ведущими колесами и одним опорным колесом. Есть много довольно дешевых шасси для колесных роботов. В моем случае, я использую шасси от робота Max:Bot DFRobot, т.к. дешевого пластикового шасси под рукой не оказалось. Моя металлическая платформа абсолютно не отличается по функционалу от пластиковой, разве что выполнена из дюрали. Такой сплав крепче и надежнее пластика, что позволит выдержать вашему роботу самую суровую эксплуатацию.
Если вы хотите использовать мое шасси Max:Bot, то оно продается вместе с электроникой для сборки робота на сайте DFRobot.
Обычное пластиковое шасси можно найти на AliExpress или купить нашу платформу для робота РобоРовер М1. Мы используем прочный и упругий пластик ABS толщиной 4мм, который не треснет при легком ударе или при сверлении в нем новых отверстий. Наша платформа ничем не уступает металлической, и даже удобнее в экслуатации, т.к. имеет типовые крепежные отверстия и специально рассчитана на электронику, которая используется в этом проекте.
Вобщем, выбор шасси к роботу за вами.
Сегодня на рынке существует бесчисленное множество шасси роботов на разных вкус и разный размер кошелька.
5.2 Драйвер управления двигателями
Чтобы робот мог передвигаться, ему необходимы электродвигатели и драйвер, который бы умел управлять ими. В своих проектах я люблю использовать драйвер L298N. Он прост в использовании, но для его подключения требуется 6 выводов. 4 вывода цифровых для управления направлением вращения, 2 вывода цифровых ШИМ для управления скоростью вращению каждого из двух двигателей.
Драйвер L298N для новичка самый простой в использовании на мой взгляд.
Если вам критично использование выводов, то можете обратить внимание на драйверы к micro:bit управляемые при помощи шины I2C, тогда будет задействовано 2 вывода (SCL, SDA).
Например, плата расширения для micro:bit РоботБит. Может управлять моторами, сервоприводами, имеет встроенный электрический звонок и светодиодную ленту. Настоящий "швейцарский нож" в робототехнике на micro:bit. Если надо только управлять моторами по шине I2C (без дополнительных функций), используя micro:bit, то есть решение попроще от DFRobot мотордрайвер для micro:bit.
Наш проект предполагает использование стандратного драйвера L298N, поэтому будем использовать его далее.
Установите драйвер на шасси робота вместе с моторами. К моторам предварительно припаяйте провода. В зависимости от того какое шасси вы используете может отличаться и процесс установки. Фотографии используются для справки и не совпадают с финальным проектом, т.к. я их взял из своего предыдущего проекта Ардуино-робот.
Мотор с припаянными проводами. В нашем проекте моторов два.
Драйвер моторов установлен на робота
5.3 Питание для электродвигателей
Если это ваш первый проект робота на micro:bit и вы незнакомы с литий-полимерными аккумуляторами, то самое лучшее питание на данный момент будут обычные пальчиковые батарейки АА. Для них необходим батарейный отсек на 4 штуки или 5 штук. Чем больше батареек, тем больше ток и производительность моторов, поэтому 5 штук батареек будет предпочтительнее, т.к. это 7.5В, а если 4 батарейки, то это лишь 6В. Используйте только новые качественные батарейки.
Батарейные отсеки на 4АА и 5АА соответственно
В моем случае я использовал литий-полимерный аккумулятор 2S 7.4В. Высокий ток такого аккмулятора обеспечивает хорошую производительность электродвигателей. Однако, для такого аккумулятора потребуется специальное зарядное устройство и вольметр. Для новичка на первое время достаточно и батареек.
Небольшой литий-полимерный аккумулятор решит все проблемы с недостаточным напряжением и током
Профессиональное зарядное устройство подключено к аккумулятору. Быстро зарядит аккумулятор, но и дороже батареек
Все литий-полимерные аккумуляторы "боятся" переразряда. Во время использования к нему обязательно должен быть подключен вольтметр со звуоковой индикацией. Прозвучал сигнал, пора заряжать аккумулятор
Таким образом вы можете сами решить, стоит ли на данный момент покупать аккумулятор или использовать батарейки. Вот примерная стоимость оборудования для литий-полимерного аккумулятора:
Если использовать пальчиковые батарейки выйдет гораздо дешевле. Есть еще вариант с аккумуляторами АА, но они долго заряжаются в отличии от литий-полимерного аккумулятора. На данном этапе, используйте батарейки.
5.4 Питание для micro:bit
Питание платы не должно превышать 3.3В. Наилучший вариант -это 2 ААА батарейки в специальном блоке с разъемом для платы micro:bit.
Такой блок часто поставляется вместе со стартовым набором для micro:bit
Вот таким образом происходит подключение к micro:bit.
Желатально, чтобы такой блок с батарейками имел встроенный выключатель для удобства использования
5.5 Выключатель
Чтобы батарею для моторов было удобно включать и выключать в цепь надо установить выключатель. В прошлом я сделал одну универсальную проводку для батареи и его включения к мотордрайверу.
Синий переключатель размыкает + батареи, красный провод от него идет к выводу +12V на мотордрайвере. Красный разъем -это коннектор для батареи, черный провод от него идет к выводу GND на мотордрайвере. Черный штекер не используется, он был создан, чтобы запитывать плату Ардуино от аккумулятора.
Моя стандартная проводка для роботов-машинок
Красный разъем называется T-Plug для подключения аккумулятора. Разные батареи имеют разные разъемы, я во всех роботах использую одинаковые разъемы, что обеспечить унифицированность проектов. Если батарея разрядилась, то можно отсоединить старую и подключить новую.
Слева коннектор от аккумулятора (мама), справа коннектор от проводки робота (папа)
Вставьте плату micro:bit в плату расширения Yahboom. Как вы можете видеть, micro:bit не имеет гнезд как Ардуино, поэтому для удобного подключения к micro:bit датчиков необходимо использовать плату расширения, чтобы к ней можно было подключать провода или устанавливать ее на макетную плату. Далее, вставьте штыревой разъем платы расширения в макетную плату. Соединение должно получиться как на картинке.
На плате расширения вы можете увидеть, что каждый вывод подписан (не путайте выводы с макетной платой белого цвета). Для управления мотордрайвером нам понадобятся выводы P11, P12, P13, P14, P15, P16. Выводы P11, P16 задействуют ШИМ и будут использоваться для управления скоростью вращения электродвигателей, остальные будут находится в состоянии логический 0 или логическая 1, чтобы определять направление вращения каждого из электродвигателей.
Мотордрайвер также имеет штыревые выводы ENA, IN1, IN2, IN3, IN4, ENB, на мотордрайвере возле какждого штырька имеется соответствующая подпись. Соответственно, каждый вывод должен подключен в правильном порядке.
Для подключения используйте провода папа-мама. На макетной плате воткните штырь провода в строку возле подписи P11 платы расширения micro:bit, а гнездо провода соедините со штырем ENA на мотордрайвере.
Сделайте аналогичную процедуру с оставшимися выводами:
Схема подключения проводки для силовой электроники
5.7 Схема подключения датчиков линии
Возьмите 2 цифровых датчиков линии TCRT5000. Датчик является бинарным. Когда датчик находится над темной поверхностью, он выдает значение логической единицы, а когда над светлой поверхностью, то значение логического ноля.
Цифровой датчик линии TCRT5000
Используя провода папа-мама подключите датчики к макетной плате согласно схеме приведенной ниже. Также возьмите два провода папа-папа и подключите к гнездам 3.3V и GND, после этого подключите их к шинам + и - на макетной плате соответственно. Это расширит количество выводов для подключения питания к датчикам и другим модулям.
Левый датчик OUT ->P1 VCC(красный провод) ->3.3V GND (черный провод) ->GND
Правый датчик OUT ->P20 VCC(красный провод) ->3.3V GND (черный провод) ->GND
Схема подключения датчиков линии на роботе
Следует заметить, что данные датчики имеют особенность сбоить, когда расположены слишком близко к друг другу. Например, на моей фотографии ниже показано, что робот имеет 3 датчика, но добиться нормальной работы, когда датчики так близко друг другу, не удалось. Поэтому было решено выключить центральный датчик и написать алгоритм под 2 датчика линии. Когда вы монтируете датчики, обеспечьте расстояние между краями печатных плат датчиков 5-10мм.
5.8 Схема подключения датчиков расстояния
Теперь настало время подключать инфрарасный дальномер Sharp. Такой сенсор выдает аналоговое значение напряжения в зависимости от измеренного расстояния. Более подробную техическую информацию вы можете прочитать по ссылке: https://www.pololu.com/file/0J156/gp2y0a02yk_e.pdf
Зависимость выдаваемого напряжения от расстояния
Обычный провод, который поставляется к этому сенсору не имеет специальных выводов, поэтому вам надо либо припаять к нему готовые провода со штырьками либо обжать провода, используя металлические штекеры.
Датчик с подключенным к нему проводом
Первый вариант -это взять готовый провод, разрезать его и припаять к проводу датчика
Второй вариант -это взять разъемы-штырки и обжать их вокруг провода
Когда вы подготовили провод, можно приступать к подключению согласно схеме.
OUT (желтый) ->P0 VCC(красный) ->3.3V GND (черный) -> GND
Схема подключения датчика расстояния
5.9 Схема подключения механизма Наклона-поворота
Такой механизм понадобится, чтобы поворачивать датчик расстояния и измерять расстояние в разных местах, после этого робот может принять решение в какую сторону ему двигаться.
Я использую для своего проекта механизм Наклона-поворота напечатанный 3Д-принтером (файла исходного у меня нет). Вы можете также спроектировать и распечатать свой или же купить пластиковый механизм для маленьких сервоприводов 9G (SG90). Такие сервоприводы потребляют небольшое количество электроэнергии и поэтому становится возможным питать их напрямую от платы micro:bit без дополнительного питания.
Схема типового механизма наклона-поворота
В нашем проекте будет использоваться лишь одна поворотная составляющая, чтобы поворачивать датчик. Механизм наклона использоваться не будет и сервопривод отвечающий за наклон будет выключен, но вы можете его включить и добавить в программу.
Пластиковый механизм наклона-поворота для любительской робототехники
Используя провода папа-папа подключите сервопривод поворота в горизонтальной плоскости к определенным гнездам на печатной плате.
Вполне возможно, что ваш робот будет отличаться от того робота, который был собран мной. Поэтому доработайте свою конструкцию, ориентируясь на моего робота.
Также можно скачать код, нажав маленькую ссылку Download под этим окном.
Откройте онлайн среду MakeCode и импортируйте код в нее, нажав на кнопку Import и указав путь к .hex файлу.
6.1 Программа по огибанию препятствий при помощи датчика расстояния
По-умолчанию блоки установлены в исходнике для этой программы.
Скачайте программу, нажав на большую фиолетовую кнопку Download и сохраните файл на micro:bit. Включите робота и моторы.
Видео того, как робот начнет двигаться:
6.2 Программа движения по черной линии
Теперь надо удалить 3 блока из блока "forever" и поставить новый блок "call lineFollow". Он находится на рабочей области, перетяните его и вставьте в блок "forever".
Скачайте программу нажав на большую фиолетовую кнопку Download и сохраните файл на micro:bit. Включите робота и моторы.
Видео того, как робот начнет двигаться:
Используя мою информацию, вы построили своего первого робота на micro:bit. Изучите мою программу более внимательно, ее структуру, написание функций.
На нашем сайте есть большое количество интересных увлекательных уроков для micro:bit, ознакомиться с которыми вы можете по ссылке в нашем разделе Уроки.