Innholdsfortegnelse:

Art-Net Controlled Winch: 6 trinn
Art-Net Controlled Winch: 6 trinn

Video: Art-Net Controlled Winch: 6 trinn

Video: Art-Net Controlled Winch: 6 trinn
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Art-Net Controlled Winch
Art-Net Controlled Winch

Hei alle sammen, i denne instruksen vil jeg forklare hvordan jeg lagde min art-net kontrollerte vinsj. "Din hva?" jeg hører deg spørre, la meg forklare veldig raskt. For noen år siden holdt vi en fest med det lokale ungdomshuset, og som scenografi hadde vi ideen om å lage et tak i bevegelse.

Med 9 vinsjer (takels) løftet vi opp en gigantisk hvit klut og gjennom protokollen dmx kontrollerte vi dem. Men på den tiden vinsjene vi brukte der 3 -fase kontrollert. Så for å få det til å gå opp og ned måtte vi lage et system med reléer kontrollert av en sentral Arduino -mega som ble kontrollert ved hjelp av dmx. Reléene der koblingsspenninger på 230V og 12 ampere.

For å si det på en mer forståelig måte måtte vi lage et gigantisk rot av ledninger og reléer som var super ustabilt, upålitelig og ganske farlig faktisk.

Så vi tenkte for oss selv at det må være en bedre måte å gjøre dette på. Vi begynte å tenke og kom til den konklusjonen at den beste måten å gjøre dette på ville være gjennom et modulært vinsjsystem, kontrollert over Art-Net-protokollen, slik at vi bare trenger en spenningskilde og en ethernet-kabel.

Så det var akkurat det jeg skapte, og jeg skal prøve å forklare deg hvordan jeg gjorde det. Hele oppsettet er avhengig av en bringebærpi som styrer oppsettsprosessen. Etter oppsettet gir kontrollen over til en lett datamaskin (Chamsys, etc.) som skal kontrollere vinsjene derfra.

Jeg antar at du har grunnleggende kunnskap om python, arduino og bringebær pi aswel som å forstå noe om art-net-protokollen og kontrollere.

Rekvisita

Dette trenger du:

  • Bringebær pi
  • Arduino
  • Arduino Ethernet -skjerm
  • Arduino motorskjerm
  • Enhver OLED -skjerm
  • ethernet -kabel
  • ethernet -bryter
  • DC -motor med encoder bygget på

Trinn 1: Konfigurere Raspberry Pi

Ok, så måten dette vil fungere på er at bringebær -pi kjører en Apache- og en MariaDB -server. Apache -serveren skal være vert for nettstedet, MariaDB skal beholde en database der vi vil lagre dataene fra vinsjene.

Jeg vil ikke lede deg gjennom hele prosessen med å sette opp pi med ssh, hvis du ikke er kjent, her er en god opplæring.

Så først og fremst sørger vi for at bringebær -pi er konfigurert i terminalen:

For å installere apache

sudo apt installere apache2 -y

For å installere mariaDB

sudo apt-get install mariadb-server

Dette er alle python -utvidelsene vi trenger

pip3 installer mysql-connector-python

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

For OLED -skjermen trenger vi litt vanskeligere oppsettprosess som du finner her.

Ok, det er alt som er gjort!

Trinn 2: Forstå hvordan oppsettet vil fungere

Så hvordan du vil sette opp vinsjen er ved å gi den en startposisjon og en sluttposisjon. Den vil bli tildelt en bestemt kanal, og med denne kanalen kan du bare flytte mellom valgt stat og sluttposisjon.

For å velge denne posisjonen må du flytte vinsjen til dem. Når du er der, vil du slå en bestemt kanal til verdien 56. Når denne nøyaktige kanalen når den verdien, vil den vite at dette er hans start / sluttposisjon., hvis den må flytte opp eller ned eller hvis den må endre artnet -verdiene. Å flytte vinsjen gjøres også ved å sette en bestemt kanal til 56. "Og hvorfor 56" jeg hører deg lure på, jeg måtte velge noe:).

Posisjonen beregnes gjennom koderen som er på likestrømsmotoren.

Trinn 3: Backend av Pi

Backend av Pi
Backend av Pi

Backend for systemet finner du på min github. Jeg har skrevet mitt eget bibliotek for art-net-protokollen, så bruk den gjerne. Jeg vil ikke lede deg gjennom alt linje for linje, men jeg vil gi deg det store bildet av det hele.

Koden kjører en kolbserver som kommuniserer med apache -serveren som kjører på pi. Den bruker flask-socketio-modulen til å sende og motta data til frontend. Art-net lib bruker sokkelmodulen fra python til å sende UDP-pakker til og fra arduinoen.

Hver metode som begynner med en @socketio.on ('F2B _ ***') venter på et F2B -anrop fra frontend. Når den er mottatt, vil den utføre den aktuelle handlingen. Det er å sende en artnet -kommando eller hente data fra DB og sende dem tilbake til forsiden.

Metoden oled_show_info () brukes til å vise ip -en til ip (både på wlan- og ethernet -grensesnittet).

så bare kjør koden med

python3 app.py

Trinn 4: Frontend av Pi

Frontenden av Pi
Frontenden av Pi

For å kunne redigere frontenden av pi må du først gi deg selv tilgang til katalogen/var/www/html/. Det er her apache får filene sine til å vises på nettstedet. For å få tilgang til å utføre:

sudo chmod 777/var/www/html/

Nå er alt gjort, få koden for frontend på githuben min og legg den i/var/www/html/katalogen.

Frontenden bruker samme prinsipp som backend, men nå sender den F2B _ *** kommandoene når en knapp trykkes eller glidebryteren flyttes.

Og det er frontendet gjort!

Trinn 5: Arduino

Arduinoen
Arduinoen
Arduinoen
Arduinoen
Arduinoen
Arduinoen

For å bruke arduino må du bruke ethernet -skjoldet og motorskjermen. Bare skyv dem forsiktig på arduinoen. Pass på at du ikke skyver motorskjermen for langt inn på ethernet -skjoldet, ellers korter du de 2 motorpinnene på ethernet -tilkoblingen!

Koden for arduinoen finner du også på githuben min. Last opp artnet_winch.ino -filen, og alt skal være bra.

Pass på at du definerer de riktige pinnene til de riktige pinnene på motoren din. Motorskjoldet er valgt med toppnålene på toppen av skjoldet. Disse pinnene er valgt under // --- motorkonfigurasjonen. Aswel som koderpinnene som må kobles til de høyre pinnene på arduinoen.

Sørg også for at MAC -adressen til skjoldet er riktig. Dette finnes på et klistremerke under skjoldet og redigeres i MAC -variabelen. IP -en du bruker for pi -en må være i samme område som PI -en, denne finner du normalt på den oljede skjermen.

Koden ser litt mye ut, men er ikke så vanskelig å forstå. I utgangspunktet leser ethernet -skjermet konstant udp -pakker som kommer inn. Hvis pakken er en Artnet -pakke, avkoder den den og får informasjonen den trenger fra den. De forskjellige artnet-pakkene er pent beskrevet på Art-Net-nettstedet, så hvis du er interessert kan du lese hva de alle gjør.

Hvis den mottar en ArtPoll -pakke, vil den svare med en ArtPollReply. dette brukes i callout -funksjonen i backend for å finne hvilke enheter som er på nettverket.

Hvis den mottar og ArtDMX -pakken, vil den dekode pakken og bruke de oppgitte dataene til å utføre visse oppsettskommandoer eller flytte vinsjen i posisjon.

Move_takel-funksjonen transformerer den gitte DMX-verdien (mellom 0-255) til en posisjon mellom start- og sluttposisjonen (0 er slutten og 255 start). Hvis plasseringen av koderen ikke er lik den transformerte verdien, vil vinsjen bevege seg opp/ned avhengig av hvor du er.

Jeg jobbet med en tilbakemeldingssløyfe mellom PI og arduino, slik at den kunne holde tritt med posisjonen, men godt min arduino gikk tom for minne for å lagre programmet:).

Monterer det hele

For montering festet jeg motoren til en metallholder og la et slags rør på toppen av den. Så er det bare å feste en ledning på røret og bruke en rull med tape som en vekt. Dette er veldig grunnleggende, og du kan bli veldig kreativ på måten du vil montere det på.

Trinn 6: Koble til alt

Når arduino og pi er konfigurert, kobler du bare til begge ethernet -kablene i bryteren, og det skal være det!

Du kan teste den ved å surfe til wlan ip som er gitt på skjermen, og du bør se nettstedet. Trykk på finn enheter for å se om du finner enheten. Hvis det ikke viser noe, er arduinoen din ikke godt tilkoblet, eller så er IP -en du har valgt ikke i samme område som PI -en.

Når du ser enheten, trykker du bare på setup. I oppsettsmenyen kan du flytte vinsjen ved å bruke pilene og teste om start- og sluttposisjonen er riktig med glidebryteren.

Sørg for at kontrolleren også er koblet til skjoldet og at IP -en er innenfor rekkevidden til PI og arduino.

Det er det!

Anbefalt: