Sommario:

Argano controllato da Art-Net: 6 passaggi
Argano controllato da Art-Net: 6 passaggi

Video: Argano controllato da Art-Net: 6 passaggi

Video: Argano controllato da Art-Net: 6 passaggi
Video: Mio Padre che mi Controlla 👀 2024, Settembre
Anonim
Argano controllato da Art-Net
Argano controllato da Art-Net

Ciao a tutti, in questo tutorial spiegherò come ho creato il mio verricello controllato da art-net. "La tua cosa?" ti sento chiedere, beh, lascia che ti spieghi molto rapidamente. Qualche anno fa abbiamo organizzato una festa con la casa della gioventù locale e come scenografia abbiamo avuto l'idea di realizzare un tetto mobile.

Con 9 argani (takel) abbiamo sollevato un gigantesco telo bianco e tramite protocollo dmx li abbiamo controllati. Ma all'epoca gli argani che usavamo erano controllati in 3 fasi. Quindi per farlo andare su e giù abbiamo dovuto creare un sistema di relais controllato da un mega Arduino centrale che veniva controllato tramite dmx. Il relè dove commutare le tensioni di 230V e 12 amp.

Per dirla in termini più comprensibili, abbiamo dovuto creare un gigantesco pasticcio di cavi e relais che fosse super instabile, inaffidabile e piuttosto pericoloso in realtà.

Quindi abbiamo pensato che ci deve essere un modo migliore per farlo. Abbiamo iniziato a pensare e siamo giunti alla conclusione che il modo migliore per farlo sarebbe attraverso un sistema modulare di argani, controllati tramite il protocollo Art-Net, quindi avremmo solo bisogno di una fonte di tensione e di un cavo ethernet.

Quindi è esattamente quello che ho creato e cercherò di spiegarti come ho fatto. L'intera configurazione si basa su un Raspberry Pi che controlla il processo di installazione. Una volta impostato il controllo, il controllo è affidato a un computer leggero (Chamsys, ecc.) che da lì in poi controllerà i verricelli.

Presumo che tu abbia una conoscenza di base di python, arduino e raspberry pi aswel come capire qualcosa sul protocollo e sui controller art-net.

Forniture

Di cosa avrai bisogno:

  • lampone pi
  • Arduino
  • Scudo Ethernet Arduino
  • Scudo motore Arduino
  • Qualsiasi schermo OLED
  • cavo Ethernet
  • interruttore ethernet
  • Motore DC con encoder integrato

Passaggio 1: configurazione del Raspberry Pi

Ok, quindi il modo in cui funzionerà è che il Raspberry Pi eseguirà un server Apache e un MariaDB. Il server Apache deve ospitare il sito Web, il MariaDB deve mantenere un database in cui conserveremo i dati degli argani.

Non ti guiderò attraverso l'intero processo di configurazione del pi con ssh, se non hai familiarità ecco un buon tutorial.

Quindi prima di tutto ci assicureremo che il raspberry pi sia tutto configurato, nell'esecuzione del terminale:

Per installare apache

sudo apt install apache2 -y

Per installare mariaDB

sudo apt-get install mariadb-server

Queste sono tutte le estensioni Python di cui avremo bisogno

pip3 installa mysql-connector-python

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

Per il display OLED abbiamo bisogno di un processo di installazione un po' più difficile che può essere trovato qui.

Ok questo è tutto fatto!

Passaggio 2: capire come funzionerà l'installazione

Quindi, come si desidera impostare il verricello è assegnandogli una posizione iniziale e una posizione finale. Verrà assegnato un determinato canale e con questo canale potrai solo spostarti tra la statistica scelta e la posizione finale.

Per selezionare queste posizioni dovrai spostare il verricello su di esse, una volta che sei lì girerai un determinato canale al valore di 56. Quando questo esatto canale raggiunge quel valore saprà che questa è la sua posizione finale di inizio / fine, se ha bisogno di spostarsi in alto o in basso o se ha bisogno di cambiare i suoi valori artnet. Anche lo spostamento del verricello viene eseguito impostando un determinato canale su 56. "E perché 56" ti chiedo, beh, dovevo scegliere qualcosa:).

La posizione viene calcolata tramite l'encoder presente sul motore DC.

Passaggio 3: backend del Pi

Backend del Pi
Backend del Pi

Il backend per il sistema può essere trovato sul mio github. Ho scritto la mia libreria per il protocollo art-net, quindi sentiti libero di usarla. Non ti guiderò attraverso tutto riga per riga, ma ti darò l'idea generale di tutto.

Il codice esegue un server flask che comunica con il server Apache in esecuzione sul pi. Utilizza il modulo flask-socketio per inviare e ricevere dati al frontend. La libreria art-net utilizza il modulo socket di python per inviare pacchetti UDP da e verso arduino.

Ogni metodo che inizia con @socketio.on('F2B_***') è in attesa di una chiamata F2B dal frontend. Una volta ricevuto, eseguirà l'azione corrispondente. Che si tratti di inviare un commando artnet o di ottenere dati dal DB e inviarli di nuovo in primo piano.

Il metodo oled_show_info() viene utilizzato per visualizzare l'ip dell'ip (sia sulle interfacce wlan che ethernet).

quindi esegui il codice con

python3 app.py

Passaggio 4: frontend del Pi

Frontend del Pi
Frontend del Pi

Per poter modificare il frontend del pi devi prima darti accesso alla directory /var/www/html/. Qui è dove Apache ottiene i suoi file da visualizzare sul suo sito web. Per ottenere l'accesso eseguire:

sudo chmod 777 /var/www/html/

Ora è tutto fatto, prendi il codice per il frontend del mio github e inseriscilo nella directory /var/www/html/.

Il frontend utilizza lo stesso principio del backend ma ora invia i comandi F2B_*** quando viene premuto un pulsante o viene spostato il cursore.

E questo è il frontend fatto!

Passaggio 5: Arduino

L'Arduino
L'Arduino
L'Arduino
L'Arduino
L'Arduino
L'Arduino

Per usare l'arduino dovrai usare lo scudo ethernet e lo scudo del motore. Basta spingerli delicatamente sull'arduino. Assicurati di non spingere troppo lo schermo del motore sullo schermo ethernet o cortocircuiterai i 2 pin del motore sulla connessione ethernet!

Il codice per arduino si trova anche sul mio github. Carica il file artnet_winch.ino e tutto dovrebbe essere a posto.

Assicurati di definire i pin giusti per i pin corretti del tuo motore. I pin del motorshield vengono scelti con i pin dell'intestazione sulla parte superiore dello shield. Questi pin vengono scelti sotto //--- motor config. Così come i pin dell'encoder che devono essere collegati ai pin di destra dell'arduino.

Assicurati anche che il tuo indirizzo MAC dello shield sia corretto. Questo può essere trovato su un adesivo sotto lo scudo e modificato nella variabile MAC. L'IP che usi per il pi deve essere nello stesso intervallo del PI, questo può essere normalmente trovato sullo schermo oled.

Il codice sembra un po' troppo ma non è così difficile da capire. Fondamentalmente lo scudo ethernet legge costantemente i pacchetti udp in arrivo. Se quel pacchetto è un pacchetto Artnet, lo decodifica e ottiene le informazioni di cui ha bisogno da esso. I diversi pacchetti artnet sono ben descritti sul sito web di Art-Net, quindi se sei interessato puoi leggere cosa fanno tutti.

Se riceve un pacchetto ArtPoll, risponderà con un ArtPollReply. questo viene utilizzato nella funzione callout nel backend per trovare quali dispositivi sono sulla rete.

Se riceve un pacchetto ArtDMX, decodificherà il pacchetto e utilizzerà i dati forniti per eseguire determinati comandi di configurazione o per spostare il verricello in posizione.

La funzione move_takel trasforma il valore DMX dato (tra 0-255) in una posizione tra la posizione iniziale e quella finale (0 è la fine e 255 l'inizio). Se la posizione dell'encoder non è uguale al valore trasformato il verricello si sposterà su/giù a seconda di dove ti trovi.

Stavo lavorando su un ciclo di feedback tra PI e arduino in modo che potesse tenere il passo con la sua posizione, ma il mio arduino ha esaurito la memoria per memorizzare il programma:).

Montare tutto

Per il suo montaggio ho attaccato il motore ad un supporto metallico e ci ho messo sopra una specie di tubo. Poi basta attaccare una corda al tubo e usare un rotolo di nastro adesivo come peso. Questo è molto semplice e puoi diventare molto creativo nel modo in cui vuoi montarlo.

Passaggio 6: collegare tutto

Una volta che l'arduino e il pi sono tutti configurati, collega semplicemente entrambi i cavi ethernet allo switch e dovrebbe essere così!

Puoi testarlo navigando sull'ip wlan fornito sullo schermo oled e dovresti vedere il sito. Premi Trova dispositivi per vedere se riesci a trovare il dispositivo. Se non mostra nulla, il tuo arduino non è ben collegato o l'IP che hai scelto non è nello stesso intervallo di quello del PI.

Quando vedi il dispositivo, premi semplicemente setup. Nel menu di configurazione puoi spostare il verricello usando le frecce e verificare se le sue posizioni di inizio e fine sono corrette con il cursore.

Assicurati che anche il tuo controller sia collegato allo shield e che il suo IP sia nel raggio di quello di PI e arduino.

Questo è tutto!

Consigliato: