Difference between revisions of "Robotnačka a senzory"

From RoboWiki
Jump to: navigation, search
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Obrázkový návod na inštaláciu senzorov:
+
Robotnačka má na spodnej strane 6 infrasenzorov typu [[CNY70]], ktoré sú síce iba binárne, ale dokážu rozoznať
 +
tmavý a svetlý podklad, po ktorom sa robot pohybuje. Ak je daný bit 0, senzor je nad svetlou plochou, logická
 +
1 znamená tmavú farbu. Aj v prípade, že daný senzor sa nenachádza nad stolom, ale vytrca von, jeho hodnota
 +
je 1.
 +
 
 +
 
 +
Zavolaním príslušnej funkcie ( short stav = robot_getsensors(r); ) získame stav senzorov v jednom bajte, kde
 +
je spodných 6 bitov významných. Priradenie senzorov k jednotlivým bitom je na obrázku 36. V manuuálnom
 +
ovládacom režime je možné stav senzorov získat po stlacení tlacidla Sensors, prípadne je možné zadat špeciálnu
 +
podmienku, pri ktorej sa zastaví pohyb robota.
 +
 
 +
[[Image:RobotnackaSensors.png]]
 +
Obr. 35: Senzory - pohlad zhora. Najvyššie dva bity sú vynulované.
 +
 
 +
 
 +
== Podmienené vykonávanie príkazov ==
 +
 
 +
Senzormi môžeme podmienit, resp. zakázat vykonanie pohybových príkazov. Robot nepretržite sleduje splnenie
 +
senzorovej podmienky a v prípade, že je splnená, zastaví vykonávanie aktuálneho príkazu.
 +
Podmienka sa skladá z troch 6-bitových konštánt, ktoré reprezentujú bitové masky, aplikované na aktuálny stav
 +
senzorov. Tieto masky sa používajú s operáciami XOR, OR a AND nasledovne:
 +
 
 +
( (s XOR x) AND o > 0 ) OR ( (s XOR x) AND a == a ) AND (s + a > 0)
 +
 
 +
Císlo x urcuje, ktoré bity najprv invertujeme. Invertuje sa stav tých senzorov, pre ktoré je príslušný bit v x =
 +
1.
 +
 
 +
Císlo o je maska OR, teda ak hociktorý zo senzorov, ktoré sú v o = 1, podmienka je splnená. Podobne, ak
 +
všetky senzory, ktorých zodpovedajúci bit v a je 1 sú aktívne, podmienka je splnená. Ak sú konštanty o aj a
 +
obe nulové, podmienka nebude použitá.
 +
 
 +
'''Príklady:'''
 +
 
 +
Podmienka je splnená, ak sa hociktorý zo senzorov dostane mimo bielej plochy: x = 0, o = 63, a = 0.
 +
Ak sa robot pohybuje po ciernej ciare (log. 1 na piatom senzore S4) a chceme, aby zastal ked ciara skoncí,
 +
musíme nastavit podmienku takto: x = 16, o = 0, a = 16
 +
 
 +
'''Poznámka:''' V niektorých verziách firmware Robotnacky je z dôvodu šetrenia energiou meranie stavu senzorov
 +
umožnené len pri pohybe. Ak robot stojí, napájanie senzorov je vypnuté.
 +
 
 +
 
 +
'''Obrázkový návod na inštaláciu senzorov:'''
  
 
[[Image:InstalaciaSenzorov.gif]]
 
[[Image:InstalaciaSenzorov.gif]]

Latest revision as of 11:46, 28 March 2008

Robotnačka má na spodnej strane 6 infrasenzorov typu CNY70, ktoré sú síce iba binárne, ale dokážu rozoznať tmavý a svetlý podklad, po ktorom sa robot pohybuje. Ak je daný bit 0, senzor je nad svetlou plochou, logická 1 znamená tmavú farbu. Aj v prípade, že daný senzor sa nenachádza nad stolom, ale vytrca von, jeho hodnota je 1.


Zavolaním príslušnej funkcie ( short stav = robot_getsensors(r); ) získame stav senzorov v jednom bajte, kde je spodných 6 bitov významných. Priradenie senzorov k jednotlivým bitom je na obrázku 36. V manuuálnom ovládacom režime je možné stav senzorov získat po stlacení tlacidla Sensors, prípadne je možné zadat špeciálnu podmienku, pri ktorej sa zastaví pohyb robota.

RobotnackaSensors.png Obr. 35: Senzory - pohlad zhora. Najvyššie dva bity sú vynulované.


Podmienené vykonávanie príkazov

Senzormi môžeme podmienit, resp. zakázat vykonanie pohybových príkazov. Robot nepretržite sleduje splnenie senzorovej podmienky a v prípade, že je splnená, zastaví vykonávanie aktuálneho príkazu. Podmienka sa skladá z troch 6-bitových konštánt, ktoré reprezentujú bitové masky, aplikované na aktuálny stav senzorov. Tieto masky sa používajú s operáciami XOR, OR a AND nasledovne:

( (s XOR x) AND o > 0 ) OR ( (s XOR x) AND a == a ) AND (s + a > 0)

Císlo x urcuje, ktoré bity najprv invertujeme. Invertuje sa stav tých senzorov, pre ktoré je príslušný bit v x = 1.

Císlo o je maska OR, teda ak hociktorý zo senzorov, ktoré sú v o = 1, podmienka je splnená. Podobne, ak všetky senzory, ktorých zodpovedajúci bit v a je 1 sú aktívne, podmienka je splnená. Ak sú konštanty o aj a obe nulové, podmienka nebude použitá.

Príklady:

Podmienka je splnená, ak sa hociktorý zo senzorov dostane mimo bielej plochy: x = 0, o = 63, a = 0. Ak sa robot pohybuje po ciernej ciare (log. 1 na piatom senzore S4) a chceme, aby zastal ked ciara skoncí, musíme nastavit podmienku takto: x = 16, o = 0, a = 16

Poznámka: V niektorých verziách firmware Robotnacky je z dôvodu šetrenia energiou meranie stavu senzorov umožnené len pri pohybe. Ak robot stojí, napájanie senzorov je vypnuté.


Obrázkový návod na inštaláciu senzorov:

InstalaciaSenzorov.gif



--- --- --- English: Robotnačka a senzory/en Slovensky: Robotnačka a senzory/sk --- --- ---
--- --- --- --- --- RoboWiki: (c) 2006 Robotika.sk --- --- --- --- ---