Linjär rörelse är en värld som utvecklas ständigt och snabbt utvecklas. Progressive Automations är fast beslutna att ligga i framkant av dessa tekniska förändringar. Fjärrstyrda ställdon har blivit mer mångsidiga och dynamiska. Med detta i åtanke bestämde sig en av våra ingenjörer, Jake, för att genomföra ett experiment för att avgöra om våra linjära ställdon skulle kunna styras från alternativa nätverk. Detta är verkligen möjligt. Därför kommer den här artikeln att ge en steg-för-steg-guide om hur det kan uppnås. Den innehåller också ett kodexempel och de verktyg man behöver för att upprätta en lyckad anslutning och slutligen styra ställdonet/ställdonen online.
Produktlista
- PA-14 Mini linjär aktuator
- Raspberry Pi 4
- LC-201 Relämodul
- PS-20-12 strömförsörjning
PA-14 Mini linjär aktuator

PA-14 Mini linjära ställdon är en av de mest populära modellerna som erbjuds av Progressive Automations och exemplet vi använde för detta experiment. Alla modeller från Progressive Automations med en 12 VDC/24 VDC/36 VDC/48 VDC-klassning och borstad likströmsmotor kan användas istället för PA-14-ställdonet. Den angivna koden som demonstreras nedan kräver inga modifieringar om man väljer ett annat ställdon, men ström- och spänningsklassningen för strömförsörjning skulle behöva kontrolleras innan man fortsätter.
Det nya och förbättrade PA-01 ministälldon (PA-14-uppgradering) är den nuvarande modellen vi erbjuder med en mängd olika fördelar. För en jämförelse, kolla in tabellerna nedan och uppgradera tryggt!
|
|
PA-01 |
PA-14 |
|
Dynamiska laddningsalternativ |
16, 28, 56, 112, 169, 225 lb |
35, 50, 75, 110, 150 lb |
|
Högsta belastning |
225 lb |
150 lb |
|
Snabbaste hastighet |
3.54 "/sec |
2.00"/sec |
|
Inträngningsskydd |
IP65 |
IP54 |
|
Strokealternativ |
1 varv till 40 varv |
1 varv till 40 varv |
|
Halleffektåterkoppling |
Frivillig |
Inga |
Linjär aktuator för en Raspberry Pi
Experimentdetaljerna som ges kommer att ge en förklaring av hur man styr ett linjärt ställdon med en Raspberry Pi. Raspberry Pi 4 används för att köra serverprogramvaran och ta emot kommandon för styrning av ställdonet. Alternativt kan en stationär dator och ett Arduino-kort användas istället. Om detta är den väg du väljer skulle din dator behöva ta emot kommandon och kommunicera dem till Arduino-kortet via en seriell port.
Raspberry Pi är en enkortsdator, ungefär lika stor som ett kreditkort. Denna mikrodator utvecklades i Storbritannien för att användas vid undervisning i grundläggande datorkunskaper.
Raspberry Pis funktionsprincip
Raspberry Pi har alla egenskaper hos en riktig dator, inklusive en dedikerad processor, minne och grafikdrivrutin för HDMI-utgång. Den kör till och med en speciell version av Linux-operativsystemet. Detta gör det enkelt att installera de flesta Linux-program och anslut linjära ställdon till Raspberry Pi. Detta gör att Raspberry Pi kan användas för aktuatorer, som en fullfjädrad medieserver eller som en videospelsemulator.
Det finns ingen intern datalagring på Pi, men man kan använda ett smartkort som flashminne som hanterar hela systemet. Detta gör att man snabbt kan ladda ner olika versioner av operativsystemet eller programuppdateringar för felsökning. Eftersom den här enheten erbjuder oberoende anslutning över nätverket kan den också konfigureras för SSH-åtkomst eller FTP-filöverföring.
Instruktioner för experimentet
Följande visar de exakta stegen som Jake vidtog när han testade denna installation, från den första installationen till den linjära ställdonets trådlösa fjärrkontroll.
Eftersom Raspberry Pi-kortet kan tilldelas en IP-adress och ha GPIO-pinnar, tillsammans med dess tidigare nämnda funktioner, fungerar det som den bästa enheten för ett sådant experiment.
Konfigurera en Raspberry Pi med en linjär aktuator
- Se till att Raspbian OS är installerat på din Pi. Klicka här för en steg-för-steg-instruktion om hur du installerar det här operativsystemet på din Pi.
- Anslut din bräda till ditt Wi-Fi. Klicka här för dessa instruktioner.
- Tilldela en statisk IP-adress till din Raspberry Pi. Klicka här för detaljer om hur du gör detta.
- Skapa en ny .py-fil i din Raspberry Pi och kopiera följande kod till den här filen. När du kör den här koden kommer din Pi att bli en server som lyssnar efter dina kommandon på port "6166 tum.
import socket import sys # Skapa en TCP/IP-socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Bind socketen till porten server_address = ('', 6166) print ('startar på port ', server_address) sock.bind(server_address) # Lyssna efter inkommande anslutningar sock.listen(True) GPIO.setmode(GPIO.BCM) GPIO.setup(18, GPIO.OUT) GPIO.setup(27, GPIO.OUT) while (True): # Vänta på en anslutning print ('väntar på en anslutning') connection, client_address = sock.accept() print ('anslutning från', client_address) # Ta emot data i små bitar och skicka om den data = connection.recv(16) print ("received:", data) # Utsignal på GPIO beroende på mottaget kommando if data == b"ext": GPIO.output(18, GPIO.HIGH) if data == b"ret": GPIO.output(27, GPIO.HIGH) if data == b"close connection": break # Stänger anslutningen connection.close()
Ledningar
För tydliga instruktioner om kopplingen för detta projekt finns ett diagram på följande länk: 4-kanaligt digitalt relä + Arduino-koppling av ett linjärt ställdon.
Routerinstallation
När din Pi är ansluten till ditt Wi-Fi och har en statisk IP-adress som du konfigurerade i föregående steg kan du börja konfigurera portvidarebefordran och IP-filtrering i din router. Portvidarebefordran gör att du kan konfigurera en router för att överföra data som kommer till en specifik port på en viss enhet i ditt lokala nätverk. Låt oss anta att din Pi-server har en statisk IP-adress 192.168.1.69 och lyssnar efter kommandon på port 6166. Du skulle behöva konfigurera din router för att överföra data som kommer på port 6166 till en enhet med IP-adressen 192.168.1.69.
Instruktioner:
Obs! Din routers gränssnitt kan se annorlunda ut än i det här exemplet. I så fall hittar du instruktioner om hur du utför detta steg för din routermodell.
- Ange din routers IP-adress och logga in för att komma åt routerns gränssnitt.

- Hitta Portvidarebefordran alternativ.

- Ange den statiska IP-adressen för din Pi-server och det publika portintervallet. Se till att port 6166 ligger inom detta intervall.

Vi rekommenderar att du konfigurerar IP-filtrering nu av säkerhetsskäl. Med IP-filtrering kan du ange IP-adresserna för enheter som har åtkomst till och skicka kommandon till din Pi-enhet via internet. Hitta inställningen för inkommande filter och ställ in IP-adresserna för enheter som har åtkomst till ställdon i den här inställningen.
Klientinställningar
- För att köra klientprogramvara på din enhet, installera Python 3.8 från deras officiell webbplats.
- Du kanske också vill installera PyCharm vilket är en lättanvänd IDE.
- Kopiera följande kod:
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 kontra Arduino
Som nämnts i början av artikeln är det möjligt att använda ett Arduino-kort istället för en Raspberry Pi. För det första är det viktigt att notera vad Arduino-kort är. Dessa mikrokontroller exekverar koder som tolkas av firmware. De är inte fullfjädrade datorer och har därför inget operativsystem i sig. Man kanske inte har de grundläggande verktygen som operativsystemet tillhandahåller, men det gör det enklare att exekvera enkel kod direkt.
Det finns inte heller några kostnader förknippade med detta operativsystem. Arduino Boards huvudsyfte är att interagera med sensorer och enheter, vilket gör Arduino utmärkt för hårdvaruprojekt som syftar till att framkalla en respons på olika sensorsignaler och manuell inmatning. Det är perfekt lämpat för artikulering av andra enheter och ställdon, där ett fullfjädrat operativsystem helt enkelt inte krävs.
Att välja mellan Raspberry Pi och Arduino beror i hög grad på vilket projekt den ska användas till.
Det vore bättre att välja Arduino om ens huvudsakliga uppgift är att läsa data från sensorer eller ändra värden på motorn och andra enheter. Med tanke på kraven från Arduino strömförsörjning och Systemet är enkelt att underhålla och kan användas utan att stängas av, nästan utan att störa dess funktion.
Raspberry Pi å andra sidan skulle vara mer praktisk när man löser uppgifter som utförs på en persondator. Raspberry Pi förenklar arbetsflödeshanteringen i olika scenarier, till exempel om man behöver ansluta till internet för att läsa eller skriva data, spela upp media eller ansluta till en extern skärm.
Med tanke på att Arduino och Raspberry Pi löser olika uppgifter är det i vissa situationer praktiskt att använda dessa enheter tillsammans. När man ansluter dessa två enheter skulle man kunna få klientåtkomst till inställningar och kod via Pi, medan Arduino styr aktuatorerna och samlar in information från sensorerna. Man kan ansluta dessa två enheter via USB, LAN eller genom att ansluta Arduino I/O-portar till Raspberry Pi.
Slutord
Vid det här laget är allt konfigurerat för att styra alla ställdon inom de nämnda kriterierna från Progressive Automations via internet! Genom att köra koden får du den ultimata bekvämligheten att styra dina ställdon på distans, eller som vi gillar att kalla dem "WiFi-styrda ställdon". Tack för att du läste den här artikeln – om du har några frågor eller om du vill se något experimenterat av en av våra ingenjörer, kontakta oss och vi hör gärna av oss till dig!