![](https://habrastorage.org/webt/ft/93/m5/ft93m5szh_bfaxkmnxialxpkoiu.png)
WARNING: Данная статья устарела и носит исключительно исторический характер!
Всем привет! Не так давно я начал изучать программирование под микроконтроллеры. По началу написание простых программ для мигания светодиодом и даже двумя уже не доставляло удовольствие и становилось скучно. И вот одним вечером сидя в раздумьях над тем, чем же занять свою голову, решил найти более сложные проекты. На просторах интернета увидел много вещей, которые создают люди, но больше всего меня удивил шестиногий робот или hexapod.
Вдохновившись картинками и видео решил опробовать свои силы. Разработка корпуса, электроники и программы будет вестись с 0.
Этапы разработки:
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника
Часть 6 — переход на 3D печать
Часть 7 — новый корпус, прикладное ПО и протоколы общения
Часть 8 — улучшенная математика передвижения
Часть 9 — завершение версии 1.00
Разработка 3D модели корпуса
Исходные материалы и комплектующие для будущего робота:
0. Arduno Due (писать будем в Atmel Studio на чистом C без Arduino IDE, заодно расскажу как подключить отладчик к этой плате) — 1шт;
1. HLK-RM04 (UART to WIFI converter) — прозрачный мост с UART в WIFI — 2шт;
2. Сервоприводы MG996R (из китая, как же без него) — 18шт;
3. LM317D2T-TR для питания сервоприводов + мелкая рассыпуха в виде резисторов и конденсаторов;
4. САПР «КОМПАС 3D»;
5. Фанера 3мм в качестве материала для корпуса (дёшево и пахнет вкусно);
6. Возможность заказать лазерную резку;
7. Время. Много времени.
В самом начале пути встал вопрос «А какой же корпус я хочу?». В процессе поиска ответа на данный вопрос набрел на несколько готовых решений. Больше всего понравились PhantomX и A-Pod. Посмотрев на корпуса, решил уже было начать разработку, но нет. Появилась следующая проблема: так как этих роботов в глаза я не видел и в руках не держал, то я имел плохое представление об их габаритах. В поиске решения этой проблемы я наткнулся на одну из статей на хабре. Автор статьи tomnewmann любезно поделился со мной чертежами своего проекта, за что ему большое спасибо.
Оценив размеры будущих деталей и немного обдумав всю полученную информацию начал набрасывать чертежи корпуса. Я посчитал, что разумнее будет начать с проектирования ног, так как они являются наиболее сложной часть корпуса.
Coxa
Спустя несколько часов размышлений появилась первая модель «Coxa» (так принято обозначать узел, соединяющий ногу с корпусом). Узел попытался сделать максимально компактным. Сервопривод будет полностью находится внутри, соответственно нужно не забыть (что я первый раз и сделал) про отверстие для вывода проводов.
![](https://habrastorage.org/webt/2b/_e/g_/2b_eg_c3kpsphq8-tryl3cfy8ve.png)
Деталь 1 — Ось, на которую будет крепиться Femur (вторая часть ноги). Собрана из винта М3x15, шайбы и гайки М3
Деталь 2 — Винт М3x20
Деталь 3 — Стойка для печатных плат M3x20
Деталь 4 — Являются своего рода фиксаторами сервопривода, для предотвращения его перемещения по вертикали.
Высоту (А) данного узла необходимо делать такой, чтобы в внутрь смог уместиться сервопривод, который будет стоять на раме.
Femur
Далее нужно сделать «Femur». Деталь оказалась самой простой из всех и думаю не нуждается в комментариях.
![](https://habrastorage.org/webt/nj/mo/pj/njmopjanm4zitfnye2fyck-tuka.png)
Деталь 1 — Винт М3x20
Деталь 2 — Пластиковая втулка 3x10 (длинную стойку я не нашел, пришлось искать другие пути решения)
Деталь 3 — Стойка для печатных плат M3x30
Tibia
Следующая деталь — «Tibia», последняя часть ноги. С ней проблем быть не должно и её длина зависит от высоты, на которую планируется понимать робота. У меня она составляет 130мм от оси сервопривода, больше делать не стал, так как с увеличением длины увеличивается и нагрузка на сервоприводы, особенно на сервопривод в «Coxa». На второй стороне сделал на второе отверстие под ось, чтобы можно было перевернуть сервопривод и уменьшить длину рычага, если вдруг сервоприводам будет тяжело.
![](https://habrastorage.org/webt/dj/tx/lo/djtxloq4q7n9ice9abiq_wruqhu.png)
Рама
Далее на очереди идет рама — самая большая часть. Именно она определяет конфигурацию ног будущего робота. Существует несколько вариантов расположения ног, но я остановился на варианте буквой Ж (при взгляде сверху похож).
На первых этапах проектирования возник вопрос: «А на каком расстоянии должны находится ноги друг от друга?». В поисках ответа на этой вопрос я понял, что каких-либо рекомендаций по этому поводу нет. Изучая чужие проекты и варианты походок сделал вывод о том, что расстояние подбирается исходя из желаемого максимального угла поворота конечности. Чем больше расстояние между ногами тем больший угол могут достичь конечности во время ходьбы.
В решении данного вопроса помогли чертежи tomnewmann, из которых я и взял расстояние между ног, так как габариты роботов были довольно похожи (мой немного меньше). Спустя несколько часов родились верхняя и нижняя части рамы:
![](https://habrastorage.org/webt/sh/mf/tn/shmftn5riosc7y8kentznhyjnyy.png)
В нижней части рамы сделан вырез под АКБ и его крепления. Кстати крепиться он будет на липучку, которые используются на квадриках при креплении АКБ к ним. Рама получилось довольно большой. Посидев еще 1 вечер и сделав промежуточные детали в виде опор между частями, я решил, что пора сделать сборку рамы с установленными сервоприводами. Результат не заставил себя долго ждать:
![](https://habrastorage.org/webt/il/fs/j3/ilfsj32udo0u9hxkqkktartolaa.png)
Так как все необходимые компоненты у нас уже есть, то можно сделать полную сборку корпуса:
![](https://habrastorage.org/webt/ux/kw/nu/uxkwnu460pxqga9f_bl-mpzehe4.png)
В центре корпуса между пластинами планировался располагаться блок питания для сервоприводов, снизу 3S Li-po аккумулятор, а сверху плата управления (Arduino Due). В соответствии с этим я изменил сборку рамы:
![](https://habrastorage.org/webt/lx/fi/ft/lxfiftd7hzk6b7quek6fuqrky5w.png)
Плата сверху это модель Arduino Mega c каким-то шилдом. Используется просто для вида и имеет аналогичные размеры, как и Due.
Выглядит это не очень красиво, а с учетом проводов, которые будут торчать будет еще хуже. К тому же тело казалось мне очень худым. Я решил максимально прикрыть электронику без ущерба внешнему виду и придумать название своему детищу.
Решением первой задачей являлись крышки сверху и снизу, закрывающие АКБ и управляющую электронику. Это единственные детали, которые будут собраны при помощи клея. Спустя вечер родилась модель нижней крышки.
![](https://habrastorage.org/webt/se/l5/aw/sel5awatpgnqk4ibskmntmw_uha.png)
Если с первой задачей проблем не было, то со второй задачей возникли трудности на 2 дня. Да, именно столько времени у меня заняло, чтобы просто придумать ему имя. Случайно вспомнив фильм «Терминатор» решил назвать его «Skynet» и вырезать имя на верхней крышке. Так же добавил вырезы для HC-SR04.
![](https://habrastorage.org/webt/an/1l/31/an1l31wscrb_typmlamj5ojzz_k.png)
В результате добавления всего двух крышей, корпус существенно изменил внешний вид в лучшую сторону:
![](https://habrastorage.org/webt/w1/0d/bo/w10dbo96poo91kupuppmtfqh70g.png)
Полученный результат меня очень впечатлил и внешний вид довольно привлекателен. Во второй части расскажу о сборке корпуса и граблях, на которые я наступал.