Съдържание:
- Консумативи
- Стъпка 1: Настройка на Raspberry Pi
- Стъпка 2: Разбиране как ще работи настройката
- Стъпка 3: Бекенд на Pi
- Стъпка 4: Frontend на Pi
- Стъпка 5: Arduino
- Стъпка 6: Свързване на всичко
Видео: Лебедка, контролирана от Art-Net: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Здравейте всички, в тази инструкция ще обясня как създадох моята лебедка, управлявана от art-net. - Какво си? чувам да питате, нека ви обясня много бързо. Преди няколко години организирахме парти с местната младежка къща и като сценичен дизайн имахме идеята да направим подвижен покрив.
С 9 лебедки (тегли) вдигнахме гигантска бяла кърпа и чрез протокола dmx ги контролирахме. Но по това време лебедките, които използвахме, бяха контролирани от 3 фази. Така че, за да вървим нагоре и надолу, трябваше да създадем система от релета, контролирани от централно мега Arduino, което се контролира с помощта на dmx. Релетата с превключващи напрежения 230V и 12 ампера.
За да го изразим по -разбираемо, трябваше да създадем гигантска бъркотия от проводници и релета, която беше изключително нестабилна, ненадеждна и всъщност доста опасна.
Затова си помислихме, че трябва да има по -добър начин да направим това. Започнахме да мислим и стигнахме до извода, че най-добрият начин да направим това ще бъде чрез модулна система от лебедки, контролирана по протокола Art-Net, така че ще ни трябват само източник на напрежение и Ethernet кабел.
Така че точно това създадох и ще се опитам да ви обясня как го направих. Цялата настройка разчита на малинов pi, който контролира процеса на настройка. В рамките на своята настройка контролът се предоставя на лек компютър (Chamsys и др.), Който ще контролира лебедките от там нататък.
Предполагам, че имате основни познания за python, arduino и raspberry pi aswel, както и да разбирате нещо за протокола art-net и контролерите.
Консумативи
Какво ще ви трябва:
- Малина пи
- Arduino
- Arduino Ethernet щит
- Arduino моторен щит
- Всеки OLED екран
- Ethernet кабел
- Ethernet превключвател
- DC двигател с надграждане на енкодер
Стъпка 1: Настройка на Raspberry Pi
Добре, така че начинът, по който това ще работи, е, че малиновото пи ще работи с Apache и MariaDB сървър. Сървърът apache е домакин на уебсайта, MariaDB трябва да поддържа база данни, където ще съхраняваме данните на лебедките.
Няма да ви развеждам през целия процес на настройка на pi с ssh, ако не сте запознати, ето един добър урок.
Така че първо ще се уверим, че малиновото pi е настроено във вашия терминален цикъл:
За да инсталирате apache
sudo apt инсталирате apache2 -y
За да инсталирате mariaDB
sudo apt-get install mariadb-server
Това са всички разширения на python, от които се нуждаем
pip3 инсталирайте mysql-конектор-python
pip3 инсталирайте колба-socketio pip3 инсталирайте колба-корс pip3 инсталирайте gevent pip3 инсталирайте gevent-websocket pip3 инсталирайте netifaces
За олеирания дисплей се нуждаем от малко по -труден процес на настройка, който може да се намери тук.
Добре, това е всичко готово!
Стъпка 2: Разбиране как ще работи настройката
И така, как искате да настроите лебедката, е като й дадете начална и крайна позиция. Ще му бъде присвоен определен канал и с този канал ще можете да се движите само между избраната статистика и крайната позиция.
За да изберете тази позиция, ще трябва да преместите лебедката към тях, след като сте там, ще завъртите определен канал на стойност 56. Когато този точен канал достигне тази стойност, той ще знае, че това е неговата крайна начална / крайна позиция, ако трябва да се движи нагоре или надолу или ако трябва да промени стойностите си в artnet. Преместването на лебедката също става чрез задаване на определен канал на 56. "И защо 56" чувам да се чудите, ами трябваше да избера нещо:).
Позицията се изчислява чрез енкодера, който е на DC двигателя.
Стъпка 3: Бекенд на Pi
Бекендът на системата може да бъде намерен на моя github. Написал съм собствена библиотека за протокола art-net, така че не се колебайте да я използвате. Няма да ви развеждам всичко по ред, но ще ви дам общата представа за всичко това.
Кодът работи с флаш сървър, който комуникира със сървъра apache, работещ на pi. Той използва модула за колба-socketio за изпращане и получаване на данни до интерфейса. Art-net lib използва модула на гнездото от python за изпращане на UDP пакети към и от arduino.
Всеки метод, който започва с @socketio.on ('F2B _ ***'), чака F2B повикване от интерфейса. След като бъде получен, той ще изпълни съответното действие. Независимо дали изпращате командос на artnet или получавате данни от БД и ги изпращате обратно отпред.
Методът oled_show_info () се използва за показване на ip на ip (както на wlan, така и на ethernet интерфейси).
така че просто стартирайте кода с
python3 app.py
Стъпка 4: Frontend на Pi
За да можете да редактирате интерфейса на pi, първо трябва да си предоставите достъп до директорията/var/www/html/. Тук apache получава своите файлове за показване на уебсайта си. За да получите достъп, изпълнете:
sudo chmod 777/var/www/html/
Сега всичко е направено, вземете кода за интерфейса на моя github и го поставете в/var/www/html/директорията.
Интерфейсът използва същия принцип като бекенда, но сега изпраща командите F2B _ *** при натискане на бутон или плъзгане на плъзгача.
И това е фронтондът свършен!
Стъпка 5: Arduino
За да използвате arduino, ще трябва да използвате щита на Ethernet и щита на двигателя. Просто внимателно ги натиснете върху arduino. Уверете се, че не натискате щита на двигателя далеч върху щита на Ethernet или ще скъсите двата щифта на мотора на Ethernet връзката!
Кодът за arduino може да бъде намерен и в моя github. Качете файла artnet_winch.ino и всичко трябва да е наред.
Уверете се, че сте определили правилните щифтове към правилните щифтове на вашия двигател. Щифтовете на моторния щит се избират с щифтовете за заглавки отгоре на щита. Тези щифтове се избират в // --- конфигурацията на двигателя. Също като щифтовете на енкодера, които трябва да бъдат свързани към десните щифтове на arduino.
Също така се уверете, че вашият MAC адрес на щита е правилен. Това може да се намери на стикер под щита и да се редактира в променливата MAC. IP, който използвате за pi, трябва да бъде в същия диапазон като PI, това обикновено може да се намери на олеирания екран.
Кодът изглежда малко, но не е толкова труден за разбиране. По принцип Ethernet щитът постоянно чете идващите udp пакети. Ако този пакет е Artnet пакет, той го декодира и получава необходимата информация от него. Различните пакети на artnet са добре описани на уебсайта на Art-Net, така че ако се интересувате, можете да прочетете какво правят всички.
Ако получи пакет ArtPoll, той ще отговори с ArtPollReply. това се използва във функцията за допълнителна информация в задната част, за да се намери кои устройства са в мрежата.
Ако получи и пакет ArtDMX, той ще декодира пакета и ще използва дадените данни за изпълнение на определени команди за настройка или преместване на лебедката на място.
Функцията move_takel трансформира дадената DMX стойност (между 0-255) в позиция между началната и крайната позиция (0 е края и 255 началото). Ако позицията на енкодера не е равна на трансформираната стойност, лебедката ще се движи нагоре/надолу в зависимост от това къде се намирате.
Работех по цикъл за обратна връзка между PI и arduino, за да може да поддържа позицията си, но добре, че на arduino ми свърши паметта за съхранение на програмата:).
Монтиране на всичко
За монтирането му прикрепих двигателя към метален държач и поставих един вид тръба върху него. След това просто прикрепих кабел към тръбата и използвах ролка лента като тежест. Това е много основно и можете да станете много креативни по начина, по който искате да го монтирате.
Стъпка 6: Свързване на всичко
След като всички arduino и pi са настроени, просто включете двата Ethernet кабела във вашия комутатор и това трябва да е всичко!
Можете да го тествате, като сърфирате в wlan ip, даден на oled екрана, и трябва да видите сайта. Натиснете Find devices, за да видите дали можете да намерите устройството. Ако не показва нищо, вашият arduino не е добре свързан или избраният от вас IP адрес не е в същия диапазон като този на PI.
След като видите устройството, просто натиснете setup. В менюто за настройка можете да преместите лебедката с помощта на стрелките и да проверите дали началната и крайната позиция са правилни с плъзгача.
Уверете се, че вашият контролер също е включен в щита и неговият IP е в обхвата на този на PI и arduino.
Това е!
Препоръчано:
Ракета -носител, базирана на Alexa, гласово контролирана: 9 стъпки (със снимки)
Ракета -носител с гласово управление, базирана на Alexa: С наближаването на зимния сезон; идва това време на годината, когато се празнува фестивалът на светлините. Да, говорим за Дивали, който е истински индийски фестивал, празнуван по целия свят. Тази година Дивали вече приключи и вижда хора
Светодиодна лента за матричен дисплей с контролирана WiFi лента: 3 стъпки (със снимки)
Светодиодна лента с матричен дисплей с контролирана WiFi лента: Програмируеми LED ленти, напр. базирани на WS2812, са очарователни. Приложенията са многобройни и бързо можете да получите впечатляващи резултати. И някак си изграждането на часовници изглежда е друг домейн, за който много мисля. Започвайки с известен опит в
Контролирана с Bluetooth RGB светлина: 3 стъпки
Контролирана с Bluetooth RGB светлина: Имало ли е моменти, когато сте искали да промените цвета и яркостта на домашната си светлина само с няколко докосвания на телефона си? Добрата новина е-това може да стане лесно с помощта на микроконтролер с Bluetooth, като Ameba RTL8722 от Realtek. Ето ме
Обратна връзка за влажност на почвата Контролирана система за капково напояване, свързана с интернет (ESP32 и Blynk): 5 стъпки
Контролирана система за капково напояване, свързана с интернет (ESP32 и Blynk): Погрижете се за вашата градина или растения, когато отивате на дълги празници, или забравете да поливате растението си всеки ден. Е, тук е решението Неговата система за контрол на влажността на почвата и глобално свързана система за капково напояване, контролирана от ESP32 на софтуерната предна част
Лебедка Knex с ръкохватка: 8 стъпки
Ръчна манивела Knex Winch: Реших да направя това, защото се опитвах да намеря начин да издърпам направо нагоре, за да повдигна нещата, а моторите на knex просто нямат достатъчно въртящ момент