Robot nasleduje čiaru a vykreslí svoju dráhu do programu
Program na vykreslenie dráhy pre model robota Sbot[1].
Popis k programu na nasledovanie čiary
Zapojenie
adc_vals[0] - ľavý senzor adc_vals[1] - pravý senzor
Program po nadviazaní spojenia s počítačom pomocou bluetooth prostredníctvom programu putty reaguje na stlačenia kláves nasledovne:
p - testovacie tlačidlo, vypíše do výstupu putty "hello" i - vypíše hodnoty z poľa adc_vals od 0 po 7 w,s,a,d - ovládanie robota šípkami g - zastaví oba motory v - vypíše hodnoty senzorov na čiaru c - spustí sa nasledovanie čiary robotom
Algoritmus nasledovania čiary:
V cykle prechádza nasledovným vetvením: Ak vidí robot na oboch senzoroch svetlo ide rovno (predpokladá, že čiaru má medzi senzormi). Ak vidí na ľavom otočí sa na mieste do ľava, kým nevidí znova na oboch svetlo. Inak zistí, či je na pravom senzore tma, točí do prava, kým nevidí na oboch svetlo.
Výpis činnosti robota
Keď je spustený mód nasledovania čiary, pri každom prechode cyklom vypíše na nový riadok do programu putty jedno z písmen "r,p,l". r ak ide rovno, p - zabáča doprava, l - zabáča doľava. Po tom ako robota zastavíme, treba ručne z programu putty skopírovať celý výstup a uložiť do textového formátu (.txt).
Popis programu na vykresľovanie
Program bol písaný v IDE NetBeans.
Screenshot programu:
Načítavanie vstupného súboru (zdrojový kód ..src/robot/robot1.java) Program si načítava údaje zo zadaného vstupného súboru informácie o chode robota ("r,l,p") a ukladá ich do poľa vystup_file, pričom vždy z dviadsiatich po sebe nasledujúcich riadkov vyberie najpočetnejší znak a uloží do poľa vystup_file. Množstvo riadkov po ktorých ukladá hodnotu do poľa vystup_file je možné nastaviť v premennej dlzkaseturiadkov, ale táto zmena ovplivní aj dĺžku vykreslovanej čiary, preto sa to neodporúča.
Vykreslovanie (zdrojový kód ..src/robot/draha.java)
Počiatočnú pozíciu robota a jeho počiatočný smer si načíta zo vstupu ktorý je možný zadať v programe.
Dráha sa vykresľuje podľa hodnôt z poľa vystup_file. V cykle číta za radom všetky načítané hodnoty. Reakcie na hodnoty sú nasledovné:
"p" - otočí aktuálny smerový vektor robota o 1° v smere hodinových ručičiek
"l" - otočí aktuálny smerový vektor robota o 1° proti smeru hodinových ručičiek
"r" - načítava ďalšie hodnoty, až kým nenačíta rotáciu, pričom pri každom ďalšom načítaní "r" posunie koncový bod úsečky v smere aktuálneho natočenia o malú hodnotu. Úsečka sa vykreslí až pri načítaní rotácie, pričom reálne súradnice sú zaokruhlené na celočíselné.
Zdrojáky
zdrojáky[2]
Autor: Martin Chudjak