Lineaarisen liikkeen maailma on nopeatahtinen ja kehittyy jatkuvasti. Progressive Automations on päättänyt pysyä näiden teknologisten muutosten eturintamassa. Etäohjattavat toimilaitteet ovat monipuolistuneet ja muuttuneet dynaamisemmiksi. Tätä silmällä pitäen yksi insinööreistämme, Jake, päätti tehdä kokeen selvittääkseen, voidaanko lineaarisia toimilaitteitamme ohjata vaihtoehtoisista verkoista. Tämä on mahdollista. Tässä artikkelissa annetaan vaiheittaiset ohjeet, miten se voidaan toteuttaa. Mukana on myös koodiesimerkki ja työkalut, joita tarvitaan onnistuneen yhteyden luomiseen ja lopulta toimilaitteiden online-ohjaukseen.
Tuotelista
- PA-14 Mini Linear Actuator
- Raspberry Pi 4
- LC-201 Relay Module
- PS-20-12 Power Supply
PA-14 Mini Lineaarinen toimilaite

PA-14-minilineaarinen toimilaite on yksi Progressive Automationsin suosituimmista malleista ja se, jota käytimme tässä kokeessa. Minkä tahansa Progressive Automationsin 12VDC/24VDC/36VDC/48VDC -luokitellun ja harjallisella tasavirtamoottorilla varustetun mallin voi vaihtaa PA-14-toimilaitteen tilalle. Alla esitetty koodi ei vaadi muutoksia, vaikka valitsisit toisen toimilaitteen, mutta virtalähteen virta- ja jänniteluokitus tulee tarkistaa ennen jatkamista.
Uusi ja parannettu PA-01 mini-toimilaite (PA-14-päivitys) on uusin mallimme, jossa on useita lisähyötyjä. Vertailua varten katso alla olevat taulukot ja päivitä luottavaisin mielin!
|
|
PA-01 |
PA-14 |
|
Dynamic Load Options |
16, 28, 56, 112, 169, 225 lbs |
35, 50, 75, 110, 150 lbs |
|
Highest Load |
225 lbs |
150 lbs |
|
Fastest Speed |
3.54 "/sec |
2.00"/sec |
|
Ingress Protection |
IP65 |
IP54 |
|
Stroke Options |
1" to 40" |
1" to 40" |
|
Hall Effect Feedback |
Optional |
No |
Lineaarinen toimilaite Raspberry Pi:lle
Tässä esitetyissä kokeen tiedoissa kerrotaan, miten lineaarista toimilaitetta ohjataan Raspberry Pi:llä. Raspberry Pi 4:ää käytetään palvelinohjelmiston ajamiseen ja komentojen vastaanottamiseen toimilaitteen ohjausta varten. Vaihtoehtoisesti pöytäkone ja Arduino-kortti voidaan käyttää tämän sijaan. Jos valitset tämän tavan, PC:si vastaanottaa komennot ja välittää ne Arduino-kortille sarjaportin kautta.
Raspberry Pi on yhden piirilevyn tietokone, kooltaan suurin piirtein luottokortin kokoinen. Tämä mikrotietokone kehitettiin Yhdistyneessä kuningaskunnassa perus atk-taitojen opettamiseen.
Raspberry Pin toimintaperiaate
Raspberry Pissä on kaikki oikean tietokoneen ominaisuudet, kuten oma suoritin, muisti ja grafiikka-ajuri HDMI-ulostulolle. Se käyttää jopa Linux-käyttöjärjestelmän erikoisversiota. Tämä helpottaa useimpien Linux-ohjelmien asennusta ja lineaaristen toimilaitteiden liittämistä Raspberry Pi:hin. Näin Raspberry Pi:tä voidaan käyttää toimilaitteiden ohjaamiseen, täysiverisenä mediaserverinä tai videopeli-emulaattorina.
Pi:ssä ei ole sisäistä datan tallennusta, mutta muistikorttia voidaan käyttää koko järjestelmän flash-muistina. Tämän avulla voi nopeasti ladata eri versioita käyttöjärjestelmästä tai ohjelmistopäivityksiä vianmääritystä varten. Koska laite tarjoaa itsenäisen verkkoyhteyden, se voidaan myös konfiguroida SSH-käyttöön tai FTP-tiedonsiirtoon.
Ohjeet kokeeseen
Alla on esitetty tarkat vaiheet, jotka Jake teki testatessaan tätä kokoonpanoa – alkumäärittelystä lineaarisen toimilaitteen langattomaan etäohjaukseen.
Koska Raspberry Pi -levylle voidaan määrittää IP-osoite ja siinä on GPIO-nastat sekä edellä mainitut toiminnot, se toimii parhaana laitteena tällaiseen kokeeseen.
Raspberry Pin käyttöönotto lineaarisen toimilaitteen kanssa
- Varmista, että Raspbian-käyttöjärjestelmä on asennettu Pi-laitteeseesi. Klikkaa tästä saadaaksesi vaiheittaiset ohjeet tämän käyttöjärjestelmän asentamiseen Pi:hin.
- Yhdistä piirisi Wi-Fi-verkkoon. Klikkaa tästä näihin ohjeisiin.
- Anna Raspberry Pi:llesi staattinen IP. Klikkaa tästä nähdäksesi, miten se tehdään.
- Luo Raspberry Pi:hin uusi .py-tiedosto ja kopioi siihen alla oleva koodi. Kun suoritat koodin, Pi:stäsi tulee palvelin, joka kuuntelee komentoja portissa ”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()
Johdotus
Tämän projektin johdotusta varten on tarjolla selkeä kaavio seuraavassa linkissä: 4-Channel Digital Relay + Arduino Wiring of a Linear Actuator.
Reitittimen määritys
Kun Pi on liitetty Wi-Fi-verkkoon ja sillä on edellisessä vaiheessa määrittämäsi staattinen IP, voit aloittaa portinohjauksen ja IP-suodatuksen määrittämisen reitittimeesi. Portinohjaus mahdollistaa sen, että reititin välittää tietoja tietylle portille LAN-verkossasi olevalla tietyllä laitteella. Oletetaan, että Pi-palvelimellasi on staattinen IP-osoite 192.168.1.69 ja se kuuntelee komentoja portissa 6166. Sinun on määritettävä reitittimesi välittämään porttiin 6166 tulevat tiedot laitteelle, jonka IP-osoite on 192.168.1.69.
Ohjeet:
Huom.: Reitittimesi käyttöliittymä voi näyttää erilaiselta kuin tässä esimerkissä. Etsi siinä tapauksessa ohjeet, miten tämä vaihe suoritetaan juuri sinun reititinmallillesi.
- Syötä reitittimesi IP-osoite ja kirjaudu sisään päästäksesi reitittimen käyttöliittymään.

- Etsi Port Forwarding -asetus.

- Syötä Pi-palvelimesi staattinen IP-osoite ja julkinen porttialue. Varmista, että portti 6166 sisältyy tähän alueeseen.

Suosittelemme määrittämään tässä vaiheessa IP-suodatuksen turvallisuussyistä. IP-suodatus antaa määrittää niiden laitteiden IP-osoitteet, joilla on lupa käyttää Pi-laitettasi internetin kautta ja lähettää sille komentoja. Etsi saapuvan liikenteen suodatusasetus ja lisää siihen niiden laitteiden IP-osoitteet, joilla on lupa käyttää toimilaitteita.
Asiakaspuolen asennus
- Jotta voit ajaa asiakasohjelmistoa laitteellasi, asenna Python 3.8 heidän viralliselta sivustoltaan.
- Voit halutessasi asentaa myös PyCharmin, joka on helppokäyttöinen IDE.
- Kopioi seuraava koodi:
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 vs. Arduino
Kuten artikkelin alussa todettiin, Raspberry Pin sijasta on mahdollista käyttää Arduino-korttia. Ensin on hyvä täsmentää, mitä Arduino-kortit ovat: nämä mikrokontrollerit suorittavat koodia, jonka laiteohjelmisto tulkitsee. Ne eivät ole täysiverisiä tietokoneita, joten varsinaista käyttöjärjestelmää ei ole. Käyttöjärjestelmän tarjoamia perus työkaluja ei välttämättä ole, mutta se tekee yksinkertaisen koodin suorasta ajamisesta helpompaa.
Tähän käyttöjärjestelmään ei liity kustannuksia. Arduino-kortin päätarkoitus on olla vuorovaikutuksessa antureiden ja laitteiden kanssa, mikä tekee Arduinosta erinomaisen laitteistoprojekteihin, joissa reagoidaan eri anturisignaaleihin ja manuaaliseen syöttöön. Se sopii täydellisesti muiden laitteiden ja toimilaitteiden ohjaamiseen, kun täysiveristä käyttöjärjestelmää ei yksinkertaisesti tarvita.
Valinta Raspberry Pin ja Arduinon välillä riippuu vahvasti projektista, johon sitä tarvitaan.
Arduino on parempi valinta, jos päätarkoitus on lukea dataa antureista tai muuttaa arvoja moottorissa ja muissa laitteissa. Ottaen huomioon Arduinon virtalähteen vaatimukset ja järjestelmän helpon ylläpidon, laitetta voidaan käyttää sammuttamatta, käytännössä häiritsemättä sen toimintaa.
Raspberry Pi taas on käytännöllisempi tehtävissä, jotka muuten tehtäisiin henkilökohtaisella tietokoneella. Raspberry Pi yksinkertaistaa työnkulun hallintaa erilaisissa tilanteissa, kuten kun tarvitaan internet-yhteyttä tiedon lukuun tai kirjoittamiseen, median toistamiseen tai ulkoiseen näyttöön kytkeytymiseen.
Koska Arduino ja Raspberry Pi ratkaisevat erilaisia tehtäviä, joissakin tapauksissa on kätevää käyttää niitä yhdessä. Kun nämä kaksi laitetta yhdistetään, asetuksiin ja koodiin voidaan päästä käsiksi Pi:n kautta, kun taas Arduino ohjaa toimilaitteita ja kerää tietoa antureista. Laitteet voidaan liittää toisiinsa USB:n, LANin tai liittämällä Arduinon I/O-portit Raspberry Pi:hin.
Lopuksi
Tässä vaiheessa kaikki on valmista minkä tahansa Progressive Automationsin kriteerit täyttävän toimilaitteen ohjaamiseen internetin kautta! Koodin suorittaminen antaa sinulle äärimmäisen helppouden ohjata toimilaitteitasi etänä – me kutsumme niitä mielellämme ”WiFi-ohjatuiksi toimilaitteiksi”. Kiitos, että luit tämän artikkelin – jos sinulla on kysyttävää tai haluat, että joku insinööreistämme kokeilee jotakin, ota meihin yhteyttä – autamme mielellämme!