Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Konfiguracja Raspberry Pi
- Krok 2: Zrozumienie, jak działa konfiguracja
- Krok 3: Zaplecze Pi
- Krok 4: Frontend Pi
- Krok 5: Arduino
- Krok 6: Łączenie wszystkiego
Wideo: Wciągarka sterowana Art-Net: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
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
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
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
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:
Sterowana głosem wyrzutnia rakiet oparta na Alexa: 9 kroków (ze zdjęciami)
Sterowana głosem wyrzutnia rakiet oparta na Alexa: W miarę zbliżania się sezonu zimowego; nadchodzi ta pora roku, kiedy obchodzone jest święto świateł. Tak, mówimy o Diwali, które jest prawdziwym indyjskim świętem obchodzonym na całym świecie. W tym roku Diwali już się skończyło i widząc ludzi
DIY STEROWANA PRZEZ INTERNET SMART LED MATRIX (ADAFRUIT + ESP8266 + WS2812): 8 kroków (ze zdjęciami)
DIY STEROWANA PRZEZ INTERNET SMART LED MATRIX (ADAFRUIT + ESP8266 + WS2812): Oto moje drugie przejście do projektu, który z radością mogę Wam pokazać. Chodzi o inteligentną matrycę LED DIY, która pozwoli Ci wyświetlać na niej dane, takie jak statystyki YouTube, statystyki inteligentnego domu, takie jak temperatura, wilgotność, może być prostym zegarem lub po prostu pokazać
Sterowana przez Bluetooth choinka NeoPixel: 5 kroków
Sterowana przez Bluetooth choinka NeoPixel: Czy zastanawiałeś się, jak dodać IoT (Internet rzeczy) do swojej choinki w tym roku? Cóż, to całkowicie możliwe! Osobiście nazywam ten projekt „ArduXmas”, a składa się on z taśmy ledowej RGB NeoPixel sterowanej przez dzika Arduino
Ramka LED Pixel Art z Retro Arcade Art, kontrolowana przez aplikację: 7 kroków (ze zdjęciami)
Ramka LED Pixel Art z Retro Arcade Art, kontrolowana przez aplikację: ZRÓB KONTROLOWANĄ APLIKACJĄ RAMĘ LED ART Z 1024 diodami LED, KTÓRA WYŚWIETLA RETRO 80s ARCADE GAME ART PartsZestaw PIXEL Makers - 59 USD Matryca LED Adafruit 32x32 P4 - 49,9512x20 cali Arkusz akrylowy, 1/8" cal grubości - Przezroczysty lekki dym z Tap Plastics
Wciągarka Knex z korbą ręczną: 8 kroków
Ręczna wciągarka Knex z korbą: Zdecydowałem się to zbudować, ponieważ próbowałem znaleźć sposób na podciąganie prostej do podnoszenia rzeczy, a silniki Knex po prostu nie mają wystarczającego momentu obrotowego