Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Opsætning af Raspberry Pi
- Trin 2: Forstå, hvordan opsætningen fungerer
- Trin 3: Backend af Pi
- Trin 4: Frontend af Pi
- Trin 5: Arduino
- Trin 6: Tilslutning af det hele
Video: Art-Net-kontrolleret spil: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
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
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
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
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:
Spil Nintendo -spil på Idevice med en Wiimote gratis !: 6 trin
Spil Nintendo -spil på Idevice med en Wiimote gratis!: Har du nogensinde gået til appbutikken for at få et Super Nintendo -spil, men du kan ikke finde et at spille. Nå nu kan du spille disse nintendo -spil med snes -emulatoren fra cydia. Denne emulator giver dig mulighed for at spille Nintendo -spil på din enhed, selv med
Aruduino LED -spil Hurtigt klik på to -spiller -spil: 8 trin
Aruduino LED -spil Hurtigt klikende spil for to spillere: Dette projekt er inspireret af @HassonAlkeim. Hvis du er villig til at kigge dybt, er her et link, du kan tjekke https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Dette spil er en forbedret version af Alkeims. Det er en
Spil Flappy Bird -spil med M5stack Esp32 -baseret M5stick C Development Board: 5 trin
Spil Flappy Bird-spil med M5stack Esp32-baseret M5stick C Development Board: Hej fyre i dag vil vi lære at uploade flappy bird-spilkoden til m5stick c udviklingsbræt leveret af m5stack.For dette lille projekt skal du bruge to ting: m5stick-c udviklingstavle: https://www.utsource.net/itm/p/8663561.h
Spil et PONG -spil med Arduino Uno og OLED 0.96 SSD1306 Display: 6 trin
Spil et PONG -spil med Arduino Uno og OLED 0.96 SSD1306 Display: Hej fyre i dag laver vi et PONG -spil med Arduino. Vi vil bruge adafruit's 0,96 oled display til at vise spillet & trykknapper for at styre spillet
Sådan uploades spil til Arduboy og 500 spil til Flash-cart: 8 trin
Sådan uploades spil til Arduboy og 500 spil til Flash-cart: Jeg lavede nogle hjemmelavede Arduboy med Serial Flash-hukommelse, der kan gemme max 500 spil til at spille på vejen. Jeg håber at dele hvordan man indlæser spil til det, herunder hvordan man gemmer spil i den serielle flash -hukommelse og opretter sin egen konsoliderede spilpakke