Obsah:

Riadený navijak Art-Net: 6 krokov
Riadený navijak Art-Net: 6 krokov

Video: Riadený navijak Art-Net: 6 krokov

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

Ahoj všetci, v tomto návode vám vysvetlím, ako som vytvoril svoj navijak ovládaný sieťou art-net. "Tvoje čo?" Počul som, že sa pýtaš, dovoľte mi to veľmi rýchlo vysvetliť. Pred niekoľkými rokmi sme usporiadali večierok s miestnym domom mládeže a ako scénický návrh sme dostali nápad urobiť pohyblivú strechu.

S 9 navijakmi (takelmi) sme zdvihli obrovské biele plátno a prostredníctvom protokolu dmx sme ich ovládali. Ale v tom čase sme používali navijaky, kde riadili 3fázy. Aby to išlo hore a dole, museli sme vytvoriť systém relé ovládaných centrálnym mega Arduino, ktoré bolo ovládané pomocou dmx. Relé prepína napätie 230 V a 12 ampérov.

Aby sme to vyjadrili zrozumiteľnejšie, museli sme vytvoriť obrovský chaos v drôtoch a relé, ktorý bol super nestabilný, nespoľahlivý a v skutočnosti dosť nebezpečný.

Preto sme si mysleli, že to musíme urobiť lepšie. Začali sme premýšľať a dospeli sme k záveru, že najlepší spôsob, ako to dosiahnuť, bude prostredníctvom modulárneho systému navijakov riadených protokolom Art-Net, takže budeme potrebovať iba zdroj napätia a ethernetový kábel.

Presne to som vytvoril a pokúsim sa vám vysvetliť, ako som to urobil. Celé nastavenie sa spolieha na malinový pi, ktorý riadi proces nastavenia. Jeho nastavenie sa ovládanie odovzdáva ľahkému počítaču (Chamsys atď.), Ktorý odtiaľ bude ovládať navijaky.

Predpokladám, že máte základné znalosti o Pythone, Arduine a Raspberry Pi aswel, ako niečo o protokole a ovládačoch art-net.

Zásoby

Čo budete potrebovať:

  • Malinový koláč
  • Arduino
  • Ethernetový štít Arduino
  • Štít motora Arduino
  • Akákoľvek obrazovka OLED
  • ethernetový kábel
  • ethernetový prepínač
  • Jednosmerný motor so zabudovaným kodérom

Krok 1: Nastavenie Raspberry Pi

Ok, takže takto to bude fungovať, je, že na Raspberry Pi bude bežať server Apache a MariaDB. Server apache je hostiteľom webovej stránky, MariaDB má uchovávať databázu, do ktorej budeme ukladať údaje o navijakoch.

Nebudem vás sprevádzať všetkými procesmi nastavenia pí pomocou ssh, ak nie ste oboznámení, je tu dobrý návod.

Najprv sa teda presvedčíme, či je vo vašom termináli nainštalované malinové pi:

Ak chcete nainštalovať apache

sudo apt nainštalovať apache2 -y

Ak chcete nainštalovať mariaDB

sudo apt-get install mariadb-server

Toto sú všetky rozšírenia pythonu, ktoré budeme potrebovať

pip3 nainštalujte mysql-connector-python

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

Pre oled displej potrebujeme trochu ťažší proces nastavenia, ktorý nájdete tu.

Ok, to je všetko, hotovo!

Krok 2: Pochopenie toho, ako bude nastavenie fungovať

Navijak tak chcete nastaviť tak, že mu dáte počiatočnú a koncovú pozíciu. Bude mu priradený určitý kanál a pomocou tohto kanála sa budete môcť pohybovať iba medzi zvolenou štatistikou a koncovou pozíciou.

Na výber týchto pozícií budete musieť k nim presunúť navijak, akonáhle ste tam, otočíte určitý kanál na hodnotu 56. Keď tento presný kanál dosiahne túto hodnotu, bude vedieť, že toto je jeho koncová začiatočná / koncová pozícia, ak sa potrebuje pohybovať nahor alebo nadol alebo ak potrebuje zmeniť svoje hodnoty artnetu. Presúvanie navijaka sa vykonáva aj nastavením určitého kanála na 56. "A prečo 56", počujem, že sa čudujete, musel som si niečo vybrať:).

Poloha sa vypočíta pomocou snímača, ktorý je na jednosmernom motore.

Krok 3: Backend of the Pi

Backend of the Pi
Backend of the Pi

Backend systému nájdete na mojom github. Napísal som svoju vlastnú knižnicu pre protokol art-net, takže ju môžete používať. Nebudem vás sprevádzať všetkým rad za radom, ale poskytnem vám celkový obraz o všetkom.

V kóde je spustený bankový server, ktorý komunikuje so serverom apache spusteným na pi. Na odosielanie a príjem údajov do klientskeho rozhrania používa modul flask-socketio. Art-net lib používa zásuvkový modul z pythonu na odosielanie paketov UDP do arduina a z neho.

Každá metóda, ktorá začína na @socketio.on ('F2B _ ***'), čaká na volanie F2B z frontendu. Akonáhle je prijatý, vykoná príslušnú akciu. Či už ide o odoslanie príkazu artnet alebo získanie údajov z databázy DB a ich odoslanie späť dopredu.

Metóda oled_show_info () sa používa na zobrazenie ip ip (na rozhraniach wlan aj ethernet).

kód teda spustite pomocou

python3 app.py

Krok 4: Frontend systému Pi

Frontend of the Pi
Frontend of the Pi

Aby ste mohli upravovať frontend pí, musíte si najskôr dať prístup do adresára/var/www/html/. Tu apache získa svoje súbory, ktoré môže zobraziť na svojom webe. Ak chcete získať prístup, spustite:

sudo chmod 777/var/www/html/

Teraz je všetko hotové, získajte kód pre frontend môjho githubu a umiestnite ho do adresára/var/www/html/.

Frontend používa rovnaký princíp ako backend, ale teraz odosiela príkazy F2B _ *** po stlačení tlačidla alebo posunutí posúvača.

A to je frontend hotový!

Krok 5: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Na používanie arduina budete potrebovať ethernetový štít a štít motora. Jednoducho ich zatlačte na arduino. Dbajte na to, aby ste kryt motora netlačili príliš ďaleko na ethernetový štít alebo aby ste skrátili 2 kolíky motora na ethernetovom pripojení!

Kód pre arduino nájdete aj na mojom githube. Odovzdajte súbor artnet_winch.ino a všetko by malo byť v poriadku.

Uistite sa, že ste definovali správne kolíky na správne kolíky vášho motora. Kolíky motorového štítu sa vyberajú so kolíkovými konektormi v hornej časti štítu. Tieto kolíky sú zvolené v // --- konfigurácii motora. Pripojte kolíky kodéra, ktoré je potrebné pripojiť k správnym kolíkom arduina.

Tiež sa uistite, že je vaša MAC adresa štítu správna. To sa dá nájsť na nálepke pod štítom a upraviť v premennej MAC. IP, ktorú použijete pre pi, musí byť v rovnakom rozsahu ako PI, toto sa bežne nachádza na oledovej obrazovke.

Kód vyzerá trochu veľa, ale nie je také ťažké ho pochopiť. V zásade ethernetový štít neustále číta prichádzajúce pakety udp. Ak je tento paket paketom Artnet, dekóduje ho a získa z neho potrebné informácie. Rôzne pakety artnet sú pekne popísané na webovej stránke Art-Net, takže ak vás zaujíma, môžete si prečítať, čo všetky robia.

Ak dostane paket ArtPoll, odpovie ArtPollReply. toto sa používa vo funkcii popisu v backende na zistenie, ktoré zariadenia sú v sieti.

Ak prijme a paket ArtDMX, dekóduje paket a použije dané údaje na vykonanie určitých príkazov na nastavenie alebo presunutie navijaka na miesto.

Funkcia move_takel transformuje danú hodnotu DMX (medzi 0-255) do polohy medzi počiatočnou a koncovou polohou (0 je koniec a 255 začiatok). Ak sa poloha kodéra nerovná transformovanej hodnote, navijak sa bude pohybovať hore/dole v závislosti od toho, kde sa nachádzate.

Pracoval som na spätnoväzbovej slučke medzi PI a arduino, aby mohol držať krok so svojou polohou, ale môjmu arduinu došla pamäť na uloženie programu:).

Namontovať to všetko

Na upevnenie som pripevnil motor na kovový držiak a navrch naň položil akúsi trubicu. Potom už len na trubicu pripevnite šnúru a ako závažie použijete zvitok pásky. Toto je veľmi základné a môžete byť veľmi kreatívni v spôsobe, akým ho chcete pripojiť.

Krok 6: Pripojenie všetkého

Akonáhle sú arduino a pi všetky pripravené, jednoducho zapojte oba ethernetové káble do vášho prepínača a malo by to byť ono!

Môžete to otestovať tak, že prejdete na webovú adresu wlan uvedenú na oledovej obrazovke a stránka by sa vám mala zobraziť. Stlačením vyhľadajte zariadenia a zistite, či zariadenie nájdete. Ak nič neukazuje, vaše arduino nie je dobre pripojené alebo vami zvolená adresa IP nie je v rovnakom rozsahu ako PI.

Akonáhle uvidíte zariadenie, stačí stlačiť tlačidlo Nastavenie. V ponuke nastavenia môžete pomocou šípok posúvať navijak a pomocou posúvača otestovať, či je jeho počiatočná a koncová poloha správna.

Uistite sa, že je do štítu zapojený aj váš ovládač a jeho IP je v rozsahu PI a arduina.

To je všetko!

Odporúča: