Moderni reseni

Jak propojit několik desek?

Počínaje verzí 1.10.5 vám program FLProg umožňuje kombinovat několik desek Arduino do kruhové sítě UART. Nejprve se podívejme, jak se to děje. Desky jsou vzájemně spojeny podle schématu na titulní ilustraci. Předpokládejme, že deska 1 odešle datový paket přes UART obsahující identifikátor desky a proměnné a také hodnotu proměnné. Deska 2 tento paket přijme a pokud data z této proměnné nepotřebuje, jednoduše tento paket odešle dále. Pokud v souladu s programem potřebuje kontrolér hodnotu této proměnné, pak se hodnota z paketu zkopíruje do vnitřní proměnné a paket se také pošle dále po kruhu.
Když se tímto způsobem paket, který prošel celým kruhem, vrátí na desku, která jej odeslala, přenos paketu se zastaví.
Data z paketu jsou tedy dostupná jakékoli desce připojené k ringu a iniciátorem odeslání paketu může být i kterákoli z desek.

Schéma zkušební stolice:

  • Arduino č. 1 přijímá data o teplotě a vlhkosti ze senzorů.
  • Arduino #2 zobrazuje teplotu ze senzoru DS18B20.
  • Arduino #3 zobrazuje teplotu a vlhkost ze senzoru DHT-22.
  • Digitální hodnotu teploty ze senzoru DS18B20 zachytí Arduino č. 3, poté převede na řetězec a pošle do ringu. Tento řádek je zachycen Arduino#2 a zobrazen na displeji.
  • Digitální hodnotu teploty ze senzoru DHT-22 zachytí Arduino č. 2, poté převede na řetězec a pošle do ringu. Tento řádek je zachycen Arduino#3 a zobrazen na displeji.
  • Digitální hodnotu vlhkosti ze senzoru DHT-22 zachytí Arduino č. 3, poté převede na řetězec a zobrazí na displeji.

  1. Nejprve vytvoříme novou sběrnici OneWire.
  2. Poté vytvoříme pole. Jelikož plánujeme mít na sběrnici jeden senzor, vytvoříme jedno pole.

Nyní zorganizujeme schéma pro spuštění tohoto bloku jednou na začátku programu. Chcete-li to provést, dejte dohromady následující schéma.

R – Trigger se nachází ve složce Triggers knihovny prvků. Slouží ke zvýraznění náběžné hrany impulsu přivedeného na vstup. Na jeho výstupu dojde k pulsu trvajícímu jeden cyklus programu při přechodu vstupní úrovně z nízké na vysokou.
Poté vytvoříme novou desku a přetáhneme na ni teplotní senzor DS18x2x (knihovna prvků, složka „Sensors“). Vyvolejte editor bloků a parametrizujte snímač.

  1. Z rozevíracího seznamu vyberte dříve vytvořenou sběrnici OneWire na kolíku 4
  2. Vyberte režim nastavení adresy „Array“.
  3. Vyberte dříve vytvořené pole „Sensor“.
  4. Snímač jsme nastavili do režimu periodického dotazování s frekvencí dotazování jednou za 1 sekundu.

Nyní musí být hodnota přijatá ze snímače odeslána do ringu.
V programu FLProg můžete ovladač připojit ke kruhu dvěma způsoby. V tomto projektu pro Arduino č. 1 budeme uvažovat o prvním způsobu – prostřednictvím bloků pro posílání proměnné do ringu.
Vytáhneme blok „Sending a variable to the ring“ (knihovna prvků, složka UART) na desku a zavoláme pro něj editor bloků.

  1. Nejprve do prstenu přidáme ovladač.

    V okně, které se otevře, musíte vybrat port pro připojení k ringu, rychlost portu a zadat název zařízení v ringu. Pro usnadnění práce s projektem je také vhodné vytvořit soubor pro seznam kruhových proměnných, přes který budou synchronizovány všechny regulátory, které se na něm podílejí.
  2. Poté vytvoříme proměnnou, která bude předána prstenu

    V okně vytvoření proměnné musíte zadat název proměnné a její typ.
  3. Poté nastavíme periodický režim odesílání proměnné s periodou 1 sekundy.
Přečtěte si více
Jaká je nejmasovější část králíka?

Po parametrizaci bloku připojíme snímač a vysílací bloky k sobě a na vstupu En vysílacího bloku nastavíme proměnnou konstantu true.

Vytvořte novou desku a přetáhněte na ni senzor DHT-22 (knihovna prvků, složka „Sensors“). Vyvolejte editor bloků a parametrizujte snímač.

  1. Vyberte připojovací kolík snímače
  2. Výběr typu senzoru
  3. Nastavíme přítomnost výstupů teploty a vlhkosti
  4. Nastavili jsme periodickou metodu dotazování senzoru s frekvencí 1 sekundy

Poté přetáhneme dva bloky pro odeslání proměnné do kruhu na třetí desku, vybereme existující kruh v nastavení bloku a v každém z nich vytvoříme proměnnou.

Poté bloky propojíme a nastavíme konstanty pravdivé na En vstupy bloků pro odesílání proměnných.

S projektem pro Arduino#1 jsme skončili. Mělo by to vypadat takto:

Nyní vytváříme nový projekt pro Arduino č. 2.
Okamžitě připojte desku ke kroužku. Zde použijeme druhou metodu, přes strom projektu. Rozbalte strom až do větve „Komunikace“ včetně a klikněte pravým tlačítkem na položku „Rings“. V zobrazené kontextové nabídce vyberte „Přidat vyzvánění“.

Otevře se okno již známých parametrů vyzvánění. Musíme opět zadat název zařízení do prstenu a vybrat port, přes který je zařízení připojeno k prstenu. Nyní ale nevytváříme soubor proměnné ring, ale vybereme dříve vytvořený. Tím se automaticky synchronizují proměnné mezi projekty.

Všechny parametry prstence lze změnit prostřednictvím stromu projektu vyvoláním kontextového menu na odpovídajících větvích.
Podle algoritmu Arduino č. 2 zachytí teplotní proměnnou ze senzoru DHT-22, převede její hodnotu na řetězec a odešle ji do ringu. Chcete-li to provést, přetáhněte blok „Získání proměnné z kruhu“ do diagramu (knihovna prvků, složka „UART“) a zavolejte pro něj editor.

V editoru vyberte prsten a odpovídající proměnnou.
Poté přetáhněte blok „String Conversion“ (knihovna prvků, složka „Type Conversion“) do diagramu a propojte vstup tohoto bloku s výstupem bloku „Getting a variable from the ring“

Poté zavoláme editor pro blok „Konverze řetězce“.

Protože vstupem tohoto bloku je hodnota Float, máme možnost určit počet desetinných míst při převodu na řetězec. Myslím, že nám stačí jedno desetinné místo.
Poté na diagram přetáhneme blok „Sending a variable to ring“ (knihovna prvků, složka UART) a pomocí editoru vybereme ring a vytvoříme novou proměnnou, která bude odeslána do ringu. Nastavili jsme také režim periodického odesílání s periodou 1 sekundy.

Poté bloky k sobě připojíme a na vstupu En bloku vysílání proměnné nastavíme konstantu true.

Vytvoříme novou desku a přetáhneme na ni blok „Getting a variable from the ring“ (knihovna prvků, složka „UART“) a zavoláme pro něj editor. V editoru vyberte připojený prsten. Vzhledem k tomu, že v souladu s algoritmem nám hodnotu k zobrazení na displeji připravuje Arduino č. 3, vytvoříme novou proměnnou, kterou nám tento regulátor zašle.

Nyní přetáhněte blok „Zobrazení na čipu HD44780“ (knihovna prvků, složka „Zobrazení“) do diagramu, zavolejte pro něj editor a parametrizujte jej.

  1. Vytvoříme nový displej
  2. Nastavíme zapojení podle schématu
  3. Nastavíme parametry zobrazení
  4. Nakonfigurujeme zobrazení dat ze vstupu bloku
  5. Nastavíme displej tak, aby byl vycentrován na první řádek
Přečtěte si více
Jaká by měla být půda pro okurky?

Poté bloky propojíme a na vstupu En zobrazovacího bloku nastavíme konstantu true.

S projektem pro Arduino#2 jsme skončili. Mělo by to vypadat takto:

Vytváříme projekt pro Arduino č. 3.
Ovladač připojíme ke kroužku některým z výše uvedených způsobů. Při připojování vyberte dříve vytvořený soubor proměnné kruhu.

Podle algoritmu regulátor Arduino č. 3 zachytí hodnotu teploty ze senzoru DS18B20 z Arduina č. 1 a převede ji na řetězec a tento řetězec odešle do ringu pro Arduino č. 2. K tomu již máme všechny potřebné proměnné. Proto podobně jako Arduino č. 2. přetáhněte bloky „Příjem proměnné z kruhu“ (knihovna prvků, složka „UART“), „Převod řetězců“ (knihovna prvků, složka „Konverze typu“) a blok „Odeslání proměnné do kruhu“ (knihovna prvků, složka UART) do diagramu. Poté je parametrizujeme.
“Získání proměnné z prstenu”

“Odeslání proměnné do ringu”

Poté je shromáždíme do diagramu

Vytvoříme novou desku pro zobrazení teploty ze senzoru DHT-22. Podobně, podobně jako u Arduina č. 2, přetáhněte „Getting a variable from the ring“ (knihovna prvků, složka „UART“) a „Zobrazení na čipu HD44780“ (knihovna prvků, složka „Zobrazení“). Pojďme je parametrizovat.
“Získání proměnné z prstenu”

“Zobrazení na čipu HD44780”

Spojujeme se navzájem.

Vytvořte novou desku pro zobrazení vlhkosti.
Blok „Getting a variable from the ring“ také přetáhneme na desku (knihovna prvků, složka „UART“) a parametrizujeme jej.

Poté přetáhneme blok „String Conversion“ (knihovna prvků, složka „Type Conversion“), připojíme jej k bloku „Getting a variable from a ring“ a naparametrujeme jej.

Nakonec přetáhněte blok „Zobrazení na čipu HD44780“ (knihovna prvků, složka „Zobrazení“). Při parametrizaci bloku vyberte existující displej a zobrazte hodnotu vlhkosti uprostřed druhého řádku.

Bloky spojíme dohromady.

Tvorba programu pro Arduino č. 3 je hotová.
Konečný výsledek.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button