https://wiki.robotika.sk/robowiki/index.php?title=Robotna%C4%8Dka-06&feed=atom&action=historyRobotnačka-06 - Revision history2024-03-28T23:50:24ZRevision history for this page on the wikiMediaWiki 1.30.0https://wiki.robotika.sk/robowiki/index.php?title=Robotna%C4%8Dka-06&diff=2232&oldid=prevBalogh at 16:02, 3 April 20072007-04-03T16:02:28Z<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 16:02, 3 April 2007</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== Úloha 6: Nespadni! ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">'''Napíšte program, ktorý zabezpecí náhodný pohyb Robotnacky vo vnútri bielej plochy ohranicenej ciernymi pásmi.'''</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Robotnačka má na spodnej strane 6 infrasenzorov typu CNY70, ktoré sú síce iba binárne, ale dokážu rozoznať</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Robotnačka má na spodnej strane 6 infrasenzorov typu CNY70, ktoré sú síce iba binárne, ale dokážu rozoznať</div></td></tr>
</table>Baloghhttps://wiki.robotika.sk/robowiki/index.php?title=Robotna%C4%8Dka-06&diff=2231&oldid=prevBalogh at 16:01, 3 April 20072007-04-03T16:01:59Z<p></p>
<p><b>New page</b></p><div><br />
<br />
Robotnačka má na spodnej strane 6 infrasenzorov typu CNY70, ktoré sú síce iba binárne, ale dokážu rozoznať<br />
tmavý a svetlý podklad, po ktorom sa robot pohybuje. Ak je daný bit 0, senzor je nad svetlou plochou, logická<br />
1 znamená tmavú farbu. Aj v prípade, že daný senzor sa nenachádza nad stolom, ale vytrca von, jeho hodnota<br />
je 1.<br />
<br />
<br />
Zavolaním príslušnej funkcie ( short stav = robot_getsensors(r); ) získame stav senzorov v jednom bajte, kde<br />
je spodných 6 bitov významných. Priradenie senzorov k jednotlivým bitom je na obrázku 36. V manuuálnom<br />
ovládacom režime je možné stav senzorov získat po stlacení tlacidla Sensors, prípadne je možné zadat špeciálnu<br />
podmienku, pri ktorej sa zastaví pohyb robota.<br />
<br />
[[Image:RobotnackaSensors.png]]<br />
Obr. 35: Senzory - pohlad zhora. Najvyššie dva bity sú vynulované.<br />
<br />
<br />
== Podmienené vykonávanie príkazov ==<br />
<br />
Senzormi môžeme podmienit, resp. zakázat vykonanie pohybových príkazov. Robot nepretržite sleduje splnenie<br />
senzorovej podmienky a v prípade, že je splnená, zastaví vykonávanie aktuálneho príkazu.<br />
Podmienka sa skladá z troch 6-bitových konštánt, ktoré reprezentujú bitové masky, aplikované na aktuálny stav<br />
senzorov. Tieto masky sa používajú s operáciami XOR, OR a AND nasledovne:<br />
<br />
( (s XOR x) AND o > 0 ) OR ( (s XOR x) AND a == a ) AND (s + a > 0)<br />
<br />
Císlo x urcuje, ktoré bity najprv invertujeme. Invertuje sa stav tých senzorov, pre ktoré je príslušný bit v x =<br />
1.<br />
<br />
Císlo o je maska OR, teda ak hociktorý zo senzorov, ktoré sú v o = 1, podmienka je splnená. Podobne, ak<br />
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<br />
obe nulové, podmienka nebude použitá.<br />
<br />
'''Príklady:'''<br />
<br />
Podmienka je splnená, ak sa hociktorý zo senzorov dostane mimo bielej plochy: x = 0, o = 63, a = 0.<br />
Ak sa robot pohybuje po ciernej ciare (log. 1 na piatom senzore S4) a chceme, aby zastal ked ciara skoncí,<br />
musíme nastavit podmienku takto: x = 16, o = 0, a = 16<br />
<br />
'''Poznámka:''' V niektorých verziách firmware Robotnacky je z dôvodu šetrenia energiou meranie stavu senzorov<br />
umožnené len pri pohybe. Ak robot stojí, napájanie senzorov je vypnuté.</div>Balogh