Spisu treści:

Wciągarka sterowana Art-Net: 6 kroków
Wciągarka sterowana Art-Net: 6 kroków

Wideo: Wciągarka sterowana Art-Net: 6 kroków

Wideo: Wciągarka sterowana Art-Net: 6 kroków
Wideo: QLC+ konfiguracja bramki ARTNET DMX512 PROMYK 3.00 w trybie DHCP 2024, Wrzesień
Anonim
Wciągarka sterowana Art-Net
Wciągarka sterowana Art-Net

Witam wszystkich, w tym instruktażu wyjaśnię, jak stworzyłem moją sterowaną wciągarkę Art-Net. "Twoje co?" słyszę, jak pytasz, pozwól, że wyjaśnię bardzo szybko. Kilka lat temu urządziliśmy przyjęcie z miejscowym domem młodzieży, a jako scenografię wpadliśmy na pomysł zrobienia ruchomego dachu.

Za pomocą 9 wyciągarek (takli) podnieśliśmy gigantyczne białe płótno i poprzez protokół dmx kontrolowaliśmy je. Ale w tamtym czasie używane przez nas wyciągarki były sterowane 3-fazowo. Aby więc szedł w górę iw dół, musieliśmy stworzyć system przekaźników sterowanych przez centralny Arduino mega, który był sterowany za pomocą dmx. Przekaźnik służy do przełączania napięć 230V i 12 amperów.

Aby wyrazić to w bardziej zrozumiały sposób, musieliśmy stworzyć gigantyczny bałagan przewodów i przekaźników, który był bardzo niestabilny, zawodny i w rzeczywistości dość niebezpieczny.

Pomyśleliśmy więc, że musi być na to lepszy sposób. Zaczęliśmy się zastanawiać i doszliśmy do wniosku, że najlepszym sposobem na to będzie modułowy system wyciągarek sterowanych protokołem Art-Net, więc będziemy potrzebować tylko źródła napięcia i kabla Ethernet.

Więc to jest dokładnie to, co stworzyłem i postaram się wyjaśnić, jak to zrobiłem. Cała konfiguracja opiera się na raspberry pi, która kontroluje proces instalacji. Po ustawieniu sterowanie przekazuje się lekkiemu komputerowi (Chamsys, itp.), który od tego momentu będzie sterował wciągarkami.

Zakładam, że masz podstawową wiedzę o pythonie, arduino i raspberry pi aswel, ponieważ rozumiesz coś na temat protokołu i kontrolerów art-net.

Kieszonkowe dzieci

Co będziesz potrzebował:

  • malinowy pi
  • Arduino
  • Osłona Arduino Ethernet
  • Osłona silnika Arduino
  • Dowolny ekran OLED
  • kabel Ethernet
  • przełącznik sieciowy
  • Silnik prądu stałego z wbudowanym enkoderem

Krok 1: Konfiguracja Raspberry Pi

Ok, więc sposób, w jaki to będzie działać, będzie polegał na tym, że raspberry pi będzie uruchamiać serwer Apache i serwer MariaDB. Serwer Apache ma obsługiwać stronę internetową, MariaDB ma utrzymywać bazę danych, w której będziemy przechowywać dane wyciągarek.

Nie będę Cię przeprowadzał przez cały proces konfigurowania pi za pomocą ssh, jeśli nie jesteś zaznajomiony, oto dobry samouczek.

Więc najpierw upewnimy się, że raspberry pi jest skonfigurowany w twoim terminalu:

Aby zainstalować Apache

sudo apt zainstaluj apache2 -y

Aby zainstalować mariaDB

sudo apt-get zainstaluj serwer mariadb

To są wszystkie rozszerzenia Pythona, których będziemy potrzebować

pip3 zainstaluj mysql-connector-python

pip3 zainstaluj flask-socketio pip3 zainstaluj flask-cors pip3 zainstaluj gevent pip3 zainstaluj gevent-websocket pip3 zainstaluj netifaces

W przypadku wyświetlacza oled potrzebujemy nieco trudniejszego procesu konfiguracji, który można znaleźć tutaj.

Ok, to wszystko zrobione!

Krok 2: Zrozumienie, jak działa konfiguracja

Więc jak chcesz ustawić wciągarkę, to nadając jej pozycję początkową i końcową. Zostanie mu przypisany określony kanał i dzięki temu kanałowi będziesz mógł poruszać się tylko między wybraną statystyką a pozycją końcową.

Aby wybrać te pozycje, musisz przesunąć do nich wyciągarkę, gdy już tam będziesz, obrócisz określony kanał do wartości 56. Gdy ten dokładnie kanał osiągnie tę wartość, będzie wiedział, że jest to jego końcowa pozycja początkowa / końcowa, jeśli musi przejść w górę lub w dół lub jeśli musi zmienić swoje wartości artnet. Przesuwanie wyciągarki również odbywa się poprzez ustawienie pewnego kanału na 56. „A dlaczego 56” słyszę, że się zastanawiasz, no cóż musiałem coś wybrać:).

Pozycja jest obliczana przez enkoder znajdujący się na silniku prądu stałego.

Krok 3: Zaplecze Pi

Zaplecze Pi
Zaplecze Pi

Backend systemu można znaleźć na moim githubie. Napisałem własną bibliotekę dla protokołu art-net, więc nie krępuj się jej używać. Nie przeprowadzę cię przez wszystko linijka po linijce, ale przedstawię ci to wszystko z szerszej perspektywy.

Kod uruchamia serwer flask, który komunikuje się z serwerem Apache działającym na pi. Używa modułu flask-socketio do wysyłania i odbierania danych do frontendu. Biblioteka art-net używa modułu gniazda z Pythona do wysyłania pakietów UDP do i z arduino.

Każda metoda, która zaczyna się od @socketio.on('F2B_***') czeka na wywołanie F2B z frontendu. Po odebraniu wykona odpowiednią akcję. Czy to wysyłanie komandosów artnetowych, czy pobieranie danych z bazy danych i wysyłanie ich z powrotem na front.

Metoda oled_show_info() służy do wyświetlania adresu IP (zarówno na interfejsach WLAN, jak i Ethernet).

więc po prostu uruchom kod za pomocą

python3 aplikacja.py

Krok 4: Frontend Pi

Frontend Pi
Frontend Pi

Aby móc edytować nakładkę pi, musisz najpierw uzyskać dostęp do katalogu /var/www/html/. To tutaj Apache pobiera swoje pliki do wyświetlenia na swojej stronie internetowej. Aby uzyskać dostęp do wykonania:

sudo chmod 777 /var/www/html/

Teraz to wszystko zrobione, pobierz kod frontendu mojego github i umieść go w katalogu /var/www/html/.

Frontend wykorzystuje tę samą zasadę, co backend, ale teraz wysyła polecenia F2B_*** po naciśnięciu przycisku lub przesunięciu suwaka.

I gotowe!

Krok 5: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Aby korzystać z arduino, musisz użyć osłony ethernetowej i osłony silnika. Wystarczy delikatnie wcisnąć je na arduino. Upewnij się, że nie dociskasz osłony silnika zbyt daleko do osłony sieci Ethernet, ponieważ może to spowodować zwarcie 2 styków silnika na złączu Ethernet!

Kod dla arduino można również znaleźć na moim githubie. Prześlij plik artnet_winch.ino i wszystko powinno być dobre.

Upewnij się, że zdefiniowałeś właściwe szpilki do właściwych szpilek silnika. Kołki osłony silnika są wybierane tak, aby kołki rozgałęźne znajdowały się na górze osłony. Te piny są wybierane w //--- konfiguracji silnika. Aswel jako piny enkodera, które należy podłączyć do prawych pinów arduino.

Upewnij się również, że twój adres MAC tarczy jest poprawny. Można to znaleźć na naklejce pod osłoną i edytować w zmiennej MAC. IP, którego używasz dla pi, musi być w tym samym zakresie co PI, zwykle można to znaleźć na ekranie oled.

Kod wygląda trochę za dużo, ale nie jest trudny do zrozumienia. Zasadniczo tarcza Ethernet stale odczytuje przychodzące pakiety UDP. Jeśli ten pakiet jest pakietem Artnet, dekoduje go i otrzymuje od niego potrzebne informacje. Różne pakiety Artnet są ładnie opisane na stronie Art-Net, więc jeśli jesteś zainteresowany, możesz przeczytać, co one robią.

Jeśli otrzyma pakiet ArtPoll, odpowie ArtPollReply. jest to używane w funkcji objaśnienia w zapleczu, aby dowiedzieć się, które urządzenia są w sieci.

Jeśli odbierze pakiet ArtDMX, zdekoduje pakiet i użyje podanych danych do wykonania określonych poleceń konfiguracyjnych lub przemieszczenia wyciągarki w odpowiedniej pozycji.

Funkcja move_takel przekształca daną wartość DMX (pomiędzy 0-255) na pozycję między pozycją początkową i końcową (0 oznacza koniec, a 255 początek). Jeśli pozycja enkodera nie jest równa wartości transformowanej, wciągarka będzie się poruszać w górę/w dół w zależności od tego, gdzie jesteś.

Pracowałem nad pętlą sprzężenia zwrotnego między PI a arduino, aby mogła nadążyć za swoją pozycją, ale cóż, mojemu arduino zabrakło pamięci do przechowywania programu:).

Montaż tego wszystkiego

Do jego montażu przymocowałem silnik do metalowego uchwytu i nałożyłem na niego rodzaj rurki. Następnie po prostu przymocuj sznurek do tuby i użyj rolki taśmy jako ciężarka. Jest to bardzo proste i możesz być bardzo kreatywny w sposobie, w jaki chcesz go zamontować.

Krok 6: Łączenie wszystkiego

Po skonfigurowaniu arduino i pi po prostu podłącz oba kable Ethernet do przełącznika i to powinno być!

Możesz to przetestować, surfując do wlan ip podanego na ekranie oled i powinieneś zobaczyć stronę. Naciśnij znajdź urządzenia, aby sprawdzić, czy możesz znaleźć urządzenie. Jeśli nic nie pokazuje, oznacza to, że twoje arduino nie jest dobrze połączone lub wybrany adres IP nie znajduje się w tym samym zakresie, co adres PI.

Gdy zobaczysz urządzenie, po prostu naciśnij przycisk konfiguracji. W menu ustawień możesz przesuwać wyciągarkę za pomocą strzałek i sprawdzać, czy jej pozycje początkowe i końcowe są prawidłowe za pomocą suwaka.

Upewnij się, że twój kontroler jest również podłączony do osłony, a jego adres IP znajduje się w zakresie IP i arduino.

Otóż to!

Zalecana: