Inhoudsopgave:

Art-Net gestuurde lier - Ajarnpa
Art-Net gestuurde lier - Ajarnpa

Video: Art-Net gestuurde lier - Ajarnpa

Video: Art-Net gestuurde lier - Ajarnpa
Video: Aqara E1 zigbee - умный выключатель для круглого подрозетника, интеграция в Home Assistant 2024, November
Anonim
Art-Net gestuurde lier
Art-Net gestuurde lier

Hallo allemaal, in deze instructable zal ik uitleggen hoe ik mijn door kunstnet bestuurde lier heb gemaakt. "Jouw wat?" hoor ik je vragen, nou, laat het me heel snel uitleggen. Een paar jaar geleden gaven we een feestje met het plaatselijke jeugdhuis, en als decorontwerp hadden we het idee om een bewegend dak te maken.

Met 9 lieren (takels) hebben we een gigantisch wit doek opgetild en via het protocol dmx aangestuurd. Maar destijds waren de lieren die we gebruikten 3 fase gestuurd. Dus om het op en neer te laten gaan, moesten we een systeem van relais maken dat werd bestuurd door een centrale Arduino-mega die werd bestuurd met behulp van dmx. Het relais waar schakelspanningen van 230V en 12 ampère worden geschakeld.

Om het in meer begrijpelijke bewoordingen te zeggen, moesten we een gigantische warboel van draden en relais creëren die super onstabiel, onbetrouwbaar en behoorlijk gevaarlijk was.

Dus we dachten bij onszelf dat er een betere manier moest zijn om dit te doen. We begonnen na te denken en kwamen tot de conclusie dat de beste manier om dit te doen een modulair systeem van lieren zou zijn, aangestuurd via het Art-Net-protocol, zodat we alleen een spanningsbron en een ethernetkabel nodig zouden hebben.

Dus dat is precies wat ik heb gemaakt en ik zal proberen uit te leggen hoe ik het deed. De hele installatie is gebaseerd op een Raspberry Pi die het installatieproces bestuurt. Bij de opstelling wordt de besturing overgedragen aan een lichtcomputer (Chamsys, enz.) die vanaf daar de lieren zal besturen.

Ik ga ervan uit dat je basiskennis hebt van python, arduino en raspberry pi en ook iets begrijpt over het art-net-protocol en de controllers.

Benodigdheden

Wat je nodig hebt:

  • Frambozenpi
  • Arduino
  • Arduino Ethernet-schild
  • Arduino motor schild
  • Elk OLED-scherm
  • ethernetkabel
  • ethernet-switch:
  • DC-motor met ingebouwde encoder

Stap 1: De Raspberry Pi instellen

Oké, dus de manier waarop dit zal werken, is dat de Raspberry Pi een Apache- en een MariaDB-server zal draaien. De apache-server is om de website te hosten, de MariaDB is om een database bij te houden waarin we de gegevens van de lieren opslaan.

Ik zal je niet door het hele proces van het instellen van de pi met ssh leiden, als je niet bekend bent, is hier een goede tutorial.

Dus eerst zorgen we ervoor dat de raspberry pi helemaal is ingesteld, in je terminalrun:

Apache installeren

sudo apt installeer apache2 -y

MariaDB installeren

sudo apt-get install mariadb-server

Dit zijn alle python-extensies die we nodig hebben

pip3 installeer mysql-connector-python

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

Voor het oled-scherm hebben we een wat moeilijker installatieproces nodig dat hier te vinden is.

Ok dat is de pi allemaal gedaan!

Stap 2: Begrijpen hoe de installatie zal werken

Dus hoe u de lier wilt instellen, is door deze een startpositie en een eindpositie te geven. Het krijgt een bepaald kanaal toegewezen en met dit kanaal kun je alleen tussen de gekozen stat en eindpositie bewegen.

Om deze positie te selecteren moet je de lier er naar toe verplaatsen, eenmaal daar draai je een bepaald kanaal naar de waarde van 56. Wanneer dit exacte kanaal die waarde bereikt zal het weten dat dit zijn eind begin/eind positie is, als het omhoog of omlaag moet of als het zijn artnet-waarden moet wijzigen. Het verplaatsen van de lier doe je ook door een bepaald kanaal op 56 te zetten. "En waarom 56" hoor ik je afvragen, nou ik moest toch iets kiezen:).

De positie wordt berekend via de encoder die zich op de DC-motor bevindt.

Stap 3: Backend van de Pi

Achterkant van de Pi
Achterkant van de Pi

De backend voor het systeem is te vinden op mijn github. Ik heb mijn eigen bibliotheek voor het art-net-protocol geschreven, dus voel je vrij om het te gebruiken. Ik zal je niet regel voor regel door alles leiden, maar ik zal je het algemene idee van dit alles geven.

De code voert een flask-server uit die communiceert met de apache-server die op de pi draait. Het gebruikt de flask-socketio-module om gegevens naar de frontend te verzenden en te ontvangen. De art-net lib gebruikt de socketmodule van python om UDP-pakketten van en naar de arduino te verzenden.

Elke methode die begint met een @socketio.on('F2B_***') wacht op een F2B-aanroep van de frontend. Zodra het is ontvangen, zal het de overeenkomstige actie uitvoeren. Of het nu gaat om het verzenden van een artnet-commando of het ophalen van gegevens uit de DB en het terugsturen naar het front.

De oled_show_info() methode wordt gebruikt om het ip van het ip weer te geven (zowel op de wlan als ethernet interfaces).

dus voer de code gewoon uit met

python3 app.py

Stap 4: Frontend van de Pi

Frontend van de Pi
Frontend van de Pi

Om de frontend van de pi te kunnen bewerken, moet je jezelf eerst toegang geven tot de directory /var/www/html/. Dit is waar apache zijn bestanden laat weergeven op zijn website. Om toegang uit te voeren:

sudo chmod 777 /var/www/html/

Nu is dat allemaal gedaan, haal de code voor de frontend van mijn github en plaats deze in de /var/www/html/ directory.

De frontend gebruikt hetzelfde principe als de backend, maar verzendt nu de F2B_***-commando's wanneer een knop wordt ingedrukt of de schuifregelaar wordt verplaatst.

En dat is de frontend gedaan!

Stap 5: De Arduino

De Arduino
De Arduino
De Arduino
De Arduino
De Arduino
De Arduino

Voor het gebruik van de arduino moet je het ethernet-schild en het motorschild gebruiken. Duw ze gewoon voorzichtig op de Arduino. Zorg ervoor dat je het motorschild niet te ver op het ethernetschild drukt, anders maak je kortsluiting van de 2 motorpinnen op de ethernetverbinding!

De code voor de arduino is ook te vinden op mijn github. Upload het artnet_winch.ino-bestand en alles zou goed moeten zijn.

Zorg ervoor dat u de juiste pinnen definieert voor de juiste pinnen van uw motor. De pinnen van het motorschild worden gekozen met de header-pinnen bovenop het schild. Deze pinnen zijn gekozen onder de //--- motor config. Evenals de encoder pinnen die moeten worden aangesloten op de juiste pinnen van de arduino.

Zorg er ook voor dat uw MAC-adres van het schild correct is. Dit is te vinden op een sticker onder het schild en bewerkt in de MAC-variabele. Het IP-adres dat je voor de pi gebruikt moet in hetzelfde bereik liggen als de PI, dit is normaal gesproken te vinden op het oled-scherm.

De code ziet er een beetje veel uit, maar is niet zo moeilijk te begrijpen. In feite leest het ethernet-schild constant de binnenkomende udp-pakketten. Als dat pakket een Artnet-pakket is, decodeert het het en haalt het de benodigde informatie eruit. De verschillende artnet-pakketten staan mooi beschreven op de Art-Net-website, dus als je geïnteresseerd bent, kun je lezen wat ze allemaal doen.

Als het een ArtPoll-pakket ontvangt, reageert het met een ArtPollReply. dit wordt gebruikt in de callout-functie in de backend om te zien welke apparaten zich in het netwerk bevinden.

Als het een ArtDMX-pakket ontvangt, zal het het pakket decoderen en de gegeven gegevens gebruiken om bepaalde setup-opdrachten uit te voeren of de lier in positie te verplaatsen.

De move_takel-functie transformeert de gegeven DMX-waarde (tussen 0-255) naar een positie tussen de start- en eindpositie (0 is het einde en 255 de start). Als de positie van de encoder niet gelijk is aan de getransformeerde waarde, zal de lier omhoog/omlaag bewegen, afhankelijk van waar u zich bevindt.

Ik werkte aan een feedbacklus tussen de PI en Arduino, zodat deze zijn positie kon bijhouden, maar mijn Arduino had onvoldoende geheugen om het programma op te slaan:).

Alles monteren

Voor de montage heb ik de motor op een metalen houder bevestigd en er een soort buis op gezet. Vervolgens gewoon een koord aan de buis bevestigd en een rol tape als gewicht gebruikt. Dit is erg basic en je kunt heel creatief zijn in de manier waarop je het wilt monteren.

Stap 6: Alles aansluiten

Zodra de arduino en de pi allemaal zijn ingesteld, hoeft u alleen maar beide ethernetkabels in uw switch aan te sluiten en dat zou het moeten zijn!

Je kunt het testen door te surfen naar het wlan-ip dat op het oled-scherm wordt gegeven en je zou de site moeten zien. Druk op apparaten zoeken om te zien of u het apparaat kunt vinden. Als er niets wordt weergegeven, is je arduino niet goed verbonden of ligt het IP-adres dat je hebt gekozen niet in hetzelfde bereik als dat van de PI.

Zodra u het apparaat ziet, drukt u op setup. In het setup-menu kunt u de lier verplaatsen met behulp van de pijlen en testen of de begin- en eindpositie correct zijn met de schuifregelaar.

Zorg ervoor dat uw controller ook is aangesloten op het schild en dat het IP-adres zich binnen het bereik van dat van de PI en Arduino bevindt.

Dat is het!

Aanbevolen: