ROBOT a Joystick

Inšpirácia

Potrebné vybavenie

  1. Počítač s nainštalovaným Visiduino IDE v0.12
  2. Visiduino ROBOT
  3. Joystick
  4. Prepájacie káble
  5. USB kábel (link)

Tento príspevok nadvezuje na predchádzajúci príspevok Prvé kroky s robotom. Dozviete sa v ňom ako ovládať Visiduino ROBOT prostredníctvom joystick-u. Po prečítaní uvedeného príspevku budete vedieť, na akom princípe pracuje joystick, ako komunikuje s robotom a ako ovládať Visiduino ROBOT pomocou joystick-u.

Joystick

Skôr ako pripojíte akúkoľvek elektroniku k robotovi, musíte sa oboznámiť na akých princípoch pracuje, aby ste vedeli k akým vstupom/výstupom musíte pripojiť jednotlivé kontakty a či ich môžete pripojiť. Väčšina joystickov, ako aj ten náš, používa pre zistenie polohy natočenia potenciometer. Potenciometer je jednoduchá elektronická súčiastka s tromi vstupmi a otočným/posuvným bežcom.

Ak pripojíme ku kontaktu číslo 1 napätie 0 voltov (výstup GND na robotovi) a ku kontaktu číslo 3 pripojíme napätie +5V, bude sa napätie na kontakte číslo 2 pohybovať v rozsahu 0 až +5V v závislosti od natočenia bežca. Pre ilustráciu je na nasledujúcom videu ukážka ako funguje potenciometer. Kontakt 1 je pripojený k robotovi na výstup GND, kontakt 2 na výstup A9 a kontakt 3 na výstup +5V. Robot vie na výstupe A9 merať napätie. Ak toto napätie v programe privediete na blok Display môžete vidieť aktuálnu hodnotu napätia z potenciometra. Ku koncu videa je pripevnená krátka páka k potenciometru, čím sa potenciometer premení na jedno osí joystick.

Pripojenie Joystick-u

Joystick, použitý v tomto návode, používa dva potenciometre a jedno tlačidlo. Jeden potenciometer sleduje polohu hore/dole (označená ako Y) a druhý sleduje polohu vľavo/vpravo (označená ako X). Tlačidlo je aktivované ak stlačíme páčku joysticku smerom dolu. Joystick má na sebe nasledujúce výstupy:

  • + -> napájanie pre joystick. Pripojíte ho k +5V na robotovi (výstup 5V)
  • X -> výstup potenciometra pre smer vľavo/vpravo. Pripojíte ho k výstupu A8.
  • B -> výstup tlačidla. Pripojíte ho k výstupu 10.
  • Y -> výstup potenciometra pre smer vľavo/vpravo. Pripojíte ho k výstupu A9.
  • G -> napájanie 0V pre joystick. Pripojíte ho k výstupu GND. (0V sa zvykne nazývať ako ,,zem". Po anglicky je zem ground, preto sa používa skratka GND)

V elektronike sa zvykne pri niektorých prepojeniach používať farebné kódovanie a to použitím určitej farby prepojovacieho káblu. Pre pripojenie napájania +5V sa používa červená farba. Pre pripojenie kábla označujúceho 0V (zem) sa používa čierna, alebo hnedá farba. Kombinácia červená a čierna sa používa často. V automobiloch je tak isto čierna pre 0V (zem) a červená kladný pól napájania, i keď je napájanie +12V. Toto farebné označenie červená +5V a čierna 0V odporúčame používať pri práci s robotom. Uľahčuje to prácu a orientáciu v rozsiahlejších zapojeniach. Farba ostatných káblov môže byť ľubovoľná.

Spracovanie údajov z Joystick-u

Pripojením joystick-u môžete pristupiť k spracovaniu údajov. Ako bolo vidieť na videu vyššie, hodnoty z potenciometra sa pohybovali od 0V po +5V. Blok ovládajúci motory robota prijíma údaje od -1.0 po 1.0. Preto je potrebné údaje z potenciometra upraviť. K tomu slúži blok Convertor nachádzajúci sa v kategórii signal. Blok Convertor nastavíte tak, aby vstupné údaje z rozsahu 0.0 .. 5.0 menil na rozsah -1.0 .. 1.0. Tieto údaje potom privediete priamo na oba motory robota. Celý postup zhŕňa nasledujúce video.

Týmto ste vytvorili pohyb dopredu/dozadu. Teraz pridáme pohyb vľavo/vpravo. Budete k tomu používať druhý potenciometer označený ako X, ktorý ste pripojili k výstupu A8 na robotovi. Ako prvé bude potrebné previesť údaje z rozsahu 0.0 až 5..0 na rozsah -1.0 až 1.0. Spôsob ako pripojiť údaje vľavo/vpravo k robotovi sa dá odvodiť matematicky, ale pre jednoduchosť sa dá naň prísť aj logicky. Ak chceme, aby sa robot otáčal vľavo, musíme priniesť na jedno koleso signál 1.0 a na druhé -1.0. Teda ak bude výstupný signál z joystick-u 1.0, tak tento signál privedieme na jedno koleso priamo, a na druhé ho vynásobíme číslom -1.0 (pomocou bloku Gain). Samozrejme, nemôžete do jedného vstupu priniesť naraz dve čísla (jedno pre smer dopredu/dozadu a druhé pre smer vľavo/vpravo). Preto musíte tieto dve čísla spočítať pomocou bloku Sum. Celý postup zhŕňa nasledujúce video.

Posledný údaj, ktorý budete z joystick-u spracovávať bude stlačenie tlačidla. Tlačidlo je aktivované zatlačením joystick-u smerom dolu. Tlačidlo ste pripojili k výstupu 10. Toto označenie znamená, že sa jedná o digitálny vstup/výstup číslo 10. V nasledujúcej časti dorobíte do robota funkciu, kde keď stlačíte tlačidlo začnú blikať štyri LED diódy a keď ho stlačíte znovu prestanú blikať. LED diódy ste už ovládali v návode Prvé kroky s robotom. Vytvorenie tejto funkcii sme rozdelili na dve časti. Ako prvé vytvoríte blikanie LED diód pri stlačenom tlačidle. K tomu, aby LED dióda blikala postačuje ak ju pripojíte k bloku Generator. K tomu, aby blikala pri stlačenom tlačidle je potrebné použiť blok Simple switch. Tento blok sa nachádza v kategórii Control. Obsahuje dva vstupy a jeden výstup. Jeho funkcia je nasledovná: Ak je na vstupe set číslo 1, tak sa údaje zo vstupu in prenášajú na výstup out. Ale, ak je na vstupe set číslo 0, tak je na výstupe out trvalo číslo 0. Preto ak medzi Generator a LED diódy vložíme blok Simple switch, a vstup set budeme ovládať pomocou tlačidla, tak LED diódy budú blikať iba pri stlačenom tlačidle. Táto časť je podrobne ukázaná v prvej časti videa nižšie. Všimnite si, že výsledok robí "skoro" to čo ste chceli. Chyba je v tom, že LED diódy blikajú ak nie je tlačidlo stlačené a sú zhasnuté ak je tlačidlo stlačené. Je tomu tak z dôvodu, že tlačidlo na joystick-u pracuje opačne ako sme predpokladali tzn. ak je uvoľnené, je na jeho výstupe číslo 1 a ak ho stlačíme je na jeho výstupe 0. Preto ak chcete, aby LED diódy blikali iba v prípade, že je tlačidlo stlačené, je potrebné dať medzi blok Digital Input a Simple switch blok NOT, ktorý hodnotu z bloku Digital Input zmení na opačnú.

V druhej časti dokončíte požadovanú funkciu tzn. keď stlačíte raz tlačidlo začnú LED diódy blikať a zostanú blikať až do ďalšieho stlačenia. Použijete k tomu blok Toggle switch. Tento blok zmení hodnotu výstupu, vždy pri nábežnej hrane na vstupe toggle. Preto ak ho vložíme medzi bloky Digital Input a Simple switch dostaneme požadovanú funkciu. Pretože pri prvom stlačení tlačidla sa nastaví výstup na 1, čím povolí prenos údajov na bloku Simple switch, a pri druhom stlačení sa jeho výstup nastaví na 0, čím zakáže prenos údajov na bloku Simple switch. Celý proces je na videu vyššie

Hotovo :)

Práve ste vytvorili ovládanie robota pomocou joystick-u. Naučili ste sa ako pracuje joystick a potom ste využili tieto poznatky pri tvorbe ovládania robota. V nasledujúcich návodoch sa naučíte ďalšie zaujímavé spôsoby, ako upraviť robota.