Суббота, 05 марта 2022 20:22

РУКА-РОБОТ: ЧАСТЬ 2

Автор

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

Шаг 5: сборка пальцев

Рисунок 1. Фаланга пальца

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

Рисунок 2. Палец

Проденьте резинку через отверстия на верхней стороне, и, если вы хотите проверить леску, проденьте её через отверстия на нижней стороне. При натягивании палец должен сжиматься, а при отпускании резинка будет тянуть его назад. Повторите для 4 пальцев (большой палец делается позже).

Рисунок 3. Добавление резинки

Возьмите три резистора, отложенных ранее и припаяйте к ним провода. Рекомендуем надеть на их концы термоусадочные трубки разных цветов, чтобы легче было различать сегменты. Поверните все переменные резисторы на 90 градусов (между двумя концами, блокирующими вращение), затем вставьте каждый из них в указательный, средний и безымянный пальцы (рисунок 4). Мизинцу он не нужен, потому что и он, и безымянный палец подключены к одному и тому же сервоприводу.

Рисунок 4. Вставка резисторов

Поместите пальцы в отверстия напечатанной на 3D-принтере ладони (сверху) и проденьте резинку её через отверстие. Удерживая руку в натянутом положении, добавьте суперклей или эпоксидную смолу. Проденьте провода через ладонь и вытащите у запястья. 

Рисунок 5. Провода в руке

Шаг 6: создайте руку

Рисунок 6

Прикрутите 4 чёрных шкива к 4 модифицированным сервоприводам.

Выше вы можете найти рисунок 6, на котором видно, куда идут все сервоприводы в руке, и где соединяется леска. Чтобы упростить проводку, соберите её в следующем порядке:

  • сервопривод непрерывного вращения для сокращения большого пальца;
  • пропустите сервопривод через ладонь провода к обычному, неизмененному SG90 для вращения большого пальца;

Рисунок 7. Рука с сервоприводами

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

Прежде чем продолжить, проверьте ещё раз, все ли сервоприводы работают (проще исправить проблемы до того, как рука будет собрана).

Рисунок 8. Склейка плетёного нейлонового рукава

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

Рисунок 9. Леска

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

Рисунок 10. Соединение 

Соедините две половины ладони вместе. Пропустите леску через 4 пальца и завяжите её узлом на концах каждого.

Рисунок 11. Связка пальцев

Шаг 7: запястье

Рисунок 12

Вверните 8 винтов на каждый конец четырёх заготовленных заранее пружин. Важно использовать винты с достаточно широкой головкой, чтобы они не проскальзывали через концы пружин.

Вкрутите обе стороны пружины — одну в ладонь, другую в предплечье. Для этого нужно их согнуть и использовать тонкую отвертку (будьте осторожны, не растяните пружины).

Рисунок 13. Вверните пружины

Как только все 4 пружины соединят предплечье с ладонью, разместите между ними напечатанную на 3D-принтере сферу. Вместо неё можно использовать шарик для пинг-понга.

Рисунок 14. Соединение деталей

Передвиньте сервоприводы на 90 градусов. Код можно найти здесь:

https://github.com/WillDonaldson/Robotic-Arm-initial-prototype/blob/master/ServoTestCode/Move_individual_servo_to_90_degrees.ino

Под углом нужным углом привяжите два отрезка лески к сервоприводам, по одному на каждый конец. Установите SG90 в предплечье.

Рисунок 15. Крепление

Несколько советов:

Из 4 отверстий для винтов, используемых для крепления сервоприводов, только к одному можно добраться с помощью отвертки, поэтому рекомендуем воспользоваться клеем, чтобы закрепить их.

После установки сервоприводов, пропустите леску через каждое отверстие предплечья и завяжите узел вокруг винта. 

Шаг 8: предплечье и проводка

Рисунок 16. Предплечье

Проденьте провода через трубку, сбоку от первой части предплечья (рисунок16). Прикрутите вторую часть к первой. Поместите 9-вольтовую батарею в гнездо предплечья и припаяйте штекер постоянного тока с «+» в центре.

Рисунок 17. Вставка батареи

На изображении 18 вы можете увидеть, как выглядит чип, который был сохранён от модифицированного сервопривода 2-в-1.

Рисунок 18. Чип

Припаяйте двигатель к соответствующему резистору (который находится в костяшках указательного и безымянного пальцев), опираясь на микросхему. Теперь этот сервопривод работает так же, как и другие (рисунок 19).

Рисунок 19. Схема

На рисунке 20 есть схема подключения к плате Arduino Uno. Обратите внимание, что красные сервоприводы — обычные, а фиолетовые — те, у которых нет показаний положения с резистора.

С помощью потенциометра, помещённого в сустав среднего пальца, можем получать показания вращения и использовать его для управления соответствующим фиолетовым сервоприводом с непрерывным вращением.

Рисунок 20. Подключение к Arduino

Добавляем переключатель мгновенного действия к контакту 6, который можно использовать для взаимодействия с Arduino (для сокращения пальца). Установите Arduino uno в раму и подключите вилку питания от аккумулятора. Приклейте последнюю чёрную пластиковую деталь предплечья.

Рисунок 21. Присоединение платы и батареи

Рисунок 22. Готовая рука

Шаг 9: большой палец

Рисунок 23. Палец

Соберите сегменты большого пальца подобно сборке предыдущих. Приклейте резинку к последнему сегменту (рисунки 24 и 25).

Рисунок 24. Присоединение резинки

Прикрутите крепление оси большого пальца к сервоприводу, выступающему из руки. Приклейте обе части большого пальца вокруг оси (рисунок 25).

Рисунок 25. Склейка

Проденьте леску через отверстия в нижней части большого пальца и сделайте узел на конце.

Шаг 10: код

Скачайте код по ссылке: 

https://github.com/WillDonaldson/Robotic-Arm-initial-prototype/blob/master/Robotic_Arm.ino

Советы при работе с кодом:

В нём только три основных движения руки: взмах, сжатие в кулак и удержание ключа. Вы можете поэкспериментировать и добавить новые функции.

Диапазон движения сервопривода составляет 90, 180 градусов. 90 — палец, находящийся в состоянии покоя, выпрямленный, 180 — полностью сжатый палец. Значения вне диапазона недействительны и будут соответствовать неестественному изгибу пальца к тыльной стороне ладони.

В функции moveThumb() вам нужно изменить диапазон rotAngle с 60, 140 на что-то другое, в зависимости от того, в какое положение был повернут сервопривод при прикреплении большого пальца. 

Не забудьте проверить работоспособность своеего робота. Если хотя бы один из пальцев не работает, обязательно вернитесь к началу инструкции и проверьте все подключения.

Всё готово! Теперь в вашем арсенале есть универсальный помощник, которому можно поручить многое: подержать только что найденные ключи, пока вы ищете потерянный телефон, взмахом поприветствовать гостей, в то время как вы завершаете готовку и др. Главное — не вживлять в руку искусственный интеллект, иначе ваши друзья почувствуют себя героями фильма «Семейка Адамс».

Пятница, 04 марта 2022 20:01

Рука-робот: часть 1

Автор

Как же тяжело выполнить все поставленные задачи в срок и перестать говорить себе фразу: «У меня же не сто рук, а всего лишь две!». Сегодня мы расскажем о возможности собрать настоящего робота-помощника, потенциал которого будет зависеть от широты вашей фантазии. Мы рассмотрам лёгкие команды, такие как сжатие, махи, сгибание. 

Роботизированная рука — способ облегчить задачу себе или людям с ограниченными возможностями. В этом гайде мы рассмотрим создание робота с элементарным функционалом, но его модернизация зависит только от вас — не бойтесь экспериментировать. Уверены, если вы возьмтесь за модернизацию, сможете добиться гораздо больших высот! Пособие будет состоять из двух частей: во-первых, подготовка материалов, работа с сервоприводами, во-вторых, полная сборка руки, программный код и использование. 

Что вам понадобится?

  • филамент (нить) для 3D-печати (чёрно-белый PLA);
  • 8 сервоприводов SG90;
  • леска;
  • тонкий эластичный шнур;
  • 4 пружины;
  • термоусадочная трубка;
  • запасной провод;
  • плетёный нейлоновый рукав (можно заменить стяжками);
  • Arduino uno;
  • аккумулятор (9 В или Lipo);
  • 3D-принтер;
  • паяльник
  • отвёртка;
  • суперклей или эпоксидная смола;
  • дрель и плоскогубцы для очистки опорной конструкции;
  • инструмент для зачистки проводов/кусачки.

Шаг 1: 3D-печать

Рисунок 1. 3D-модель

3D-принтер не всегда может быть под рукой, но в своём инстаграме (https://www.instagram.com/in_hub/) мы разыграем один принтер, когда отметка подписчиков достигнет 3000! Скорее переходите по ссылке и подписывйтесь, возможно именно вы станете счастливым обладателем нового устройства для 3D-экспериментов.

 Файлы Fusion 360 можно найти здесь: http://a360.co/2ufYJJV

Чтобы напечатать руку в 3D, вам необходимо загрузить файл .f3d по ссылке выше, открыть его в программе Fusion 360 и экспортировать отдельные части в виде файлов .stl в выбранное вами программное обеспечение для 3D-печати.

Несколько советов:

Кончики пальцев предназначены для печати на 3D-принтере с двойной экструзией, поскольку чёрные кончики слишком тонкие, чтобы их можно было печатать самостоятельно. Все остальные части будут печататься одинаково как на двойном, так и на одиночном экструзионном принтере.

Шаг 2: сервопривод с непрерывным вращением

Рисунок 2. Сервопривод с непрерывным вращением

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

Рисунок 3. Пластиковая заглушка

Чтобы обойти это ограничение, откройте сервопривод и отрежьте пластиковую заглушку на самой верхней шестерне (смотри рисунки 2 и 3). 

Затем просверлите отверстие в центре, чтобы шестерня свободно вращалась и не сталкивалась с D-образным креплением потенциометра (рисунок 4). 

Рисунок 4. Сверление центра

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

Код:

https://github.com/WillDonaldson/Robotic-Arm-initial-prototype/blob/master/ServoTestCode/Continuous_servo_rotation.ino

Важно: при модификации сервопривода убедитесь, что вы повернули резистор в среднее положение. Если потенциометр будет повернут к любому из концов, он будет показывать угол 180 или 0, и код не будет работать.

Шаг 3: компактные двигатели постоянного тока 2-в-1

Рисунок 5. Разобранный сервопривод

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

Рисунок 6. Отрезание деталей

Откройте сервопривод и отрежьте резистор и чип (пока отложите их).

Из трёх синих пластиковых деталей корпуса вырежьте две нижние. Важно убедиться, что выемка, с помощью которой держится ось, не срезана (рисунок 7).

Рисунок 7. Сравнение срезов выемки (слева — удачный пример, справа — неудачный)

Отрежьте пластиковую заглушку на самой верхней шестерне — это позволит сервоприводу непрерывно вращаться. Соберите корпус, как показано на рисунке 8. Повторите действия со вторым сервоприводом. 

Рисунок 8. Сборка сервопривода

В данный момент шестерни не имеют оси, на которой можно было бы вращаться. Найдите подходящий по размеру стержень (8-8,5 мм).

Рисунок 9. Ось для вращения

Используя эпоксидную смолу, склейте сервоприводы вместе (рисунок 10).

Рисунок 10. Склейка

Припаиваем удлинители к проводам от двигателей постоянного тока.

Чтобы проверить их работу, используйте 3,7-вольтовый Lipo, подключенный к одному из двигателей. Он должен непрерывно вращаться в обоих направлениях (достигается за счёт перестановки батареи).

На последующих этапах сохранённые нами резисторы будут помещены в суставы пальцев для получения показаний поворота (от 0 до 90 градусов). Также их можно использовать при подключении к Arduino.

Рисунок 11. Конструкция сустава большого пальца

Шаг 4: оставшиеся сервоприводы

Рисунок 12. Потенциометр

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

На этом первая часть нашего гайда подходит к концу, но это не повод отложить работу в долгий ящик. Впереди нас ждёт пособие по сборке самой руки, а также инструкция о том, как правильно её запрограммиовать. Заинтригованы? Скорее переходите по ссылке и продолжайте экспериментировать!

components IMG 4838

Во многих инструкциях или описаниях проектов нередко упоминается шаговый двигатель. В связке с Arduino или Raspberry Pi, он может быть сердцем любого проекта, требующего простого и точного управления положением и движением. Можно собрать любой станок ЧПУ, например, лазерный гравер. Или заняться робототехникой и собрать маленького бегающего робота с ШД в корпусе. Можно даже сделать DIY-контроллер для телескопа на основе Arduino, и отслеживать положение звёзд, сверяясь с данными специальных программ. Возможностей много.

В этой статье мы расскажем, что такое шаговый двигатель и в чём его смысл.

Начнём с того, что шаговый двигатель (ШД) – это один из видов электродвигателей, наряду с линейным или серводвигателем. Подобно своим собратьям, он имеет неподвижную часть, называемую статором, и подвижную – ротор. Его отличительной особенностью является вращение вала на фиксированное количество градусов, и эти дискретные угловые перемещения имеют практически равную величину, потому и называются шагами. 

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

Особенно хорошо двигатель подходит для устройств, в которых управляющие сигналы подаются в виде цифровых импульсов, а не аналоговых напряжений (любые устройства с программным управлением). Один цифровой сигнал, подаваемый на привод шагового двигателя или транслятор, заставляет ротор делать один точный угол движения. По мере увеличения частоты цифровых импульсов, шаговое движение переходит в непрерывное вращение. 

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

1 11

Рис. 1. Пример шагового двигателя с ротором в виде железного сердечника

Основной принцип работы шагового двигателя заключается в следующем: при подаче напряжения на одну или несколько фаз статора создается магнитное поле (под действием тока, протекающего в катушке), и ротор выравнивается по этому полю. Если последовательно подавать напряжение на разные фазы, можно повернуть ротор на определенную величину и достичь желаемого конечного положения. На рисунке 2 показан принцип работы. 

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

2 10

Рис. 2

Производительность шагового двигателя зависит от разрешения (размер шага), скорости вращения и крутящего момента. На эти характеристики, в свою очередь, влияют конструктивные особенности двигателей. Далеко не все ШД имеют одинаковую внутреннюю структуру, поскольку существуют различные конфигурации ротора и статора.

Существует три типа роторов: 

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

3 11

Рис. 3. Секция шагового двигателя с постоянным магнитом

– Ротор с переменным сопротивлением. Представляет собой железный сердечник и имеет специфическую форму, позволяющую выравниваться с магнитным полем (рис. 1 и 2). С помощью такой конструкции легче достичь более высокой скорости и разрешения, но крутящий момент часто ниже, и не имеет момента удержания.

– Гибридный ротор. Этот тип имеет необычную конструкцию и представляет собой гибрид двух предыдущих версий. Ротор имеет две крышки с чередующимися зубцами и намагничен в осевом направлении. Такая конфигурация позволяет двигателю иметь преимущества версий с постоянными магнитами и с переменным сопротивлением, в частности, высокое разрешение, скорость и крутящий момент. Высокая производительность требует более сложной конструкции и, следовательно, более высокой стоимости. На рисунке 4 показан упрощенный пример конструкции гибридного двигателя. Когда на катушку A подается напряжение, зуб N-намагниченного колпачка выравнивается с S-намагниченным зубом статора. В то же время, благодаря структуре ротора, S-намагниченный зуб выравнивается с N-намагниченным зубом статора. Настоящие двигатели имеют более сложную структуру, с большим количеством зубцов, чем показанно на рисунке, хотя принцип работы ШД отображён. 

4 10

Рис. 4. Гибридный ротор

Статор несёт ответственность за создание магнитного поля. К основным его характеристикам можно отнести количество фаз (независимых катушек) и пар полюсов (количество пар зубцов на одну фазу). Наиболее часто используются двухфазные шаговые двигатели, а трёхфазные или пятифазные встречаются значительно реже.

5 6

Рис. 5. Двухвазный (слева) и трёхфазный (справа) ШД

На катушки двигателя необходимо подавать напряжение в определенной последовательности, чтобы создать магнитное поле, с которым будет выравниваться ротор. Чтобы легче контролировать этот процесс и обеспечить лучшую работу двигателя, понадобятся дополнительные устройства. И первое из них – это Н-мост. Он представляет собой интегральную схему, которая управляет электрическим соединением катушек двигателя. Н-мост можно рассматривать как электрически управляемый прерыватель, который, будучи закрытым, позволяет подключать катушку к электрической сети и, таким образом, обеспечивать протекание в ней тока. Для каждой фазы двигателя требуется один Н-мост.

Далее идет предварительный драйвер: он управляет активацией транзисторов Н-моста, обеспечивая необходимое напряжение и ток.

И, наконец, микроконтроллер. Он нужен, чтобы управлять предварительным драйвером и, обычно, программируется пользователем двигателя.

7 9

Рис. 6. Схема управления шаговым двигателем

В том случае, если Н-мост и предварительный драйвер собраны вместе в одном устройстве, мы называем это драйвером шагового двигателя.

На рынке представлено множество драйверов, имеющих определенные особенности для реализации конкретных проектов. Но можно выделить три наиболее важные характеристики, на которые можно опираться при выборе драйвера: 

– Выходное напряжение и ток (необходимо соответствие характеристикам двигателя);

– Деление шага. Для стандартных задач хватит и 1/64. Уменьшение этого показателя увеличивает плавность хода, но снижает максимальные обороты ротора;

– Протокол. STEP/DIR/ENABLE – самый распространённый протокол управления ШД.

3f40c2c8ffc2c1dc6dc3b4bd5f08d7e9

Рис. 7. Популярный в DIY кругах драйвер А4988

Управление шаговым двигателем может происходить в трёх основных режимах:

– Полный шаг. В этом режиме ротор поворачивается на один шаг за раз. Под постоянным напряжением находится либо одна, либо две фазы.

– Полушаг. Использование этого режима позволяет уменьшить размер шага в два раза . Единственным недостатком является то, что крутящий момент, создаваемый двигателем, не является постоянным, поскольку он выше, когда обе фазы находятся под напряжением, и ниже, когда под напряжением находится только одна фаза.

– Микрошаг можно рассматривать как дальнейшее усовершенствование полушагового режима, поскольку он позволяет еще больше уменьшить размер шага, но при этом иметь постоянный крутящий момент. Достигается это совершенство путем управления силой тока, протекающего в каждой фазе. 

microstepping

Рис. 8. Вот так выглядит схема микрошагового режима

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

Вот лишь несколько примеров использования ШД:

– принтеры и 3D-принтеры

– роботы и протезы

– зеркальные фотоаппараты и видеокамеры

– гравировальные станки

– банкоматы

components IMG 4796 crop

У вас есть идеи применения ШД в любительской электронике? Доводилось вам уже использовать это устройство в своих проектах? Поделитесь идеями и опытом с нами!

Воскресенье, 27 февраля 2022 14:09

Роботизированные змеи

Автор

Если вы всю жизнь мечтали завести домашнюю рептилию, но родители в страхе махали руками и категорически отказывались её покупать — этот туториал для вас. В статье мы расскажем о создании двух роботизированных змей с одной осью (1D-змея) и с двойной осью (2D-змея), поделимся файлами для 3D-печати, разберёмся в кодах и алгоритмах.

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

Что нам понадобится?

  • 10 сервоприводов MG996R*;
  • филамент для 3D-печати 1,75 мм (жёлтый, чёрный, белый);
  • 10 шариковых подшипников 608 (можно взять со спиннеров Jitterspin);
  • 20 шариковых подшипников r188**;
  • 40 винтов с крестообразным шлицем М3,5 х 40;
  • 8 длинных винтов (того же диаметра, что и крестообразные);
  • 5 м мягкого красного и чёрного провода 0,8 мм2;
  • стандартный провод 0,4 мм2;
  • 30 штифтов;
  • Arduino Nano;
  • детали, напечатанные на 3D-принтере (см. шаг 1)
  • модифицированный блок питания ATX;
  • электролитический конденсатор 1000мкФ 25В;
  • термоусадочные трубки разных размеров, припой, клей.

* Можете использовать другие типы, но нужно будет изменить 3D-файлы, чтобы они соответствовали вашим сервоприводам. Не рекомендуем использовать сервоприводы меньшего размера, такие как sg90, потому что они недостаточно мощные.

** В качестве альтернативы можно использовать колёса LEGO.

Шаг 1: 3D-печать

Рисунок 1. 3D-модель четырёх сегментов робота.

Детали для 1D-змеи:
https://github.com/WillDonaldson/Robotic-Snake/tree/master/1D%20Snake%20Components

Детали для 2D-змеи:

https://github.com/WillDonaldson/Robotic-Snake/tree/master/2D%20Snake%20Components

Важное примечание: иногда масштаб расходится с размером сервопривода. Распечатайте одну деталь, чтобы проверить, подходит ли она для вашего MG996R.

Шаг 2: Сборка змей часть 1

Рисунок 2.Сервопривод.

Процесс сборки для двух роботов почти идентичный. Единственное отличие состоит в том, что в змее 2D каждый сегмент поворачивается на 90 градусов относительно предыдущего, а в змее 1D они выровнены по одной оси.

Удалите винты с сервопривода и снимите верхнюю и нижнюю часть чёрного корпуса. Будьте осторожны — не потеряйте винтики! 

Рисунок 3. Сервопривод и 3D-деталь.

Вставьте сервопривод в белую раму, напечатанную на 3D-принтере, как показано на рисунке 3. Снимите верхнюю часть корпуса сервопривода и закрепите её четырьмя винтами 12 мм. Снимите нижнюю часть рамы (сохраните на случай, если вы захотите снова использовать её в следующих проектах) и замените на напечатанный корпус. Прикрутите крышку MG996R обратно. Проделайте то же самое с оставшимися 9 сервоприводами. 

Рисунок 4. Соединение сервопривода и 3D-детали.

Прежде чем продолжить, загрузите код в Arduino IDE (локальная копия) и переместите каждый сервопривод на 90 градусов.  Для этого подключите красный провод сервопривода к 5V на Arduino, коричневый к GND, жёлтый к цифровому контакту 9, затем загрузите код:

#include <Servo.h>

сервопривод;

недействительная установка ()

{

  myservo.attach(9);

  myservo.write(90); // установить сервопривод в среднюю точку

}

недействительный цикл () {}

Невыполнение этого требования может привести к поломке одного или нескольких сервоприводов и рамок, напечатанных на 3D-принтере. 

Вставьте X-образный рычаг в правое отверстие, как показано на рисунке 5.

Рисунок 5. Присоединение X-образного рычага и сегмента.

Шаг 3: сборка змей часть 2

Рисунок 6. Соединение сегментов между собой.

Соедините 10 сервоприводов, вставив ручку шарикового подшипника из одного корпуса сервопривода в отверстие второй части сегмента (рисунок 6). 

Рисунок 7. Вставка подшипника.

Затем прикрепите шариковый подшипник (рисунок 7). Для 1D-змеи сделайте все сервоприводы ровными, а для 2D мы уже повернули их на 90 градусов с помощью Arduino. Обратите внимание, что каркас хвоста и головы равна половине длины другого сегмента.

Рисунок 8. Сравнение деталей двух змей.

Рисунок 9. Вид четырёх скрепленных деталей.

Шаг 4: Схема

Рисунок 10. Схема соединения.

Схема одинакова для обеих роботизированных змей. В процессе подключения убедитесь, что каждому сегменту достаточно места для полного вращения, особенно в 2D варианте.

На рисунке 10 приведена схема проводки двух сервоприводов. Остальные подключаются аналогично. Не забудьте присоединить провода ШИМ к контактам на Arduino Nano.

При прокладке линий электропередач необходимо использовать цельный кусок провода 0,8 мм2 (он достаточно толстый, чтобы выдерживать 10 ампер). 

Инструментом для зачистки проводов удаляем небольшие участки изолятора через 10 равных интервалов и припаиваем кусок провода к группе из 3 штыревых разъёмов (рисунок 11).

Рисунок 11. Группа штыревых разъёмов.

Повторите те же действия с чёрным проводом GND 0,8 мм2 и вторым вилочным наконечником. Припаяйте длинный провод к третьему штыревому разъему — он будет передавать сигнал ШИМ на Arduino Nano, которая будет располагаться на голове змеи (провод должен быть достаточно длинным, чтобы работать даже при сгибании сегментов). При необходимости прикрепите термоусадочную трубку. 

Рисунок 12. Конденсатор.

Припаяйте провода GND и 5V к макетной плате 3x7 (находится в хвосте змеи, рисунок 12) с конденсатором и винтовыми клеммами (GND к контакту GND Nano, а 5V к контакту 5V). Конденсатор предназначен для устранения любых всплесков потребляемого тока, возникающих при запуске сервоприводов. 

Припаяйте 10 проводов ШИМ к контактам на Arduino Nano в следующем порядке: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7 (Рисунок 13).

Рисунок 13. Плата Arduino Nano.

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

Рисунок 14. Стяжка проводов.

Присоедините заглушки к голове и хвосту. Обратите внимание, что в хвосте есть отверстие для шнура, а в голове для кабеля программирования Arduino.

Рисунок 15. Заглушка.

Шаг 5: подключение змеи

Рисунок 16. Блок питания.

Сервоприводы подключены параллельно и получают одинаковое напряжение, но ток необходимо суммировать. Один сервопривод MG996r без остановки может потреблять до 900 мА. Общее потребление тока при одновременном движении всех 10 сервоприводов составляет 0,9 А * 10 = 9 А.

Делаем вывод, что обычный сетевой адаптер 5 В при 2 А работать не будет. Подбирайте блок питания ATX, способный на 5 В при 20 А. Если вы не смогли его найти, используйте встроенный аккумулятор Lipo. 

Шаг 6: всё ли работает?

Рисунок 17. Змея с одной осью.

Прежде чем продолжить, давайте проверим, всё ли работает. Загрузите этот код:

https://github.com/WillDonaldson/Robotic-Snake/blob/master/robotic_snake_servo_test_code/robotic_snake_servo_test_code.ino

Каждый сервопривод должен перемещаться отдельно, в диапазоне от 0 до 180 градусов, а затем вытягиваться в прямую линию. Если это не так, стоит вернуться к началу гайда и перепроверить каждый шаг. Скорее всего, вы допустили ошибку в подключении или сервоприводы не были отцентрированы на 90 градусов, как указано в разделе «Сборка змей часть 1».

Шаг 7: код

Рисунок 18. Скольжение.

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

Рисунок 19. Движение червя.

В программу 1D-змеи будут входить: скольжение, движение червя, C-образные и U-образные изгибы. 

https://github.com/WillDonaldson/Robotic-Snake/blob/master/_1D_robotic_snake/_1D_robotic_snake.ino

Рисунок 20 . Движение в сторону.

В программу 2D-змеи входят: движение в сторону, нанесение ударов.

https://github.com/WillDonaldson/Robotic-Snake/blob/master/_2D_snake_sidewinding/_2D_snake_sidewinding.ino

Рисунок 21. Нанесение удара.

Эксперименты с кодом только приветствуются! Вы можете внести свои собственные изменения и создать новые алгоритмы. 

Шаг 8: колёса

Рисунок 22. Подшипник.

Для создания полноценных колёс мы будем использовать шариковые подшипники r188 и термоусадочную трубку. Вставьте их в напечатанную ранее 3D-деталь и прикрепите конструкцию к каждому сегменту змеи (смотри рисунки 23 и 24)

Рисунок 23. Колёса.

Рисунок 24. Присоединение колёс.

Все готово, пользуйтесь!

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

 

Суббота, 26 февраля 2022 17:23

Лабиринт на основе Arduino

Автор

В условиях пандемии тема настольных игр стала очень актуальна. У кого-то вошло в традицию собирать у себя дома шумные компании, а кто-то любит проводить гейм-батлы наедине со своей второй половинкой. Но постоянное обновление домашней коллекции настольных игр — затратное занятие. Мы решили помочь вам избавиться от этой проблемы и занять себя вдвойне интересным квестом. Представляем гайд по созданию настольного лабиринта на основе Arduino. Туториал подойдёт для всех любителей повозиться с электроникой в домашних условиях.

Что нам понадобится?

  • Контроллер REXQualis Nano V3.0;
  • модуль игрового контроллера PS2 Breakout;
  • два сервопривода MG995;
  • держатель пальчиковых батареек;
  • листы гофрированного картона;
  • печатная плата;
  • самоклеящиеся двусторонние поролоновые прокладки;
  • древесноволокнистая плита средней плотности;
  • набор для пайки
  • набор отвёрток;
  • мини-шлифовальный станок GOXAWEE;
  • лопаточное сверло 1/2 дюйма (12 мм);
  • провода и паяльник;
  • металлический шарик;
  • три деревянных пластинки;
  • разъёмы для печатных плат.

Шаг 1: проектирование

Рисунок 1

Первая задача — спроектировать и построить лабиринт. Для этого возьмите лист гофрированного картона и вырежьте из него прямоугольник 150x210 мм.

Начертите лабиринт белой ручкой или жидким корректором на листе чёрной бумаги такого же размера, как и лабиринт. Можете воспользоваться готовой схемой (смотри рисунок 1) или проявить фантазию и продумать свой маршрут. Но наносить путеводную дорожку совсем не обязательно — усложните задачу и нанесите на лист только перегородки. Главное — не забыть создать вспомогательный маршрутный лист, чтобы довести игру до конца, если кто-то из ваших гостей попадёт в тупик. 

Приклейте нарисованный лабиринт к картонному листу, используя любой клей, который у вас есть (лучший вариант — ПВА). 

Когда клей схватится, вырежьте круглые «ловушки» канцелярским ножом или любым другим острым предметом. Рекомендуемый диаметр отверстий — 15-20 мм. Их количество зависит от задуманного вами уровня сложности игрушки.

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

Рисунок 2

Под коробкой будет размещена большая часть электроники. Вырежьте несколько небольших полосок картона (высота не более 30 мм) и покрасьте их в чёрный цвет, чтобы они сочетались с лабиринтом.

Приклейте их к макету, чтобы создать перегородки (смотри рис. 2). Затем возьмите древесноволокнистую плиту и обрежьте её до размеров лабиринта.

Вырежьте из оставшихся обрезков плиты два блока 30х30 мм и соедините их между собой. Приклейте получившийся блок к заготовке (смотри рис. 3).

Рисунок 3

Шаг 2: установка серводвигателей

Рисунок 4

Приклейте один серводвигатель поверх блока. Снимите пластиковую насадку с оси сервопривода и соедините её с небольшим куском дерева (размер 15х30 мм) с помощью клея. Обрежьте края, как показано на рисунке 5.

Рисунок 5 

Возьмите другой сервопривод и прикрепите его к готовому куску дерева. Как только клей высохнет, прикрепите сборку к первому сервоприводу.

Рисунок 6

Склейте вместе ещё два деревянных куска, снимите и приклейте ось второго сервопривода. Когда сборка высохнет соедините её с изделием, как показано на рисунке 7.

Рисунок 7

Шаг 3: создание платы

Рисунок 8

Самый простой способ получить нужную нам печатную плату — заказать её в интернете. В этом вам поможет сайт https://jlcpcb.com/. Ваша задача — загрузить схему в раздел создания заказа, оплатить его и ждать доставку. Стоимость платы не превысит 3 доллара.

Второй вариант — напечатать плату на 3D-принтере. Самая простая программа для такой печати — Tinkercad. Рекомендуем использовать именно её. 

Третий способ — создать печатную плату самостоятельно. Для этого воспользуйтесь нашей статьёй о технологии ЛУТ (https://insighthub.ru/ru/technology/izgotovlenie-pechatnykh-plat). 

Рисунок 9

Шаг 4: сборка 

Рисунок 10

После того, как печатная плата будет готова, прикрепите к ней Arduino Nano (смотри рис. 9). Припаяйте концы проводов модуля игрового контроллера PS2 к плате (рисунок 10). Затем, с помощью самоклеющихся прокладок, прикрепите плату, модуль и держатель пальчиковых батареек к древесноволокнистой плите (рисунок 11). Подключите Arduino Nano к компьютеру с помощью USB-кабель с разъёмом Mini-B.

Рисунок 11

Шаг 5: код Arduino Nano

Запустите программное обеспечение Arduino. Скопируйте следующий код:

#include 

 

Servo servo1;

Servo servo2;

int joyX = 0;

int joyY = 1;

 

int servoVal;

 

void setup() 

{

servo1.attach(3);

servo2.attach(5);

}

 

void loop()

{

 

servoVal = analogRead(joyX);

servoVal = map(servoVal, 10, 1023, 0, 15);

servo1.write(servoVal);

 

servoVal = analogRead(joyY);

servoVal = map(servoVal,10, 1023, 17 , 34);

servo2.write(servoVal);

}

Шаг 6: подключение

Рисунок 12

После завершения программирования подключите сервоприводы к печатной плате (рисунок 12). Включите аккумулятор и проверьте контроллер: вы должны увидеть плавное движение сервоприводов в ответ на управление модулем PS2. 

Когда всё будет готово, прикрепите лабиринт к верхнему блоку сервоприводов, как показано рисунке 13. Для этого воспользуйтесь самоклеящимися двусторонними прокладками.

Рисунок 13

Шаг 7: пользуйтесь!

Поместите металлический шарик на отметку «старт» и начинайте своё гейм-путешествие. Вы можете соревноваться с друзьями на скорость: кто быстрее доведёт шар до финиша, кто меньше попадётся в ловушки и т.д. А можете создать сразу два лабиринта и устроить настоящую гонку!

 

Ссылки