Robotika - praktické příklady
| Stránky: | Moodle ZČU |
| Kurz: | KPV/PPVS Počítačová podpora ve strojírenství - šablona |
| Kniha: | Robotika - praktické příklady |
| Vytiskl(a): | Nepřihlášený host |
| Datum: | pondělí, 9. listopadu 2026, 00.03 |
Popis
Základní cvičení obsahující popis zapojení modelů, popis požadované funkconality modelů, videa zachycující práci modelů a postup tvorby programů pro jejich oživení.
Obsah
- 1. Větráček - základní podrobné cvičení
- 2. Předělání větráčku na model větrné elektrárny
- 3. Vysoušeč rukou - princip světelné brány
- 4. Manuálně ovládaný pojezd
- 5. Pojezd mezi pevně danými body
- 6. Systém pro průběžné měření teploty se záznamem dat do souboru
- 7. Počítání otáček obyčejného motoru
- 8. Jednoduchý obráběcí stůl s pevným natáčením
- 9. Synchronizovaní ukazatelé
- 10. Logický motor
- 11. Matematika
- 12. Větráček II– návrat k základům a jejich rozšíření
- 13. Kontrolor barvy
- 14. Pneumatika
- 15. Alarm
- 16. Vyhodnocení barvy
- 17. Vyhledávání objektu
1. Větráček - základní podrobné cvičení
Větráček je velmi jednoduché zařízení s jedním spínačem a motorem, který otáčí vrtulí. Pro sestavení tedy potřebujeme právě tyto dvě komponenty a řídící jednotku. Kromě základního zapojení si ukážeme i nastavení komunikace mezi počítačem a řídící jednotkou, otestování komponent (bez potřeby software), vytvoření jednoduchého programu a jeho spuštění na modelu větráčku.
1.1. Větráček - zapojení komponent
Zapojení je v tomto případě triviální, na vstup I1 je přiveden spínač, na výstup M1 je přivedený motor větráčku, viz následující obrázek.

Obr. 1: Větřáček - zapojení komponent
1.2. Nastavení způsobu komunikace mezi počítačem a řídící jednotkou
Při propojení řídící jednotky s počítačem a jejím zapnutí je vhodné zkontrolovat, že je nastaven správný způsob komunikace:
- V horní liště musí být ikona TXTTX (vždy tam bude ikona TXTTX, nebo ROBOIF). Pokud je zobrazena ikona ROBOIF, je potřeba kliknutím na ni se přepnout na TXTTX. Toto je nastavení správné řídící jednotky, kterou využíváme my.
- Následně pomocí ikony COM/USB se rozklikne seznam způsobů propojení – zde musíme mít zvolený požadovaný způsob (v našem případě USB/WLAN/Bluetooth a Interface ROBO TXT Controller (opět námi používaná řídící jednotka). Po potvrzení je pak potřeba ještě zvolit, zda komunikace bude probíhat přes USB, WLAN, nebo Bluetooth. V našem případě používáme USB.

Obr. 1: Nastavení způsobu komunikace mezi počítačem a řídící jednotkou
1.3. Otestování funkčnosti komunikace a komponent
Na tomto případě si ukážeme i jak lze otestovat, že propojení PC – řídící jednotka je funkční a zda komponenty jsou funkční a zapojeny takovým způsobem, aby mohly fungovat. Pro otestování není potřeba vytvářet jakýkoliv program. Okno kontroly je přístupné přes ikonu Test interface v horní liště, hned vedle ikony COM/USB. V otevřeném okně je možné si otestovat jakýkoliv vstup/výstup. Protože my používáme vstup I1 pro tlačítko a výstup M1 pro motor, tak test vypadá následovně:
- Pokud je vše v pořádku, tak při stisknutí tlačítka na modelu se na vstupu I1 v okně testu interface přepíná hodnota z 0 na 1.
- Pokud je vše v pořádku, tak u výstupu M1 si můžeme manuálně zapnout motor modelu v libovolném směru a libovolné intenzitě.
- Vizuálně si lze zkontrolovat, jestli zvolený způsob komunikace je aktivní.

Obr. 1: Otestování komunikace s modelem a funkčnosti komponent
Stejným způsobem by se testovaly i další zapojené komponenty a lze tak otestovat vše, co je k řídící jednotce připojeno.
1.4. Program pro řízení větřáčku
Cílem cvičení je oživit model takovým způsobem, aby po stisknutí tlačítka se větráček roztočil na maximální možnou rychlost, běžel 5 vteřin a po této době se vypl a čekal na další stisknutí tlačítka. Program tedy může vypadat např. následovně:

Obr. 1: Větráček - řídící program
Tabulka 1: Větráček - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
![]()
|
1x |
Program elements – Basic elements |
- |
- |
|
Wait for input |
![]()
|
1x |
I1 |
- |
|
|
Motor output |
![]()
|
2x |
M1 |
1x start, 1x stop |
|
|
Time delay |
![]()
|
2x |
- |
- |
Ukázka nastavení jednotlivých elementů
Wait for input
Jedná se o element ze sekce Basic elements. Tímto elementem říkáme, že čekáme na stisknutí tlačítka přivedeného na I1. Po jeho stisknutí proběhne následující sekvence.

Obr. 2: Větráček - nastavení elementu Wait for input
Motor output
Jedná se o element ze sekce Basic elements. Tímto elementem říkáme, že spustíme motor na výstupu M1 na nejvyšší rychlost 8.

Obr. 3: Větráček -nastavení elementu Motor output
Time delay
Jedná se o element ze sekce Basic elements, ale najdete jej i v sekci Branch, wait… - je to jeden a ten samý element. Tímto elementem říkáme, že následující element provede svou práci až po uběhnutí nastaveného času. V tomto případě motor poběží 5s a až poté se provede jeho zastavení vhodným elementem.

Obr. 4: Větráček - nastavení elementu Time delay
Motor output II
Jedná se o element ze sekce Basic elements. Tímto elementem říkáme, že zastavujeme motor.

Obr. 5: Větráček - nastavení elementu Motor output II
Time delay II
Jedná se o element ze sekce Basic elements, ale najdete jej i v sekci Branch, wait… - je to jeden a ten samý element. Tímto elementem říkáme, že následující element provede svou práci až po uběhnutí nastaveného času. V tomto případě motor necháváme motoru čas 1s na doběhnutí. Tedy 1s bude trvat, než program dovolí zaregistrovat další stisknutí tlačítka a znovuspuštění celého cyklu. Je to jen proto, abychom zajistili, že motor bude mít dost času na doběhnutí a uklidnění.

Obr. 6: Větráček - nastavení elementu Time delay II
1.5. Zkompilování programu a nahrání do řídící jednotky
Když je hotový program, aktivní připojení k řídící jednotce a připojený model, stačí přes zelené tlačítko (Start program in online mode) nechat program zkompilovat a nahrát do řídící jednotky. Zastavení programu se provede červeným tlačítkem (Stop all running programs). Toto platí pro online komunikaci. Pokud je chtěno nahrát program do řídící jednotky, aby byl použitelný i po odpojení PC od jednotky, je potřeba použít zelené tlačítko Download.
Když se program zkompiluje a nahraje (v tomto případě v online modu), zobrazí se na displeji řídící jednotky informace, že je nahraný online program, tedy nápis ONLINE a program lze využít, tedy stisknout tlačítko a nechat se chladit.

Obr. 1: Obrazovka řídící jednotky - program je zkompilován a nahrán do řídící jednotky
Pokud je program spuštěný v online modu, je možné sledovat na monitoru počítače, v které fázi programu se zrovna model nachází. Právě probíhající část programu je vždy zvýrazněna červeně, viz následující obrázek. Také je dobré si všimnout, že když je program aktivní, zmizí rastr pracovní plochy a je to tedy na první pohled poznat.

Obr. 2: Puštěný program na modelu v online modu - zrovna probíhá 5s běhu větráčku
2. Předělání větráčku na model větrné elektrárny
V tomto cvičení předěláme větráček na model větrné elektrárny. Ukážeme si, jak se při tom pracuje s optickými moduly, tedy žárovkou/led a světelným senzorem. V programování si ukážeme jak se program větví. Pro sestavení modelu je potřeba motor, světelný senzor a žárovka. Velkoryse přejdeme, že elektromotor otáčí vrtulí, a ne vrtule elektromotorem – je to jen model.
2.1. Větrná elektrárna - zapojení komponent
Zapojení komponent je následující, viz obrázek. Na vstup I1 je přivedený světelný senzor, na výstup M1 je přivedený motor s vrtulí a na výstup M2 je přivedené světlo (s červenou krytkou).

Obr. 1: Větrná elektrárna - zapojení komponent
2.2. Větrná elektrárna - řídící program
Jak chceme, aby se větrná elektrárna chovala…
- V noci bude svítit červené světlo, aby nám do ní nenarážela letadla. Vrtule bude v klidu, nechceme budit blízko bydlící občany.
- Ve dne budeme šetřit světlo, letadla uvidí větrnou elektrárnu i bez něj, a vrtule se může točit.
- Toto chování chceme mít uzavřené v cyklu, aby se vše spouštělo a vypínalo automaticky a my se o větrnou elektrárnu nemuseli denně starat.
Možnost, jak může vypadat program je na následujícím obrázku. Ze stejných součástek by šel vytvořit např. i sušák rukou, kdy by světelný senzor vyhodnocoval, jestli vidí světlo ze žárovky, nebo nevidí – tedy jsou mezi ním a žárovkou vloženy ruce a má se spustit jejich sušení.

Obr. 2: Větrná elektrárna - řídící program
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Větrná elektrárna - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
![]()
|
1x |
Program elements – Basic elements |
- |
- |
|
Wait for input |
![]()
|
1x |
I1 |
Nastaveno pro fototranzistor |
|
|
Digital Branch |
![]()
|
1x |
I1 |
Nastaveno pro fototranzistor |
|
|
Lamp output |
![]()
|
2x |
O3 |
1x on, 1x off |
|
|
Motor output |
![]()
|
2x |
M1 |
1x start, 1x stop |
3. Vysoušeč rukou - princip světelné brány
V tomto cvičení využijeme části předchozích cvičení. Úkolem je vytvořit vysoušeč rukou, tedy zařízení, kde je světelná brána rozhodující o spuštění/nespuštění ventilátoru. Na cvičení se v tomto případě pouze lehce modifikuje model využitý v předchozím cvičení.
Celé toto cvičení by mělo být samostatné. Studenti by měli vědět vše potřebné z předchozích cvičení.
3.1. Vysoušeč rukou - zapojení komponent
Zapojení komponent je následující, viz obrázek. Na vstup I1 je přivedený fototranzistor (světelný senzor), na výstup M1 je přivedený motor s vrtulí a na výstup O3/O4 je přivedené světlo, v tomto případě LED.

Obr. 1: Vysoušeč rukou - zapojení komponent
3.2. Vysoušeč rukou - řídící program
Jak chceme, aby se vysoušeč choval…
- Pokud není mezi LED komponentou a fototranzistorem překážka, tak je vysoušeč v klidu
- Pokud se mezi LED komponentu a fototranzistor vloží překážka (ruce), vysoušeč se na 3 sekundy spustí a bude vysoušet ruce.
- Program bude v cyklu, tedy kdykoliv se vloží překážka mezi LED a fototranzistor, tak se vysoušeč opětovně zapne.

Obr. 1: Vysoušeč rukou - řídící program se světelnou bránou
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Vysoušeč rukou - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements – Basic elements |
- |
- |
|
Lamp output |
|
1x |
O3 |
- |
|
|
Digital Branch |
![]()
|
1x |
I1 |
Nastaveno na fototranzistor |
|
|
Time delay |
|
1x |
- |
- |
|
|
Motor output |
|
2x |
M1 |
- |
4. Manuálně ovládaný pojezd
V tomto cvičení si zopakujeme vyhodnocování podmínek (větvení programu). Cílem je mít manuálně ovládaný pojezd. Model se skládá ze dvou tlačítek a motoru. Motor je spojen s převodovkou, která přenáší otáčky na výstupu elektromotoru na ozubené kolečko, které je v kontaktu s ozubeným pásem pevně spojeným s nosníkem.
4.1. Manuálně ovládaný pojezd - zapojení komponent
Zapojení komponent je následující, viz obrázek. Na vstupy I1 a I2 jsou přivedeny spínače, na výstup M1 je přivedený motor zajišťující posuv pojezdu.

Obr. 1: Manuálně ovládaný pojezd - zapojení modelu
4.2. Manuálně ovládaný pojezd - ovládací program
Jak chceme, aby se pojezd choval…
- Při stisknutí levého tlačítka se pojezd bude pohybovat doleva.
- Při stisknutí pravého tlačítka se pojezd bude pohybovat doprava.
- Při držení tlačítka se pojezd bude pohybovat bez přerušení po dobu držení tlačítka.
- Program bude v cyklu, tedy kdykoliv stisknu jakékoliv tlačítko, tak se pojezd bude pohybovat odpovídajícím směrem.
Zde je dobré upozornit na drobnou „vychytralost“. Pokud se
má pojezd pohybovat po celou dobu držení tlačítka, pomůžeme si nastavením malé
hodnoty na dobu běhu motoru. Čím menší doba běhu motoru bude, tím rychleji bude
pojezd reagovat na stisknutí/nestisknutí tlačítka. Možnost, jak může vypadat
program je na následujícím obrázku.

Obr. 1: Manuálně ovládaný pojezd - řídící program
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Manuálně ovládaný pojezd - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements – Basic elements |
- |
- |
|
Digital Branch |
![]()
|
2x |
I1, I2 |
Pozor, 1x jsou v programu prohozeny výstupy |
|
|
Time delay |
|
2x |
- |
- |
|
|
Motor output |
|
4x |
M1 |
- |
5. Pojezd mezi pevně danými body
V tomto cvičení jednoduše modifikujeme předchozí model. Zde se naučíme vytvářet pro program a model ovládací panel, vytvářet a využívat podprogramy[1], pracovat s elementy typu Command, Panel displayem, rozhodováním na základě podmínky a zopakujeme vyhodnocování podmínek (větvení programu), využijeme spínače jako skutečné koncové spínače. Cílem je mít pojezd, který po stisknutí tlačítka na ovládacím panelu (softwarové tlačítko) přesune pojezd na požadovanou pozici. Model se skládá ze dvou tlačítek a motoru. Motor je spojen s převodovkou, která přenáší otáčky na výstupu elektromotoru na ozubené kolečko, které je v kontaktu s ozubeným pásem pevně spojeným s nosníkem.
5.1. Pojezd mezi pevně danými body - zapojení komponent
Zapojení komponent je následující, viz obrázek. Na vstupy I1 a I2 jsou přivedeny koncové spínače (I1 spínač vlevo, I2 spínač vpravo), na výstup M1 je přivedený motor zajišťující posuv pojezdu.

Obr. 1: Pojezd mezi pevně danými body - zapojení komponent, pohled shora

Obr. 2: Pojezd mezi pevně danými body - zapojení komponent, pohled zepředu
5.2. Pojezd mezi pevně danými body - řídící program
Jak chceme, aby se pojezd choval…
- K ovládání chceme používat ovládací panel.
- Při stisknutí vhodného softwarového tlačítka na ovládacím panelu se pojezd přesune ke koncovému spínači doleva.
- Při stisknutí vhodného softwarového tlačítka na ovládacím panelu se pojezd přesune ke koncovému spínači doprava.
- Program bude v cyklu, tedy kdykoliv stisknu jakékoliv softwarové tlačítko, tak se pojezd bude pohybovat odpovídajícím směrem a přesune se na požadované místo.
- Na ovládacím panelu bude informace o tom, v které z koncových poloh se zrovna pojezd nachází.
V tomto případě už je program trochu komplikovanější. Bude potřeba vytvořit 2 podprogramy. Jeden pro pohybování vozíku, druhý pro hlídání lokace. Hlavní program bude využívat oba podprogramy a bude mít naprogramovaný ovládací panel. Možnost, jak může program a podprogramy vypadat jsou na následujících obrázcích. Funkční pojezd je na videu Pojezd mezi pevně danými body.
Je potřeba si uvědomit, že nejprve je vhodné vytvořit v hlavním programu GUI (minimálně 2x tlačítko pro pohyb v požadovaných směrech a 1x Text display pro zobrazení dosahnuté polohy), poté vytvořit podprogramy a až nakonec tělo hlavního programu.
Ovládací panel
V hlavním programu na kartě Panel je potřeba vytvořit GUI ovládacího panelu. Přehled použitých elementů pro GUI je součástí přehledu použitých elementů pro hlavní program.

Obr. 1: Ovládací panel - takto může vypadat

Obr. 2: Nastavení Text displaye
Tabulka 1: Pojezd mezi pevně danými body - program - přehled použitých elementů pro GUI
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Text display |
|
1x |
Operating elements - Displays |
- |
Zobrazení polohy pojezdu. Text display je vytvořen na záložce Panel. |
|
Button |
|
2x |
Operating elements – Control elements |
- |
Pro vyslání pojezdu do požadované polohy. Tlačítka
jsou vytvořena na záložce Panel. Je vhodné je rozumně pojmenovat, např. „vpravo“, „vlevo“, postup stejný jako u Text display. |
Podprogram lokace pojezdu

Obr. 3: Podporogram lokace pojezdu
Přehled použitých elementů je v následující tabulce.
Tabulka 2: Pojezd mezi pevně danými body - podprogram lokace pojezdu - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Subprogram Entry |
![]()
|
1x |
Program elements – Subprogram I/O |
- |
- |
|
Subprogram Exit |
![]()
|
1x |
- |
- |
|
|
Digital Branch |
![]()
|
2x |
Program elements – Basics elements |
I1, I2 |
- |
|
Assignment |
![]()
|
2x |
Program elements - Commands |
- |
- |
|
Panel display |
|
1x |
Program elements – Inputs, outputs |
- |
Přes
pravé tlačítko myši se propojí na Text display „position“ |

Obr. 4: Ukázka nastavení přiřazení (element Assignment) - po stisku spínače
Podprogram pohybu pojezdu


Obr. 6: Podprogram pro pohyb pojezdu - detail vstupu paramterů z hlavního programdu do podprogramu
Přehled použitých elementů je v následující tabulce.
Tabulka 3: Pojezd mezi pevně danými body - podprogram pohybu pojezdu - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Subprogram Entry |
|
1x |
Program elements – Subprogram I/O |
- |
- |
|
Motor output |
|
4x |
Program elements – Basic elements |
M1 |
- |
|
Digital Branch |
|
4x |
I1, I2 |
- |
|
|
Analog branch with input |
|
2x |
Program elements – Branch, wait… |
|
Input
value nastaveno na = 1 (čekáme na stisknutí) |
|
Panel Input |
|
2x |
Program elements – Inputs, Outputs |
- |
1x se
propojí na tlačítko „vlevo“, 1x se propojí na tlačítko „vpravo“. Provede se
přes pravé tlačítko myši na elementu. |
Vytvoření těla hlavního programu
V tuto chvíli máme vytvořený ovládací panel pro ovládaní (v hlavním programu) a 2 podprogramy. Poslední krok je podprogramy použít v těle hlavního programu, viz obr.:

Obr. 7: Hlavní program s využítím podprogramů
Přehled použitých elementů je v následující tabulce.
Tabulka 4: Pojezd mezi pevně danými body - program - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements Basics elements |
- |
- |
|
Subprogram Lokace pojezdu |
![]()
|
1x |
Loaded Programs Pojezd mezi pevně danými body |
- |
Podprogramy se nabízí v Loaded programs až po jejich vytvoření! |
|
Subprogram Pohyb pojezdu |
![]()
|
1x |
- |
6. Systém pro průběžné měření teploty se záznamem dat do souboru
V tomto cvičení se naučíme odečítat hodnoty z NTC odporu, který je využitelný pro měření teplot, omezit počet cyklů na požadovanou hodnotu, použít proměnou a pracovat se soubory, konkrétně zapisovat hodnoty do CSV souboru.
CSV soubor
Prakticky se jedná o textový dokument, kde jsou uložena tabulková data do řádků a sloupců (obdoba excelu). Jednotlivé záznamy jsou odděleny speciálním znakem. V naší oblasti se nejčastěji používá znak středníku, ale existují systémy, které používají jako oddělující znak např. tabulátor, čárku, uvozovky apod. Tento soubor se využívá jak pro ukládání, tak načítání dat. Díky jasné struktuře se poměrně jednoduše data programově zpracovávají. S CSV souborem lze pracovat v jakémkoliv textovém editoru (Notepad, Notepad++, PSPad, …), tabulkových procesorech (MS Excel, LO/OO Calc, …), ale i specializovaných programech např. pro skladování, apod.
6.1. Systém pro průběžné měření teploty - zapojení komponent
Pro odečítání hodnot potřebujeme NTC rezistor (princip viz kapitola NTC rezistor), dále využijeme některou ze světelných komponent (je jedno, zda žárovku, nebo LED) a spínač. Více není potřeba. NTC rezistor lze zapojit přímo na řídící jednotku, nebo na vyvedené dráty mimo ni.
Zapojení realizujeme takto: na vstup I1 přivedeme NTC rezistor, na výstup O1/O2 přivedeme světelnou komponentu a na vstup I7 přivedeme spínač viz následující obrázek.

Obr. 1: Systém pro měření teploty - zapojení komponent
6.2. Systém pro průběžné měření teploty – řídící program
Jak chceme, aby se náš systém choval…
- Z NTC odporu budeme každých 5 sekund odečítat hodnotu, v rámci programu 5x.
- Hodnotu budeme zapisovat do CSV souboru včetně pořadí odečtu.
- Cyklus 5ti odečtení teploty a vytvoření CSV souboru s odečtenými údaji se provede po stisknutí tlačítka do souboru na ploše PC.
- To že program běží bude indikováno vhodnou svítící komponentou.
Program může vypadat např. takto, viz obr. Při měření můžete přiložit prsty na odpor a tím jej zahřát – v měření se to projeví jako pokles odečítané hodnoty (viz princip viz kapitola NTC rezistor).

Obr. 1: Systém pro měření teploty - řídící program
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Systém pro měření teploty - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements – Basics elements |
- |
Paralelně běží 2 funkce |
|
End |
![]()
|
1x |
- |
- |
|
|
Time delay |
|
1x |
- |
Měření každých 5 sekund |
|
|
Motor output |
|
2x |
M1 |
V nastavení přepnuto na světelný element. Kontrolka signalizuje probíhající měření |
|
|
Digital Branch |
![]()
|
1x |
I7 |
Měření se spustí tlačítkem na vstupu I7 |
|
|
Counter Loop |
![]()
|
1x |
- |
Počítání měření – provádíme jich 5 s rozestupy 5 sekund |
|
|
Variable |
![]()
|
3x |
Program elements – Variables, timers… |
- |
Do proměnné varCas si ukládáme vždy proběhlých 5 sekund |
|
List |
![]()
|
2x |
- |
Vytvoření .CSV souboru se sloupečky Cas a Teplota |
|
|
Append value |
![]()
|
2x |
Program elements - Commands |
- |
Přidávání hodnot do listu. V našem případě do .CSV souboru |
|
Assignment |
|
2x |
- |
Na začátku nastavujeme proměnné varCas hodnotu 0, poté vždy přičítáme +5 sekund |
|
|
Universal Input |
![]()
|
1x |
Program elements – Inputs, Outputs |
I1 |
Odečítání hodnot z NTC rezistoru. Lze vložit
přímo předdefinovaný Universal input pro NTC rezistor, nebo vložit jakýkoliv Universal input a ve vlastnostech přepnout na NTC rezistor |
Nastavení zápisu dat do CSV souboru (element list) provedeme tak, aby se hodnoty zapisovaly do soboru nazvaného mereni_teploty, který bude vytvořený na ploše. Tento soubor neexistuje, řídící program si jej založí a naměřenými hodnotami jej naplní. Do sloupečku A budeme zapisovat čas měření, do sloupečku B naměřenou hodnotu. Nastavení zápisu dat do elementu List viz následující obrázky.

Obr. 2: Nastavení elementu List pro zápis proměnné Cas do CSV souboru

Obr. 3: Nastavení elementu List pro zápis teploty do CSV souboru
7. Počítání otáček obyčejného motoru
V tomto cvičení si ukážeme, jak počítat otáčky u nekrokových motorů, v případě naší stavebnice tedy motorů Mini a XS pomocí koncového spínače. V nástroji pro programování musíme tedy najít takový element, který dokáže „počítat“ pulzy (spojení/rozpojení) koncového spínače.
7.1. Počítání otáček obyčejného motoru – zapojení komponent
Zapojení komponent je následující, viz obrázky. Na vstupy I1 a I2 jsou přivedeny koncové spínače. I1 spínač pro spuštění programu, I2 spínač počítající pulzy – tedy otáčky motoru. Na výstup M1 je přivedený motor napojený na malou převodovku, u které chceme počítat otáčky na výstupu. Na výstupu je pak nasazena korunka, která spíná/rozpíná koncový spínač, ze kterého pulzy odečítáme.
Korunka má 4 „zuby“, při jejím otočení o 360° to je tedy celkem 8 pulzů. 4 pulzy jsou sepnutí, 4 pulzy rozepnutí. Otočení výstupu převodovky o 360° se tedy sestává z těchto pulzů:
Sepnutí-Rozepnutí-Sepnutí-Rozepnutí-Sepnutí-Rozepnutí-Sepnutí-Rozepnutí.

Obr. 1: Počítání otáček obyčejného motoru - zapojení komponent

Obr. 2: Počítání otáček obyčejného motoru - detail zapojení komponent
7.2. Počítání otáček obyčejného motoru – řídící program
Jak chceme, aby se motor s převodovkou choval…
- Při stisknutí spouštěcího tlačítka se výstup převodovky otočí o 360°
- Program bude v cyklu, tedy kdykoliv stisknu spouštěcí tlačítko, tak se provede otočení výstupu převodovky o 360°

Obr. 1: Počítání otáček obyčejného motoru - řídící program
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Počítání otáček obyčejného motoru - přehled použitých komponent
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements – Basic elements |
- |
- |
|
Wait for input |
|
1x |
I1 |
Nastaveno čekání na hodnotu „1“ |
|
|
Pulse counter |
![]()
|
1x |
I2 |
- |
|
|
Motor output |
|
2x |
M1 |
- |
8. Jednoduchý obráběcí stůl s pevným natáčením
V tomto cvičení se naučíme řídit krokový motor, který lze využít všude, kde je potřeba buď přesně krokovat pohyb, nebo pohyb více motorů přesně synchronizovat.
8.1. Jednoduchý obráběcí stůl – zapojení komponent
Zapojení komponent je následující, viz obrázek. Na vstupy I1 a I2 jsou přivedeny koncové spínače. I1 spínač pro spuštění otáčení stolu ve směru hodinových ručiček, I2 spínač pro spuštění otáčení stolu proti směru hodinových ručiček. Na výstup M1 je přivedený krokový motor a na C1 a 9 V+ pak krokovací mechanismus motoru, který jej umožňuje přesně řídit.

Obr. 1: Jednoduchý obráběcí stůl - zapojení komponent, pohled shora

Obr. 2: Jednoduchý obráběcí stůl - zapojení komponent, pohled zepředu
8.2. Jednoduchý obráběcí stůl – řídící program
Jak chceme, aby se obráběcí stůl choval…
- Při stisknutí spouštěcího tlačítka I1 se stůl otočí o nadefinovaný údaj ve směru hodinových ručiček.
- Při stisknutí spouštěcího tlačítka I2 se stůl otočí o nadefinovaný údaj proti směru hodinových ručiček.

Obr. 1: Jednoduchý obráběcí stůl - řídící program
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Jednoduchý obráběcí stůl - přehled použitých komponent
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements – Basic elements |
- |
- |
|
Digital Branch |
|
2x |
I1, I2 |
- |
|
|
Encoder motor |
|
2x |
M1 |
1x otáčí ve směru a 1x proti směru hodinových ručiček |
V detailu elementu pro krokový motor, viz následující obrázek, lze vyčíst, co vše nám krokový motor umožňuje. Nejdůležitější informace pro nás je směr otáček a rychlost otáček (stejně jako u mini motoru a XS motoru), ale navíc můžeme navolit údaje Distance a zadat „vzdálenost“, kterou má motor uběhnout, nebo jej synchronizovat s jiným krokovým motorem (to ukáže další příklad). U položky Distance je potřeba si uvědomit, že se musí vždy zjistit, jaký údaj odpovídá našim požadavkům. Tedy chceme-li otočku pracovního stolu např. o 360°, musíme si zjistit, jaký údaj tomu odpovídá, tedy musíme si motor s připojenou periferií kalibrovat.

Obr. 2: Krokový motor a jeho řízení - nastavení elementu
V našem případě jen nastavíme hodnotu např. 50.
9. Synchronizovaní ukazatelé
9.1. Synchronizovaní ukazatelé – zapojení komponent
Zapojení komponent je následující, viz obrázek. Na vstup I1 je přivedený spínač, který spouští motory synchronně. Na výstupy M1 a M2 jsou přivedeny krokové motor a na C1, C2 a 9 V+ pak krokovací mechanismy motorů, které slouží k synchronizaci motorů.

Obr. 1: Synchronizovaní ukazatelé - zapojení komponent, pohled shora

Obr. 2: Synchronizovaní ukazatelé - zapojení komponent, pohled zepředu
9.2. Synchronizovaní ukazatelé – řídící program
Jak chceme, aby se synchronizovaní ukazatelé chovali…
- Při stisknutí spouštěcího tlačítka I1 se ukazatelé synchronizovaně natočí na jednu stranu a poté se vrátí do původní polohy.
- Následně se pohnou každý na jinou stranu, vytvoří tak písmeno „V“ a poté se vrátí do původní polohy.
- Program bude v cyklu, aby jej šlo opakovaně spouštět spouštěcím tlačítkem.

Přehled použitých elementů je v následující tabulce.
Tabulka 1: Synchronizovaní uživatelé - přehled použitých komponent
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements – Basic elements |
- |
- |
|
Digital Branch |
|
1x |
I1 |
- |
|
|
Encoder motor |
|
4x |
M1, M2 |
Pozor, element nutno nastavit pro synchronizovaný pohyb dvou motorů |
|
|
Time delay |
|
4x |
- |
- |
Ukázka nastavení elementu krokového motoru viz obrázek. Více v předchozím příkladu.

Obr. 2: Synchronizovaní ukazatelé - detail nastavení synchronizace krokových motorů
10. Logický motor
V tomto cvičení se na chvíli vrátíme k větráku a naučíme se využívat logické operátory a matematické operace, zopakujeme si podprogramy a naučíme se předávat potřebné hodnoty do podprogramu a naopak z podprogramu je vracet do programu.
10.1. Logický motor – zapojení komponent
Zapojení komponent je následující, viz obrázek. Na vstupy I1, I2 a I3 jsou přivedeny spínače. Na výstup M1 je přivedený motor.

Obr. 1: Logický motor - zapojení komponent
10.2. Logický motor – řídící program
Jak chceme, aby se logický motor choval…
- Při stisknutí pouze jednoho, jakéhokoliv tlačítka se nic neděje.
- Tlačítko I1 je bezpečnostní
- Tlačítko I2 spouští otáčky ve směru hodinových ručiček. Podmínka je, že k němu musí být stisknuto i tlačítko I1.
- Tlačítko I3 spouští otáčky v protisměru hodinových ručiček. Podmínka je, že k němu musí být stisknuto i tlačítko I1.
Stejného výsledku lze dosáhnout propojením elementů spínačů s vhodně nadefinovanými podmínkami. Úkolem tohoto cvičení je si ukázat, že to lze i jinak a že existují logické operace a jak fungují. Navíc lze motor (a i další komponenty) ovládat předáním parametru, a ne pouze elementem pro ovládání motoru.
Praktické využití je např. bezpečné spouštění stroje, kdy
chceme mít jistotu, že obsluha má obě ruce mimo a nehrozí tak její poranění.
Logický motor - podprogram pro otáčky ve směru hodinových ručiček

Obr. 1: Logický motor - podprogram pro otáčky motoru ve směru hodinových ručiček
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Logický motor - podprogram otáčky ve směr. hod. ručiček - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Constant |
|
1x |
Program elements – Variables, timers… |
- |
Násobíme konstantou 8 – maximální rychlost motoru ve směru hodinových ručiček |
|
Subprogram command input |
|
1x |
Program elements – Subprogram I/O |
- |
- |
|
Subprogram command output |
|
1x |
- |
- |
|
|
Operators - Times |
|
1x |
Program elements - Operators |
- |
- |
Logický motor - podprogram pro otáčky ve směru hodinových ručiček

Obr. 2: Logický motor - podprogram pro otáčky motoru proti směru hodinových ručiček
Přehled použitých elementů je v následující tabulce.
Tabulka 2: Logický motor - podprogram otáčky proti směru hod. ručiček - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Constant |
|
1x |
Program elements – Variables, timers… |
- |
Násobíme konstantou = -8, maximální rychlost motoru proti směru hodinových ručiček |
|
Subprogram command input |
|
1x |
Program elements – Subprogram I/O |
- |
- |
|
Subprogram command output |
|
1x |
- |
- |
|
|
Operators - Times |
|
1x |
Program elements - Operators |
- |
- |
Logický motor - program

Obr. 3: Logický motor - program
Přehled použitých elementů je v následující tabulce.
Tabulka 3: Logický motor - Program - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Universal input |
|
3x |
Program elements – Inputs, outputs |
I1, I2, I3 |
- |
|
Motor output |
|
2x |
M1 |
- |
|
|
Operator AND |
|
2x |
Program elements - operators |
- |
- |
|
Subprogram OtackyVeSmeru |
|
1x |
Loaded Programs – Logický motor |
- |
Podprogramy se nabízí v Loaded programs až po jejich vytvoření! |
|
Subprogram OtackyProtiSmeru |
|
1x |
- |
11. Matematika
V tomto cvičení si ukážeme, že lze provádět i matematické operace a vytvořit program, který např. pouze provádí potřebný výpočet i bez potřeby modelu. Zopakujeme si proměnné, podprogramy, předávání parametrů do podprogramu, vracení parametru z podprogramu.
11.1. Matematika – řídící program
Jak chceme aby program fungoval…
- Programu se zadají dvě hodnoty, které se uloží do proměnných.
- Z hodnot se vypočte obsah a obvod pravoúhlého čtyřúhelníku (čtverec, obdélník), které se uloží do adekvátních proměnných.
- Obsah a obvod se vhodně zobrazí.
Podprogram Obsah

Obr. 1: Matematika - podprogram Obsah
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Matematika - podprogram Obsah - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Variable |
|
1x |
Program elements – Variables, timers… |
- |
Výsledek ukládáme do proměnné varObsah. Protože je používáme v programu i podprogamech, je potřebe na nastavit jako Globální |
|
Subprogram command input |
|
2x |
Program elements – Subprogram I/O |
- |
- |
|
Subprogram command output |
|
1x |
- |
- |
|
|
Operators - Times |
|
1x |
Program elements - Operators |
- |
- |
Podprogram Obvod

Obr. 2: Matematika - podprogram Obvod
Přehled použitých elementů je v následující tabulce.
Tabulka 2: Matematika - podprogram Obvod - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Variable |
|
1x |
Program elements – Variables, timers… |
- |
Výsledek ukládáme do proměnné varObvod. Protože je používáme v programu i podprogamech, je potřebe na nastavit jako Globální |
|
Constant |
|
1x |
- |
Násobíme konstantou 2 |
|
|
Subprogram command input |
|
2x |
Program elements – Subprogram I/O |
- |
- |
|
Subprogram command output |
|
1x |
- |
- |
|
|
Operators – Times, Plus |
|
2x |
Program elements - Operators |
- |
1x násobíme, 1x sčítáme |
Matematika – program

Obr. 3: Matematika - program
Přehled použitých elementů je v následující tabulce.
Tabulka 3: Matematika - program - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements – Basics elements |
- |
- |
|
Time delay |
|
1x |
- |
Využijeme k zacyklení |
|
|
Variable |
|
4x |
Program elements – Variables, timers… |
- |
Pro uložení a použití délek stran A a B, tedy varA a
varB. Protože je používáme v programu i podprogamech, je potřebe na nastavit jako Globální |
|
Constant |
|
2x |
- |
Přiřazení vstupních hodnot proměnným varA a varB |
|
|
Panel display |
|
2x |
Program elements – Inputs, outputs |
- |
Pro předání Obsahu a Obvodu příslušným Text displejům |
|
Text display |
|
2x |
Operating elements - Displays |
- |
Zobrazení spočítaného Obvodu a Obsahu |
|
Assignment |
|
2x |
Program elements - Commands |
- |
Přiřazení hodnoty Panel displeji, budou pouze „=“ |
|
Subprogram Obsah |
|
1x |
Loaded Programs – Matematika |
- |
Podprogramy se nabízí v Loaded programs až po jejich vytvoření! |
|
Subprogram Obvod |
|
1x |
- |
Běh programu viz video Matematika. Program lze spustit i bez připojeného modelu, resp. TXT Controlleru. Pro takové spuštění je potřeba přes volbu COM/USB v horním menu zvolit položku Simulation viz následující obrázek. Poté je potřeba se přepnou opět zpět na volbu USB/WLAN/Bluetooth aby fungovalo propojení ROBO Pro s modely.

Obr. 4: Spuštění programu bez připojeného TXT Controlleru
12. Větráček II– návrat k základům a jejich rozšíření
V tomto cvičení se naučíme pracovat s ukazatelem, Slidery (posuvníky), vytvářet GUI pro ovládání modelu na dotykovém displeji řídící jednotky a nahrání do řídící jednotky tak, aby program fungoval samostatně bez propojení řídící jednotky s počítačem. Navíc si ukážeme, že lze zapojovat komponenty paralelně.
1. Varianta - ovládání pomocí PC
2. Varianta - ovládání přes dotykový displej řídící jednotky
12.1. Větráček II – zapojení komponent
Zapojení komponent je následující, viz obrázek. Na výstup IM1 je přivedena světelná komponenta a ta je dále propojena s motorem.

Obr. 1: Větráček II - zapojení komponent
12.2. Větráček II – řídící program v režimu online propojení s počítačem
Jak chceme, aby se kontrolor barvy choval…
- Při použití Slideru (posuvníku) na počítači se bude adekvátně rozsvěcet/zhasínat světelná komponenta a roztáčet větráček.
- Intenzita emitace světla světelnou komponentou a rychlost otáček větráčku bude zobrazen rafičkovým ukazatelem na počítači.
- Program bude v cyklu, aby bylo možné jej spouštět opakovaně.
Co v tomto případě potřebujeme vědět…
Intenzita svícení světelné komponenty a rychlost otáček motoru jsou dány rozsahem 0 – 8. Kdy při hodnotě 0 jsou komponenty vypnuty, při hodnotě 8 běží na plný výkon (největší svítivost světelné komponenty a nejvyšší otáčky motoru). Celý program je pak na následujícím obrázku.

Obr. 1: Větráček 2 - řídící program pro online režim
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Větráček II v režimu Online - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Variable |
|
1x |
Program elements – Variables, timers… |
- |
- |
|
Panel display |
|
1x |
Program elements – Inputs, outputs |
- |
- |
|
Motor output |
|
1x |
M1 |
- |
|
|
Panel Input |
|
1x |
- |
- |
|
|
Meter |
|
1x |
Operating elements - Displays |
- |
- |
|
Slider |
|
1x |
Operating elements – Control elements |
- |
- |
Ukázka nastavení vybraných elementů
Meter
Element ze sekce Operating elements – displays. Elementu nastavíme:
Minimum value = 0 hodnota vypnutí komponent
Maximum value = 8 maximální výkon komponent
Short tick step = 0 při rozsahu 0 – 8 nevyužijeme vedlejší krok na stupnici
Long tick step = 1 hlavní hodnoty ukazatele budou mít krok na stupnici = 1

Obr. 2: Větráček II - element Meter
Slider
Element ze sekce Operating elements – Control elements. Elementu Slider nastavíme:
Minimum value = 0 Při pozici jezdce úplně vlevo budou komponenty vypnuty.
Maximum value = 8 Při pozici úplně vpravo budou komponenty puštěny na maximum.
Initial value = 0 Při spuštění programu bude jezdec na pozici úplně vlevo.

Obr. 3: Větráček 2 - element Slider
12.3. Větráček II – řídící program v samostatném režimu
Jak chceme, aby se kontrolor barvy choval…
- Řídící program se nahraje přímo do řídící jednotky. Model tak bude fungovat i bez propojení s počítačem a bude se ovládat dotykovým displejem.
- Na dotykovém displeji bude zobrazena hodnota odpovídající aktuálnímu výkonu komponent, tedy 0 pro vypnuté komponenty až 8 pro jejich maximální výkon.
- Na dotykovém displeji bude tlačítko současně sloužící jak pro spuštění komponent na maximální výkon, tak i pro vypnutí komponent.
- Na dotykovém displeji bude slider pro řízení výkonu komponent.
- Nebude se vytvářet nový program, použije se program z předchozí varianty úkolu a jen se rozšíří o požadované.
Co v tomto případě potřebujeme vědět…
GUI pro ovládání modelu na dotykovém displeji řídící jednotky se vytváří na záložce TXT/TX Display, kde vložíme požadované elementy, tedy element Display ze sekce Displays a elementy Slider a tlačítko OK. Panel pak může vypadat jako na následujícím obrázku. Elementy se nastavují obdobně jako pro zobrazení v programu, nebo na ovládacím panelu. Pro tlačítko OK je vhodné si přečíst ve slovníku elementů, jaké má vlastnosti.

Obr. 1: Větráček II - GUI pro řídící jednotky
Program pak rozšíříme pouze o potřebné části. Tedy do proměnné varOtacky dva vstupy, jeden bude nastavený pro Slider na obrazovce řídící jednotky a druhý pro tlačítko na obrazovce řídící jednotky. Proměnou pak ještě nastavíme jako vstup do elementu Panel display, kterému ve vlastnostech přiřadíme Text display na obrazovce řídící jednotky (zobrazení otáček na displeji).

Obr. 2: Větráček II - řídící program pro samostatný režim
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Větráček II v samostatném režimu - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Variable |
|
1x |
Program elements – Variables, timers… |
- |
- |
|
Panel display |
|
2x |
Program elements – Inputs, outputs |
- |
1x meter 1x displej řídící jednotky |
|
Motor output |
|
1x |
M1 |
- |
|
|
Panel Input |
|
3x |
- |
1x slider na monitoru 1x tlačítko na displeji řídící jednotky 1x slider na displeji řídící jednotky |
|
|
Meter |
|
1x |
Operating elements - Displays |
- |
- |
|
Slider |
|
1x |
Operating elements – Control elements |
- |
- |
|
Display (TXT/TX Display) |
|
1x |
Interface display elements - Displays |
- |
Záložka TXT/TX Display, zobrazení rychlosti (0-8) |
|
Display - Button |
|
1x |
Interface display elements – Control elements |
- |
Záložka TXT/TX Display, spuštění tlačítko |
|
Slider |
|
1x |
- |
Záložka TXT/TX Display, Slider |
Nahrání programu do řídící jednotky se pak provede ikonou Download v horní liště programu. Zvolíme možnost nahrát program do RAM (to znamená, že po vypnutí řídící jednotky bude program zapomenut) a aby se program spustil ihned po nahrání, viz následující obrázek.

Obr. 3: Větráček II - nahrání programu do řídící jednotky
Po nahrání programu se na displeji řídící jednotky zobrazí námi vytvoření GUI a můžete dotykem model ovládat.

Obr. 4: Větráček II - GUI pro ovládání dotykovým displejem na řídící jednotce
13. Kontrolor barvy
V tomto cvičení se naučíme vyhodnocovat barvy za pomoci světelného senzoru a zopakujeme si zavedení proměnné a její zobrazení pomocí Text display, abychom si mohli „nakalibrovat“ světelný senzor. Toto cvičení je možné vypracovat i při nahrazení optického barevného senzoru webkamerou. Jen by se musel model i program adekvátně upravit.
13.1. Kontrolor barvy – zapojení komponent
Zapojení komponent je následující, viz obrázky. Na vstup I1 a +9V je přivedený optický barevný senzor, na výstup O1/O2 je přivedena žárovka s červenou krytkou, na výstup O3/O4 je přivedena žárovka se zelenou krytkou.

Obr. 1: Kontrola barvy - zapojení komponent, pohled shora

Obr. 2:Kontrola barvy - zapojení komponent, pohled zepředu
13.2. Kontrolor barvy – řídící program
Jak chceme, aby se kontrolor barvy choval…
- Při vložení zeleného papíru, se rozsvítí zelená kontrolka.
- Při vložení červeného papíru se rozsvítí červená kontrolka.
- Při nevloženém papíru, nebo vložení papíru jiné barvy než červené, nebo zelené, se neděje nic a model čeká na další vložení papíru.
- Program bude v cyklu, aby vyhodnocování barev probíhalo neustále.
Co v tomto případě potřebujeme vědět…
Optický barevný senzor vrací určité číslo, které odpovídá barvě, která je před ním vložena. My musíme zjistit, jaké číslo čte senzor pro červený papír a pro zelený papír. Pomůžeme si velmi jednoduchým programem, který bude pouze vypisovat číslo odečtené ze senzoru, viz obr.

Obr. 1: Kontrolor barvy - zjištění hodnot testovaných barev pro kalibraci
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Kontrolor barvy - pomocný program - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Universal input |
|
1x |
Program elements – Inputs, outputs |
I1 |
Ve vlastnostech Sensor type nastaveno na Color sensor |
|
Panel display |
|
1x |
- |
- |
|
|
Variable |
|
1x |
Program elements – Variables, timers… |
- |
- |
|
Text display |
|
1x |
Operating elements - Displays |
- |
- |
Díky tomuto jednoduchému programu se zjistí, jaká čísla vrací optický senzor pro barvy, které potřebujeme vyhodnocovat. V tomto konkrétním případě při tvorbě dokumentu, který čtete, vrací optický senzor pro zelenou barvu hodnoty kolem 237 a pro zelenou barvu hodnoty kolem 325. S tím, že hodnoty kolísají přibližně ±50.
- Známe přibližné hodnoty pro obě barvy. Abychom dosáhli výsledku, který potřebujeme, musíme hodnoty, které nám optický senzor může vracet nějakým způsobem třídit, využijeme tedy následujícího třídícího algoritmu:
- Při odečtení hodnot optickým senzorem v intervalu (0,200) nebudeme dělat nic a budeme dále vyhodnocovat odečtenou barvu. Taková hodnota totiž neodpovídá námi kontrolovaným barvám při naší kalibraci.
- Při odečtení hodnot optickým senzorem v intervalu (200,270) to vyhodnotíme jako červenou barvu a na 1 sekundu rozsvítíme červenou žárovku. Rozsvícení na 1s je dostačující, při delším přidržení barvy nebudeme okem vnímat, že se žárovka rozsvěcuje/zhasíná, ale budeme vnímat neustálý svit. Při odebrání barvy pak dojde nejpozději do 1s ke zhasnutí žárovky, což je pro nás dostatečně rychlá reakce systému.
- Při odečtení hodnot optickým senzorem v intervalu (270, 350) to vyhodnotíme jako zelenou barvu a na 1 sekundu rozsvítíme zelenou žárovku, podobně, jako pro předchozí interval odečtených barev.
- Při odečtení hodnot optickým senzorem 350+ nebudeme dělat nic a budeme dále vyhodnocovat odečtenou barvu. Taková hodnota totiž neodpovídá námi kontrolovaným barvám při naší kalibraci.
- Uvedené hodnoty pro zelenou a červenou barvu jsou/byly platné za podmínek, které panovaly při tvorbě modelu potřebného pro tento dokument. Vámi odečtené hodnoty pro kalibraci budou určitě jiné a podle toho je potřeba upravit intervaly pro třídící (vyhodnocovací) algoritmus.
Celý program je pak na následujícím obrázku. Zobrazení
odečtené barvy optickým senzorem jsem ponechal jako jeho součást. Při běhu
programu tak můžeme na monitoru počítače kontrolovat, jaké hodnoty zrovna
optický senzor odečítá.

Obr. 2: Kontrolor barvy - řídící program
Přehled použitých elementů je v následující tabulce.
Tabulka 2: Kontrolor barvy -přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements – Basics elements |
- |
- |
|
Lamp output |
|
4x |
O1, O3 |
- |
|
|
Time delay |
|
2x |
- |
- |
|
|
Analog branch |
|
4x |
- |
- |
|
|
Universal input |
|
4x |
Program elements – Inputs, outputs |
I1 |
Ve vlastnostech Sensor type nastaveno na Color sensor |
14. Pneumatika
V tomto cvičení si ukážeme, že v jednom programu lze vytvořit libovolný počet funkcí, které se vykonávají současně, ovládání solenoidového ventilu a jednocestného pneumatického válce.
14.1. Pneumatika – zapojení komponent
Zapojení komponent je následující, viz obrázek. Na vstupy I1 a I2 jsou přivedeny spínače. Na výstup M1 je přivedený kompresor a na výstup M2 je přivedený solenoidový ventil.

Obr. 1: Pneumatika - zapojení komponent, pohled shora

Obr. 2: Pneumatika - zapojení komponent, pohled zepředu
14.2. Pneumatika – řídící program
Jak chceme, aby se pneumatický model choval…
- Chceme nezávisle ovládat běh kompresoru a ventil.
- Pokud chce uživatel se systémem pracovat, musí nejprve spustit manuálně kompresor spínačem na vstupu I2. Po ukončení práce s modelem musí opětovným stisknutím spínače kompresor vypnout.
- K ovládání ventilu bude sloužit spínač přivedený na vstup I1.
- Obě funkce budou v cyklu, aby se dali opakovaně spouštět.
Co je potřeba vědět…
- V tomto případě vytvoříme v Main programu dvě funkce nezávislé na sobě, viz obrázek s programem. Jednu pro ovládání kompresoru, jednu pro ovládání ventilu.
- V případě využívání stejného tlačítka na více místech funkce, je potřeba přidávat časové prodlevy, jinak program nefunguje podle zadání, ale dochází k náhodným reakcím na stisknutí tlačítka. Proto vloženy časové prodlevy 0,25 sekundy.

Obr. 1: Pneumatika - řídící program
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Pneumatika - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
2x |
Program elements – Basics elements |
- |
Paralelně běží 2 funkce |
|
Time delay |
|
3x |
- |
- |
|
|
Wait for input |
|
1x |
I1 |
Nastaveno čekání na hodnotu „1“ |
|
|
Motor output |
|
4x |
M1, M2 |
M1 – 2x motor, spuštění a zastavení. M2 – 2x solenoid ventil, otevření a uzavření |
|
|
Digital Branch |
|
2x |
I2 |
- |
15. Alarm
V tomto cvičení si ukážeme vyhodnocení pohybu před kamerou, využívání zvuků a zopakujeme si podprogramy.
15.1. Alarm – zapojení komponent
Zapojení komponent je následující, viz obrázek. Do TXT Controlleru je zapojena kamera, na výstup O1 je přivedena LED s červenou krytkou. V tomto případě určitě nepoužijeme žárovku z důvodu potřeby rychlého blikání alarmu. Žárovka by neměnila stavy tak rychle a zároveň by k ní požadované chování nebylo šetrné.

Obr. 1: Alarm - zapojení komponent, pohled shora

Obr. 2: Alarm - zapojení komponent, pohled zepředu
15.2. Alarm – řídící program
Jak chceme, aby se alarm choval…
- Při vyhodnocení pohybu před kamerou se spustí zvuková výstraha a zároveň bude blikat červené světlo.
- Program poběží ve smyčce, aby se neustále vyhodnocoval pohyb před kamerou a alarm mohl reagovat.
Nejprve je potřeba nastavit, co má kamera vyhodnocovat. Postup:
- V hlavním programu, na záložce Camera, vložíme komponentu Change, kterou zakreslíme do plochy symbolizující snímaný prostor kamery. Lze si při tom zaškrtávátkem „Activate Preview“ zobrazit místo černé plochy obraz z kamery.
- Podle toho, jakou oblast označíme (velikost, umístění), tak tuto oblast bude kamera hlídat. Přes pravé tlačítko myši nad označením vybrané plochy si pak zobrazíme možnosti nastavení a nastavíme si název oblasti a lze nastavit, jak citlivá má být kamera při vyhodnocování pohybu. Pohyb je vyhodnocován na základě změny kontrastu obrazu, předdefinovaná hodnota 10 je naprosto dostačující pro citlivé vyhodnocování.

Obr. 1: Alarm - nastavení kamery pro využití v programu
Po nastavení kamery si vytvoříme podprogram pro blikání LED a samotný program.

Obr. 2: Alarm - podprogram pro blikání LED
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Alarm - podprogram pro blikání LED - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Lamp output |
|
2x |
Program elements – Basic elements |
O1 |
1x zapnutí, 1x vypnutí |
|
Subprogram Entry |
|
1x |
Program elements – Subprogram I/O |
- |
- |
|
Subprogram Exit |
|
1x |
- |
- |

Obr. 3: Alarm - program
Přehled použitých elementů je v následující tabulce.
Tabulka 2: Alarm - program - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
2x |
Program elements – Basics elements |
- |
Paralelně běží 2 funkce |
|
Time delay |
|
3x |
- |
- |
|
|
Sound |
|
1x |
- |
Přehrávaný zvuk 02 – Alarm, nečekat na dohrání
zvuku, 4x zvuk opakovat |
|
|
Panel display |
|
1x |
Program elements – Inputs, outputs |
- |
- |
|
Camera Input |
|
1x |
- |
- |
|
|
Analog branch with data input |
|
1x |
Program elements – Branch, wait |
- |
- |
|
Display lamp |
|
1x |
Operating elements - Displays |
- |
Navázáno na Panel display jako softwarová kontrolka |
|
Podprogram BlikaniPoplach |
|
1x |
Loaded programs - Alarm |
- |
Podprogramy se nabízí v Loaded programs až po jejich vytvoření! |
|
Movement detector |
|
1x |
Sensor fields |
- |
Označení oblasti na záložce Camera |
Nově je tu vložena komponenta pro přehrání zvuku. V tomto případě je zvolený zvuk 02-Alarm, který se 4x opakuje a je odškrtnuta možnost „Wait until sound is finished“. To proto, aby se následující podprogram spustil ihned po spuštění zvuku a nečekalo se na jeho přehrání. Pro lidi, co mají rádi co nejjednodušší vyjadřování to začne blikat a houkat najednou.

Obr. 4: Alarm - nastavení komponenty pro přehrání zvuku
16. Vyhodnocení barvy
V tomto cvičení se naučíme zjišťovat převládající barvu v zorném poli kamery a zopakujeme si práci s podprogramy a matematické a logické operace.
16.1. Vyhodnocení barvy – zapojení komponent
Zapojení komponent je následující, viz obrázky. Do TXT Controlleru je zapojena kamera, na výstup M1 světelná komponenta s červenou krytkou, na výstup M2 světelná komponenta se zelenou krytkou a na výstup M3 světelný element s krytkou neměnící barvu.

Obr. 1: Vyhodnocení barvy - zapojení komponent, pohled shora

Obr. 2: Vyhodnocení barvy - zapojení komponent, pohled zepředu
16.2. Vyhodnocení barvy – řídící program
Jak chceme, aby vyhodnocování barvy probíhalo…
- Kamera neustále pozoruje prostor před sebou a vyhodnocuje, která barva v daném prostoru převládá
- Pokud převládá červená barva, rozsvítí se světelná komponenta s červenou krytkou přivedená na výstup M1.
- Pokud převládá zelená barva, rozsvítí se světelná komponenta se zelenou krytkou přivedená na výstup M2.
- Pokud převládá modrá barva, rozsvítí se světelná komponenta přivedená na výstup M3.
- Hodnoty barev zobrazíme i na monitoru pomocí elementu Text Display
- Program poběží ve smyčce a proto bude docházet k neustálému vyhodnocování barev.
Nejprve je potřeba nastavit, co má kamera vyhodnocovat. Postup:
- V hlavním programu, na záložce Camera, si tedy vložíme komponentu Color, kterou zakreslíme do plochy symbolizující snímaný prostor kamery. Lze si při tom zaškrtávátkem „Activate Preview“ zobrazit místo černé plochy obraz z kamery.
- Podle toho, jakou oblast označíme (velikost, umístění), tak tuto oblast bude kamera hlídat. Přes pravé tlačítko myši nad označením vybrané plochy si pak zobrazíme možnosti nastavení, kde si můžeme oblast přejmenovat.

Obr. 1: Vyhodnocení barvy - nastavení kamery pro využítí v programu
Po nastavení kamery vytvoříme podprogram, který bude vypínat všechny světelné komponenty a samotný program.

Obr. 2: Vyhodnocení barvy - podprogram pro zhasnutí světelných elementů
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Vyhodnocení barvy - podprogram pro zhasnutí - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Subprogram Entry |
|
1x |
Program elements – Subprogram I/O |
- |
- |
|
Subprogram Exit |
|
1x |
- |
- |
|
|
Motor output |
|
3x |
Program elements – Basics elements |
M1, M2, M3 |
Zhasnutí všech kontrolek (světelných komponent) |

Obr. 3: Vyhodnocení barvy - hlavní program
Přehled použitých elementů je v následující tabulce.
Tabulka 2: Vyhodnocení barvy - program - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
1x |
Program elements – Basics elements |
- |
Paralelně běží 2 funkce |
|
|
Time delay |
|
1x |
- |
- |
|
|
Motor output |
|
3x |
M1, M2, M3 |
Nastavené spouštění daných světelných komponent |
|
|
Analog branch with data input |
2x |
Program elements – Branch, wait… |
- |
- |
|
|
Variable |
|
9x |
Program elements – Variables, timers… |
- |
- |
|
Panel display |
|
3x |
Program elements – Inputs, outputs |
- |
- |
|
Panel Input |
|
3x |
Program elements – Inputs, Outputs |
- |
- |
|
Text display |
|
3x |
Operating elements - Displays |
- |
- |
|
Operator AND a Operator greater |
|
4x |
Program elements - operators |
- |
3x greater („>“) 1x and |
17. Vyhledávání objektu
V tomto cvičení se naučíme vyhledávat objekt pomocí USB kamery, vyloučit prostor, který nechceme pomocí kamery vyhodnocovat a zopakujeme si práci s text display a ovládacími elementy. Kontrolor barvy – zapojení komponent.
Vyhledávání objektu - program
Vyhledávání objektu - program.mp4
Vyhledávání objektu - model
17.1. Vyhledávání objektu - zapojení komponent
Zapojení komponent je následující, viz obrázek. Na výstup M1 je přivedený motor s převodovkou, která má na výstupu šnek. Šnek je pak v kontaktu s ozubením otočného „stolu“, na kterém je umístěna USB kamera.

Obr. 1: Vyhledávání objektu - zapojení modelu
K testování modelu ještě potřebujeme míček s podstavcem a je vhodné použít jednobarevné pozadí, které nekoresponduje s barvou míčku, viz obr.

Obr. 2: Vyhledávání objektu - kompletní model
17.2. Vyhledávání objektu - řídící program
Nastavení Camera
Nejprve je nutné na záložce Camera nastavit, jaké oblasti a jakým způsobem má kamera vyhodnocovat. Využijeme elementy:
- Exclude, pro vyloučení spodní části obrazu z vyhodnocování
- Ball finder, pro vyhledávání objektu (míčku) v požadované části obrazu snímaného USB kamerou
Při jejich vytváření je vhodné zapnout si „Activate preview“, který usnadní výběr vhodných oblastí. V tomto případě jsem volil oblasti viz následující obrázek.

Obr. 1: Vyhledávání objektu - nastavení panelu Camera
Elementu Ball finder nastavíme Exclusion area, jinak jej necháme ve výchozím nastavení, viz obr. V případě potřeby, nebo špatné detekce objektu lze upravit chováním změnou parametrů. Popis parametrů viz Ball finder.

Obr. 2: Vyhledávání objektu - nastavení Ball finder
Vyhodnocení obrazu - pomocná část programu
V tomto případě si vytvoříme jednoduchý pomocný program, který nám bude vypisovat všechny zajímavé hodnoty z vyhodnocení obrazu USB kamerou a zobrazí nám i obraz, který kamera snímá. Pokud je stále aktivovaný stav „Activate preview“, tak se nám bude zobrazovat v programu místo černé plochy přímo obraz snímaný kamerou (aniž bychom náš program spustili).
Program se skládá pouze z elementů Camera input, které předávají hodnoty elementům Panel display a ten je zobrazuje elementem Text display. Navíc je přidán element Camera viewer, abychom viděli obraz snímaný kamerou.

Obr. 3: Vyhledávání objektu - pomocná část programu
Po spuštění tohoto programu a posunováním stojánku s míčkem před kamerou se nám zobrazují hodnoty odečítané naším pomocným programem.
Vyhledávání objektu - řídící program
Jak chceme, aby se model choval…
- Program se spustí stisknutím softwarového tlačítka.
- Při stisknutí softwarového tlačítka program vyhledá míček a upraví pozici kamery tak, aby byl míček přibližně ve středu snímaného prostoru (ve středu obrazu v rámci osy X).
- Program bude v cyklu, aby se mohl opakovaně spouštět softwarovým tlačítkem.
- Stanovíme si, že chceme objekt v rámci osy X vystředit do +- 3 bodů (přesnost je potřeba brát s rezervou, je ovlivněna vzdáleností od kamery, rozlišením kamery, kontrastem míčku proti pozadí, použitým elektromotorem,…). Proto souřadnice X zobrazovaná pomocí Text displeje nebude odpovídat hodnotám v intervalu (-3,3).
Řídící program pak může vypadat následovně:

Obr. 4: Vyhledávání objektu - řídící program
Řídící program včetně pomocné části programu můžeme mít dohromady, viz následující obr. To nám umožní kontrolovat si hodnoty získané z obrazu USB kamery, ale i samotný obraz snímaný kamerou.

Obr.5: Vyhledávání objektu - kompletní program včetně pomocné části programu
Přehled použitých elementů je v následující tabulce.
Tabulka 1: Vyhledávání objektu - přehled použitých elementů
|
Použitý element |
Základní zobrazení elementu |
Počet |
Umístění elementu v nabídce |
připojení na vstup (Input), výstup (Output/Motor) |
Poznámka |
|
Start |
|
1x |
Program elements – Basics elements |
- |
Paralelně běží 2 funkce |
|
Motor output |
|
3x |
M1 |
- |
|
|
Analog branch with data input |
|
2x |
Program elements – Branch, wait |
- |
- |
|
Wait for… |
|
3x |
- |
Čekání na splnění podmínky pro spuštění navazující části programu |
|
|
Text display |
|
4x |
Operating elements - Displays |
- |
- |
|
Button |
|
1x |
Operating elements – Control elements |
- |
Pro spuštění |
|
Panel display |
|
4x |
Program elements – Inputs, outputs |
- |
- |
|
Panel Input |
|
1x |
- |
- |
|
|
Camera Input |
|
4x |
- |
- |
|
|
Logical operator (Less) |
|
2x |
Program elements - Operators |
- |
Jakýkoliv logický, nebo mat. operátor nastavený na „<“ |
|
Camera viewer |
|
1x |
Operating elements – Camera viewer |
- |
Zobrazení náhledu kamery |
|
Constant |
|
2x |
Program elements – Variables, timers… |
- |
Pro nastavení přesnosti |
























