Всем привет. В этой статье я попытаюсь поделиться своим небольшим опытом в построении бюджетного но технологически неплохого робота-паука.
Краткое предисловие:
Однажды, прочитав массу интересных статей о том как строят многоногих шагающих роботов, такой идеей загорелся и я. Но вот те статьи что мне попадались больше концентрировались на том как его мастерить. Филигранное владение напильником, чудеса с оргстеклом, кружок для тек у кого дома завалялся лазерный резак, фрезерный станок и прочее, чего у большинства явно не найдется.
Другой неприятной стороной было то что в качестве мозгов в основном использовались — если не ардуино, то STM32. Мне же хотелось занимтаься программированием. Научить робота бегать за мячиком, обходить препятсвия, передвигаться по открытомй пространству. То есть то, для чего надо больше чем ардуина. Упирались все желания в деньги, которых мало, и руки, которые кривые. Постараюсь поведать как оба этих препятствия я обошел.
Платформа:
В качестве платформы я открыл для себя готовые наборы на алиэкспрессе или ебее. Типа такого:
Это наборы делатей, вырезанные из аллюминия. Довольно легкие, чуть тяжелее пластика, но уже металл. Ищутся по запросу «6 legs hexapod robot kit», можно найти по цене до 100 долларов, и в комплекте будут не только большие детали, но и мелкие поворотные подшипники, болты, гайки, в общем всё необходимое.
Идут они без сервомоторов, которые рукомендую заказывать отдельно. Можно и с моторами заказать, но я бы рекомендовал не доверять в этом выборе китацам. Формфактор у них унифицирован, так что можно перебрать довольно много сервов, в зависимости от вкусов. Тут я допустил первую ошибку. Предварительно узнав, что сервомоторы отличаются тем что могут быть:
- На разное усилие. например 3 кг на 1 см плеча, 5, или даже 10. Что соответственносказывается на том, нсколько тяжелый можеть быть робот;
- С разными материалами шестерен. Железные или пластмассовые. Ну тут всё понятно. Железо должно быть крепче;
- Цифровые или аналоговые. Внешне никак не отличаются, но цифровые двигаются быстрее, точнее, резче, выдерживают болшее усилие.
Я подумал — ну конечно же мне нужен робот на самых сильных (12 кг/см) железных шестернях с цифровым контроллером (в моем случае это были китайские TOWARD PRO 996M). И только когда робот смог встать на ноги только используя минимум 10 Амперный станионарный БП, а никаких батареек ему не хватало — он просто дергал лапами и провода начинали плавиться, я понял что надо было быть скромнее.
Мало того что я не мог обеспечить его питанием (почему-то идея многоэтажных аккумуляторов не привлекала), так вес 20 сервомоторов с железными шестернямид добавил пару килограммов. Следующей партией мне приехали с хоббикинга сервы аналоговые, пластиковые на 5 кг. Робот бодро встал на стационарном БП, но 5 никелевых аккумуляторов его не поднимали. Докинув еще 5, оказалось что этого вполне (и довольно надолго хватает).
Печально вздохнув о выкинутых на ветер 100 долларах не первые 20 сервомоторов, я начал думать, как бы теперь этим всем удобно управлять и какие мозги использовать. На первое время для проверки сервов я использовал собранную на коленке плату с воткнутой stm32f4 Discovery.
Но ни паять дальше, ни травить платы у меня уже желания не было. Нужно было что-то более… удобное.
Поскольку в целях было машинное зрение, я взял распберри пай A+, он отличается более мелкими размерами и низким потребляемым током. Вся цифровая часть робота потребляет около 150 мА. К слову, роутер TP-Link mr3020, имеющий такой же размер и очень популярный среди любителей мелких железяк со встроенным линуксом потребляет ровно столько же, имея всего 32 мб ОЗУ и 4 мб ПЗУ. Что не дает развернуться на нем как следует. Распберри же имеет 256 мб ОЗУ и сд карточку памяти.
Теперешняя цена его около 20 с копейками евро.
Дальше надо было чем-то управлять лапами, и были куплены 2 платы с контроллерами ШИМ, управляющиеся по I2C шине и имеюшие 16 выходов каждый. На Алиэкспрессе они продаются около 5 баксов штука.
Там же были куплены I2C модули часов, гироскопа, цифрового компаса, барометра/термометра. А так же 2 платы — одна заряжает от 5 вольт литиевую батарею, а вторая делает из 3 вольт литиевой батарейки 5 на выходе. Это было нужно чтоб использовать отделную литиевую батарейку( от старой мобилки) для питания цифровой части во избежание наводок от моторов.
В сумме по деньгам это вышло из рассчета 2-5 долларов за модуль.
Все модули (датчики и контроллеры сервов) висят на одной i2c шине, и пока что работают без особых проблем, требуя всего 4 провода от распберри.
Еще один фейл поджидал на этапе выбора камеры. За 20 баксов была заказана «Raspberry PI camera noIr» — камера, подключаемая в специальный разъем распберри. Радость от того что она видит в ИК диапазоне была тут же омрачена тем что цветопередача очень зависела от источника освещения. Ни о каком машинном зрении, когда тестовый мячик днем красный, а вечером белый, не могло быть и речи. За те же 20 баксов была приобретена простая камера, которая вполне неплохо справляется с задачами.
Особо порадовало что для всех плат очень легко найти примеры на питоне, с котроыми можно быстренько проверить их работу — подергать сервомотором или посмотреть угол наклона
Таким образом примерно за 300 долларов можно собрать робота, имеющего 6 ног, линукс на борту, запитанного от батарей, обладающего датчиками и камерой. Пайка требуется только для шлейфа I2C и проводов питания. Конечно это не всё, в планах продолжить обвешивать его датчиками и, верочтно, манипуляторами, но дальше дело за фантазией конструкторов. Запас полезного веса присутсвует — в таком виде робот держит свой вес на 3 ногах.
Батареек, питающий мозги (4.5Ач) хватает на несколько часов работы, а никелевых аккумуляторов (5Ач) на то чтоб несколько раз пройти по офису туда-назад (пока за день посадить не удалось) Первая батарейка заряжается от USB адаптера, вторая — универсальной зарядкой для никелевых аккумуляторов, которую можно найти в магазинах, специализирующихся на радиомоделях.
Много моментов осветить не удалось, так как путешествие по граблям длилось больше года.
Надеюсь мой пост подтолкнет кого-нибудь к увеличению поголовья роботов.
P.S.: я специально не затрагиваю софтовые вопросы, так как рассматриваю этого робота как тренажер и вмеру универсальный исопльнительный механизм.
ссылка на оригинал статьи https://geektimes.ru/post/275304/
Добавить комментарий