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í

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.

Větráček - základní, podrobné cvičení.mp4

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
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:

  1. 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.
  2. 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
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ě:

  1. 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.
  2. 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ě.
  3. Vizuálně si lze zkontrolovat, jestli zvolený způsob komunikace je aktivní.

Obr. 1: Otestování komunikace s modelem a funkčnosti komponent

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
Obr. 1: Větráček - řídící program


Přehled použitých elementů je v následující tabulce.

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: Nastavení elementu Wait for input
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: Nastavení elementu Motor output
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: Nastavení elementu Time delay
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: Obrayovka řídící jednotky - program je zkompilován a nahrán do řídící jednotky

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
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.

Větrná elektrárna.mp4

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
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…

  1. 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.
  2. Ve dne budeme šetřit světlo, letadla uvidí větrnou elektrárnu i bez něj, a vrtule se může točit.
  3. 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í.

Světelná brána je využití komponenty emitující světlo (v tomto případě např. žárovka, nebo LED) na jedné straně a fototranzistor, který vyhodnocuje, zda na něj emitované světlo ze světelné komponenty dopadá, nebo ne, na straně druhé. Pokud světlo na fototranzistor dopadá, je větrák v klidu. Pokud ne, tedy mezi světelnou komponentu a fototranzistor jsou vloženy ruce, větrák se na určitou dobu sepne.


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
Obr. 1: Vysoušeč rukou - zapojení  komponent

3.2. Vysoušeč rukou - řídící program

Jak chceme, aby se vysoušeč choval…

  1. Pokud není mezi LED komponentou a fototranzistorem překážka, tak je vysoušeč v klidu
  2. Pokud se mezi LED komponentu a fototranzistor vloží překážka (ruce), vysoušeč se na 3 sekundy spustí a bude vysoušet ruce.
  3. 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
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.

Manuálně ovládaný pojezd.mp4

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
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…

  1. Při stisknutí levého tlačítka se pojezd bude pohybovat doleva.
  2. Při stisknutí pravého tlačítka se pojezd bude pohybovat doprava.
  3. Při držení tlačítka se pojezd bude pohybovat bez přerušení po dobu držení tlačítka.
  4. 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
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.

Pojezd mezi pevně danými body.mp4



[1]„Když neodskočíš z cyklu programu, nikdy nebudeš v podprogramu.“ Kryton, Červený trpaslík, Spravedlnost

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. 1: Pojezd mezi pevně danými body - zapojení komponent, pohled shora

Obr. 2: Pojezd mezi pevně danými body - zapojení komponent, pohled zepředu

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…

  1. K ovládání chceme používat ovládací panel.
  2. 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.
  3. 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.
  4. 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.
  5. 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. 1: Ovládací panel - takto může vypadat


Text display – vyplníme ID displeje na „position“ (abychom se v programu vyznali) a nastavíme mu rozumný popisek (např. „Aktualni umisteni pojezdu“).

Obr. 2: Nastavení Text displaye
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
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. 5: Podprogram pro pohyb pojezdu
Obr. 5: Podprogram pro pohyb pojezdu



Obr. 6: Podprogram pro pohyb pojezdu - detail vstupu paramterů z hlavního programdu do podprogramu
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ů
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.

Systém pro měření teploty.mp4


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.


Ukázka souboru ZDE



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
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…

  1. Z NTC odporu budeme každých 5 sekund odečítat hodnotu, v rámci programu 5x.
  2. Hodnotu budeme zapisovat do CSV souboru včetně pořadí odečtu.
  3. 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.
  4. 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
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.

Počítání otáček obyčejného elektromotoru.mp4

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. 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…

  1. Při stisknutí spouštěcího tlačítka se výstup převodovky otočí o 360°
  2. 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.

Jednoduchý obráběcí stůl.mp4

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. 1: Jednoduchý obráběcí stůl - zapojení komponent, pohled shora

Obr. 2: Jednoduchý obráběcí stůl - zapojení komponent, pohled zepředu
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…

  1. 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.
  2. 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
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é

V tomto cvičení se naučíme synchronizovat 2 krokové motory na příkladu 2 ukazatelů řízených synchronně.

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. 1: Synchronizovaní ukazatelé - zapojení komponent, pohled shora

Obr. 2: Synchronizovaní ukazatelé - zapojení komponent, pohled zepředu
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.
Obr. 1: Synchronizovaní ukazatelé - řídící program
Obr. 1: Synchronizovaní ukazatelé - řídící program

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.

Logický motor.mp4

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
Obr. 1: Logický motor - zapojení komponent


10.2. Logický motor – řídící program

Jak chceme, aby se logický motor choval…

  1. Při stisknutí pouze jednoho, jakéhokoliv tlačítka se nic neděje.
  2. Tlačítko I1 je bezpečnostní
  3. 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.
  4. 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.

Matematika.mp4

11.1. Matematika – řídící program

Jak chceme aby program fungoval…

  1. Programu se zadají dvě hodnoty, které se uloží do proměnných.
  2. 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.
  3. 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
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…

  1. 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.
  2. Intenzita emitace světla světelnou komponentou a rychlost otáček větráčku bude zobrazen rafičkovým ukazatelem na počítači.
  3. 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…

  1. Ří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.
  2. 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.
  3. 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.
  4. Na dotykovém displeji bude slider pro řízení výkonu komponent.
  5. 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.

Kontrolor barev.mp4

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…

  1. Při vložení zeleného papíru, se rozsvítí zelená kontrolka.
  2. Při vložení červeného papíru se rozsvítí červená kontrolka.
  3. 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.
  4. 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.

Pneumatika.mp4

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…

  1. Chceme nezávisle ovládat běh kompresoru a ventil.
  2. 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.
  3. K ovládání ventilu bude sloužit spínač přivedený na vstup I1.
  4. Obě funkce budou v cyklu, aby se dali opakovaně spouštět.

Co je potřeba vědět…

  1. 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.
  2. 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.

Alarm.mp4


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…

  1. Při vyhodnocení pohybu před kamerou se spustí zvuková výstraha a zároveň bude blikat červené světlo.
  2. 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:

  1. 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.
  2. 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.

Vyhodnocení barvy.mp4

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…

  1. Kamera neustále pozoruje prostor před sebou a vyhodnocuje, která barva v daném prostoru převládá
  2. Pokud převládá červená barva, rozsvítí se světelná komponenta s červenou krytkou přivedená na výstup M1.
  3. Pokud převládá zelená barva, rozsvítí se světelná komponenta se zelenou krytkou přivedená na výstup M2.
  4. Pokud převládá modrá barva, rozsvítí se světelná komponenta přivedená na výstup M3.
  5. Hodnoty barev zobrazíme i na monitoru pomocí elementu Text Display
  6. 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:

  1. 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.
  2. 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…

  1. Program se spustí stisknutím softwarového tlačítka.
  2. 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).
  3. Program bude v cyklu, aby se mohl opakovaně spouštět softwarovým tlačítkem.
  4. 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