Оглавление:
- Запасы
- Шаг 1. Настройка Raspberry Pi
- Шаг 2: понимание того, как будет работать установка
- Шаг 3: бэкэнд Pi
- Шаг 4: внешний вид Pi
- Шаг 5: Arduino
- Шаг 6: соединяем все
Видео: Лебедка с управлением Art-Net: 6 ступеней
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Всем привет, в этой инструкции я расскажу, как я создал свою лебедку, управляемую арт-сетью. "Твое что?" Я слышал, вы спрашиваете, позвольте мне объяснить очень быстро. Несколько лет назад мы устроили вечеринку с местным домом молодежи, и в качестве декоратора у нас возникла идея сделать подвижную крышу.
С помощью 9 лебедок (такелей) мы подняли гигантскую белую ткань и по протоколу dmx управляли ими. Но в то время мы использовали лебедки с трехфазным управлением. Таким образом, чтобы заставить его двигаться вверх и вниз, нам пришлось создать систему реле, управляемую центральным мегапикселем Arduino, который управлялся с помощью dmx. Реле с коммутируемыми напряжениями 230В и 12 ампер.
Проще говоря, нам пришлось создать гигантский беспорядок из проводов и реле, который на самом деле был очень нестабильным, ненадежным и довольно опасным.
Поэтому мы подумали, что должен быть лучший способ сделать это. Мы начали думать и пришли к выводу, что лучший способ сделать это - использовать модульную систему лебедок, управляемых по протоколу Art-Net, поэтому нам понадобится только источник напряжения и кабель Ethernet.
Это именно то, что я создал, и я постараюсь объяснить вам, как я это сделал. Вся установка основана на Raspberry Pi, который контролирует процесс установки. После настройки управление передается легкому компьютеру (Chamsys и др.), Который будет управлять лебедками оттуда.
Я предполагаю, что у вас есть базовые знания о Python, Arduino и Raspberry Pi, а также что-то понимание протокола и контроллеров art-net.
Запасы
Что вам понадобится:
- Raspberry Pi
- Ардуино
- Шилд Arduino Ethernet
- Моторный щит Arduino
- Любой OLED-экран
- сетевой кабель
- коммутатор Ethernet
- Двигатель постоянного тока с энкодером
Шаг 1. Настройка Raspberry Pi
Хорошо, так что это будет работать так: raspberry pi будет запускать сервер Apache и MariaDB. Сервер apache предназначен для размещения веб-сайта, MariaDB - для ведения базы данных, в которой мы будем хранить данные о лебедках.
Я не буду описывать вам все процессы настройки пи с помощью ssh, если вы не знакомы, вот хороший учебник.
Итак, сначала мы убедимся, что Raspberry Pi полностью настроен в вашем терминале:
Чтобы установить apache
sudo apt install apache2 -y
Чтобы установить mariaDB
sudo apt-get install mariadb-server
Это все расширения Python, которые нам понадобятся
pip3 установить mysql-connector-python
pip3 установить flask-socketio pip3 установить flask-cors pip3 установить gevent pip3 установить gevent-websocket pip3 установить netifaces
Для OLED-дисплея нам потребуется немного более сложный процесс настройки, который можно найти здесь.
Хорошо, пи все готово!
Шаг 2: понимание того, как будет работать установка
Итак, вы хотите настроить лебедку, задав ей начальное и конечное положения. Ему будет назначен определенный канал, и с этим каналом вы сможете перемещаться только между выбранным параметром и конечной позицией.
Чтобы выбрать это положение, вам нужно будет переместить лебедку к ним, как только вы окажетесь там, вы измените определенный канал на значение 56. Когда этот точный канал достигнет этого значения, он будет знать, что это его конечное начальное / конечное положение., если ему нужно переместиться вверх или вниз, или если ему нужно изменить свои значения Artnet. Перемещение лебедки также осуществляется путем установки определенного канала на 56. «И почему 56», я слышал, вы задаетесь вопросом, ну, я должен был что-то выбрать:).
Положение рассчитывается с помощью энкодера двигателя постоянного тока.
Шаг 3: бэкэнд Pi
Бэкэнд для системы можно найти на моем гитхабе. Я написал свою собственную библиотеку для протокола art-net, так что не стесняйтесь ее использовать. Я не буду вести вас через все строки за строкой, но я дам вам общую картину всего этого.
Код запускает флеш-сервер, который взаимодействует с сервером apache, работающим на пи. Он использует модуль flask-socketio для отправки и получения данных во внешний интерфейс. Библиотека art-net использует модуль сокетов из Python для отправки пакетов UDP на Arduino и обратно.
Каждый метод, который начинается с @ socketio.on ('F2B _ ***'), ожидает вызова F2B от внешнего интерфейса. Как только он будет получен, он выполнит соответствующее действие. Будь то отправка коммандос artnet или получение данных из БД и отправка их обратно на передний план.
Метод oled_show_info () используется для отображения IP-адреса IP-адреса (как для интерфейсов wlan, так и для Ethernet).
так что просто запустите код с
python3 app.py
Шаг 4: внешний вид Pi
Чтобы иметь возможность редактировать интерфейс pi, вам сначала нужно получить доступ к каталогу / var / www / html /. Здесь apache получает файлы для отображения на своем веб-сайте. Чтобы получить доступ, выполните:
sudo chmod 777 / var / www / html /
Теперь все готово, получите код интерфейса моего github и поместите его в каталог / var / www / html /.
Интерфейс использует тот же принцип, что и серверный, но теперь он отправляет команды F2B _ *** при нажатии кнопки или перемещении ползунка.
И вот интерфейс готов!
Шаг 5: Arduino
Для использования Arduino вам необходимо использовать сетевой экран и моторный щит. Просто аккуратно вставьте их в Arduino. Убедитесь, что вы не прижимаете экран двигателя слишком далеко к экрану Ethernet, иначе вы закоротите 2 контакта двигателя на соединении Ethernet!
Код для ардуино также можно найти на моем гитхабе. Загрузите файл artnet_winch.ino, и все должно быть хорошо.
Убедитесь, что вы правильно определили контакты для правильных контактов вашего двигателя. Штифты моторного щита выбираются так, чтобы штыри жатки находились наверху щита. Эти контакты выбираются в // --- конфигурации двигателя. Aswel как контакты энкодера, которые необходимо подключить к правильным контактам Arduino.
Также убедитесь, что ваш MAC-адрес экрана правильный. Его можно найти на наклейке под экраном и отредактировать в переменной MAC. IP, который вы используете для pi, должен быть в том же диапазоне, что и PI, обычно его можно найти на oled-экране.
Код выглядит многословно, но его не так сложно понять. Обычно экран Ethernet постоянно считывает входящие пакеты udp. Если этот пакет является пакетом Artnet, он декодирует его и получает от него необходимую информацию. Различные пакеты artnet хорошо описаны на веб-сайте Art-Net, поэтому, если вам интересно, вы можете прочитать, что они все делают.
Если он получит пакет ArtPoll, он ответит ArtPollReply. это используется в функции выноски в серверной части, чтобы определить, какие устройства находятся в сети.
Если он получает пакет ArtDMX, он декодирует пакет и использует данные для выполнения определенных команд настройки или перемещения лебедки в нужное положение.
Функция move_takel преобразует заданное значение DMX (от 0 до 255) в положение между начальной и конечной позицией (0 - конец, а 255 - начало). Если положение энкодера не соответствует преобразованному значению, лебедка будет двигаться вверх / вниз в зависимости от того, где вы находитесь.
Я работал над обратной связью между PI и arduino, чтобы он мог идти в ногу со своей позицией, но хорошо, что моему arduino не хватило памяти для хранения программы:).
Монтаж всего
Для его установки я прикрепил мотор к металлическому держателю и надел на него что-то вроде трубки. Затем просто прикрепил шнур к трубке и использовал рулон ленты в качестве груза. Это очень просто, и вы можете проявить изобретательность в том, как вы хотите установить его.
Шаг 6: соединяем все
После того, как arduino и pi настроены, просто подключите оба кабеля Ethernet к коммутатору, и все готово!
Вы можете проверить это, перейдя по IP-адресу wlan, указанному на oled-экране, и вы должны увидеть сайт. Нажмите найти устройства, чтобы узнать, сможете ли вы найти устройство. Если он ничего не показывает, значит, ваш Arduino плохо подключен или выбранный вами IP-адрес не находится в том же диапазоне, что и у PI.
Как только вы увидите устройство, просто нажмите «Настройка». В меню настройки вы можете перемещать лебедку с помощью стрелок и проверять правильность ее начального и конечного положения с помощью ползунка.
Убедитесь, что ваш контроллер также подключен к щиту и его IP-адрес находится в диапазоне от PI и Arduino.
Вот и все!
Рекомендуемые:
Ветряная мельница с активным управлением: 5 ступеней
Ветряная мельница Active Control: Эта инструкция была создана в соответствии с требованиями проекта Makecourse в Университете Южной Флориды (www.makecourse.com). Мне нужно было выбрать проект для разработки и строительства с нуля. Я решил, что хочу попробовать построить
Подъемник с шаговым двигателем с ИК-управлением: 15 ступеней
Подъемник с шаговым двигателем с ИК-управлением: мне нужно было автоматизировать подъем большого изображения, за которым скрывается телевизор, установленный над камином. Картина установлена на специальной выдвижной стальной раме, в которой используются тросы, шкивы и противовесы, поэтому ее можно поднимать вручную. В теории это звучит неплохо, но вкл
Судно на воздушной подушке с дистанционным управлением: 8 ступеней (с изображениями)
Судно на воздушной подушке с дистанционным управлением: ss
Двигатель с транзисторным управлением и дистанционным управлением; обзор схемы: 9 шагов
Двигатель с транзисторным управлением и дистанционным управлением; Обзор схемы: Эта схема представляет собой двигатель с транзисторным управлением и дистанционным управлением. Дистанционное управление включает питание. Транзистор включает двигатель. Код программы увеличит скорость двигателя и затем уменьшите скорость двигателя до нуля
Ручная лебедка Knex: 8 ступеней
Ручная лебедка Knex: я решил построить ее, потому что я пытался найти способ тянуть прямо вверх, чтобы поднять что-то, а у двигателей Knex просто не хватает крутящего момента