Изображение сервомотора
Компоненты и расходные материалы
| × | 1 | ||||
| × | 3 | ||||
| × | 36 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 36 | ||||
| × | 5 |
Необходимые инструменты и машины
| ||||
|
Приложения и онлайн-сервисы
|
Об этом проекте
На видео ниже показано, как 36 серводвигателей создают электронное произведение искусства. За кулисами работают Arduino Uno и три 16-канальных сервоконтроллера PWM. Первоначальным вдохновением для этого была гораздо большая версия с 450 сервоприводами, которую я видел в музее современного искусства. Но даже эта маленькая версия всего с 36 сервоприводами дает некоторые интересные эффекты.
Есть дополнительная функция, которую я не показал в видео, но ее можно добавить, чтобы сделать отображение интерактивным. Это совершенно необязательно, и программа будет нормально работать и без него. Для этой опции пять ультразвуковых датчиков расстояния устанавливаются вдоль задней стороны верхнего края дисплея. Когда вы кладете руку над центральным датчиком, Uno переходит в интерактивный режим, и все сервоприводы пытаются следовать за вашей рукой, когда вы перемещаете ее над датчиками расстояния. Если вы уберете руку на несколько секунд, программа вернется в режим отображения. Опять же, вы можете добавить эту опцию, если хотите. Если вы этого не сделаете, программа будет нормально работать и без нее.
Аппаратное обеспечение
Как видите, этот проект был построен на доске размером 24 на 48 дюймов. Ширина была уменьшена до 32 дюймов. Сервоприводы устанавливаются на расстоянии 4 дюймов друг от друга и прикрепляются к задней части доски с помощью горячего клея. Палочки для мороженого, обрезанные до 3 1/4 дюйма, крепятся к валам сервоприводов, опять же с использованием горячего клея.
Серводвигатели SG90 - единственная дорогостоящая деталь в этом проекте. Вы можете получить набор из 8 штук за 20 долларов на Amazon. Даже в этом случае вам нужно вложить 100 долларов в сервоприводы. Предполагается, что все SG90 будут сервоприводами на 180 °, но большинство из них не справляются с этим. Некоторые из них не оправдывают ожиданий, и от них следует отказаться. Если вы купите 5 комплектов по 8 штук, вы сможете найти 36 товаров, которые перемещаются не менее чем на 160 °.
Сервоприводы должны быть установлены в их минимальное положение (положение на ШИМ 150), а палочки для мороженого должны быть установлены горизонтально и вправо в этом минимальном положении, если смотреть спереди. Я предоставил небольшую программу, которую вы можете использовать, чтобы убедиться, что сервоприводы находятся в этом минимальном положении:SetServosToMinimum.
На фото выше показан макет обратной стороны. Три контроллера ШИМ установлены на левой стороне сервоприводов. Источник питания 30 Вт и 5 В находится справа. Arduino питается отдельно от адаптера питания USB. Я делаю это только для того, чтобы отсоединить USB-кабель и с помощью удлинительного USB-кабеля подключить его к компьютеру для изменения программы. Выглядит немного странно, но мне это удобно.
Вы также можете увидеть дополнительные ультразвуковые датчики расстояния, установленные в верхней части дисплея. Для их крепления использовались горячий клей и дополнительные палочки для мороженого. Небольшая макетная плата, которую вы видите под Uno, предназначена просто для облегчения подключения питания и заземления ко всем ультразвуковым датчикам.
Программное обеспечение
Я использую библиотеку PWM Servo Driver от Adafruit для обработки 16-канальных сервоконтроллеров, поэтому вам нужно будет получить ее от Adafruit и установить в библиотеках Arduino. Мое программное обеспечение можно использовать как есть с дополнительными ультразвуковыми датчиками или без них. Он представляет собой множество эффектов в шоу, которое длится немногим более трех минут перед повторением. Если установлены дополнительные датчики, он будет переходить в интерактивный режим всякий раз, когда рука находится рядом с центральным датчиком.
В программе много чего. Я не буду пытаться здесь все объяснять, но дам вам небольшую информацию о том, как это работает. У меня две таблицы. В таблице curPos хранится текущая позиция каждого сервопривода, разделенная на три. Таблица tarPos хранит желаемое положение каждого сервопривода, разделенное на три. Их делят на 3 по двум причинам. Во-первых, это позволяет хранить их в байтах, а во-вторых, я всегда перемещаю сервоприводы с шагом в 3 шага.
Uno изначально не знает положения каждого сервопривода, поэтому процедура настройки устанавливает все сервоприводы в вертикальное положение и устанавливает все переменные curPos и tarPos в соответствии с этим вертикальным положением. Затем мы можем переместить сервоприводы оттуда в другие позиции, изменив нужные позиции в tarPos.
Подпрограмма goToTargets () - это основной способ перемещения сервоприводов. Мы контролируем, куда идут сервоприводы, устанавливая цели в tarPos. Затем мы можем контролировать, насколько быстро они идут туда, с помощью процедуры goToTargets. У него есть два способа контролировать скорость. Он перемещает сервоприводы к их целям с шагом 15 шагов, при этом количество повторений, вводимых в подпрограмму, дает вам число, кратное 15 шагам. Другой ввод - это mydelay, который просто добавляет задержку в миллисекундах к каждому вызову goToTargets.
Есть много других вещей, но в основном все остальное - это просто различные настройки и реализации различных представленных эффектов.
Дополнительная интерактивная функция обрабатывается подпрограммой trackRoutine. Он вызывается, когда процедура goToTarget видит объект (вашу руку) где-то над центральным ультразвуковым датчиком. Он пытается заставить все сервоприводы следовать за движением вашей руки, когда она движется по датчикам. Если он не почувствовал руку в течение нескольких секунд, он возвращается, и обычная программа возобновляется.
Код
- Программное обеспечение ServosArt для Arduino Uno
Программное обеспечение ServosArt для Arduino Uno Arduino
Нет предварительного просмотра (только загрузка).
Схема
Показывает, как Uno и сервоприводы соединяются через три 16-канальных контроллера. Подключает 5 ультразвуковых датчиков расстояния к Uno, чтобы сервоприводы могли отслеживать движение руки.Производственный процесс
- Прототип Raspoulette
- Простой робот Pi
- Эксперты по ремонту серводвигателей Fanuc
- Эксперт по ремонту серводвигателей Siemens
- Советы по ремонту серводвигателя и устранению неисправностей
- MOSMusic
- Что такое линейный двигатель?
- Красота планетарной коробки передач для серводвигателя
- Введение в сервопресс
- Что такое серводвигатель?