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.
Elenco prodotti
- PA-14 Mini Linear Actuator
- Raspberry Pi 4
- LC-201 Relay Module
- Alimentatore PS-20-12
PA-14 Mini Linear Actuator

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
- Assicurati che Raspbian OS sia installato sul tuo Pi. Clicca qui per istruzioni passo passo su come installare questo sistema operativo sul tuo Pi.
- Connetti la tua scheda al Wi-Fi. Clicca qui per le istruzioni.
- Assegna un IP statico al tuo Raspberry Pi. Clicca qui per i dettagli su come farlo.
- 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.
- Inserisci l'indirizzo IP del router ed effettua il login per accedere all'interfaccia del router.

- Trova l'opzione Port Forwarding.

- 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.

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
- Per eseguire il software client sul tuo dispositivo, installa Python 3.8 dal loro sito ufficiale.
- Potresti anche voler installare PyCharm, un IDE facile da usare.
- 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()
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!