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:

Co je to řídicí systém REX?
Chci vědět více!

Demoverze už mi nestačí!

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.

  1. Úprava hardwarové části je velmi jednoduchá. Stačí pouze připojit tlačítko a ochranný rezistor (R=330Ω) mezi zem (GND) a pin GPIO#22.

    Schéma zapojení tlačítka na breadboardu

  2. 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.
  3. Uložte exec-soubor do oddělené složky buttonlink a pojmenujte ho buttonblink_exec.mdl
  4. Uložte task-soubor do stejné složky a pojmenujte ho buttonblink_task.mdl.
  5. 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.
    Renaming the task in the executive configuration
  6. Pro čtení tlačítka v algoritmu otevřete Knihovnu bloků (View->Block Library) a najděte blok se jménem From.
    The function block named From
  7. Nyní tento blok chyťte a přetáhněte ho do task-souboru.
  8. 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.
    Block properties dialog
  9. 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.
  10. Váš projekt by měl nyní vypadat jako ten na obrázku níže.
    Project files
  11. 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.
  12. 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ů.
  13. 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á.
  14. 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.
  15. Nyní spojte výstup n bloku ISSW s blokem RPI__GPIO25.
  16. 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).
    Project files - final state
  17. 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.
    Block properties dialog - the BIS block
  18. Nyní můžete zkompilovat a nahrát projekt do vašeho Raspberry Pi.
  19. Pravděpodobně budete chtít sledovat algoritmus, zejména blok ISSW. Po nahrání projektu tedy zvolte Watch.
  20. 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í.
  21. Jakmile zmáčknete tlačítko, ISSW blok přepne signály a červená dioda by měla začít blikat s frekvencí 5 Hz.
  22. 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.
  23. 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é:


 

Raspberry Pi je registrovaná obchodní známka Raspberry Pi Foundation.