Съдържание:

Лебедка, контролирана от Art-Net: 6 стъпки
Лебедка, контролирана от Art-Net: 6 стъпки

Видео: Лебедка, контролирана от Art-Net: 6 стъпки

Видео: Лебедка, контролирана от Art-Net: 6 стъпки
Видео: Тайна Великой Китайской Стены 2024, Ноември
Anonim
Лебедка, контролирана от Art-Net
Лебедка, контролирана от Art-Net

Здравейте всички, в тази инструкция ще обясня как създадох моята лебедка, управлявана от 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

Бекенд на Pi
Бекенд на 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

Frontend на Pi
Frontend на Pi

За да можете да редактирате интерфейса на pi, първо трябва да си предоставите достъп до директорията/var/www/html/. Тук apache получава своите файлове за показване на уебсайта си. За да получите достъп, изпълнете:

sudo chmod 777/var/www/html/

Сега всичко е направено, вземете кода за интерфейса на моя github и го поставете в/var/www/html/директорията.

Интерфейсът използва същия принцип като бекенда, но сега изпраща командите F2B _ *** при натискане на бутон или плъзгане на плъзгача.

И това е фронтондът свършен!

Стъпка 5: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
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.

Това е!

Препоръчано: