Vítejte na dalším technickém blogu od Progressive Automations! Dnes si ukážeme, jak může Arduino komunikovat s naším PA-04-HS.
Hallův senzor je elektronická součástka, která umožňuje přesné řízení lineární aktuátorObvykle je umístěn v převodovce vedle magnetického disku. Jak se lineární aktuátor pohybuje, magnetický disk se otáčí, což vytváří magnetické pole, které prochází Hallovým senzorem. Tím se vytváří napěťový impuls, který lze sčítat pro určení polohy, rychlosti nebo směru lineárního aktuátoru. Pro využití těchto signálů je však třeba použít mikrokontrolér, například Arduino nebo Raspberry Pi. V tomto článku se ponoříme do použití aktuátoru pro Raspberry Pi a do ovládání lineárního aktuátoru pomocí Arduina. Jak již bylo zmíněno, oba tyto mikrokontroléry budou demonstrovány na příkladu Progressive Automations. Lineární aktuátor s Hallovým jevem PA-04-HS.
Výpočty polohy, rychlosti a směru
Než se ponoříme do detailů, je třeba nejprve pochopit, jak se signály z Hallova senzoru používají k výpočtu polohy, rychlosti a směru lineárního aktuátoru. PA-04-HSHallův senzor je navržen tak, aby generoval dva signály v jednom ze dvou binárních stavů: zapnuto nebo vypnuto. Tyto dva signály budou stoupat a klesat, jak se elektromotor otáčí, s fázovým posunem 90 stupňů. Nebojte se, pokud nevíte, jak cokoli z toho implementovat v kódu, který dokáže číst mikrokontrolér, nebojte se, ten vám poskytneme později v tomto článku.
Pozice
Poloha lineárního aktuátoru vyžaduje určité výpočty s využitím signálů Hallova jevu a některá měření samotného aktuátoru. Rovnice pro polohu tyče aktuátoru vyžaduje délku zdvihu pohona celkový počet detekovaných hran od plně zataženého do vytaženého stavu. Pomocí těchto měření lze použít následující rovnici:

Počet detekovaných hran od úplného zatažení ve výše uvedené rovnici začne na nule a zvýší se o jednu, když je detekována hrana v dopředném směru, a sníží se o jednu, když je detekována hrana v dozadním směru.
Rychlost
Rychlost aktuátoru lze měřit pomocí signálů Hallova jevu implementací časovače v programu. Tento časovač bude použit k měření času mezi detekovanými hranami. Dále je vyžadována vypočítaná hodnota změny zdvihu na detekovanou hranu. S využitím těchto hodnot lze použít následující rovnici:

Směr
Směr pohybu aktuátoru lze určit pohledem na aktuální stav dvou signálů (signál A a B) a jeho porovnáním s posledním stavem obou signálů. Je to proto, že oba signály se mění v závislosti na směru pohybu aktuátoru, který je předstihující a který opožděný.


Co je lepší, Arduino nebo mikrokontrolér Raspberry Pi?
Nejde o to, co je obecně lepší, ale spíše o to, co je lepší pro vaši zamýšlenou aplikaci. Pokud je hlavním úkolem vaší aplikace číst data z Hallova senzoru a vracet určitou sadu instrukcí, bylo by lepší zvolit Arduino.
Na druhou stranu by Raspberry Pi bylo praktičtější při řešení úkolů, které by se prováděly na osobním počítači. Raspberry Pi navíc zjednodušuje správu pracovních postupů v různých scénářích, jako je připojení k internetu nebo ovládání lineárního aktuátoru pomocí mobilního zařízení.
Může být vhodné použít oba mikrokontroléry k řešení různých úkolů. Raspberry Pi by mohl získat přístup k kódu a upravovat různé parametry, které pak lze odeslat do Arduina pro řízení lineárního aktuátoru na základě shromážděných informací.
Pojďme se ponořit do detailů a ukázat vám, jak ovládat lineární aktuátor pomocí Arduino.
Arduino s lineárními aktuátory

Opět platí, že v závislosti na vaší aplikaci si můžete při práci s digitálními signály vybrat mezi použitím metody dotazování nebo přerušení pomocí mikrokontroléru. Dotazování je programovaná metoda, při které mikrokontrolér periodicky kontroluje stav vstupu, aby zjistil, zda došlo ke změně. Přerušení jsou hardwarový mechanismus, který okamžitě přesune zaměření programu mikrokontroléru, když se stav vstupu změní.
For demonstration purposes, we will opt for the interrupt method to know the exact moment when a signal changes state. On an Arduino microcontroller, an interrupt is used by creating an Interrupt Servicing Routine (ISP).
Zde je to, co budete potřebovat:
Zapojení Arduina a komponent Shield
Hallovy senzory mají 4 vodiče: 5V, GND a 2 signální vodiče. Každý signální vodič vysílá impulsy, když se motor otáčí. K MegaMoto jsou také připojeny dva vodiče akčního členu. Použijeme pouze jeden ze signálů Hallova efektu.
Připojte lineární aktuátor k Arduinu a MegaMoto takto:
- Červený vodič senzoru k pinu 5V Arduina.
- Černý vodič senzoru k pinu GND Arduina.
- Žlutý/oranžový vodič k pinu 2 nebo 3 Arduina (pokud používáte jiný Arduino, ujistěte se, že piny jsou přerušovací).
- Červený vodič akčního členu k MOTA jednotky MegaMoto.
- Černý vodič akčního členu k MOTB motoru MegaMoto.
Jakmile jsou motory správně zapojeny k deskám, zapojte napájecí zdroj takto:
- Připojte 12V k BAT+.
- Připojte GND k BAT-.
- Připojte 12V k Vin na Arduinu.
- Zapojte dvě tlačítka mezi piny 7 a 8 na Arduinu a připojte je k GND.
Existují 4 typy spouštěčů pro přerušení: Rostoucí, Klesající, Vysoký a Nízký. Změnou spouštěče můžete upravit, kdy k přerušení dojde. Rostoucí je vždy, když pin zaznamená přechod z nízké na vysokou úroveň, klesající je, když je pin zaznamenán z vysoké na nízkou úroveň, nízký je, když je pin nízký, a vysoký je, když je pin vysoký.
Celý kód pro Arduino najdete v našem průvodci zde: Kód lineárního aktuátoru Hallova jevu pro Arduino
Kód pohne aktuátorem dopředu nebo dozadu o nastavenou hodnotu, když stisknete tlačítka na pinu 7 nebo 8 (aktivní LOW). Obsahuje také rutinu pro návrat do výchozí polohy. To je důležité, protože pokud budete motor dlouhodobě otáčet tam a zpět, můžete ztratit počítadlo a postupně ztrácet přehled o tom, kde se nacházíte. Rutina pro návrat do výchozí polohy přesune lineární aktuátor zpět do známé polohy, aby se počítadlo mohlo vynulovat.
Aktuátor Raspberry Pi
Jak tedy připojit aktuátor k Raspberry Pi 2, 4 nebo novějšímu modelu? Ovládání lineárního aktuátoru pomocí Raspberry Pi je jednoduché a lze jej provádět přes internet, což umožňuje bezdrátové ovládání. Postupujte podle kroků v následujícím návodu a zjistěte, jak přesně: Řízení lineárních aktuátorů Raspberry Pi.
Raspberry Pi 4 se používá ke spuštění serverového softwaru a přijímání příkazů pro ovládání lineárního aktuátoru. Tato příručka však nevyužívá Hallův senzor. K tomu lze k lineárnímu aktuátoru a Raspberry Pi připojit desku Arduino a bezdrátově odesílat/přijímat data. Ačkoli lze Raspberry Pi použít i přímo ke čtení dat ze senzorů, podobně jako Arduino, může to být zbytečné, pokud ovládáte pouze několik lineárních aktuátorů.
Ovládání více lineárních aktuátorů

Pokud potřebujete ovládat více lineárních aktuátorů pomocí Raspberry Pi nebo Arduina, budete potřebovat několik dalších komponent a bude nutné upravit kód. Dva nebo více lineárních aktuátorů lze synchronizovat sledováním počtu naměřených hodnot Hallova efektoru a pokud se počet naměřených hodnot lineárních aktuátorů příliš vzdálí, každý lineární aktuátor se zpomalí, aby se vyrovnaly polohy.
Kompletní sadu instrukcí si můžete prohlédnout zde: Ovládání více lineárních aktuátorů pomocí mikrokontroléru
Alternativně, pokud synchronizace není součástí vaší zamýšlené aplikace, jednoduše použijte Arduino pro jeden nebo dva akční členy, v závislosti na počtu dostupných pinů přerušení. Pro ovládání více akčních členů můžete buď použít více desek Arduino, nebo si pořídit Arduino shield s více piny přerušení.
Závěr
Pokud jste připraveni na tuto výzvu, existují další metody, které můžete vyzkoušet pomocí Arduina s lineárními aktuátory k řízení pohybu, například pomocí šikovného PID kódu, který si můžete prohlédnout zde: PID řízení lineárního aktuátoru. Hallův senzor uvnitř lineárního aktuátoru, jako je například PA-04-HS, poskytuje další úroveň ovládání, kterou lze snadno nastavit pomocí Arduina nebo Raspberry Pi. Ať už vaše aplikace vyžaduje pouze čtení dat ze senzorů, nebo chcete posunout svůj lineární aktuátor na další úroveň jeho zapojením do internetu, Hallův senzor v kombinaci s mikrokontrolérem dle výběru je tou správnou volbou.
Pokud máte jakékoli dotazy k obsahu tohoto článku nebo si jednoduše přejete prodiskutovat možná řešení produktů, neváhejte kontaktujte nás a rádi vám pomůžeme!