Робот представляет собой шестиного паука, состоящего из Arduino Uno, 18 сервомоторов и servo shield для управления данными моторами.
Все файлы представляющие собой корпус робота находятся в папке body и разделены по уровням.
body_1_bottom.SLDPRT - тело робота, к котоому крепятся все запчасти. Вырезано при помощи лазерной резки, все следующие файлы печатались на 3д принтере.
Файлы 1_... являются коннекторами и корпусами для сервомоторов крепящихся к корпусу. Файлы 2_... являются коннекторами и корпусами для сервомоторов находящихся посередине. Файлы 3_... являются коннекторами и корпусами для сервомоторов находящихся возле ноги. Файл ножка.SLDPRT является ногой робота, которой он касается земли.
Код был написан с использованием обратной кинематики (https://www.youtube.com/watch?v=HjmIOKSp7v4&t=177s&ab_channel=JustAnotherMakerChannel). Движение происходит таким образом
- В коде определяются относительные начальные и конечные координаты положения конца ног робота
- Траектория движения определяется при помощи интерполяции (добавления точек между начальными и конечными координатами, чтобы моторы двигались плавно)
- На основе данных координат расчитываются углы поворота сервомоторов
- Углы сервомоторов загружаются на сервомоторы и робот движется
Такая стратегия помогает минимизировать расчеты со стороны человека и сделать движение максимально плавным. Сам код можно найти в файле src/hexapod.ino. Для загрузки кода на arduino Uno используется Arduino IDE.
Из-за того, что 18 сервомоторов требуют большого напряжения на их входах, питание робота должно производится одновременно подключая питание ко входу Servo Shield и Arduino Uno. Причем движение в таком случае является немного дерганным. Такое поведение возможно по 2 причинам:
- Servo Shield не рассчитан на такое большое входное напряжение
- Поданного на сервомоторы напряжения все еще недостаточно