How to Control Your Actuators from Alternative Networks

Come controllare i nostri attuatori tramite reti alternative

Guest Writer
Guest Writer
PA Engineer

Il mondo del movimento lineare è frenetico e in costante evoluzione. Progressive Automations è determinata a rimanere all'avanguardia di questi cambiamenti tecnologici. Gli attuatori controllati a distanza sono diventati più versatili e dinamici. Tenendo questo a mente, uno dei nostri ingegneri, Jake, ha deciso di fare un esperimento per verificare se i nostri attuatori lineari potessero essere controllati da reti alternative. Questo è effettivamente possibile. Pertanto, questo articolo ti guiderà passo dopo passo su come riuscirci. Include anche un esempio di codice e gli strumenti necessari per stabilire una connessione riuscita e, in definitiva, controllare gli attuatori online.

Per questo esperimento abbiamo usato il nostro PA-14 Mini Linear Actuator, uno dei nostri attuatori più popolari!

Clicca qui

Elenco prodotti

 

PA-14 Mini Linear Actuator

     

    Attuatore lineare mini di Progressive Automations

     

    LC-201 è una scheda relè a 4 canali, perfetta per questa applicazione!

    Clicca qui

     

    Il PA-14 Mini Linear Actuator è uno dei modelli più popolari offerti da Progressive Automations ed è l'esempio che abbiamo usato per questo esperimento. Qualsiasi modello fornito da Progressive Automations con tensioni nominali 12VDC/24VDC/36VDC/48VDC e motore DC a spazzole può essere utilizzato al posto dell’attuatore PA-14. Il codice riportato di seguito non richiede modifiche qualora si scelga un attuatore diverso, ma è necessario verificare i valori di Corrente e tensione dell'alimentatore prima di procedere.

    Il nuovo e migliorato PA-01 mini actuator (aggiornamento del PA-14) è il modello attuale che offriamo, con numerosi vantaggi aggiuntivi. Per un confronto, consulta le tabelle qui sotto e passa al nuovo modello in tutta sicurezza!

     

    PA-01

    PA-14

    Opzioni di Carico dinamico

    16, 28, 56, 112, 169, 225 lbs

    35, 50, 75, 110, 150 lbs

    Carico massimo

    225 lbs

    150 lbs

    Velocità massima

    3.54 "/sec

    2.00"/sec

    Grado di protezione IP

    IP65

    IP54

    Opzioni di Corsa

    1" to 40"

    1" to 40"

    Feedback a effetto Hall

    Opzionale

    No

    Attuatore lineare per Raspberry Pi

    I dettagli dell'esperimento spiegano come controllare un attuatore lineare con un Raspberry Pi. Il Raspberry Pi 4 viene usato per eseguire il software server e ricevere i comandi per il controllo dell'attuatore. In alternativa, è possibile usare un computer desktop e una scheda Arduino. In questo caso, il PC deve ricevere i comandi e trasmetterli alla scheda Arduino tramite una porta seriale.

    Il Raspberry Pi è un computer a scheda singola, più o meno delle dimensioni di una carta di credito. Questo micro-computer è stato sviluppato nel Regno Unito per insegnare le basi dell'informatica.

     

    Principio di funzionamento del Raspberry Pi

    Il Raspberry Pi ha tutti gli attributi di un vero computer, inclusi un processore dedicato, memoria e driver grafico per l'uscita HDMI. Esegue anche una versione speciale del sistema operativo Linux. Questo rende semplice installare la maggior parte dei programmi Linux e collegare attuatori lineari al Raspberry Pi. Ciò consente di usare il Raspberry Pi per gli attuatori, come media server completo o come emulatore di videogiochi.

    Il Pi non dispone di memoria dati interna, ma si può usare una smart card come memoria flash a servizio dell'intero sistema. Questo consente di scaricare rapidamente diverse versioni del sistema operativo o aggiornamenti software per il debugging. Poiché il dispositivo offre connettività di rete indipendente, può anche essere configurato per l'accesso SSH o il trasferimento di file FTP.

     

    Istruzioni per l’esperimento

    Di seguito sono illustrati i passaggi esatti eseguiti da Jake durante il test di questa configurazione, dall'impostazione iniziale al controllo remoto wireless dell’attuatore lineare.

    Poiché al Raspberry Pi è possibile assegnare un indirizzo IP e dispone di pin GPIO, insieme alle funzioni sopra citate, è il dispositivo ideale per un esperimento di questo tipo.

    Configurazione di un Raspberry Pi con un attuatore lineare

    1. Assicurati che Raspbian OS sia installato sul tuo Pi. Clicca qui per istruzioni passo passo su come installare questo sistema operativo sul tuo Pi.
    2. Connetti la tua scheda al Wi-Fi. Clicca qui per le istruzioni.
    3. Assegna un IP statico al tuo Raspberry Pi. Clicca qui per i dettagli su come farlo.
    4. Crea un nuovo file .py nel tuo Raspberry Pi e copia il seguente codice in questo file. Quando esegui questo codice, il tuo Pi diventerà un server che ascolta i tuoi comandi sulla porta “6166”.

     

     import socket
    	import sys
    
    	# Create a TCP/IP socket
    	sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    	# Bind the socket to the port
    	server_address = ('', 6166)
    	print ('starting up on port ', server_address)
    	sock.bind(server_address)
    
    	# Listen for incoming connections
    	sock.listen(True)
    
    
    	GPIO.setmode(GPIO.BCM)
    	GPIO.setup(18, GPIO.OUT)
    	GPIO.setup(27, GPIO.OUT)
    
    	while (True):
        		# Wait for a connection
        		print ('waiting for a connection')
        		connection, client_address = sock.accept()
    
        		print ('connection from', client_address)
    
        		# Receive the data in small chunks and retransmit it
            	data = connection.recv(16)
           	 	print ("received:", data)
            	
    		# Output signal on GPIO depending on received command
    		if data == b"ext":
                		GPIO.output(18, GPIO.HIGH)
            	if data == b"ret":
                		GPIO.output(27, GPIO.HIGH)
            	
    		if data == b"close connection":
    			break
    
        	 # Closing up the connection
        	 connection.close() 

    Cablaggio

    Per istruzioni chiare sul cablaggio di questo progetto, è disponibile un diagramma al seguente link: Relè digitale a 4 canali + Arduino - Collegamento di un attuatore lineare.

     

    Configurazione del router

    Una volta che il tuo Pi è connesso al Wi-Fi e ha un IP statico configurato nel passaggio precedente, puoi iniziare a impostare l'inoltro porte e il filtraggio IP nel tuo router. L'inoltro delle porte consente di configurare il router per trasferire i dati che arrivano a una porta specifica su un determinato dispositivo nella tua LAN. Supponiamo che il tuo server Pi abbia un indirizzo IP statico 192.168.1.69 e ascolti i comandi sulla porta 6166. Dovresti impostare il router per trasferire i dati che arrivano sulla porta 6166 al dispositivo con indirizzo IP 192.168.1.69.

    Istruzioni:

    Nota: L'interfaccia del tuo router potrebbe essere diversa da questo esempio. In tal caso, cerca le istruzioni su come eseguire questo passaggio per il modello del tuo router.


        1. Inserisci l'indirizzo IP del router ed effettua il login per accedere all'interfaccia del router.

           

          Indirizzo IP
        2. Trova l'opzione Port Forwarding.

           

          Trova l'opzione Port Forwarding

     

        1. Inserisci l'indirizzo IP statico del tuo server Pi e l'intervallo di porte pubbliche (Public Port). Assicurati che la porta 6166 sia inclusa in questo intervallo.

           

          Intervallo di porte pubbliche

    Consigliamo di impostare il filtraggio IP a questo punto per motivi di sicurezza. Il filtraggio IP consente di specificare gli indirizzi IP dei dispositivi autorizzati ad accedere e inviare comandi al tuo dispositivo Pi tramite Internet. Trova l'impostazione dei filtri in ingresso e imposta gli indirizzi IP dei dispositivi autorizzati ad accedere agli attuatori in questa impostazione.

    Configurazione del client

        1. Per eseguire il software client sul tuo dispositivo, installa Python 3.8 dal loro sito ufficiale.
        2. Potresti anche voler installare PyCharm, un IDE facile da usare.
        3. Copia il seguente codice:
    import socket
    import sys
    
    # Create a TCP/IP socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    # Connect the socket to the port where the server is listening
    server_address = ('Enter IP address of router in your pi’s LAN', 6166)
    print ('connecting to %s port', server_address)
    sock.connect(server_address)
    
    try:
    
        # Send data
        message = b'ret'
        print ('sending "%s"',message)
        sock.sendall(message)
    
        # Look for the response
        amount_received = 0
        amount_expected = len(message)
    
        while amount_received < amount_expected:
            data = sock.recv(16)
            amount_received += len(data)
            print ('received: ', data)
    
    finally:
        print ('closing socket')
        sock.close()


     

    Tutti gli attuatori hanno bisogno di un'alimentazione affidabile - qui abbiamo usato il PS-20-12!

    Clicca qui

    Raspberry Pi contro Arduino

    Come indicato all'inizio dell'articolo, è possibile utilizzare una scheda Arduino al posto di un Raspberry Pi. Innanzitutto, è importante capire cosa sono le schede Arduino. Questi microcontrollori eseguono codice interpretato dal firmware. Non sono computer completi e quindi non hanno un sistema operativo vero e proprio. Non si hanno gli strumenti di base forniti da un sistema operativo, ma l'esecuzione diretta di codice semplice risulta più facile.

    Non ci sono inoltre costi associati a questo sistema. Lo scopo principale della scheda Arduino è interagire con sensori e dispositivi, rendendo Arduino perfetto per progetti hardware pensati per reagire a diversi segnali dei sensori e a input manuali. È perfettamente adatto al controllo di altri dispositivi e attuatori, quando un sistema operativo completo non è necessario.

    La scelta tra Raspberry Pi e Arduino dipende molto dal progetto per cui è richiesto.

    Sarebbe meglio scegliere Arduino se il compito principale è leggere dati dai sensori o modificare valori sul motore e su altri dispositivi. Grazie ai requisiti di alimentazione di Arduino e alla semplicità di manutenzione di questo sistema, il dispositivo può funzionare senza spegnersi, con interferenze quasi nulle nel suo funzionamento.

    Raspberry Pi, invece, è più pratico per attività che normalmente si svolgerebbero su un computer personale. Raspberry Pi semplifica la gestione dei flussi di lavoro in vari scenari, ad esempio quando è necessario connettersi a Internet per leggere o scrivere dati, riprodurre contenuti multimediali o collegarsi a un display esterno.

    Dato che Arduino e Raspberry Pi risolvono esigenze diverse, in alcune situazioni è comodo usare questi dispositivi insieme. Collegandoli, si ottiene accesso client alle impostazioni e al codice tramite il Pi, mentre Arduino controlla gli attuatori e raccoglie le informazioni dai sensori. È possibile collegare questi due dispositivi via USB, LAN o collegando le porte I/O di Arduino al Raspberry Pi.

     

    Considerazioni finali

    A questo punto è tutto pronto per controllare via Internet qualsiasi attuatore di Progressive Automations che rientri nei criteri indicati! Eseguendo il codice, avrai la massima comodità di controllare i tuoi attuatori da remoto, o come ci piace chiamarli, “attuatori controllati via WiFi”. Grazie per aver letto questo articolo – se hai domande o se vuoi vedere uno dei nostri ingegneri sperimentare qualcosa, contattaci e saremo felici di metterci in contatto con te!