Raspberry Pi jako PLC - přidáváme tlačítko
Toto je návod pro zastaralou verzi systému REX. Pro seznámení s aktuální verzí postupujte podle příruček "Začínáme se systémem REXYGEN" uvedených níže:
V prvním návodu, který se zabýval použitím Raspberry Pi jako PLC, byl ukázán proces kompilace, nahrávání a monitorování řídicího algoritmu pomocí nástrojů systému REX.
Tento návod na něj plynule navazuje a rozšiřuje připojený hardware o jednoduché tlačítko. Toto tlačítko bude ovládat červenou LED diodu, která bude blikat jedině v případě, že bude tlačítko stisknuto, jinak bude ve svém výchozím nastavení. Budeme tedy potřebovat také úpravy v algoritmu.
- Úprava hardwarové části je velmi jednoduchá. Stačí pouze připojit tlačítko a ochranný rezistor (R=330Ω) mezi zem (GND) a pin GPIO#22.
- Softwarovou část je potřeba rozšířit o čtení stavu tlačítka. Začněte se soubory z předchozího návodu a otevřete je v RexDraw. Při otevření souboru blink_exec.mdl se automaticky otevře i soubor blink_task.mdl.
- Uložte exec-soubor do oddělené složky buttonlink a pojmenujte ho buttonblink_exec.mdl
- Uložte task-soubor do stejné složky a pojmenujte ho buttonblink_task.mdl.
- V exec-souboru proveďte dvojklik na blok jménem blink_task a přejmenujte ho na buttonlink_task.mdl. Tímto krokem jste provázali exekutivu systému REX s taskem.
- Pro čtení tlačítka v algoritmu otevřete Knihovnu bloků (View->Block Library) a najděte blok se jménem From.
- Nyní tento blok chyťte a přetáhněte ho do task-souboru.
- V task-souboru proveďte dvojklik na blok From a zadejte RPI__GPIO22U do parametru Goto tag. Tím jste řekli ovladači Raspberry Pi, aby četl data z pinu GPIO#22. Koncové písmeno U zapojí interní pull-up rezistor pinu, aby se předešlo neočekávaným stavům, když tlačítko není stisknuto.
- Přepněte se na panel Colors a vyberte barvu pozadí bloku From. Je dobrým zvykem barevně označovat fyzické vstupy a výstupy.
- Váš projekt by měl nyní vypadat jako ten na obrázku níže.
- Nyní smažte propojení mezi blokem BIS_BLINK_RED a výstupním GPIO pinem 25. Smazání provedete kliknutím levým tlačítkem na blok RPI__GPIO25 a stisknutím klávesy Delete na vaší klávesnici.
- Budeme přepínat mezi výchozím stavem a blikáním červené LED, proto z knihovny přidáme blok ISSW. Tento blok realizuje jednoduché přepínání celočíselných a logických signálů.
- Dále musíme definovat výchozí stav červené LED. Přidáme tedy logickou konstantu (CNB blok) a přejmenujeme ji na CNB_RED_DEFAULT. Také odškrtneme její YCN parametr, aby byla dioda ve výchozím stavu vypnutá.
- Signál z tlačítka bude přepínat signál posílaný na GPIO#25, a tudíž propojte From blok RPI__GPIO22U se vstupem SW bloku ISSW.
- Nyní spojte výstup n bloku ISSW s blokem RPI__GPIO25.
- Když bude tlačítko zmáčknuto, GPIO pin bude ve stavu „vypnuto“ a vstupní hodnota bude 0. Pokud se tlačítko uvolní, pin bude ve stavu „zapnuto“ a vstup bude 1. Z toho důvodu propojte výstup Y bloku BIS se vstupem i1 bloku ISSW (je aktivní, když SW=0). Blok CNB_RED_DEFAULT připojte k vstupu i2 (je aktivní, když SW=1).
- Poslední změna software upravuje sekvenci blikání červené diody. Proveďte dvojklik na blok BIS_BLINK_RED a změňte parametry: t2=0.1, t3=0.2 a t4=0. Tím jsme definovali binární signál s frekvencí 5 Hz.
- Nyní můžete zkompilovat a nahrát projekt do vašeho Raspberry Pi.
- Pravděpodobně budete chtít sledovat algoritmus, zejména blok ISSW. Po nahrání projektu tedy zvolte Watch.
- Po nahrání algoritmu by měla zelená LED svítit, žlutá dioda by měla každé 2 sekundy blikat a červená být neaktivní.
- Jakmile zmáčknete tlačítko, ISSW blok přepne signály a červená dioda by měla začít blikat s frekvencí 5 Hz.
- Nyní je možné hrát si s parametry jednotlivých bloků a navrhnout si například vlastní sekvence blikání. Parametry lze měnit buď v online módu, nebo je lze změnit ve zdrojových výkresech projektu a ten poté opět zkompilovat a nahrát do Raspberry Pi. Pamatujte, že výchozí parametry, které budou použity po restartování Raspberry Pi, jsou parametry, které jsou použity při kompilaci projektu.
- Při změně sekvence blikání mějte na paměti vzorkovací periodu algoritmu, která v tomto příkladu činí 20 ms (je definována pomocí parametrů tick a ntick0 v bloku EXEC). Dokud nezměníte nastavení bloku EXEC, nemůžete generovat pulzy kratší než 20 ms.
K čemu je to dobré v reálném světě?
Ovládáním GPIO pinů vašeho Raspberry můžete přepínat relé, která mohou spínat světla, čerpadla, ventilátory, přímotopy, chlazení atd. Zpracování signálů z tlačítek vám umožňuje vytvářet jednoduchá rozhraní pro uživatele. Další návod se zaměřuje na automatizaci domácího bazénu, kde hned uvidíte, jak využít to, co jste se zatím naučili.
Řešení problémů
Zasekli jste se v některém bodě? Chceme o tom vědět, určitě nám napište.
Další informace
Můžete také:
- Stáhnout soubory projektu ze serveru GitHub. Můžete si stáhnout pouze soubory buttonblink_exec.mdl a buttonblink_task.mdl, nicméně doporučujeme stažení celého repozitáře příkladů ve formě standardního .zip archivu. Po rozbalení naleznete soubory ve složce RaspberryPi_examples\02_ButtonBlink. Pokud znáte systém Git a server GitHub, pravděpodobně využijete přímý odkaz na repozitář příkladů systému REX.
- Prostudovat naši příručku Začínáme se systémem REX na Raspberry Pi a pustit si Getting started video, které společně popisují jednoduchou PID regulační smyčku.
- Prozkoumat bohatou knihovnu funkčních bloků řídicího systému REX.
- Navštívit stránku nadace Raspberry Pi, kde se dozvíte více informací o minipočítači Raspberry Pi.
Raspberry Pi je registrovaná obchodní známka Raspberry Pi Foundation.
aktualizováno: 17. 5. 2019