Blog posts How an Arduino or Raspberry Pi Communicates with our Hall effect actuator: the PA-04-HS

Kako Arduino ali Raspberry Pi komunicira z našim aktuatorjem s Hallovim učinkom: PA-04-HS

Guest Writer
Guest Writer
PA Engineer

Dobrodošli v še enem tehničnem blogu podjetja Progressive Automations! Danes bomo predstavili, kako lahko Arduino komunicira z našim PA-04-HS.

Hallov senzor je elektronska komponenta, ki omogoča natančen nadzor linearnega aktuatorja. Običajno je nameščen v menjalniku poleg magnetnega diska. Ko se linearni aktuator premika, se magnetni disk vrti in ustvarja magnetno polje, ki prehaja skozi Hallov senzor. To ustvari napetostni pulz, ki ga lahko štejemo za določitev položaja, hitrosti ali smeri linearnega aktuatorja. Za uporabo teh signalov pa je potreben mikrokrmilnik, na primer Arduino ali Raspberry Pi. V tem članku se bomo poglobili v uporabo aktuatorja z Raspberry Pi in v to, kako linearni aktuator krmiliti z Arduinom. Kot omenjeno, bomo oba mikrokrmilnika prikazali z PA-04-HS – linearni aktuator s Hallovim učinkom.

PA-04-HS ima vgrajeno povratno zvezo s Hallovim učinkom!

Izračuni položaja, hitrosti in smeri

Preden se lotimo podrobnosti, je najprej treba razumeti, kako se signali, ki prihajajo iz Hallovega senzorja, uporabijo za izračun položaja, hitrosti in smeri linearnega aktuatorja. V PA-04-HS je Hallov senzor zasnovan tako, da ustvarja dva signala v enem od dveh binarnih stanj: vklop ali izklop. Ta dva signala naraščata in padeta, ko se električni motor vrti, med njima pa je 90-stopinjski fazni zamik. Ne skrbite, če ne veste, kako vse to implementirati v kodo, ki jo lahko bere mikrokrmilnik – to vam bomo podali pozneje v članku.

Položaj

Položaj linearnega aktuatorja zahteva nekaj izračunov z uporabo Hallovih signalov in nekaj meritev samega aktuatorja. Enačba za položaj palice aktuatorja zahteva dolžino hoda aktuatorja in skupno število robov, zaznanih od popolnoma uvlečenega do popolnoma iztegnjenega. Na podlagi teh meritev lahko uporabite naslednjo enačbo:

Equation 1

 

V zgornji enačbi se število robov, zaznanih od popolnoma uvlečenega položaja, začne pri nič in se poveča za ena, ko je rob zaznan v smeri naprej, ter zmanjša za ena, ko je rob zaznan v smeri nazaj.

 

Hitrost

Hitrost aktuatorja lahko izmerimo s Hallovimi signali tako, da v programu implementiramo časovnik. Ta časovnik se uporablja za merjenje časa med zaznanimi robovi. Poleg tega je potrebna izračunana vrednost spremembe hoda na zaznan rob. Z navedenimi vrednostmi lahko uporabimo naslednjo enačbo:

Equation 2

 

Smer

Smer gibanja aktuatorja lahko določimo tako, da pogledamo trenutno stanje obeh signalov (signal A in B) in ga primerjamo z zadnjim stanjem obeh signalov. To zato, ker se glede na smer gibanja aktuatorja zamenja, kateri signal vodi in kateri zaostaja.

Schema of the state of the two signals (signal A and B)

 

Table of the state of the two signals (signal A and B)

 

Kaj je bolje, Arduino ali mikrokrmilnik Raspberry Pi?

Ne gre za to, kateri je na splošno boljši, temveč kateri je boljši za vašo predvideno aplikacijo. Arduino je primernejši, če je glavna naloga vaše aplikacije branje podatkov iz Hallovega senzorja in vračanje določenega nabora navodil.

Po drugi strani je Raspberry Pi bolj praktičen pri opravljanju nalog, ki bi jih običajno izvajali na osebnem računalniku. Poleg tega Raspberry Pi poenostavi upravljanje potekov dela v različnih scenarijih, kot sta povezovanje v internet ali krmiljenje linearnega aktuatorja prek mobilne naprave.

Za različne naloge je lahko priročno uporabiti oba mikrokrmilnika. Raspberry Pi lahko dostopa do kode in prilagodi različne parametre, nato pa jih pošlje Arduinu, ki na podlagi zbranih informacij krmili linearni aktuator.

Poglobili se bomo v podrobnosti in vam pokazali, kako z Arduinom upravljati linearni aktuator.

 

Arduino z linearnimi aktuatorji

Arduino Uno Rev3

 

Glede na vašo aplikacijo lahko pri obravnavi digitalnih signalov izbirate med metodo poizvedovanja (polling) ali prekinitvijo (interrupt). Poizvedovanje je programirana metoda, pri kateri mikrokrmilnik periodično preverja stanje vhoda, da vidi, ali je prišlo do spremembe. Prekinitve so strojni mehanizem, ki takoj preusmeri fokus programa mikrokrmilnika, ko se stanje na vhodu spremeni.

V demonstracijske namene bomo izbrali metodo s prekinitvami, da natančno vemo, kdaj signal spremeni stanje. Na mikrokrmilniku Arduino prekinitev uporabimo tako, da ustvarimo rutino za obravnavo prekinitve (ISP).

Potrebovali boste:

 

Ožičenje Arduina in ščita

Hallovi senzorji imajo 4 žice: 5 V, GND in 2 signalni žici. Vsaka signalna žica oddaja pulze, ko se motor vrti. Povezati je treba tudi dve žici aktuatorja z modulom MegaMoto. Uporabili bomo le en Hallov signal.

Povežite linearni aktuator z Arduinom in MegaMotom tako:

  • Rdeča žica senzorja na 5V pin Arduina.
  • Črna žica senzorja na GND pin Arduina.
  • Rumena/oranžna žica na pin 2 ali 3 na Arduinu (če uporabljate drug Arduino, poskrbite, da so pini za prekinitve).
  • Rdeča žica aktuatorja na MOTA modula MegaMoto.
  • Črna žica aktuatorja na MOTB modula MegaMoto.

Ko so motorji pravilno povezani na plošče, povežite napajanje takole:

  • Povežite 12 V na BAT+.
  • Povežite GND na BAT-.
  • Povežite 12 V na Vin na Arduinu.
  • Med pina 7 in 8 na Arduinu povežite dva gumba in ju priključite na GND.

Za prekinitev obstajajo 4 vrste sprožilcev: Rising, Falling, High in Low. Z izbiro sprožilca lahko prilagodite, kdaj se prekinitev zgodi. Rising pomeni prehod pina iz nizkega v visoko stanje, Falling iz visokega v nizko, Low je, ko je pin nizek, High pa, ko je pin visok.

Za celotno kodo za Arduino obiščite naš vodič tukaj: Arduino koda za linearni aktuator s Hallovim učinkom

Koda bo premaknila aktuator naprej ali nazaj za določen znesek, ko pritisnete gumba na pinu 7 ali 8 (active LOW). Vključuje tudi homing rutino. To je pomembno, saj lahko pri dolgotrajnem premikanju motorja naprej in nazaj občasno izgubite kakšen impulz in postopoma izgubite občutek, kje ste. Homing rutina premakne linearni aktuator nazaj na znan položaj, da se števec lahko ponastavi.

 

Aktuator z Raspberry Pi

Kako torej priključiti aktuator na Raspberry Pi 2, 4 ali novejši model? Krmiljenje linearnega aktuatorja z Raspberry Pi je preprosto in ga lahko izvedete prek interneta, kar omogoča brezžični nadzor. Natančen postopek si oglejte v tem vodiču: Nadzor linearnega aktuatorja z Raspberry Pi.

Raspberry Pi 4 se uporablja za poganjanje strežniške programske opreme in prejemanje ukazov za krmiljenje linearnega aktuatorja. Ta vodič pa ne uporablja Hallovega senzorja. Če želite to dodati, lahko na linearni aktuator in Raspberry Pi priključite ploščo Arduino in podatke pošiljate/prejemate brezžično. Čeprav lahko tudi Raspberry Pi neposredno bere podatke s senzorjev, podobno kot Arduino, je to lahko pretirano, če krmilite le nekaj linearnih aktuatorjev.

 

Krmiljenje več linearnih aktuatorjev

Hall Effect Sensor Actuator IP66 Model: PA-04-HS

 

Če morate z Raspberry Pi ali Arduinom krmiliti več linearnih aktuatorjev, boste potrebovali nekaj dodatnih komponent, kodo pa bo treba prilagoditi. Dva ali več linearnih aktuatorjev lahko sinhronizirate s sledenjem štetju impulzov Hallovega senzorja, in če se štetja linearnih aktuatorjev preveč razlikujejo, se bo vsak linearni aktuator upočasnil, da se položaji izenačijo.

Celoten nabor navodil si oglejte tukaj: Krmiljenje več linearnih aktuatorjev z mikrokrmilnikom

Če sinhronizacija ni del vaše predvidene aplikacije, preprosto uporabite en Arduino za enega ali dva aktuatorja, odvisno od števila razpoložljivih prekinitvenih pinov. Za krmiljenje več aktuatorjev lahko uporabite več Arduino plošč ali pridobite Arduino ščit z več prekinitvenimi pini.

Prebrskajte naš nabor mikrokrmilnikov za vrhunski nadzor aktuatorjev!

Zaključek

Če ste za izziv, lahko z Arduinom in linearnimi aktuatorji preizkusite dodatne metode za nadzor gibanja, na primer uporabi domiselne PID-kode, ki si jo lahko ogledate tukaj: PID nadzor linearnega aktuatorja. Hallov senzor v linearnem aktuatorju, kot je PA-04-HS, zagotavlja dodatno raven nadzora, ki jo je z Arduinom ali Raspberry Pi enostavno nastaviti. Ne glede na to, ali vaša aplikacija zahteva le branje podatkov s senzorja ali želite svoj linearni aktuator dvigniti na višjo raven z povezavo v splet, je Hallov senzor v kombinaciji z izbranim mikrokrmilnikom prava pot.

Če imate kakršna koli vprašanja glede vsebine tega članka ali želite le razpravljati o možnih produktnih rešitvah, vas prosimo, da kontaktirate nas – z veseljem pomagamo!