El mundo del movimiento lineal es vertiginoso y está en constante evolución. Progressive Automations está decidida a mantenerse a la vanguardia de estos cambios tecnológicos. Los actuadores controlados de forma remota se han vuelto más diversos y dinámicos. Con esto en mente, uno de nuestros ingenieros, Jake, decidió llevar a cabo un experimento para determinar si nuestros actuadores lineales podían controlarse desde redes alternativas. Esto, de hecho, es posible. Por ello, este artículo ofrece una guía paso a paso para lograrlo. También incluye un ejemplo de código y las herramientas necesarias para establecer una conexión exitosa y, en última instancia, controlar el/los actuador(es) en línea.
Lista de productos
Actuador lineal mini PA-14

El PA-14 Mini Linear Actuator es uno de los modelos más populares de Progressive Automations y el ejemplo que usamos para este experimento. Cualquier modelo de Progressive Automations con clasificación de 12VDC/24VDC/36VDC/48VDC y motor DC con escobillas puede usarse en lugar del actuador PA-14. El código proporcionado que se muestra a continuación no requeriría modificaciones si se elige un actuador diferente, pero habría que verificar la corriente y el voltaje nominal de la fuente de alimentación antes de continuar.
El nuevo y mejorado actuador mini PA-01 (mejora del PA-14) es el modelo actual que ofrecemos, con una variedad de beneficios adicionales. Para compararlo, consulta las tablas siguientes y ¡actualiza con confianza!
|
|
PA-01 |
PA-14 |
|
Opciones de carga dinámica |
16, 28, 56, 112, 169, 225 lbs |
35, 50, 75, 110, 150 lbs |
|
Carga máxima |
225 lbs |
150 lbs |
|
Velocidad máxima |
3.54 "/s |
2.00"/s |
|
Índice de protección |
IP65 |
IP54 |
|
Opciones de carrera |
1" a 40" |
1" a 40" |
|
Retroalimentación por efecto Hall |
Opcional |
No |
Actuador lineal para una Raspberry Pi
Los detalles del experimento explican cómo controlar un actuador lineal con una Raspberry Pi. Se usa una Raspberry Pi 4 para ejecutar el software del servidor y recibir los comandos de control del actuador. Alternativamente, puede utilizarse un ordenador de escritorio y una placa Arduino. Si eliges esta ruta, tu PC deberá recibir los comandos y comunicarlos a la placa Arduino a través de un puerto serie.
La Raspberry Pi es un ordenador de placa única, aproximadamente del tamaño de una tarjeta de crédito. Este microordenador fue desarrollado en el Reino Unido para enseñar conceptos básicos de computación.
Principio de funcionamiento de Raspberry Pi
La Raspberry Pi tiene todos los atributos de un ordenador real, incluido un procesador dedicado, memoria y un controlador gráfico para salida HDMI. Incluso ejecuta una versión especial del sistema operativo Linux. Esto facilita instalar la mayoría de los programas de Linux y conectar actuadores lineales a Raspberry Pi. Esto permite usar la Raspberry Pi para actuadores, como un servidor multimedia completo o como un emulador de videojuegos.
No hay almacenamiento interno de datos en la Pi, pero se puede usar una tarjeta SD como memoria flash para todo el sistema. Esto permite descargar rápidamente distintas versiones del sistema operativo o actualizaciones de software para depuración. Como este dispositivo ofrece conectividad independiente a la red, también puede configurarse para acceso por SSH o transferencia de archivos por FTP.
Instrucciones para el experimento
Lo siguiente muestra los pasos exactos que siguió Jake al probar esta configuración, desde la puesta en marcha hasta el control inalámbrico del actuador lineal.
Dado que a la Raspberry Pi se le puede asignar una dirección IP y cuenta con pines GPIO, además de sus funciones ya mencionadas, es el mejor dispositivo para este tipo de experimento.
Configurar una Raspberry Pi con un actuador lineal
- Asegúrate de que el sistema operativo Raspbian está instalado en tu Pi. Haz clic aquí para una guía paso a paso sobre cómo instalar este sistema operativo en tu Pi.
- Conecta tu placa a tu Wi‑Fi. Haz clic aquí para estas instrucciones.
- Asigna una IP estática a tu Raspberry Pi. Haz clic aquí para ver cómo hacerlo.
- Crea un nuevo archivo .py en tu Raspberry Pi y copia el siguiente código en ese archivo. Cuando ejecutes este código, tu Pi se convertirá en un servidor que escucha tus comandos en el puerto “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()
Cableado
Para obtener instrucciones claras sobre el cableado de este proyecto, se proporciona un diagrama en el siguiente enlace: Relé digital de 4 canales + cableado Arduino de un actuador lineal.
Configuración del router
Una vez que tu Pi esté conectada a tu Wi‑Fi y tenga una IP estática que configuraste en el paso anterior, puedes comenzar a configurar el reenvío de puertos y el filtrado de IP en tu router. El reenvío de puertos te permite configurar el router para transferir los datos que llegan a un puerto específico hacia un dispositivo concreto de tu LAN. Supongamos que tu servidor Pi tiene la dirección IP estática 192.168.1.69 y escucha comandos en el puerto 6166. Tendrías que configurar tu router para transferir los datos que llegan al puerto 6166 a un dispositivo con la IP 192.168.1.69.
Instrucciones:
Nota: La interfaz de tu router puede verse diferente a este ejemplo. En ese caso, busca instrucciones sobre cómo realizar este paso para tu modelo de router.
- Introduce la dirección IP de tu router e inicia sesión para acceder a la interfaz de tu router.

- Busca la Port Forwarding opción.

- Introduce la dirección IP estática de tu servidor Pi y el rango de puertos públicos. Asegúrate de que el puerto 6166 esté dentro de este rango.

Aconsejamos configurar el filtrado de IP en este punto por motivos de seguridad. El filtrado de IP te permite especificar las direcciones IP de los dispositivos que pueden acceder y enviar comandos a tu dispositivo Pi a través de Internet. Busca el ajuste de filtros de entrada e indica las direcciones IP de los dispositivos que tienen permiso para acceder a los actuadores en esta configuración.
Configuración del cliente
- Para ejecutar el software cliente en tu dispositivo, instala Python 3.8 desde su sitio oficial.
- Quizás también quieras instalar PyCharm, que es un IDE fácil de usar.
- Copia el siguiente código:
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 frente a Arduino
Como se indicó al principio del artículo, es posible usar una placa Arduino en lugar de una Raspberry Pi. Primero, es importante entender qué son las placas Arduino. Estos microcontroladores ejecutan código interpretado por el firmware. No son ordenadores completos, por lo que no cuentan con un sistema operativo como tal. Puede que no dispongan de las herramientas básicas que proporciona un sistema operativo, pero facilitan la ejecución directa de código simple.
Tampoco hay costes asociados. El propósito principal de la placa Arduino es interactuar con sensores y dispositivos, lo que hace que Arduino sea ideal para proyectos de hardware orientados a responder a diferentes señales de sensores y a entradas manuales. Es perfecto para el control de otros dispositivos y actuadores, donde un sistema operativo completo simplemente no es necesario.
Elegir entre la Raspberry Pi y la Arduino dependerá en gran medida del proyecto para el que se necesite.
Será mejor elegir Arduino si la tarea principal es leer datos de sensores o cambiar valores en el motor y otros dispositivos. Dadas las necesidades de la fuente de alimentación de Arduino y la facilidad de mantenimiento de este sistema, el dispositivo puede funcionar sin apagarse, con poca o ninguna intervención en su operación.
La Raspberry Pi, por su parte, sería más práctica para resolver tareas que normalmente se realizarían en un ordenador personal. Raspberry Pi simplifica la gestión del flujo de trabajo en diversos escenarios, como cuando se necesita conectarse a Internet para leer o escribir datos, reproducir cualquier contenido multimedia o conectarse a una pantalla externa.
Dado que Arduino y Raspberry Pi resuelven tareas distintas, en ciertas situaciones es conveniente usar estos dispositivos juntos. Al conectar estos dos dispositivos, se puede obtener acceso como cliente a la configuración y al código a través de la Pi, mientras Arduino controla los actuadores y recopila información de los sensores. Se pueden conectar por USB, por LAN o conectando los puertos de E/S de Arduino a Raspberry Pi.
Conclusión
En este punto, ¡todo está listo para controlar por Internet cualquier actuador de Progressive Automations que cumpla los criterios mencionados! Al ejecutar el código, tendrás la máxima comodidad de controlar tus actuadores de forma remota, o como nos gusta llamarlos, ‘actuadores controlados por Wi‑Fi’. Gracias por leer este artículo – si tienes alguna consulta o si quieres ver que uno de nuestros ingenieros experimente con algo en particular, contáctanos y estaremos encantados de comunicarnos contigo.