Всем привет! Разработка гексапода близится к завершению первой боевой версии и вот настало время для описания всей его электронной начинки. На данном этапе разработки я наконец-то покажу все исходники проекта на github (ссылки как всегда будут в конце). Так же я добавил HC-SR04 для обнаружения препятствий, которого так не хватало для визуальной удовлетворенности во внешнем виде гексапода. Будет немного нового видео и у Вас есть шанс меня отпинать по электронике.
Изначально корпус проектировался под раздельные платы питания и управления, чтобы одну разместить в центре корпуса ближе к АКБ, а вторую вынести наверх для удобства отладки. И так давайте начнем.
Блок управления
Блок управления является «мозгом» гексапода на базе контроллера SAM3X8E и состоит из двух плат: плата с контроллером и плата распределения. Плата с контроллером используется уже готовая (картинка ниже), а вот плату распределения придется изготовить. Возможно в будущем закажу плату на производстве с местом под контроллер, чтобы убрать бутерброд.
Главная цель платы распределения — питать «легкие» периферийные устройства, контроллер и распределять сигналы по его пинам. Я составил список своих требований к этой плате:
- Возможность установки на плату HLK-RM04 (UART-WIFI converter);
- Возможность подключения I2C дисплея;
- Возможность подключения HC-SR04;
- Возможность измерять напряжение АКБ = напряжение питания платы;
- Возможность измерять напряжение питания периферии и HLK-RM04;
- Подключение пищалки для индикации разряда АКБ;
- Светодиодная индикация состояния системы: отвалилось что-то важное (конфигурация не верная или еще что-нибудь), отвалилось что-то неважное (дисплей к примеру), все ОК;
Немного определившись с элементной базой и оценив возможности моей заначки с рассыпухой я начал сразу сделал разводку платы без создания её принципиальной схемы. Заработало всё с первого раза и косяков в работе пока не обнаружил. Разводка получилась следующей:
Дорожки специально делал широкими, чтобы в процессе изготовления не было проблем. Плату решил изготовить ЛУТом, хорошо получилось только со 2 раза. Под спойлером фотографии для сравнения неудачного и удачного вариантов (слева неудачный, справа удачный).
Ну дальше всё по инструкции — лудим плату, сверлим дырки и закидываем компоненты. Результат не заставил себя долго ждать:
В центре вставляется HLK-RM04, справа в гребенку шлейф к плате питания, слева подается питание. Напряжение на плате измеряется простым делителем напряжения. При долгой работе (минут 30 — 40) регулятор напряжения для 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 платы распределения и питания
- Чертежи
Ссылки на другие этапы разработки
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Автор: Алексей