Корпус
Ранее для изготовления самоделок я брал готовые корпуса с aliexpress. Естественно, в них не было готовых креплений для плат и отверстий для экранов и элементов управления - приходилось выпиливать все это дремелем. Но все это время я думал о покупке 3D-принтера, и недавно решился.
Для проектирования 3D-моделей была выбрана программа Fusion 360, для подготовки к печати модели - Cura. Сначала я выбрал толщину стенок в 1mm, но этого оказалось крайне мало - корпус получается довольно хрупким и пружинистым. Идеальной толщиной оказалось 2mm.
Вот первый вариант корпуса:
Справа внизу - место крепления джойстика. Но еще до его установки я понял, что корпус нужно переделывать. Идея была в том, чтобы с пульта управления можно было делать все настройки hexapod-а, без потребности подключения его к компьютеру. А для этого нужно больше элементов управления. Как минимум, нужен был цифровой блок для ввода значений разных параметров.
Начал проектировать вторую (текущую) версию корпуса. Вот промежуточная 3D-модель, еще без отверстий под джойстики:
Так как батарейный блок располагался внутри корпуса и предполагалось, что для смены батареек потребуется снимать заднюю крышку, в углах корпуса были сделаны места под шайбы, и крышка держится на четырех металлических болтах.
Размер корпуса позволил без проблем разместить в нем и экран, и Arduino Mega, и иметь доступ ко всем элементам для их обслуживания и замены при необходимости:
Да, проводка не аккуратная, знаю, работаю над этим :) Вот итоговая версия:
В верхней части корпуса - bluetooth. В левой два разъема: для прошивки и для внешнего блока питания при отсутствии батареек. На внешней части: четырехстрочный монохромный дисплей, спикер, выключатель, 8 кнопок, потенциометр, два джойстика и цифровой блок.
Функционал
На данный момент реализован обмен командами между роботом и пультом, заложены базовые функции - переключение между экранами, прием и вывод на дисплей информации от робота.
В планах реализовать следующие режимы работы пульта управления:
- управление (основной) - передача команд робота, прием и вывод на дисплей его текущего статуса
- калибровка - для задания нулевых положений сервомоторов
- изменения параметров - начальных положений конечностей, а также амплитуд при разных движениях
- тестирование - проверка работоспособности сервомоторов и других узлов
- произвольные движения - перемещения конечностей в пространстве по произвольно заданными координатам
- тестирование пульта
- лог ошибок - вывод и очистка ошибок пульта и робота
В следующем посте я расскажу о алгоритмах движения робота, будет немного математики. До встречи.
9 июня 2019