De wereld van lineaire beweging is snel en blijft voortdurend evolueren. Progressive Automations is vastbesloten om voorop te blijven lopen bij deze technologische veranderingen. Op afstand bediende actuatoren zijn veelzijdiger en dynamischer geworden. Met dit in gedachten besloot een van onze ingenieurs, Jake, een experiment uit te voeren om te bepalen of onze lineaire actuatoren via alternatieve netwerken kunnen worden bediend. Dat is inderdaad mogelijk. Daarom geeft dit artikel een stapsgewijze uitleg over hoe dit bereikt kan worden. Het bevat ook een codevoorbeeld en de tools die nodig zijn om een succesvolle verbinding tot stand te brengen en uiteindelijk de actuator(en) online te bedienen.
Productlijst
- PA-14 mini lineaire actuator
- Raspberry Pi 4
- LC-201 relaismodule
- PS-20-12 voeding
PA-14 mini lineaire actuator

De PA-14 mini lineaire actuator is een van de populairste modellen van Progressive Automations en het voorbeeld dat we in dit experiment hebben gebruikt. Elk model van Progressive Automations met een 12VDC/24VDC/36VDC/48VDC‑rating en een geborstelde DC‑Motor kan in plaats van de PA‑14 actuator worden gebruikt. De onderstaande code vereist geen aanpassingen als u een andere actuator kiest, maar de Stroom- en spanningsspecificatie van de voeding moet vóór gebruik worden gecontroleerd.
De nieuwe en verbeterde PA-01 mini actuator (PA-14 upgrade) is het huidige model dat we aanbieden, met diverse extra voordelen. Bekijk ter vergelijking de tabellen hieronder en upgrade met vertrouwen!
|
|
PA-01 |
PA-14 |
|
Dynamische belastingopties |
16, 28, 56, 112, 169, 225 lbs |
35, 50, 75, 110, 150 lbs |
|
Hoogste belasting |
225 lbs |
150 lbs |
|
Snelste snelheid |
3.54 "/sec |
2.00"/sec |
|
IP‑klassificatie |
IP65 |
IP54 |
|
Slaglengte-opties |
1" to 40" |
1" to 40" |
|
Hall‑effect‑terugkoppeling |
Optioneel |
Nee |
Lineaire actuator voor een Raspberry Pi
De verstrekte experimentdetails leggen uit hoe u een lineaire actuator met een Raspberry Pi bedient. De Raspberry Pi 4 draait de serversoftware en ontvangt commando’s voor de besturing van de actuator. Als alternatief kunnen een desktop en een Arduino‑board worden gebruikt. Als u die route kiest, moet uw pc commando’s ontvangen en deze via een seriële poort naar het Arduino‑board doorgeven.
De Raspberry Pi is een single‑boardcomputer, ongeveer zo groot als een creditcard. Deze microcomputer is in het Verenigd Koninkrijk ontwikkeld om basiscomputervaardigheden te onderwijzen.
Werkingsprincipe van de Raspberry Pi
De Raspberry Pi heeft alle eigenschappen van een echte computer, waaronder een speciale processor, geheugen en een grafische driver voor HDMI‑uitvoer. Hij draait zelfs een speciale versie van het Linux‑besturingssysteem. Dit maakt het eenvoudig om de meeste Linux‑programma’s te installeren en lineaire actuatoren op Raspberry Pi aan te sluiten. Zo kan de Raspberry Pi worden gebruikt voor actuatoren, als volwaardige mediaserver of als videogame‑emulator.
Er is geen interne gegevensopslag op de Pi, maar u kunt een smartcard gebruiken als flashgeheugen voor het hele systeem. Hierdoor kunt u snel verschillende versies van het besturingssysteem of software‑updates downloaden voor foutopsporing. Aangezien dit apparaat zelfstandige netwerkconnectiviteit biedt, kan het ook worden geconfigureerd voor SSH‑toegang of FTP‑bestandsoverdracht.
Instructies voor het experiment
Hieronder staan de exacte stappen die Jake nam bij het testen van deze setup, van de initiële installatie tot en met de draadloze afstandsbediening van de lineaire actuator.
Omdat de Raspberry Pi een IP‑adres kan krijgen en GPIO‑pinnen heeft, en met de eerder genoemde functies, is het het beste apparaat voor een dergelijk experiment.
Een Raspberry Pi instellen met een lineaire actuator
- Zorg dat het Raspbian‑besturingssysteem op uw Pi is geïnstalleerd. Klik hier voor stapsgewijze instructies om dit besturingssysteem op uw Pi te installeren.
- Verbind uw board met uw wifi. Klik hier voor deze instructies.
- Ken een statisch IP toe aan uw Raspberry Pi. Klik hier voor details over hoe u dit doet.
- Maak een nieuw .py‑bestand aan op uw Raspberry Pi en kopieer de volgende code in dit bestand. Wanneer u deze code uitvoert, wordt uw Pi een server die op poort “6166” naar uw commando’s luistert.
import socket
import sys
# Maak een TCP/IP-socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Bind de socket aan de poort
server_address = ('', 6166)
print ('opstarten op poort ', server_address)
sock.bind(server_address)
# Luister naar inkomende verbindingen
sock.listen(True)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)
while (True):
# Wacht op een verbinding
print ('wachten op een verbinding')
connection, client_address = sock.accept()
print ('verbinding van', client_address)
# Ontvang de data in kleine stukjes en zend deze terug
data = connection.recv(16)
print ("ontvangen:", data)
# Uitgangssignaal op GPIO afhankelijk van ontvangen commando
if data == b"ext":
GPIO.output(18, GPIO.HIGH)
if data == b"ret":
GPIO.output(27, GPIO.HIGH)
if data == b"close connection":
break
# Verbindung sluiten
connection.close()
Bekabeling
Voor duidelijke instructies over de bekabeling van dit project is er een schema beschikbaar via de volgende link: 4‑Channel Digital Relay + Arduino Wiring of a Linear Actuator.
Routerconfiguratie
Zodra uw Pi met uw wifi is verbonden en een statisch IP heeft dat u in de vorige stap hebt geconfigureerd, kunt u port forwarding en IP‑filtering in uw router instellen. Port forwarding maakt het mogelijk om een router zo te configureren dat gegevens die naar een specifieke poort op een apparaat in uw LAN worden gestuurd, worden doorgestuurd. Stel dat uw Pi‑server een statisch IP‑adres 192.168.1.69 heeft en op poort 6166 naar commando’s luistert. Dan moet u uw router zo instellen dat gegevens die op poort 6166 binnenkomen, worden doorgestuurd naar het apparaat met IP‑adres 192.168.1.69.
Instructies:
Opmerking: de interface van uw router kan er anders uitzien dan in dit voorbeeld. Zoek in dat geval de instructies op voor uw specifieke routermodel.
- Voer het IP‑adres van uw router in en log in om toegang te krijgen tot de interface van uw router.

- Zoek de optie Port Forwarding.

- Voer het statische IP‑adres van uw Pi‑server en het bereik van openbare poorten in. Zorg dat poort 6166 binnen dit bereik valt.

We raden u aan om op dit punt IP‑filtering in te stellen voor de beveiliging. IP‑filtering laat u de IP‑adressen opgeven van apparaten die uw Pi via internet mogen benaderen en commando’s mogen sturen. Zoek de instelling voor inkomende filters op en geef de IP‑adressen op van apparaten die toegang tot de actuator(en) mogen hebben.
Clientconfiguratie
- Om clientsoftware op uw apparaat te draaien, installeert u Python 3.8 vanaf hun officiële website.
- U kunt ook PyCharm installeren, een gebruiksvriendelijke IDE.
- Kopieer de volgende code:
import socket
import sys
# Maak een TCP/IP-socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Verbind de socket met de poort waarop de server luistert
server_address = ('Voer het IP-adres van de router in het LAN van uw Pi in', 6166)
print ('verbinden met %s poort', server_address)
sock.connect(server_address)
try:
# Data verzenden
message = b'ret'
print ('verzenden "%s"',message)
sock.sendall(message)
# Wacht op de reactie
amount_received = 0
amount_expected = len(message)
while amount_received < amount_expected:
data = sock.recv(16)
amount_received += len(data)
print ('ontvangen: ', data)
finally:
print ('socket sluiten')
sock.close()
De Raspberry Pi versus Arduino
Zoals aan het begin van het artikel vermeld, is het mogelijk om een Arduino‑board te gebruiken in plaats van een Raspberry Pi. Allereerst is het belangrijk te weten wat Arduino‑boards zijn. Deze microcontrollers voeren code uit die door de firmware wordt geïnterpreteerd. Het zijn geen volwaardige computers en hebben dus niet echt een besturingssysteem. U beschikt mogelijk niet over de basisgereedschappen die een besturingssysteem biedt, maar het maakt directe uitvoering van eenvoudige code wel eenvoudiger.
Er zijn ook geen kosten verbonden aan dit “besturingssysteem”. Het belangrijkste doel van het Arduino‑board is interactie met sensoren en apparaten, waardoor Arduino uitstekend geschikt is voor hardwareprojecten die moeten reageren op verschillende sensorsignalen en handmatige invoer. Het is perfect geschikt voor de aansturing van andere apparaten en actuatoren, waarbij een volwaardig besturingssysteem simpelweg niet nodig is.
De keuze tussen Raspberry Pi en Arduino hangt sterk af van het project waarvoor het nodig is.
Het is beter om voor Arduino te kiezen als de hoofdtaak bestaat uit het uitlezen van sensorgegevens of het wijzigen van waarden op de Motor en andere apparaten. Gezien de eisen aan de stroomvoorziening van Arduino en het eenvoudige onderhoud van dit systeem, kan het apparaat continu worden gebruikt met nauwelijks verstoring van de werking.
De Raspberry Pi daarentegen is praktischer wanneer taken moeten worden opgelost die u normaal op een pc zou uitvoeren. Raspberry Pi vereenvoudigt het workflow‑beheer in verschillende scenario’s, zoals wanneer internetverbinding nodig is om gegevens te lezen of te schrijven, media af te spelen of een extern display aan te sluiten.
Aangezien Arduino en Raspberry Pi verschillende taken oplossen, is het in bepaalde situaties handig om deze apparaten samen te gebruiken. Wanneer u deze twee apparaten verbindt, krijgt u via de Pi clienttoegang tot instellingen en code, terwijl de Arduino de actuatoren aanstuurt en informatie van de sensoren verzamelt. U kunt deze twee apparaten verbinden via USB, LAN of door de I/O‑poorten van Arduino met Raspberry Pi te verbinden.
Slotwoord
Nu is alles ingesteld om elke actuator binnen de genoemde criteria van Progressive Automations via internet te bedienen! Door de code uit te voeren, krijgt u het ultieme gemak van het op afstand bedienen van uw actuatoren – of zoals wij ze graag noemen: ‘wifi‑gestuurde actuatoren’. Bedankt voor het lezen van dit artikel. Als u vragen hebt of als u iets door een van onze ingenieurs uitgeprobeerd wilt zien, contacteer ons en we nemen graag contact met u op!