Indholdsfortegnelse:

Art-Net-kontrolleret spil: 6 trin
Art-Net-kontrolleret spil: 6 trin

Video: Art-Net-kontrolleret spil: 6 trin

Video: Art-Net-kontrolleret spil: 6 trin
Video: 🚀 AMAZON 2.0 - ИНТЕРНЕТ МАГАЗИН с нуля за 6 часов [Next / React / Nest / PostgreSQL / Prisma / TS] 2024, November
Anonim
Art-Net-kontrolleret spil
Art-Net-kontrolleret spil

Hej alle sammen, i denne instruktive forklarer jeg, hvordan jeg skabte mit art-net kontrollerede spil. "Hvad er det?" jeg hører dig spørge, lad mig forklare meget hurtigt. For et par år siden holdt vi en fest med det lokale ungdomshus, og som scenografi havde vi idéen om at lave et tag i bevægelse.

Med 9 spil (takels) løftede vi en kæmpe hvid klud op, og gennem protokollen dmx kontrollerede vi dem. Men på det tidspunkt spillede vi, hvor 3 -faset styrede. Så for at få det til at gå op og ned måtte vi oprette et system af relæer styret af en central Arduino mega, der blev styret ved hjælp af dmx. Relæerne, hvor koblingsspændinger på 230V og 12 ampere.

For at sige det mere forståeligt, var vi nødt til at skabe et kæmpe rod af ledninger og relæer, der faktisk var super ustabilt, upålideligt og temmelig farligt.

Så vi tænkte for os selv, at der skulle være en bedre måde at gøre dette på. Vi begyndte at tænke og kom til den konklusion, at den bedste måde at gøre dette på ville være gennem et modulært system med spil, der kontrolleres over Art-Net-protokollen, så vi kun skulle bruge en spændingskilde og et ethernet-kabel.

Så det var præcis det, jeg skabte, og jeg vil prøve at forklare dig, hvordan jeg gjorde det. Hele opsætningen er afhængig af en hindbær pi, der styrer installationsprocessen. På sin opsætning giver kontrollen over til en let computer (Chamsys, osv.), Der vil styre spilene derfra.

Jeg antager, at du har grundlæggende viden om python, arduino og hindbær pi aswel som at forstå noget om art-net-protokollen og controllere.

Forbrugsvarer

Det skal du bruge:

  • Hindbær pi
  • Arduino
  • Arduino Ethernet -skjold
  • Arduino motor skjold
  • Enhver OLED -skærm
  • ethernet -kabel
  • ethernet switch
  • DC -motor med encoder bygget på

Trin 1: Opsætning af Raspberry Pi

Ok, så måden det vil fungere på er, at hindbær -pi kører en Apache og en MariaDB -server. Apache -serveren skal være vært for webstedet, MariaDB skal opbevare en database, hvor vi vil gemme dataene fra spilene.

Jeg vil ikke guide dig gennem hele processen med at konfigurere pi'en med ssh, hvis du ikke er bekendt, er her en god tutorial.

Så først og fremmest skal vi sikre os, at hindbær pi er helt opsat i din terminalkørsel:

For at installere apache

sudo apt installere apache2 -y

For at installere mariaDB

sudo apt-get install mariadb-server

Dette er alle de python -udvidelser, vi skal bruge

pip3 installer mysql-connector-python

pip3 installere kolbe-socketio pip3 installere kolbe-cors pip3 installere gevent pip3 installere gevent-websocket pip3 installere netifaces

Til oled -displayet har vi brug for en lidt vanskeligere installationsproces, der kan findes her.

Ok, det er pi alt gjort!

Trin 2: Forstå, hvordan opsætningen fungerer

Så hvordan du vil konfigurere spillet er ved at give det en startposition og en slutposition. Det vil blive tildelt en bestemt kanal, og med denne kanal kan du kun flytte mellem den valgte stat og slutposition.

For at vælge denne position skal du flytte spillet til dem, når du er der, vil du dreje en bestemt kanal til værdien 56. Når denne nøjagtige kanal når denne værdi, ved den, at dette er hans slut start / slut position, hvis den skal flytte op eller ned, eller hvis den skal ændre sine artnet -værdier. Flytning af spil gøres også ved at indstille en bestemt kanal til 56. "Og hvorfor 56" hører jeg dig undre dig, ja jeg var nødt til at vælge noget:).

Positionen beregnes via den encoder, der er på DC -motoren.

Trin 3: Backend af Pi

Bagenden af Pi
Bagenden af Pi

Systemets backend kan findes på min github. Jeg har skrevet mit eget bibliotek til art-net-protokollen, så brug den gerne. Jeg vil ikke gå dig igennem alt linje for linje, men jeg vil give dig det store billede af det hele.

Koden kører en kolbe -server, der kommunikerer med apache -serveren, der kører på pi. Den bruger kolbe-socketio-modulet til at sende og modtage data til frontend. Art-net lib bruger socket-modulet fra python til at sende UDP-pakker til og fra arduinoen.

Hver metode, der begynder med en @socketio.on ('F2B _ ***') venter på et F2B -opkald fra frontend. Når den er modtaget, udfører den den pågældende handling. Det være sig at sende en artnet -kommando eller hente data fra DB og sende dem tilbage til forsiden.

Metoden oled_show_info () bruges til at vise ip'en (både på wlan- og ethernet -grænsefladerne).

så kør bare koden med

python3 app.py

Trin 4: Frontend af Pi

Forenden af Pi
Forenden af Pi

For at kunne redigere frontenden af pi skal du først give dig selv adgang til biblioteket/var/www/html/. Det er her, apache får sine filer til at blive vist på sit websted. For at få adgang skal du udføre:

sudo chmod 777/var/www/html/

Nu er alt gjort, hent koden til frontend på min github og placer den i/var/www/html/biblioteket.

Frontenden bruger det samme princip som backend, men nu sender den F2B _ *** kommandoer, når der trykkes på en knap, eller skyderen flyttes.

Og det er frontendet gjort!

Trin 5: Arduino

Arduinoen
Arduinoen
Arduinoen
Arduinoen
Arduinoen
Arduinoen

For at bruge arduino skal du bruge ethernet -skjoldet og motorskærmen. Skub dem forsigtigt ind på arduinoen. Sørg for, at du ikke skubber motorskærmen for langt ind på ethernet -skærmen, eller du kortslutter de 2 motorstifter på ethernetforbindelsen!

Koden til arduinoen kan også findes på min github. Upload filen artnet_winch.ino, og alt skal være godt.

Sørg for at definere de rigtige ben til de korrekte ben på din motor. Motorskærmstifterne vælges med hovedstifterne oven på skærmen. Disse ben er valgt under // --- motor konfigurationen. Aswel som encoder pins, der skal tilsluttes de rigtige pins på arduinoen.

Sørg også for, at din MAC -adresse på skjoldet er korrekt. Dette kan findes på et klistermærke under skjoldet og redigeres i MAC -variablen. IP'en, du bruger til pi'en, skal ligge i samme område som PI, dette kan normalt findes på den oled -skærm.

Koden ser lidt meget ud, men er ikke så svær at forstå. Grundlæggende læser ethernet -skjoldet konstant udp -pakker, der kommer. Hvis pakken er en Artnet -pakke, afkoder den den og får den nødvendige information fra den. De forskellige artnet-pakker er pænt beskrevet på Art-Net-webstedet, så hvis du er interesseret, kan du læse, hvad de alle gør.

Hvis den modtager en ArtPoll -pakke, svarer den med en ArtPollReply. dette bruges i callout -funktionen i backend til at finde, hvilke enheder der er på netværket.

Hvis den modtager og ArtDMX -pakken, vil den afkode pakken og bruge de givne data til at udføre bestemte opsætningskommandoer eller flytte spillet i position.

Move_takel-funktionen omdanner den givne DMX-værdi (mellem 0-255) til en position mellem start- og slutpositionen (0 er slutningen og 255 starten). Hvis encoderens position ikke svarer til den transformerede værdi, bevæger spillet sig op/ned afhængigt af, hvor du er.

Jeg arbejdede på en feedback loop mellem PI og arduino, så den kunne følge med sin position, men godt min arduino løb tør for hukommelse for at gemme programmet:).

Monterer det hele

Til montering monterede jeg motoren på en metalholder og lagde en slags rør oven på den. Derefter vedhæftede du bare en snor på røret og brugte en rulle tape som vægt. Dette er meget grundlæggende, og du kan blive meget kreativ på den måde, du vil montere det.

Trin 6: Tilslutning af det hele

Når arduino og pi alle er konfigureret, skal du blot tilslutte begge ethernetkabler i din switch, og det burde være det!

Du kan teste det ved at surfe til den wlan ip, der er angivet på oled -skærmen, og du skulle se stedet. Tryk på find enheder for at se, om du kan finde enheden. Hvis det ikke viser noget, er din arduino ikke godt forbundet, eller den IP, du har valgt, er ikke i samme område som PI'en.

Når du ser enheden, skal du bare trykke på setup. I opsætningsmenuen kan du flytte spillet ved hjælp af pilene og teste, om start- og slutpositionerne er korrekte med skyderen.

Sørg for, at din controller også er tilsluttet skærmen, og dens IP er inden for rækkevidde af PI og arduino.

Det er det!

Anbefalede: