https://wiki.robotika.sk/robowiki/index.php?title=Robotna%C4%8Dka-06&feed=atom&action=history Robotnačka-06 - Revision history 2024-03-28T23:50:24Z Revision history for this page on the wiki MediaWiki 1.30.0 https://wiki.robotika.sk/robowiki/index.php?title=Robotna%C4%8Dka-06&diff=2232&oldid=prev Balogh at 16:02, 3 April 2007 2007-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'>&#160;</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'>&#160;</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">&#160;</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">&#160;</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">&#160;</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'>&#160;</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'>&#160;</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'>&#160;</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'>&#160;</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> Balogh https://wiki.robotika.sk/robowiki/index.php?title=Robotna%C4%8Dka-06&diff=2231&oldid=prev Balogh at 16:01, 3 April 2007 2007-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 &gt; 0 ) OR ( (s XOR x) AND a == a ) AND (s + a &gt; 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