Роботостроительство – делаем базовую платформу для будущего робота

в 8:52, , рубрики: arduino, diy или сделай сам, захват вселенной, искусственный интеллект, разработка роботов, робототехника, сборка роботов, схемотехника, Электроника для начинающих, метки: ,

Всем бодрого/доброго (нужное подчеркнуть) времени суток и хорошего настроения! Хочу рассказать и показать процесс, как я придумывал (проектировал) и изготавливал базовое шасси для четырёхколёсного робота.

Ко мне вновь обратились знакомые ребята с просьбой помочь сделать робота «посерьёзнее». На этот раз решено было сделать не полноценного робота, а некую базовую платформу, которая бы позволила сконструировать на ней дальнейший функционал робота, возможно с вариациями, не отвлекаясь на вопросы о шасси, двигателях, системе питания и, в идеале, о системе локального или удалённого управления.

Роботостроительство – делаем базовую платформу для будущего робота - 1

Цель этого поста – показать процесс разработки и изготовления подобной платформы. Обычно в статьях по робототематике показывают уже готовые устройства, демонстрируя, что сделано и как оно в результате работает. Это интересно, конечно же. Но с бóльшим удовольствием я читаю статьи, в которых поэтапно показывается, как именно сделано, почему и описание каких-то отдельных моментов или мыслей. Я попробую подробно описать как собиралась движущаяся платформа в домашних условиях. Эта статья – профильное чтение для отдыха. Саму статью я подготавливал, наверное, больше времени раза в три, чем рукоделием занимался. Не претендую на полноту описания, высокотехнологичность, наукоёмкость, инновационность и безошибочность… Но надеюсь, что для кого-то она поможет сделать какие-то первые шаги и покажет, что современная модульная электроника это совсем не сложно, хотя и не совсем просто, как кажется. «Дяди снова играют в машинки вместо того, чтобы серьёзным делом заниматься». Но ведь нужно же заниматься чем-то тем, кто никак не может вырасти. Осторожно – под катом будет много текста и неприлично много картинок.

Предисловие

Я уже делал, вернее собирал, робота RASH1. Этого робота сложно назвать handmade, так как платформа абсолютно собирается на готовых комплектующих. Интерес представляет система управления такой платформой, построенная на базе небольшого маршрутизатора с системой cyberWRT, которая позволяет управлять роботом с любого устройства через браузер. Сознаюсь, смысл работы был больше в демонстрации самого процесса разработки с точки зрения методики и документации, нежели в непосредственном изготовлении. По этому поводу на хабре, в меру добросовестно, была запилена почти концептуальная статья, так как я посчитал, что раз уж попытаться описать разработку, то сделать это для всех, тем более, стартап изначально нацеливался на open source и ребята были не против подобной инициативы.

Если Вы посмотрите видео, то убедитесь, что китайские моторчики за 300 рублей бывают очень разные и порой непросто подобрать их одинаковыми, особенно если других нет. А, если они неодинаково крутятся, то робот прямо ездить не будет. Хотя, своим стремлением лишний раз утянуться налево, он не оставил равнодушными ни одного домочадца, такой эффект явно нежелателен. Можно поставить энкодеры и программно корректировать вращение колёс. Если же энкодеров нет, то можно эмпирически вычислить, насколько нужно притормозить (понизить уровень напряжения) более быстрый двигатель, чтобы робот ездил прямо и ровно. Однако, по мере разряда батареек/аккумуляторов, характеристики подогнанной «рабочей точки» изменятся и при другом напряжении двигатели ведут себя уже совсем иначе – робот опять начнёт «забирать» в какую-то сторону. Помимо этого, управление роботом через cyberWRT всё же не идеально – связь обрывалась, иногда пропадала картинка, точно не помню, кажется, на Firefox управление сенсорными кнопками вообще не работало. После переподключения к роботу всё восстанавливалось, то есть чинилось без перезагрузки маршрутизатора, возможно имела место какая-то капризность связи компьютер/телефон-маршрутизатор-маршрутизатор_на_роботе. Стоит отметить, что cyberWRT довольно просто решает вопрос организации управления, давая возможность написать свой модуль и преобразовать, грубо говоря, WEB с одной стороны в UART с другой. В интернете достаточно русскоязычной информации, а также присутствует довольно активное сообщество, которое может помочь разобраться в каких-то вопросах. Ну, и робот получился больше для демонстрации и изучения, чем для сугубо практической пользы. Он очень весело и шустро ездил без второго этажа, но заметно погрустнел, когда добавились маршрутизатор с небольшим USB хабом и видеокамера.

Роботостроительство – делаем базовую платформу для будущего робота - 2

Сама по себе, сборка робота RASH1 вполне позволяет новичкам в робототехнике сделать первые шаги, не заостряя внимание на разработке электроники, прикладывая минимум усилий с паяльником в руках (существует готовая разведённая плата, которая без особого труда распаивается), но, тем не менее, получается робот, сделанный своими руками – я уверен в том, что только на одних легоподобных электронных конструкторах нормальный инженер-робототехник всё же не взрастится. В принципе, этого уже достаточно: полученный робот, и без управления через cyberWRT, позволяет программировать своё поведение. Достаточно разобраться в Arduino (схемотехника и программирование), освоить понятие широтно-импульсной модуляции (ссылка 1, ссылка 2) и в интернете поискать примеры применения тех или иных датчиков.

Например, базовая прошивка имеет автономный режим, который включается нажатием кнопки на роботе и позволяет роботу ездить в помещении, в идеале, без столкновений с предметами – сонар (ультразвуковой датчик) постоянно отслеживает обстановку перед роботом и при обнаружении препятствия робот прекращает движение и запускает слегка навороченный алгоритм разворота, суть которого – получить случайные повороты, чтобы победно покинуть любую ловушку из хитро расставленной людьми мебели. Можно добавить ещё один сонар, улучшив «зрение» робота. Можно подключить датчик освещённости и по его значениям включать или выключать «фары» робота, чтобы ему было «виднее» во всяких тёмных уголках под столами и стульями. Или подключить датчик движения, например, недорогой HC-SR501 (на базе микросхемы BISS0001) чтобы научить робота затаиваться от людей. В общем – немалые просторы для творчества, развлечения и познания как именно работает электроника на «низком» уровне.

После RASH1 мне стало интересно и я сделал робота RASH2. Этот робот уже можно классифицировать как handmade. За базу взята покупная платформа – верхнее и нижнее стеклотекстолитовое основание, стойки, моторчики – это все единый комплект, приобретенный в «великих китайских интернетах».

Этот робот уже имеет разработанную собственную электронику, которая изготовлена на макетной плате, к которой припаивались разъёмы, а роль дорожек выполняли проводки. Питание осуществляется, не от АА батареек/аккумуляторов, а от четырёх литий-ионных аккумуляторов типоразмера 18650. Установлены сервоприводы, которые позволяют «голове» робота крутиться в двух плоскостях. На «голове» робота установлена видеокамера и сонар. В автоматическом режиме роботу уже не нужно крутиться целиком – достаточно «осмотреться» сонаром. Робот имеет такие же «жёлтенькие» двигатели, как и предыдущий, и изначально задумывался как переднеприводный, но потом пришлось переделать на полноприводный ввиду совсем никакой динамики из-за приличного веса. Энкодеры уже установлены, но смысла в них особого нет, так как робот достаточно тяжелый и соседние колеса по одному борту будут подтормаживать друг друга сами по себе. Система управления так же построена на маршрутизаторе TL-MR3020 с прошивкой cyberWRT.

Роботостроительство – делаем базовую платформу для будущего робота - 3

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

Раздумья о новом роботе

И вот, теперь новый робот. Что мы от него хотим?

Мы хотим, чтобы платформа была прочная, грузоподъёмная, с хорошими проходимостью и дорожным просветом (клиренсом). Мы хотим получить универсальную платформу, чтобы каждый раз не делать новую – практика жизни, правда, обычно доказывает иное – но так многие разработки начинаются, это нормальное и здоровое стремление. Какой складывается образ универсальной платформы исходя из требований, изложенных выше? Наверное, это металлическое шасси, четыре двигателя с хорошей мощностью и большие колёса. Очевидно, что лучше двигатели закрыть в отдельный закрытый отсек. В этот двигательный отсек неплохо было бы убрать драйвер для двигателей, батареи питания и какую-то силовую электронику. Например, те же 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 мА. Все эти характеристики были взяты из таблички, выложенной на сайте одного из продавцов товара, так как нормального «даташита» мне найти не удалось.

Корпус и сборка ходовой

Двигатели я заказал следующие.

Роботостроительство – делаем базовую платформу для будущего робота - 4

Если посмотреть на фотографию, то можно увидеть шлицы на валах, выступающих из двигателей. Для этих двигателей был найден комплект муфт и колёс.

Роботостроительство – делаем базовую платформу для будущего робота - 5

Колеса диаметром 80 мм, резина мягкая, шипованная.

Роботостроительство – делаем базовую платформу для будущего робота - 6

Роботостроительство – делаем базовую платформу для будущего робота - 7

Само основание я собирался изготовить из широких алюминиевых уголков (или чего-то подобного что можно найти в строительных магазинах) с помощью которых сделать «бортовой» каркас, который закрыть какими-то легкими, прочными, металлическими пластинами. В нужных местах сверлятся отверстия и нарезается резьба по мере необходимости. Однако сначала я решил поискать что может предложить китайская промышленность. И нашел кит — комплект шасси для конструирования робота, который содержал в себе сам корпус, вышеупомянутые двигатели, муфты и колёса, а также батарейный отсек для батареек AA, переключатель питания, гнездо питания и крепёж. Сам корпус имеет множество отверстий, что по логике делает его легче и их наличие должно минимизировать объём слесарных работ.

Роботостроительство – делаем базовую платформу для будущего робота - 8

Роботостроительство – делаем базовую платформу для будущего робота - 9

Прикинув размеры и объём внутреннего пространства (параллельно выбиралась электроника для платформы, которая и должна была поместиться в этот корпус), я заказал этот кит. На пришедших двигателях, как можно видеть выше, почему-то написано JGA25-370-9v-281rpm. Почему именно 9v, когда номиналом этой подгруппы является 6 В, я не понял, но, наверное, китайцам виднее, что писать, чтобы лучше продавалось.

Сам корпус весит почти 400 граммов. Из какого материала он изготовлен, затрудняюсь ответить, но на чистый алюминий непохож.

Роботостроительство – делаем базовую платформу для будущего робота - 10

Роботостроительство – делаем базовую платформу для будущего робота - 11

Роботостроительство – делаем базовую платформу для будущего робота - 12

Роботостроительство – делаем базовую платформу для будущего робота - 13

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

Роботостроительство – делаем базовую платформу для будущего робота - 14

Роботостроительство – делаем базовую платформу для будущего робота - 15

Роботостроительство – делаем базовую платформу для будущего робота - 16

Устанавливаем муфты.

Роботостроительство – делаем базовую платформу для будущего робота - 17

Роботостроительство – делаем базовую платформу для будущего робота - 18

И прикручиваем колёса.

Роботостроительство – делаем базовую платформу для будущего робота - 19

Роботостроительство – делаем базовую платформу для будущего робота - 20

Получилась готовая платформа с дорожным просветом порядка 23 мм.

Роботостроительство – делаем базовую платформу для будущего робота - 21

Вес «холостого» шасси составил чуть больше килограмма. Помните картинки с замером массы отдельных деталей? 393+(58+85+20)*4 = 1045 граммов. Всё в сборе весит 1057 граммов. 12 граммов добавили 16 болтиков.

Роботостроительство – делаем базовую платформу для будущего робота - 22

Вот такая получилась, вполне симпатичная, платформа.

Роботостроительство – делаем базовую платформу для будущего робота - 23

Электрическая схема

Тут стоит пояснить важный момент, почему именно этот кит. Дело в том, что если мы изготавливаем корпус сами, то его внутренний объём можно сделать произвольным. Покупной же корпус предоставляет нам строго фиксированный объём, в который должно всё поместиться. В идеале ещё и запас остаться. Это нужно учитывать изначально и понимать: поместится ли нужная начинка именно в этот корпус или нет и нужно будет, или электронику менять, или корпус другой выбирать. Внутри корпуса будут установлены: двигатели, аккумуляторная батарея, драйвер для двигателей, плата питания, на которой также будет располагаться какая-то электроника – те же преобразователи напряжения.
Вроде бы понятно, что именно у нас будет внутри. Но как это всё будет соединяться? Если у вас есть идея, но вы не можете создать её образ – у вас нет идеи. В электронике получается так, что образа должно быть два – визуальный, который уже вполне представляем, и электрический (на самом деле есть ещё алгоритмический – когда расписывается поведение устройства, обусловленное его аппаратными и/или программными (функционал прошивка) возможностями).

Я трачу достаточно много времени в пути на работу. Вообще говоря, при правильном подходе, далекую дорогу можно обратить в плюс, читая книги, смотря/слушая научно-популярные программы или аудиокниги, которые бы никогда не прочитал, не послушал и не посмотрел. Именно благодаря таким вот условиям, я стал фанатом и отслушал все рассказы Модели для сборки (чтобы не было вопросов в комментариях — статья на википедии). Роботоблудие не стало исключением и принципиальную схему платформы я продумал и нарисовал в дороге на планшете.

Схема нарисована в OneNote. Картинка кликабельна. Да, мне стыдно – принципиальная схема выглядит непринципиально. Последние три недели я никак не могу уделить время на доводку статьи и уже встал вопрос – публиковать вообще что-то или отложить «на потом». Решил опубликовать так, иначе «на потом» может быть чревато. Нарисую нормальные схемы – заменю картинки. С другой стороны, такое оформление выглядит в стиле оригинального DIY. На работе или дома, когда формируется какая-то идея сначала берётся обычный лист бумаги и обычный карандаш…

Роботостроительство – делаем базовую платформу для будущего робота - 24

Давайте посмотрим по принципиальной схеме, что и с чем у нас будет соединяться. К контроллеру литий-ионных аккумуляторов 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 В для питания сервоприводов.

Электроника шасси

Электроника выбиралась параллельно с разработкой электрической схемы устройства.

Роботостроительство – делаем базовую платформу для будущего робота - 25

Гнездо питания с тумблером пошли в дело из полученного комплекта шасси. Были выбраны и приобретены драйвер для двигателей на базе микросхемы L298N, платы DC/DC преобразователей XL4005, безымянный модуль реле, батарейный отсек и монтажная плата размерами 50х70 мм и шагом отверстий 2,54 мм.

Помимо этого, нам ещё понадобятся следующие материалы.

Роботостроительство – делаем базовую платформу для будущего робота - 26

Вверху фотографии можно увидеть несколько длинных штыревых разъёмов с шагом 2,54 мм, а также гнёзд, ниже – металлические контакты на кабель, левее – гнёзда для них, справа – винты, гайки и шайбы М2. Разъёмы на плату и кабель в разных магазинах называются по-разному. В силу исторических причин я называю штыревые разъёмы для платы PLS, гнёзда на плату – PBS, разъёмы на кабель – BLS. В интернете на заграничных сайтах такие разъёмы ищутся по запросу вида «2.54mm connector» или «dupont connector». Помимо этого, потребуется различный расходный материал – припой, флюс, провода и так далее, а также набор ручных инструментов – кусачки, пинцет, отвёртки и прочее – всё это обычно есть у тех, кто хоть как-то занимается DIY (Do It Yourself – сделай это сам).

Прежде, чем заказать электронику и корпус, я прикинул — выбранная электроника должна без проблем уместиться во внутреннем пространстве. Наступило время это проверить: расставляем электронику и отмечаем будущие посадочные места.

Роботостроительство – делаем базовую платформу для будущего робота - 27

Роботостроительство – делаем базовую платформу для будущего робота - 28

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

Начал я с аккумуляторного блока. Контроллер литий-ионных аккумуляторов был «посажен» на термоклей и к нему припаяны выводы контактов в соответствии с принципиальной схемой. Я думаю, читателям будет интересно, что и каким инструментом делалось, поэтому в конце статьи, под спойлером, я разместил картинки некоторого используемого оборудования со своими краткими комментариями. Термоклей наносился с помощью термопистолета. Однако, перед этим мне пришлось провести работу по, так скажем, повышению надежности этого отсека. Предупрежу всех, кто соберётся что-то делать – лучше не допускать моей ошибки и взять более прочные батарейные отсеки. Одно время я никак не мог найти такие отсеки в розницу и когда нашёл, то набрал их немало на радостях по простоте душевной. А с ними всё не так просто. Потому что в этом отсеке аккумуляторы с плоскими, невыступающими плюсовыми площадками просто не достают до контакта. Кроме этого, все подпружиненные контакты вращаются, контакт плохой. Поэтому пришлось ввернуть болтики М2, откусить лишнее, навернуть гайки и затянуть для улучшения контакта. Но мне этого показалось мало, и я ещё и хорошенько пропаял все соединения. Потому что, если что-то делается, то это должно быть надёжно, чтобы это в будущем не доставляло проблем и к этому потом не возвращаться снова.

Следует заметить, что для литий-ионных аккумуляторов используется обычный контроллер без балансировки. Это значит, что при заряде одного из трёх аккумуляторов, контроллер наверняка прервёт заряд всех аккумуляторов. Фактически – это просто плата защиты от низкого разряда и перезаряда аккумуляторных батарей и контролем тока разряда. Поэтому желательно использовать аккумуляторы с одинаковой реальной ёмкостью. Если использовать контроллер с балансировкой, то подбор по ёмкости менее критичен и аккумуляторные батареи будут использоваться более эффективно, но такие контроллеры стоят дороже и занимают побольше места. Как же подобрать аккумуляторные батареи с одинаковой реальной ёмкостью? Ведь, купив одинаковые аккумуляторы из одной и той же серии даже от брендов, ёмкость может различаться на 5-10%, а китайские аккумуляторы с надписями 6000-8000 мАч, вообще, представляют собой аккумуляторы с неизвестной ёмкостью. Для замера реальных ёмкостей я использовал довольно популярное в своей среде зарядное устройство OPUS BT-C3100. С помощью него было проверено 12 приобретённых аккумуляторов и отобраны три, разброс ёмкостей которых минимален и не превышает нескольких процентов. Ёмкость аккумуляторов LG LGABC21865 была заявлена в 2800 мАч, но в реальности колебалась в диапазоне 2400-2500 мАч (тестировал на токе 700 мА).

Небольшое отступление в виде размышления. Зарядное устройство посчитало нам ёмкость аккумуляторов с учётом их заряда до 4,2 В и разряда, если я не ошибаюсь для OPUS BT-C3100, до 2,8 В. У нас же аккумуляторы не должны разряжаться меньше номинала в 3,5-3,7 В. То есть, наша рабочая ёмкость батарей сильно ниже измеренной. Это нужно учитывать. Возможно, в будущем, стоит подумать об аккумуляторном блоке из четырёх аккумуляторов. А можно ли будет просто заменить аккумуляторный блок и блок питания для его заряда? Давайте прикинем. У нас получится диапазон напряжений 14,4-16,8 В. Преобразователи напряжения работают с входным напряжением до 32 В. Резистивные делители нам дадут диапазон напряжений сигналов телеметрии 4,3-5,1 В, что немного выходит за верхний диапазон 0-5 В. Но это можно парировать на уровне платы управления – если напряжение телеметрии 5 В, то аккумуляторный блок через некоторое время будет почти заряжен. С другой стороны, если понизить напряжение на двигатели до 6-7 В, можно сильнее разряжать имеющийся аккумуляторный блок и более эффективно использовать аккумуляторные батареи – в этом случае нужно будет только лишь подстроить один преобразователь напряжения. На первый взгляд, есть простор для будущих исследований вообще без изменения аппаратной части, а уж, как именно интерпретировать сигналы телеметрии в зависимости от установленного аккумуляторного блока – это пусть решается на уровне платы управления, то есть, пока об этом можно не думать.

Выходные провода с получившегося аккумуляторного блока я зачистил специальными клещами (стриппер) и обжал в металлические контакты, используя обжимные клещи (кримпер), для надёжности пропаял и надел на них пластиковые корпуса, получив BLS разъёмы. При пайке использовалась паяльная станция, в качестве припоя – ПОС-61 без канифоли, в качестве флюса – безотмывочный FluxPlus NC-D500.

Роботостроительство – делаем базовую платформу для будущего робота - 29

Роботостроительство – делаем базовую платформу для будущего робота - 30

Роботостроительство – делаем базовую платформу для будущего робота - 31

После сборки аккумуляторного блока и установки в него аккумуляторных батарей, он выдавать ничего не будет. Так устроены многие контроллеры литий-ионных батарей – они обесточивают нагрузку при коротком замыкании, сильном разряде, превышении разрядного тока. Для того, чтобы «сбросить» защиту и привести аккумуляторный блок в рабочий вид его нужно подать 12-12,6 В на контакты +P/-P. Тоже самое надо сделать после первого подсоединения аккумуляторных батарей к контроллеру. После этого можно убедиться, что блок выдаёт напряжение, если аккумуляторы правильно подсоединены к контроллеру.

Для заряда подобных сборок аккумуляторов существуют блоки питания с выходным напряжением 12,6 В (3х4,2 В). С таким блоком питания аккумуляторы будут использоваться более эффективно, хотя можно использовать и источники питания номиналом 12 В. У меня уже имеется такой блок питания с выходом 12,6 В и током 5 А. Если же подобный источник будет приобретаться, то стоит убедиться соответствует ли он заявляемым характеристикам. Простейшая проверка – проверка нагрузочной способности. Для этого я использовал керамические резисторы номиналом 1 Ом 10 Вт и 4,7 Ом 10 Вт. Собрав из таких резисторов сборку сопротивлением 2,5 Ом, я подключил к ней блок питания и замерил напряжение на его выходе. При расчётном токе в 12,6/2,5 = 5 А мой блок питания выдавал 12,6 В – это отличный результат. Китайские блоки питания, на которых написано нечто, типа – 12V3А, нередко начинают «проседать» на 10-20% при нагрузке всего около 1 А.

Роботостроительство – делаем базовую платформу для будущего робота - 32

Роботостроительство – делаем базовую платформу для будущего робота - 33

По аналогии были подготовлены переключатель и гнездо питания.

Роботостроительство – делаем базовую платформу для будущего робота - 34

С модуля реле с помощью фена была снята клеммная колодка и припаяны PLS контакты. Для подключения этого модуля к плате питания я изготовил провода – зачистил, обжал и пропаял провода питания (через которые будет соединяться разъём питания и аккумуляторный блок) сечением 18-20 AWG. А для управления использовал имеющиеся у меня провода, с более тонкими жилами, которые легко ищутся по названию «Dupont».

Роботостроительство – делаем базовую платформу для будущего робота - 35

Роботостроительство – делаем базовую платформу для будущего робота - 36

То же самое было проделано с драйвером двигателей.

Роботостроительство – делаем базовую платформу для будущего робота - 37

Роботостроительство – делаем базовую платформу для будущего робота - 38

На DC/DC преобразователи были напаяны «ножки». Стоит упомянуть, что эти контакты сделаны из такого металла, который хорошо паяется только активным флюсом. Тогда вместо FluxPlus я использую ЛТИ-120 с последующим протиранием мест пайки тряпочкой, смоченной изопропанолом, для удаления остатков флюса.

Роботостроительство – делаем базовую платформу для будущего робота - 39

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

[Плата питания]

Роботостроительство – делаем базовую платформу для будущего робота - 40

Догадайтесь, где я придумывал и «вылизывал» эту плату? Мы видим два разъёма на плате, два преобразователя напряжения. Появился дополнительный джампер (снимаемая перемычка), который можно установить, исключив предохранитель из электрической схемы – я это сделал специально из-за банального отсутствия предохранителя на момент изготовления платы.

Распайка платы – работа довольно нудная и кропотливая. Для питания я использовал провода сечением 18-20 AWG, для остальных сигналов — 26-30 AWG. Почему именно макетная плата и морока с проводками? Потому что у нас ещё только первый прототип. Что-то может меняться, поэтому перепаять проводки проще, чем резать дорожки и напаивать всякие перемычки на готовой печатной плате. Сделать печатную плату нужно время – развести, сделать маску, протравить, рассверлить, залудить, распаять – вряд ли для этого потребуется меньше времени, чем изготовить плату с «проводками». Хотя печатная плата будет надёжнее, а выглядеть — профессиональнее.

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

Роботостроительство – делаем базовую платформу для будущего робота - 41

Роботостроительство – делаем базовую платформу для будущего робота - 42

Роботостроительство – делаем базовую платформу для будущего робота - 43

Роботостроительство – делаем базовую платформу для будущего робота - 44

После изготовления платы нужно обязательно проверить полученное на предмет соответствия принципиальной и монтажной схемам. Используя мультиметр, я проверяю входы и выходы на предмет короткого замыкания (лучше не «прозванивать» контакты, а измерять их сопротивление, так как в случае ошибочного изготовления или проектирования может образоваться, например, сопротивление в сотню ом по входу, которое может не «прозвониться», но его наличие будет ошибкой в схеме и может доставить большие неприятности), а также убеждаюсь, что всё подсоединено так как нужно внутри платы.

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

Установка и подключение электроники платформы

Электроника готова. Теперь необходимо её установить. Помните, отмечались посадочные места электронных плат? Аккумуляторным шуруповёртом в нужных местах сверлятся отверстия. Затем шлифуются минидрелью с шлифовальной насадкой. В отверстия вкручиваются винты М2. Под винты и гайки обязательно подкладываются шайбы. Кроме того, я накрутил по второй гайке – контргайка обеспечит более надежное резьбовое соединение и уменьшит вероятность его раскручивания. Мы же машинку делаем.

Роботостроительство – делаем базовую платформу для будущего робота - 45

Роботостроительство – делаем базовую платформу для будущего робота - 46

Роботостроительство – делаем базовую платформу для будущего робота - 47

Провода к двигателям я припаял в соответствии с метками на них – на каждом двигателе около одного из двух контактов была нанесена красная точка. После получения двигателей я проверял их, но не обратил внимания на корректность этой маркировки. Один из двигателей, кстати, пришёл с браком и совсем не прокручивался, продавец любезно мне выслал замену, которая добиралась до меня не менее месяца. Впоследствии оказалось, что у одного из двигателей маркировка была перепутана, но это не беда – достаточно просто поменять полярность подключения этого двигателя к плате питания. Забегая вперёд, скажу, что такая же ситуация случилась и с подключением «бортов» — при подаче команды «вперёд» колёса по правому борту вращались вперёд, по левому – назад. Это исправляется так же изменением полярности подключения нужного канала драйвера двигателей к плате питания. Изменение полярности подключения – не надо ничего перепаивать или переделывать, нужно просто поменять провода местами.

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

Роботостроительство – делаем базовую платформу для будущего робота - 48

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

Роботостроительство – делаем базовую платформу для будущего робота - 49

Роботостроительство – делаем базовую платформу для будущего робота - 50

Все наши болтики и гаечки со стороны дна несильно уменьшили дорожный просвет и смотрятся довольно эстетично.

Роботостроительство – делаем базовую платформу для будущего робота - 51

Роботостроительство – делаем базовую платформу для будущего робота - 52

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

Роботостроительство – делаем базовую платформу для будущего робота - 53

Роботостроительство – делаем базовую платформу для будущего робота - 54

Устанавливаем и прикручиваем электронные платы и разъём питания.

Роботостроительство – делаем базовую платформу для будущего робота - 55

Роботостроительство – делаем базовую платформу для будущего робота - 56

Роботостроительство – делаем базовую платформу для будущего робота - 57

Роботостроительство – делаем базовую платформу для будущего робота - 58

Роботостроительство – делаем базовую платформу для будущего робота - 59

Роботостроительство – делаем базовую платформу для будущего робота - 60

Кошмар, сколько проводов… Подключаем периферию к плате питания.

Роботостроительство – делаем базовую платформу для будущего робота - 61

Роботостроительство – делаем базовую платформу для будущего робота - 62

Электроника управления платформой

Как Вы понимаете, в принципе, задача выполнена. Платформа получена, всё довольно удачно получилось. Для управления платформой можно использовать любой микроконтроллер, ПЛИС, платы Arduino, Intel Galileo и прочее.

Я выбрал плату Arduino Nano, нашел к ней недорогую и удобную плату расширения для подключения периферии и модуль bluetooth. Базовая идея – управление нашей платформой с смартфона через bluetooth. Плата расширения, своим обилием контактов для подключения внешних устройств, позволит в будущем беспроблемно подключить будущую периферию робота.

Роботостроительство – делаем базовую платформу для будущего робота - 63

Роботостроительство – делаем базовую платформу для будущего робота - 64

Теперь нам необходимо разработать и сделать монтажную плату для этой электроники. Будем делать «бутерброд»: монтажная плата, на которую устанавливаются модуль bluetooth и плата расширения, в которую, в свою очередь, устанавливается плата с микроконтроллером.

Роботостроительство – делаем базовую платформу для будущего робота - 65

По сравнению с платой питания эта плата практически чисто коммутационная. В центре к 18-контактному трёхрядному разъёму подключается шлейф, соединяющий эту плату управления с платой питания. С этого разъёма сигналы разводятся на нужные контакты платы расширения, которые потом попадают на нужные, заранее выбранные, контакты микроконтроллера. Также на отдельные контакты на плате выводится напряжение 5 В и Vbat. На плате подведено питание к модулю bluetooth, его входы Rx/Tx соединены с входами Rx/Tx платы Arduino Nano через плату расширения. На плате располагается съёмный двухполярный светодиод, предназначение которого – индикация всех процессов, связанных с питанием. Светодиод может формировать зеленое и красное постоянное свечение, мигать с заданной частотой – этого должно хватить для индикации нормального напряжения аккумуляторного блока, его разряда, индикации процесса заряда и сообщения исправности подключенного источника питания.
Для того, чтобы не запутаться, что и куда нужно подключать, я схематично нарисовал плату Arduino Nano и распределил сигналы для нее.

Роботостроительство – делаем базовую платформу для будущего робота - 66

Порты Rx/Tx занимает модуль bluetooth, который работает по протоколу UART. Сигналы IN1-IN4 по возможности заведены на цифровые порты – полярность этих сигналов будет определять направление вращения двигателей, а ENA/ENB на те порты, которые позволяют выдавать ШИМ сигналы – эти сигналы будут задавать скорость вращения двигателей. Значения сигналов телеметрии платформы будут оцифровываться аналоговыми входами A0-A3 платы Arduino Nano. Светодиод занимает порты A4 и A5, причём он подключен через джамперы. Дело в том, что именно эти два порта нужны для простой организации протокола I2C и, если он нам понадобится, мы просто можем снять джамперы. Светодиод же можно «перекинуть» на другие свободные порты или подключить к освободившимся портам А4 и А5 модуль расширения портов (например, на базе микросхемы PCF8574T – даст дополнительных восемь цифровых портов ввода/вывода, управление модулем осуществляется как раз по протоколу I2C), к паре выводов которого и подключить светодиод. В результате такого распределения подключения сохранились возможности беспроблемного подключения устройств SPI, оцифровки ещё двух аналоговых сигналов, выдачи до четырёх ШИМ сигналов (например, для управления сервоприводами). В общем-то свободных сигналов хотелось бы больше, но их количество можно увеличить, используя PCF8574T. В конце концов, можно использовать еще один Arduino Nano или заменить его на более подходящую для требуемых задач платформу – определённый минимум данное решение вполне обеспечивает.

Также наша плата обеспечивает простое подключение к питанию: присутствуют контакты питания 5 В и напряжения с аккумуляторного блока (до 12,6 В).

Стоит отметить один нюанс используемой платы расширения для Arduino Nano. В принципе, плата расширения позволяет завести на неё Vbat. На плате расширения установлен преобразователь напряжения, который понижает входное напряжение до 5 В и подаёт его на плату Arduino Nano, преобразователь которой понижает его до 3,3 В, и уже это напряжение снимается с платы Arduino Nano и разводится по соответствующим контактам платы расширения. Однако, я не стал так делать и завёл 5 В на соответствующий контакт платы расширения. Кроме этого, контрольный светодиод на плате расширения вообще не светился, если не установлена плата Arduino Nano, то есть данная плата расширения без Arduino Nano, видимо, фактически неработоспособна. В причинах я разбираться не стал, но этот момент отметил.

Изготавливаем эту плату управления.

Роботостроительство – делаем базовую платформу для будущего робота - 67

Роботостроительство – делаем базовую платформу для будущего робота - 68

Роботостроительство – делаем базовую платформу для будущего робота - 69

Устанавливаем на неё электронные платы.

Роботостроительство – делаем базовую платформу для будущего робота - 70

Роботостроительство – делаем базовую платформу для будущего робота - 71

Роботостроительство – делаем базовую платформу для будущего робота - 72

Подготавливаем посадочные места под нашу плату. Заодно устанавливаем переключатель.

Роботостроительство – делаем базовую платформу для будущего робота - 73

Роботостроительство – делаем базовую платформу для будущего робота - 74

И всё собираем.

Роботостроительство – делаем базовую платформу для будущего робота - 75

Роботостроительство – делаем базовую платформу для будущего робота - 76

Теперь нужно изготовить кабель для соединения двух плат. Разъёмы питания так же пропаиваем для надёжности. Правильно и очень внимательно проверяем всё. 12 В должно приходить на 12 В, а 5 В – на 5 В. На картинках монтажных плат питания и управления изображён «вид сверху», то есть, если перевернуть платы, то с нижней, распаечной, стороны плат контакты меняются местами – это надо учитывать при изготовлении кабеля и проброса соответственных проводов в нём. Разъёмы я изготовил просто: сначала набирался ряд проводов с BLS разъёмами и обматывался на 2 раза скотчем. Потом собирались все два/три ряда вместе и снова туго обматывались скотчем. Получался целый и монолитный разъём. В неиспользованные контакты разъёма просто помещались пластиковые BLS разъёмы без контактов.

После изготовления кабеля с платы управления снимаются все электронные платы, и она проверяется с помощью мультиметра так же, как и плата питания. Соединяем плату управления с платой питания и подаём питание. С помощью мультиметра внимательно проверяем контакты питания всех модулей, любопытствуем напряжениями сигналов телеметрии – лишний раз убеждаемся, что всё разведено правильно. Можно этого и не делать, самоуверенно всё собрать, подать питание и обнаружить что каким-то, конечно же мистическим, образом перепутаны провода 5 В и Vbat и у нас сгорела плата Arduino и модуль bluetooth. Но лучше не повторять чужие ошибки.

На фотографии можно видеть, что один из красных проводов питания подкрашен серебристым цветом. Это обозначение проводника, который передаёт напряжение Vbat. Когда собирается устройство, полезно делать «ключи» для подключения. Например, специально не распаивать на разъёме один PLS контакт, а ответное гнездо в кабеле портить или забивать кусочком изоляции – в этом случае реализуется «защита от дурака», так как тогда такой кабель на соответствующий разъём на плате можно установить только безошибочно просто потому, что он иначе не установится (метод не даёт гарантии 100% — в интернете полно картинок, когда особо настойчивым индивидуумам всё же как-то удаётся обходить такую защиту, применив завидное упорство и свою недюжинную силу). Я обычно подкрашиваю соответствующие контакты на разъёмах. Полезно было бы на плате питания так обозначить входные разъёмы DC/DC преобразователей и подкрасить соответствующие гнёзда на плате. Это бы исключило неправильность установки преобразователей, а если использовать несколько цветов, то это исключит перепутывание плат преобразователей, которые формируют 5 В и 9 В. Для обозначения можно использовать яркий женский лак для ногтей. Это маленькое правило сильно помогает при частой сборке/разборке разрабатываемого устройства на этапе его отладки и тестирования.

Роботостроительство – делаем базовую платформу для будущего робота - 77

Роботостроительство – делаем базовую платформу для будущего робота - 78

Роботостроительство – делаем базовую платформу для будущего робота - 79

Подключаем кабель к плате питания.

Роботостроительство – делаем базовую платформу для будущего робота - 80

Роботостроительство – делаем базовую платформу для будущего робота - 81

И к плате микроконтроллера.

Роботостроительство – делаем базовую платформу для будущего робота - 82

Роботостроительство – делаем базовую платформу для будущего робота - 83

Роботостроительство – делаем базовую платформу для будущего робота - 84

Прежде чем всё собирать – снова проверяем работоспособность – щелкаем выключателем. И убеждаемся, что всё работает.
Работают два преобразователя напряжения.

Роботостроительство – делаем базовую платформу для будущего робота - 85

Работает драйвер двигателей.

Роботостроительство – делаем базовую платформу для будущего робота - 86

На модуль реле приходит питание.

Роботостроительство – делаем базовую платформу для будущего робота - 87

Удивительно — всё работает. Собираем всё вместе!

Роботостроительство – делаем базовую платформу для будущего робота - 88

Роботостроительство – делаем базовую платформу для будущего робота - 89

Роботостроительство – делаем базовую платформу для будущего робота - 90

Роботостроительство – делаем базовую платформу для будущего робота - 91

Проверяем, что после полной сборки всё тоже работоспособно.

Роботостроительство – делаем базовую платформу для будущего робота - 92

Роботостроительство – делаем базовую платформу для будущего робота - 93

Вот такого симпатягу мы собрали. Завесим новорождённого.

Роботостроительство – делаем базовую платформу для будущего робота - 94

Получили 1,4 кг.

Обычно, после окончания какой-то работы тот, кто её делал, понимает, как её можно сделать ещё лучше. Не стоит сразу бросаться всё переделывать, своевременно вспомнив, что лучшее – враг хорошего. Но и не стоит останавливаться на достигнутом. Практически любая работа – это 20 процентов творчества и 80 процентов рутины, которую необходимо сделать, чтобы получить готовый продукт труда. Именно рутина убивает интерес, желание, творчество. Поэтому если и не сразу что-то переделывать, то стоит подумать: а что можно улучшить в будущем?

Я бы хотел ненадолго вернуться к началу статьи, к моменту, когда мы разделили платформу на две части и вынесли плату управления «отдельно». На тот момент это казалось весьма сбалансированным решением. Однако, смотря на обильное поле контактов на плате расширения для Arduino, мы понимаем, что добрая половина этих контактов не может быть задействована при текущей реализации платформы – мы же заняли почти половину разъёмов ввода/вывода на плате Arduino. Да и сам микроконтроллер «крутит» не просто программу для выдачи пары ШИМ сигналов на двигатели, а обеспечивает полный контроль по внутреннему и внешнему питанию всей платформы. Стоит подумать – может быть стоит микроконтроллер включить в состав двигательного отсека нашей платформы? Bluetooth «отдать» «надплатформенной» электронике, которая будет управлять устройствами робота, и продумать с ней интерфейсный стык. Можно организовать протокол UART (займёт два пина микроконтроллера) по которому будет передаваться пакет данных, содержащий направление и скорость вращения двигателей, а также общее состояние платформы… И нужно хорошо подумать над конструктивом, так как места в двигательном отсеке у нас не так много… Хотя… Если развернуть и подвинуть реле…

Ну вот и закончилось моё длинное и местами занудное повествование. Разработано, изготовлено и собрано только «железо» – аппаратное обеспечение платформы. Следующая часть работы – программная. Но это не значит, что дальше работать нужно будет только программистом. В процессе создания прошивки для микроконтроллера и её отладки порой приходится брать мультиметр, а то и осциллограф, и разбираться какой сигнал, куда и в каком виде приходит. Обычно именно в начале этого этапа, в большей степени, проявляются ошибки и недосмотры «железячного» этапа проектирования. Наше устройство очень простое, поэтому если что-то не заработает, то ошибка быстро найдётся. А представляете каково работать с действительно сложными схемами? Там нужно быть гораздо внимательнее и аккуратнее. Так же необходимо будет организовать интерфейс управления через bluetooth с смартфоном – придумать какой-то протокол информационного взаимодействия робота с телефоном. И разработать программное обеспечение, с помощью которого комфортно и удобно управлять роботом. Но это всё – уже другая, отдельная история.

Некоторые используемые инструменты и оборудование
BOSCH GluePen. Клеевой пистолет. По терминологии Bosch – клеевой карандаш. Отличное мобильное решение. Работает на аккумуляторе 18650, то есть с заменой в будущем проблем не будет, а больше там ломаться особо и нечему. Быстро нагревается (15 секунд) и готов к работе, после выключения практически сразу прекращает работу – клей из него не течёт как в других термопистолетах. Нашёл применение в быту и рукоделии. Единственный минус – не такие распространённые клеевые стержни: 7 мм, высокотемпературные 150…170С (подходят стержни DREMEL GG01 и GG03).

Роботостроительство – делаем базовую платформу для будущего робота - 95

GROSS 17718. Инструмент для снятия изоляции (стриппер). Полный аналог известной модели KBT WS-04A, которую множество производителей передарала 1-в-1.

Роботостроительство – делаем базовую платформу для будущего робота - 96

HT-202A. Инструмент для обжима проводов с контактами разъёмов (кримпер).

Роботостроительство – делаем базовую платформу для будущего робота - 97

Solomon SL-30. Надежная паяльная станция. Напряжение питания паяльника 24В. Никелированное жало. Точный температурный контроль.

Роботостроительство – делаем базовую платформу для будущего робота - 98

SAIKE 8858. Он же Element 8032. Он же Yihua 8858. Он же ZHaoxin 858DH. Вариации между этими моделями есть, но исполнение, нагреватели и электроника одни и те же. Неплохой, удобный, дешевый и реально компактный паяльный фен. Покупался на импортном сайте, с последующей доработкой дешевого китайпрома: вытряхивание всякого металлического (!) мусора, отмывка флюса, пропайка контактов на плате, силовой симистор посажен на КПТ8. Пока доволен, фен – как фен, дует, температура и скорость наддува регулируется. В принципе, фен свои деньги оправдывает. Относительно недавняя покупка и пока непонятна статистика по надёжности, но подозреваю, что для нечастых работ сгодится.

Роботостроительство – делаем базовую платформу для будущего робота - 99

Metabo BZ 12SP. Очень старый шуруповёрт. Раритет. Такие уже, наверное, не продаются. Позволяет делать достаточно тонкую работу благодаря хорошей центровке и отсутствию биений шпинделя.

Роботостроительство – делаем базовую платформу для будущего робота - 100

Velleman VTHD02. Минидрель. Или как еще называют – дремель (хотя это неверно так же, как копиры называть ксероксами). Когда-то по акции был куплен комплект, польстился больше на комплект насадок, чем на саму дрель. Однако, она оказалась неплоха с доработкой по питанию. От родного блока питания работает, но под нагрузкой ей как-то тяжеловато. Года два назад, конечно же, исключительно временно, был сделан мобильный блок питания из отсека для четырёх аккумуляторов 18650 с регулируемым выходом. Минидрель стала автономной. С таким питанием минидрель стала себя чувствовать намного лучше и оказалась весьма полезным устройством в хозяйстве.

Роботостроительство – делаем базовую платформу для будущего робота - 101

Роботостроительство – делаем базовую платформу для будущего робота - 102

Noble NB4000P-4. Мультиметр. Удобен тем, что провода убираются полностью внутрь. Приобретён в тяжёлые студенческие годы. То есть – давно. Провода давно отломились – пришлось «приоперировать» от другого вышедшего из строя мультиметра. Теперь провода убираться перестали. Не раз менялась батарейка и предохранитель. Работает до сих пор – удивительная надёжность при посредственной точности.

Роботостроительство – делаем базовую платформу для будущего робота - 103

Fluke 179. Высокоточный мультиметр. Качественный, удобный и, главное, точный инструмент.

Роботостроительство – делаем базовую платформу для будущего робота - 104

Получила как реклама какая-то. Хотя… почему бы и нет – где тут мои комиссионные тогда? Все эти инструменты приведены для общего информирования. В своё время, я, например, открыл для себя стрипперы, которые процесс зачистки проводов превращают из рутины в удовольствие и ничуть не жалею о покупке BOSCH GluePen. Может быть, кому-то поможет эта небольшая подборка.

Для сборки своего робота вовсе необязательно иметь разнообразный и дорогой инструмент, хотя он, безусловно, повышает качество работы и приносит бóльшее удовольствие от неё. Вполне достаточно иметь обычный паяльник, несколько отвёрток и дрель. В конце концов, когда-то у автора этой статьи, давным-давно, в распоряжении имелись всего лишь пассатижи, молоток, пара отвёрток, медная проволока, коловорот (до сих пор где-то есть!) и два сверла, кусочки телефонных проводов и много синей изоленты (нередко — ранее использованной), этого вполне хватало, чтобы сделать простейшую машинку, которая при нажатии на кнопку самостоятельно ехала прямо.

Опросы

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

Автор: AlexanderS

Источник

Поделиться новостью

* - обязательные к заполнению поля