Robotika - praktické příklady
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í.
13. Kontrolor barvy
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 |