Роботостроительство – делаем базовую платформу для будущего робота
Всем бодрого/доброго (нужное подчеркнуть) времени суток и хорошего настроения! Хочу рассказать и показать процесс, как я придумывал (проектировал) и изготавливал базовое шасси для четырёхколёсного робота.
Ко мне вновь обратились знакомые ребята с просьбой помочь сделать робота «посерьёзнее». На этот раз решено было сделать не полноценного робота, а некую базовую платформу, которая бы позволила сконструировать на ней дальнейший функционал робота, возможно с вариациями, не отвлекаясь на вопросы о шасси, двигателях, системе питания и, в идеале, о системе локального или удалённого управления.
Цель этого поста — показать процесс разработки и изготовления подобной платформы. Обычно в статьях по робототематике показывают уже готовые устройства, демонстрируя, что сделано и как оно в результате работает. Это интересно, конечно же. Но с бóльшим удовольствием я читаю статьи, в которых поэтапно показывается, как именно сделано, почему и описание каких-то отдельных моментов или мыслей. Я попробую подробно описать как собиралась движущаяся платформа в домашних условиях. Эта статья — профильное чтение для отдыха. Саму статью я подготавливал, наверное, больше времени раза в три, чем рукоделием занимался. Не претендую на полноту описания, высокотехнологичность, наукоёмкость, инновационность и безошибочность… Но надеюсь, что для кого-то она поможет сделать какие-то первые шаги и покажет, что современная модульная электроника это совсем не сложно, хотя и не совсем просто, как кажется. «Дяди снова играют в машинки вместо того, чтобы серьёзным делом заниматься». Но ведь нужно же заниматься чем-то тем, кто никак не может вырасти. Осторожно — под катом будет много текста и неприлично много картинок.
Предисловие
Я уже делал, вернее собирал, робота RASH1. Этого робота сложно назвать handmade, так как платформа абсолютно собирается на готовых комплектующих. Интерес представляет система управления такой платформой, построенная на базе небольшого маршрутизатора с системой cyberWRT, которая позволяет управлять роботом с любого устройства через браузер. Сознаюсь, смысл работы был больше в демонстрации самого процесса разработки с точки зрения методики и документации, нежели в непосредственном изготовлении. По этому поводу на хабре, в меру добросовестно, была запилена почти концептуальная статья, так как я посчитал, что раз уж попытаться описать разработку, то сделать это для всех, тем более, стартап изначально нацеливался на open source и ребята были не против подобной инициативы.
Если Вы посмотрите видео, то убедитесь, что китайские моторчики за 300 рублей бывают очень разные и порой непросто подобрать их одинаковыми, особенно если других нет. А, если они неодинаково крутятся, то робот прямо ездить не будет. Хотя, своим стремлением лишний раз утянуться налево, он не оставил равнодушными ни одного домочадца, такой эффект явно нежелателен. Можно поставить энкодеры и программно корректировать вращение колёс. Если же энкодеров нет, то можно эмпирически вычислить, насколько нужно притормозить (понизить уровень напряжения) более быстрый двигатель, чтобы робот ездил прямо и ровно. Однако, по мере разряда батареек/аккумуляторов, характеристики подогнанной «рабочей точки» изменятся и при другом напряжении двигатели ведут себя уже совсем иначе — робот опять начнёт «забирать» в какую-то сторону. Помимо этого, управление роботом через cyberWRT всё же не идеально — связь обрывалась, иногда пропадала картинка, точно не помню, кажется, на Firefox управление сенсорными кнопками вообще не работало. После переподключения к роботу всё восстанавливалось, то есть чинилось без перезагрузки маршрутизатора, возможно имела место какая-то капризность связи компьютер/телефон-маршрутизатор-маршрутизатор_на_роботе. Стоит отметить, что cyberWRT довольно просто решает вопрос организации управления, давая возможность написать свой модуль и преобразовать, грубо говоря, WEB с одной стороны в UART с другой. В интернете достаточно русскоязычной информации, а также присутствует довольно активное сообщество, которое может помочь разобраться в каких-то вопросах. Ну, и робот получился больше для демонстрации и изучения, чем для сугубо практической пользы. Он очень весело и шустро ездил без второго этажа, но заметно погрустнел, когда добавились маршрутизатор с небольшим USB хабом и видеокамера.
Сама по себе, сборка робота RASH1 вполне позволяет новичкам в робототехнике сделать первые шаги, не заостряя внимание на разработке электроники, прикладывая минимум усилий с паяльником в руках (существует готовая разведённая плата, которая без особого труда распаивается), но, тем не менее, получается робот, сделанный своими руками — я уверен в том, что только на одних легоподобных электронных конструкторах нормальный инженер-робототехник всё же не взрастится. В принципе, этого уже достаточно: полученный робот, и без управления через cyberWRT, позволяет программировать своё поведение. Достаточно разобраться в Arduino (схемотехника и программирование), освоить понятие широтно-импульсной модуляции (ссылка 1, ссылка 2) и в интернете поискать примеры применения тех или иных датчиков.
Например, базовая прошивка имеет автономный режим, который включается нажатием кнопки на роботе и позволяет роботу ездить в помещении, в идеале, без столкновений с предметами — сонар (ультразвуковой датчик) постоянно отслеживает обстановку перед роботом и при обнаружении препятствия робот прекращает движение и запускает слегка навороченный алгоритм разворота, суть которого — получить случайные повороты, чтобы победно покинуть любую ловушку из хитро расставленной людьми мебели. Можно добавить ещё один сонар, улучшив «зрение» робота. Можно подключить датчик освещённости и по его значениям включать или выключать «фары» робота, чтобы ему было «виднее» во всяких тёмных уголках под столами и стульями. Или подключить датчик движения, например, недорогой HC-SR501 (на базе микросхемы BISS0001) чтобы научить робота затаиваться от людей. В общем — немалые просторы для творчества, развлечения и познания как именно работает электроника на «низком» уровне.
После RASH1 мне стало интересно и я сделал робота RASH2. Этот робот уже можно классифицировать как handmade. За базу взята покупная платформа — верхнее и нижнее стеклотекстолитовое основание, стойки, моторчики — это все единый комплект, приобретенный в «великих китайских интернетах».
Этот робот уже имеет разработанную собственную электронику, которая изготовлена на макетной плате, к которой припаивались разъёмы, а роль дорожек выполняли проводки. Питание осуществляется, не от АА батареек/аккумуляторов, а от четырёх литий-ионных аккумуляторов типоразмера 18650. Установлены сервоприводы, которые позволяют «голове» робота крутиться в двух плоскостях. На «голове» робота установлена видеокамера и сонар. В автоматическом режиме роботу уже не нужно крутиться целиком — достаточно «осмотреться» сонаром. Робот имеет такие же «жёлтенькие» двигатели, как и предыдущий, и изначально задумывался как переднеприводный, но потом пришлось переделать на полноприводный ввиду совсем никакой динамики из-за приличного веса. Энкодеры уже установлены, но смысла в них особого нет, так как робот достаточно тяжелый и соседние колеса по одному борту будут подтормаживать друг друга сами по себе. Система управления так же построена на маршрутизаторе TL-MR3020 с прошивкой cyberWRT.
Конструирование подобного робота отлично подойдёт для тех, кто хочет получить опыт начальной разработки и продвинуться дальше — самостоятельная разработка электроники, полная пайка по своей принципиальной схеме, конструирование и собственная сборка, понимание управления сервоприводами (статья от Амперки). На просторах интернета можно найти подобный, почти готовый кит, в который входят необходимые комплектующие — я-то его делал и собирал из палок и… в общем из того что было под рукой, периодически просверливая, подтачивая, приклеивая, прикручивая, даже скотч задействовал — куда же без него.
Раздумья о новом роботе
И вот, теперь новый робот. Что мы от него хотим?
Мы хотим, чтобы платформа была прочная, грузоподъёмная, с хорошими проходимостью и дорожным просветом (клиренсом). Мы хотим получить универсальную платформу, чтобы каждый раз не делать новую — практика жизни, правда, обычно доказывает иное –, но так многие разработки начинаются, это нормальное и здоровое стремление. Какой складывается образ универсальной платформы исходя из требований, изложенных выше? Наверное, это металлическое шасси, четыре двигателя с хорошей мощностью и большие колёса. Очевидно, что лучше двигатели закрыть в отдельный закрытый отсек. В этот двигательный отсек неплохо было бы убрать драйвер для двигателей, батареи питания и какую-то силовую электронику. Например, те же DC/DC преобразователи напряжения, если они присутствуют. Батарейки менять не хочется, так же, как и не хочется вытаскивать аккумуляторы для подзарядки — всё внутрь платформы и пусть она будет сама уметь подзаряжать аккумуляторы. Для дополнительного оборудования можно будет установить металлические стойки и организовать «второй этаж» на платформе.
В первую очередь я поделил процесс создания полноценного робота на две части — создание какой-то универсальной платформы и создание робота на базе этой универсальной платформы. Это позволяет не думать о роботе в целом, продумывая только стык этих двух частей. Далее будет идти речь только о платформе.
Второй важный момент — деление самой платформы на две части. Первая часть уже описана — двигатели и питание. Но двигателями нужно управлять. Устройство управления будет, очевидно, на базе какого-нибудь микроконтроллера — убирать его внутрь двигательного отсека или нет? Соблазн — сделать вообще полностью готовую автономную платформу. Но рациональность говорит о том, что микроконтроллер чисто только для управления двигателями плюс какой-то интерфейс для получения команд — это расточительный расход вычислительного ресурса. Поэтому лучше обособить эту часть от двигательно-силового отсека.
Как итог раздумий, сама идея оформляется следующим образом. Имеется закрытая платформа, внутри которой размещаются двигатели, драйвер для двигателей и источник питания с необходимой силовой электроникой. Очевидно, что лучше иметь какую-то центральную коммутационную плату, к которой будут подключаться все эти компоненты. Также эта плата будет иметь необходимую электронику для получения нужных напряжений. Назовём эту плату платой питания. На платформе располагается плата с микроконтроллером, которая соединяется с платой питания, получая от неё питание и выдавая на неё команды для двигателей. Плата микроконтроллера может также управлять и другим оборудованием робота. Эту плату будем называть платой управления.
Таким образом, процесс разработки всего робота условно «пилится» на две (три) части: создание платформы (и её управления) и рисуем сову создание остального «обвеса», который и превращает нашу платформу в полноценного робота. Важный момент: работая над каждым этапом, можно особо не думать о других — достаточно хорошо продумывать «стыки» между этими частями.
Двигатели и питание
После всех этих размышлений начался подбор комплектующих для платформы.
Поизучав предложения, я выбрал двигатели семейства JGA25–370.
Судя по описанию на эту серию двигателей, они имеют диапазон рабочих напряжений 3–36 В, номинальных напряжений 6–24 В. Эти двигатели выпускаются с разными скоростями, редукторами и, соответственно, имеют различные крутящие моменты (0,1–10 кг*см). Размер и места крепления у всей серии одинаков, поэтому мы получаем хорошее универсальное решение в плане будущих модификаций — для более тяжелой и тяговитой платформы, например, можно поставить двигатели с более низкой скоростью, но большим крутящим моментом. Типизированные номиналы рабочих напряжений для двигателей 6, 12 и 24 В. Важный вопрос — какой номинал выбрать?
В связи с выбором питания двигателей встаёт вопрос организации автономного питания всей нашей платформы. Батарейки и аккумуляторы типоразмеров АА или ААА я использовать не хотел. Хотелось использовать действительно ёмкие аккумуляторы. Я выбрал литий-ионные аккумуляторы типоразмера 18650, ёмкость которых варьируется от 1000 мАч до 3500 мАч. У меня уже есть положительный опыт работы с ними, хорошее устройство для заряда, да и сами аккумуляторы активно используются в быту, то есть для меня это не новинка.
Литий-ионные аккумуляторы имеют достаточно большое количество циклов заряда/разряда, быстрое время заряда относительно большим током, отсутствует эффект памяти (хотя по некоторым данным он, хоть и незначительный, но есть), низкий уровень саморазряда, меньший вес по сравнению с кислотными или щелочными аккумуляторами, бóльшую ёмкость по сравнению с NiMH аккумуляторами. Однако нужно помнить, что такие аккумуляторы не любят чрезмерный нагрев (вероятность взрыва) или чрезмерное охлаждение (уменьшение ёмкости). Их нельзя глубоко разряжать, очень быстро заряжать или очень быстро разряжать (высокотоковые аккумуляторы рассматривать не будем). Если аккумулятор будет сильно разряжён, он, наверняка, выйдет из строя с вероятностью разгерметизации при попытке заряда. Если будет нарушена герметичность аккумулятора, то при сильных токах есть вероятность воспламенения лития, а потушить такой аккумулятор водой уже не получится — литий вступает в реакцию с водой, образуя щелочь и водород. К чему все эти страхи? К тому, что надо понимать: использование таких аккумуляторов — дело серьёзное (помним про периодический опыт от Samsung).
Номинальное напряжение одного литий-ионного элемента 18650 составляет 3,6–3,7 В. Полностью заряженный элемент выдаёт 4,1–4,2 В. А вот с минимальным напряжением сложнее — конечное напряжение разряда зависит от типа аккумулятора и эта цифра может колебаться в пределах 2,6–3,2 В. Разрядить можно и ниже, но это верный путь к быстрой деградации элемента питания. Я решил загрубить оценку выдаваемого аккумулятором напряжения диапазоном номинал-максимум. Тогда получается, что сборки из двух, трёх и четырёх последовательных аккумуляторов дают нам диапазоны 7,2–8,4 В, 10,8–12,6 В, 14,4–16,8 В. От такой сборки нам нужно получить два напряжения — какое-то напряжение для питания двигателей и 5 В для питания электроники. Сборкой из двух аккумуляторов можно запитать двигатели на 6 В, использовав понижающий DC/DC преобразователь, но разница между минимальным значением напряжения (при разрядке аккумуляторной батареи до номинала это будет 7,2 В) и 6 В будет порядка 1,2 В, что может быть недостаточно для стабильной работы понижающего DC/DC преобразователя — во избежание проблем, необходимо иметь разницу напряжений между его входом и выходом не менее 2 В (на самом деле может быть и меньше для low dropout преобразователей, но на них не будем ориентироваться). Нам вполне подходит сборка из трёх элементов, необходимые напряжения мы получим путём применения понижающих DC/DC преобразователей. Двигатели можно запитать и на 9 В, тогда в худшем случае мы получим разницу 1,8 В, что должно быть вполне достаточно. Сборка из четырёх элементов так же подойдёт, но нужно понимать, что дополнительный аккумулятор — это лишний вес и занимаемое место, хотя и большая энергоёмкость всей батареи.
Второй путь организации питания — использовать параллельные соединения тех же аккумуляторов и повышающий DC/DC преобразователь. Тогда с 3,6–4,2 В напряжение можно повысить до 5 В для электроники и до 6–9 В для двигателей. Кажется, что ёмкость такой аккумуляторной сборки легко варьировать путём добавления новых элементов, однако не стоит забывать, что используемые аккумуляторы должны иметь схожие ёмкость и внутреннее сопротивление.
Для зарядки/разрядки последовательных или параллельных аккумуляторных батарей существуют специальные платы-контроллеры. Контроллеры защиты защищают аккумуляторную сборку от чрезмерного заряда или разряда (контроль напряжения), короткого замыкания, превышения допустимого тока разряда. При использовании таких простых плат, требуется внешний источник питания с ограничением зарядного тока. Контроллеры заряда/разряда самостоятельно умеют заряжать аккумуляторы по методу cc/cv с ограничением зарядного тока. Продвинутые контроллеры для последовательного соединения аккумуляторов так же могут обеспечивать индивидуальный заряд для каждого аккумулятора — производят балансировку элементов аккумуляторной батареи.
Я выбрал последовательную схему соединения аккумуляторов с использованием платы защиты и внешним зарядным устройством. В будущем такую простую плату контроля можно заменить на контроллер заряда с балансировкой. Хотя, при параллельном соединении балансировка не требуется, нужно учитывать, что при сильном износе какого-то одного аккумулятора, контроллер обнаружить это не сможет и это может быть чем-то чревато. Стоит учитывать также тот факт, что режимы работы каждого аккумулятора будут другие. Например, при съёме одной и той же мощности, аккумуляторам при параллельном соединении придётся отдавать бóльший ток, чем при параллельном соединении.
Следовательно, подойдут двигатели с номинальным напряжением 6 В и рабочим диапазоном 3–9 В. Я выбрал двигатель со скоростью 281 об/мин и потреблением, в режиме холостого хода, 80 мА. Под нагрузкой скорость проседает до 238 об/мин, ток возрастает до 380 мА, при этом двигатель выдаёт мощность в 2 Вт и развивает крутящий момент в 0,5 кг*см. При стопоре двигателя крутящий момент возрастает до 4 кг*см, а ток до 900 мА. Все эти характеристики были взяты из таблички, выложенной на сайте одного из продавцов товара, так как нормального «даташита» мне найти не удалось.
Корпус и сборка ходовой
Двигатели я заказал следующие.
Если посмотреть на фотографию, то можно увидеть шлицы на валах, выступающих из двигателей. Для этих двигателей был найден комплект муфт и колёс.
Колеса диаметром 80 мм, резина мягкая, шипованная.
Само основание я собирался изготовить из широких алюминиевых уголков (или чего-то подобного что можно найти в строительных магазинах) с помощью которых сделать «бортовой» каркас, который закрыть какими-то легкими, прочными, металлическими пластинами. В нужных местах сверлятся отверстия и нарезается резьба по мере необходимости. Однако сначала я решил поискать что может предложить китайская промышленность. И нашел кит — комплект шасси для конструирования робота, который содержал в себе сам корпус, вышеупомянутые двигатели, муфты и колёса, а также батарейный отсек для батареек AA, переключатель питания, гнездо питания и крепёж. Сам корпус имеет множество отверстий, что по логике делает его легче и их наличие должно минимизировать объём слесарных работ.
Прикинув размеры и объём внутреннего пространства (параллельно выбиралась электроника для платформы, которая и должна была поместиться в этот корпус), я заказал этот кит. На пришедших двигателях, как можно видеть выше, почему-то написано JGA25–370–9v-281rpm. Почему именно 9v, когда номиналом этой подгруппы является 6 В, я не понял, но, наверное, китайцам виднее, что писать, чтобы лучше продавалось.
Сам корпус весит почти 400 граммов. Из какого материала он изготовлен, затрудняюсь ответить, но на чистый алюминий непохож.
Снимаем крышку и устанавливаем двигатели. Отверстия под двигатели имеют диаметр как раз под винты М3, не оставлено никакого запаса на юстировку положения, но, надо отдать должное, это не доставило проблем — отверстия четко совпадают с резьбой на корпусе двигателей.
Устанавливаем муфты.
И прикручиваем колёса.
Получилась готовая платформа с дорожным просветом порядка 23 мм.
Вес «холостого» шасси составил чуть больше килограмма. Помните картинки с замером массы отдельных деталей? 393+(58+85+20)*4 = 1045 граммов. Всё в сборе весит 1057 граммов. 12 граммов добавили 16 болтиков.
Вот такая получилась, вполне симпатичная, платформа.
Электрическая схема
Тут стоит пояснить важный момент, почему именно этот кит. Дело в том, что если мы изготавливаем корпус сами, то его внутренний объём можно сделать произвольным. Покупной же корпус предоставляет нам строго фиксированный объём, в который должно всё поместиться. В идеале ещё и запас остаться. Это нужно учитывать изначально и понимать: поместится ли нужная начинка именно в этот корпус или нет и нужно будет, или электронику менять, или корпус другой выбирать. Внутри корпуса будут установлены: двигатели, аккумуляторная батарея, драйвер для двигателей, плата питания, на которой также будет располагаться какая-то электроника — те же преобразователи напряжения.
Вроде бы понятно, что именно у нас будет внутри. Но как это всё будет соединяться? Если у вас есть идея, но вы не можете создать её образ — у вас нет идеи. В электронике получается так, что образа должно быть два — визуальный, который уже вполне представляем, и электрический (на самом деле есть ещё алгоритмический — когда расписывается поведение устройства, обусловленное его аппаратными и/или программными (функционал прошивка) возможностями).
Я трачу достаточно много времени в пути на работу. Вообще говоря, при правильном подходе, далекую дорогу можно обратить в плюс, читая книги, смотря/слушая научно-популярные программы или аудиокниги, которые бы никогда не прочитал, не послушал и не посмотрел. Именно благодаря таким вот условиям, я стал фанатом и отслушал все рассказы Модели для сборки (чтобы не было вопросов в комментариях — статья на википедии). Роботоблудие не стало исключением и принципиальную схему платформы я продумал и нарисовал в дороге на планшете.
Схема нарисована в OneNote. Картинка кликабельна. Да, мне стыдно — принципиальная схема выглядит непринципиально. Последние три недели я никак не могу уделить время на доводку статьи и уже встал вопрос — публиковать вообще что-то или отложить «на потом». Решил опубликовать так, иначе «на потом» может быть чревато. Нарисую нормальные схемы — заменю картинки. С другой стороны, такое оформление выглядит в стиле оригинального DIY. На работе или дома, когда формируется какая-то идея сначала берётся обычный лист бумаги и обычный карандаш…
Давайте посмотрим по принципиальной схеме, что и с чем у нас будет соединяться. К контроллеру литий-ионных аккумуляторов D1 подключаются три аккумулятора формата 18650. У всей схемы «общая земля», которой и подключен выход P- контроллера D1. Выход P+, через предохранитель FU1 и выключатель SW, подключен к входам DC/DC преобразователей D3 и D4. Преобразователь D3 формирует напряжение для двигателей, D4 — для питания всей электроники. Выходы этих преобразователей подключены к драйверу двигателей D5, к которому подключены двигатели. К каналу МА подключены двигатели ML1, ML2 левого борта, а к MB — MR1, MR2 правого борта. Драйвер двухканальный, это значит, что можно будет управлять двумя группами двигателей (каналы А и В), но не индивидуально каждым двигателем. Для управления скоростью и направлением вращения двигателей предназначены порты ENA, ENB, IN1-IN4. Резистивная цепочка, формирующая напряжение Vbat» подобрана так, чтобы сформировать в диапазоне 0…5 В телеметрию напряжения Vbat аккумуляторного блока. Если Vbat = 13 В (чего не должно быть, так как аккумуляторный блок может выдать максимум 12,6В, но я немного перестраховался), то Vbat» = 3,94 В (то есть значение гарантированно не выйдет за предел 5 В). Ток, протекающий через резистивную цепочку при 12 В будет равен 3,6 мА, и эти потери я посчитал допустимыми (порядка 0,1% при ёмкости аккумуляторной батареи 3000 мАч). К входу контроллера D1 подключается гнездо для подачи внешнего питания. Но, мы видим по схеме, что оно подключено через реле D2.
Сначала хочу пояснить наличие резистора 10 кОм, подтягивающего один из выводов в разъёме питания к напряжению 5 В. Разъём питания у нас с тремя выходами. Пара выходов передают напряжение источника питания. Третий выход является информационным. Он замкнут на отрицательный выход (он у нас подключен к «земле»), если штекера в гнезде нет и размыкается, если штекер вставлен в гнездо. Таким образом, мы получаем сигнал телеметрии Vinon» о подключении источника питания: если напряжение Vinon» = 0, то внешнее питание не подключено, если Vinon» = 5 В — подключено. Резистор 10 кОм подтягивает этот выход к 5 В. При подключении штекера через резистор будет протекать ток 0,5 мА, что вполне приемлемо.
При подключении внешнего источника через нормально-замкнутое реле D2 и предохранитель FU1 аккумуляторы начнут заряжаться. Нормально-замкнутое реле — это значит — его выводы всегда замкнуты и размыкаются только при подаче напряжения на управляющий контакт. Зачем реле D2? Допустим, у нас нет этого реле. Если блок питания подключили к платформе, но забыли его включить в розетку — как плата микроконтроллера узнает — заряжается сейчас аккумуляторный блок или нет? А, если источник питания включен в розетку, но не выдаёт напряжение? Или всё работает, но источник питания выдаёт только 10В вместо положенных 12В? А, если я такой источник (который только 10 В выдаёт) подключил к аккумуляторной батарее, которая еще не разряжена до конца и выдаёт 11 В, то как я узнаю — эти 11 В формирует аккумуляторный блок (который на самом деле выше 10В не выдаёт) или внешний источник? Для таких ситуаций и был продуман алгоритм, для которого потребовалось реле. О подключении внешнего источника питания мы узнаем по телеметрии Vinon». Отключаем реле и смотрим на телеметрию Vin». Если она устраивает и это напряжение находится в ожидаемом диапазоне, то включаем реле и сигнализируем о процессе заряда. Если не устраивает — не включаем реле и сигнализируем о неисправности. Процессом анализа и индикации пусть занимается бортовая плата управления, а не платформа. Для этого мы передадим ей все необходимые напряжения и сигнал управления для реле Vinoff». Управляющий вход модуля реле через резистор 10 кОм подтягиваем к 5 В, обеспечивая постоянное включение реле. При подаче 0 В на этот вход реле отключится.
Но почему, именно, допотопное механическое реле? Ведь можно поставить MOSFET транзистор. Такая идея была, но от неё пришлось отказаться. Современные МДП транзисторы обладают низким сопротивлением (десятки миллиом) в открытом состоянии и при протекании тока в 2–5 А на нём не будет сильно значимого падения напряжения и, как следствие, нагрева — небольшую мощность способен рассеять сам корпус транзистора даже без радиатора. Но это всё касается схемы, в которой такой цифровой ключ будет управлять подключением источника питания к пассивной нагрузке. Мы же ставим транзистор между двумя источниками, в результате чего разница напряжений между стоком и истоком может быть существенна, что будет приводить к повышенному тепловыделению и транзистор будет сильно греться. Так же, для открытия или запирания транзистора нужно будет делать цепь управления (драйвер), потому что уровень управляющего напряжения от платы микроконтроллера 5 В, что недостаточно для создания разницы напряжения затвор-исток для управления транзистором (для управления транзистором, например, IRFZ44N нам придётся подать на его затвор 8–12 В для того, чтобы его открыть). То ли дело — готовый модуль реле, который надо просто подключить и который, если уж замкнут, то гарантированно соединяет выход с входом без всяких заморочек.
Таким образом, у нас получилась не просто коммутационная плата, а полноценная плата питания. На плате устанавливаются DC/DC преобразователи, резистивные цепочки, предохранитель и куча разъёмов для подключения электроники. Структурно можно выделить два разъёма. Разъём CON1, к которому будут подключаться батарейный блок, переключатель/кнопка питания, разъём питания, модуль реле, двигатели, плата драйвера двигателей — вся периферия внутри платформы. И разъём CON2, назначение которого — соединение с платой управления. На этот разъём выводятся сигналы телеметрии и управления, напряжения 5 В, а также полезно «прокинуть» напряжение с аккумуляторного блока Vbat — мы даём возможность «уровнем выше» организовать свои каналы питания с различными напряжениями, например, 6 В для питания сервоприводов.
Электроника шасси
Электроника выбиралась параллельно с разработкой электрической схемы устройства.
Гнездо питания с тумблером пошли в дело из полученного комплекта шасси. Были выбраны и приобретены драйвер для двигателей на базе микросхемы L298N, платы DC/DC преобразователей XL4005, безымянный модуль реле, батарейный отсек и монтажная плата размерами 50×70 мм и шагом отверстий 2,54 мм.
Помимо этого, нам ещё понадобятся следующие материалы.
Вверху фотографии можно увидеть несколько длинных штыревых разъёмов с шагом 2,54 мм, а также гнёзд, ниже — металлические контакты на кабель, левее — гнёзда для них, справа — винты, гайки и шайбы М2. Разъёмы на плату и кабель в разных магазинах называются по-разному. В силу исторических причин я называю штыревые разъёмы для платы PLS, гнёзда на плату — PBS, разъёмы на кабель — BLS. В интернете на заграничных сайтах такие разъёмы ищутся по запросу вида »2.54mm connector» или «dupont connector». Помимо этого, потребуется различный расходный материал — припой, флюс, провода и так далее, а также набор ручных инструментов — кусачки, пинцет, отвёртки и прочее — всё это обычно есть у тех, кто хоть как-то занимается DIY (Do It Yourself — сделай это сам).
Прежде, чем заказать электронику и корпус, я прикинул — выбранная электроника должна без проблем уместиться во внутреннем пространстве. Наступило время это проверить: расставляем электронику и отмечаем будущие посадочные места.
Теперь примемся за подготовку плат.
Начал я с аккумуляторного блока. Контроллер литий-ионных аккумуляторов был «посажен» на термоклей и к нему припаяны выводы контактов в соответствии с принципиальной схемой. Я думаю, читателям будет интересно, что и каким инструментом делалось, поэтому в конце статьи, под спойлером, я разместил картинки некоторого используемого оборудования со своими краткими комментариями. Термоклей наносился с помощью термопистолета. Однако, перед этим мне пришлось провести работу по, так скажем, повышению надежности этого отсека. Предупрежу всех, кто соберётся что-то делать — лучше не допускать моей ошибки и взять более прочные батарейные отсеки. Одно время я никак не мог найти такие отсеки в розницу и когда нашёл, то набрал их немало на радостях по простоте душевной. А с ними всё не так просто. Потому что в этом отсеке аккумуляторы с плоскими, невыступающими плюсовыми площадками просто не достают до контакта. Кроме этого, все подпружиненные контакты вращаются, контакт плохой. Поэтому пришлось ввернуть болтики М2, откусить лишнее, навернуть гайки и затянуть для улучшения контакта. Но мне этого показалось мало, и я ещё и хорош