Arduino

технологии

Пульт управления: от проектирования до реализации

Корпус

Ранее для изготовления самоделок я брал готовые корпуса с aliexpress. Естественно, в них не было готовых креплений для плат и отверстий для экранов и элементов управления - приходилось выпиливать все это дремелем. Но все это время я думал о покупке 3D-принтера, и недавно решился.

Для проектирования 3D-моделей была выбрана программа Fusion 360, для подготовки к печати модели - Cura. Сначала я выбрал толщину стенок в 1mm, но этого оказалось крайне мало - корпус получается довольно хрупким и пружинистым. Идеальной толщиной оказалось 2mm.

Вот первый вариант корпуса:

Hexapod remote control ver1

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

Начал проектировать вторую (текущую) версию корпуса. Вот промежуточная 3D-модель, еще без отверстий под джойстики:

Hexapod remote control 3d model ver2

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

Размер корпуса позволил без проблем разместить в нем и экран, и Arduino Mega, и иметь доступ ко всем элементам для их обслуживания и замены при необходимости:

Hexapod remote control inside

Да, проводка не аккуратная, знаю, работаю над этим :) Вот итоговая версия:

Hexapod remote control inside

В верхней части корпуса - bluetooth. В левой два разъема: для прошивки и для внешнего блока питания при отсутствии батареек. На внешней части: четырехстрочный монохромный дисплей, спикер, выключатель, 8 кнопок, потенциометр, два джойстика и цифровой блок.

Функционал

На данный момент реализован обмен командами между роботом и пультом, заложены базовые функции - переключение между экранами, прием и вывод на дисплей информации от робота.

В планах реализовать следующие режимы работы пульта управления:

  • управление (основной) - передача команд робота, прием и вывод на дисплей его текущего статуса
  • калибровка - для задания нулевых положений сервомоторов
  • изменения параметров - начальных положений конечностей, а также амплитуд при разных движениях
  • тестирование - проверка работоспособности сервомоторов и других узлов
  • произвольные движения - перемещения конечностей в пространстве по произвольно заданными координатам
  • тестирование пульта
  • лог ошибок - вывод и очистка ошибок пульта и робота

В следующем посте я расскажу о алгоритмах движения робота, будет немного математики. До встречи.

9 июня 2019