Всем привет! Разработка гексапода близится к завершению первой боевой версии и вот настало время для описания всей его электронной начинки. На данном этапе разработки я наконец-то покажу все исходники проекта на github (ссылки как всегда будут в конце). Так же я добавил HC-SR04 для обнаружения препятствий, которого так не хватало для визуальной удовлетворенности во внешнем виде гексапода. Будет немного нового видео и у Вас есть шанс меня отпинать по электронике.
Вид с установленным HC-SR04
Изначально корпус проектировался под раздельные платы питания и управления, чтобы одну разместить в центре корпуса ближе к АКБ, а вторую вынести наверх для удобства отладки. И так давайте начнем.
Блок управления
Блок управления является «мозгом» гексапода на базе контроллера SAM3X8E и состоит из двух плат: плата с контроллером и плата распределения. Плата с контроллером используется уже готовая (картинка ниже), а вот плату распределения придется изготовить. Возможно в будущем закажу плату на производстве с местом под контроллер, чтобы убрать бутерброд.
Главная цель платы распределения — питать «легкие» периферийные устройства, контроллер и распределять сигналы по его пинам. Я составил список своих требований к этой плате:
- Возможность установки на плату HLK-RM04 (UART-WIFI converter);
- Возможность подключения I2C дисплея;
- Возможность подключения HC-SR04;
- Возможность измерять напряжение АКБ = напряжение питания платы;
- Возможность измерять напряжение питания периферии и HLK-RM04;
- Подключение пищалки для индикации разряда АКБ;
- Светодиодная индикация состояния системы: отвалилось что-то важное (конфигурация не верная или еще что-нибудь), отвалилось что-то неважное (дисплей к примеру), все ОК;
Немного определившись с элементной базой и оценив возможности моей заначки с рассыпухой я начал сразу сделал разводку платы без создания её принципиальной схемы. Заработало всё с первого раза и косяков в работе пока не обнаружил. Разводка получилась следующей:
Дорожки специально делал широкими, чтобы в процессе изготовления не было проблем. Плату решил изготовить ЛУТом, хорошо получилось только со 2 раза. Под спойлером фотографии для сравнения неудачного и удачного вариантов (слева неудачный, справа удачный).
Фотки
Ну дальше всё по инструкции — лудим плату, сверлим дырки и закидываем компоненты. Результат не заставил себя долго ждать:
В центре вставляется HLK-RM04, справа в гребенку шлейф к плате питания, слева подается питание. Напряжение на плате измеряется простым делителем напряжения. При долгой работе (минут 30 — 40) регулятор напряжения для HLK-RM04 ощутимо нагревается и я на всякий случай поставил радиатор.
HLK-RM04
Плата питания
Суммарный ток потребления (пиковый) приводами составляет приблизительно 30А (в среднем по ~1.3A на привод) при сильной нагрузке, при ходьбе 10-13А, в состоянии покоя — 5-6А. Измерения проводил опытным путем мультиметром.
Питание я решил сделать отдельным для каждого привода основанным на линейных регуляторах напряжения, т.е. 18 линейных регуляторов напряжения — по одному на каждый привод. В качестве линейных регуляторов используются LM317D2T-TR сконфигурированные на выдачу 5V. Есть несколько причин для использования 18 линейных регуляторов напряжения и использования регуляторов в принципе:
- Напрямую подключить приводы к АКБ нельзя, для них максимальное допустимое напряжение питания 6В;
- Относительная независимость скорости\усилия приводов от входного напряжения;
- Линейных регуляторов у меня завались. Я когда-то ими закупился на Ali пакетом 70шт (пункт внес наибольший вклад в решение);
- Я не нашел линейного регулятора напряжения на такой ток;
- Я не нашел схемы компактного и легкого DC-DC на такой ток;
- Вариант параллельного подключения регуляторов довольно сомнителен;
- Вариант «линейный регулятор + усилительный транзистор» лишает схему питания всех защитный функций, которые дает линейный регулятор (по крайней мере так пишут люди и в данном случае я с ними согласен);
- Я довольно плохо разбираюсь в проектировании импульсных источников питания;
Плата очень простая и я так же не стал рисовать для нее принципиальную схему, да и желание поскорее увидеть результат тоже давало о себе знать. Разводка получилась следующей:
Сверху имеются контактные площадки для припаивания проводов для АКБ, снизу гребенка под шлейф и питание к блоку управления, а по бокам подключаются приводы. Изначально хотел еще сделать возможность измерения величины потребляемого тока каждым сервоприводом и измерение температуры платы, но решил пока не усложнять.
Плата получилась простой и надежной, ломаться там нечему. Проводил тесты на нагрузку при входном напряжении 11.1V (3S LiPo) и 7.4V (2S LiPo). При входном напряжении 11.1V, как и ожидалось, регуляторы слишком сильно нагревались и срабатывала защита по температуре во время ходьбы (радиатор соответственно не спасал, да и еще к тому же регуляторы SMD), что вынудило меня снизить входное напряжение. При напряжении 7.4V регуляторы теплые и при продолжительной ходьбе защита уже не срабатывает — то что нужно.
Плату так же изготавливал ЛУТом и получилась она довольно неплохо с первого раза. К сожалению, есть только фотография экспериментальной версии платы, а новую вытаскивать из корпуса это часа 4 где-то и разбирать ради фотографии не очень хотелось (нужно разобрать около 70% корпуса). Отличие старой от новой только в отсутствии дырок по центральной линии платы (проводились веселые эксперименты).
Немного видео и исходники
- Прошивка (проект в AtmelStudio на C)
- Программа управления (Qt/QML под Android и Windows)
- Разного рода документация
- PCB платы распределения и питания
- Чертежи
Тестирование работы HC-SR04
Отношение моего кота к гексаподу
Первая гулянка по улице
Ссылки на другие этапы разработки
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Комментарии (12)
Dasyo
21.04.2019 17:30Здорово, такой же хочу.
Neoprog Автор
21.04.2019 17:34Вы можете его собрать. На данном этапе разработки можно собрать уже рабочий прототип. Если будут проблемы по сборке/настройке, то я помогу их решить.
Dasyo
21.04.2019 21:54Спасибо за предложение о поддержке. Как только закончу мучить свой недоделанный 3D принтер, сразу займусь Вашим творением.
igar_ok
22.04.2019 16:49Мой кот тоже не реагирует на всякие «роботележки», но вот лазерный принтер для него худший враг :)
Fox_Alex
Не забывайте, что у LM317 по паспорту минимальное напряжение вход-выход 3В.
The device requires up to 3-V headroom(VI– VO) to operate in regulation.
То есть получить 5В можно только при питании не менее 8В. Все что ниже — характеристики не гарантированы и могут быть проблемы.
Тут так и просится один большой импульсный преобразователь. Это же автономный аппарат, тут КПД имеет значение.
Вот готовые варианты:
www.pololu.com/product/2866
ru.aliexpress.com/item/300W-20A-DC-DC-Buck-Converter-Step-down-Module-Constant-Current-LED-Driver-Power-Step-Down/32817841374.html
Neoprog Автор
Спасибо. Нужно попробовать собрать.
Fox_Alex
Вообще 10-13А как-то многовато. И попалить сервы таким блоком питания будет очень легко. По этому правильно будет иметь на каждую серву по датчику тока и транзистору, чтоб ее выключать в случае перегрузки. Датчики тока можно сделать в виде резистора в 0,1 Ом в минусовой цепи питания, сигнал с него усиливать и подавать на АЦП. А имея такую обратную связь можно уже программно ее интерпретировать как касание поверхности или упор в какой-то предмет при ходьбе. Простор для творчества)
Еще как вариант — на каждую серву свой импульсный преобразователь. TPS56220 можно со всей обвязкой впихнуть в площадь одной LM317. И корпус у него довольно гуманный для домашней пайки. Но такой вариант конечно выйдет дороже.