Denik stavby robota pro zapas minisumo

neděle, srpna 06, 2006

Velky update

Uz je to mesic, co jsem naposled neco napsal. Pote, co jsem si skripnul prst, jsem dodelal sasi ale pak jsem robota vypustil. Vyzkousel jsem jenom, ze robot se da programovat a napsal programek, kdy robot popojede cca 10 cm a pak se otoci, popojede a tak porad dokola.
Bylo moc vedro a tak jsem se venoval jinym vecem, nechtelo se mi zalezt do dilny a s necim laborovat.
Dneska ale uz od rana prsi, tak jsem vytahl robota ze skrine a pokracoval.
Zasadni chybou pri navrhu sasi bylo, ze jsem hodnoty blbe vynasobil dvema, respektive, blbe jsem spocital presah kola pres bok sasi (k sirce sasi jsem presah pripocetl jen jednou), takze sestaveny podvozek ma na sirku vic, nez 10cm. To me sice pije krev, ale pro testovaci ucely to nevadi.
Dnes jsem do predni casti robota vyfrezoval dve drazky, a upevnil senzor bileho okraje. Ten jsem pripajel a pripojil na vstupy 0 a 1. Jedinou chybou u tistaku je, ze upevnovaci diry jsou tak blizko k sobe, ze se vedle sebe sice vejdou dve maticky, ale jedna nejde dotahnout, protoze narazi do druhe :) Lepe to bude videt z fotek, ktere sem pastnu, ale neni to nijak kriticky problem.
Po otestovani s merakem, ze senzor funguje, jak ma, jsem napsal programek a vpustil robota do areny. Vse funguje skvele.
Doladeni programu ukazalo, ze serva se chovaji dost rozdilne, kdyz chci, aby robot jel rovne, jedno servo jede na hodnotu 255 a druhe na 170.
Ted trochu statistickych dat:
robot ujede za 1s 17cm a o 360 se otoci za 1,8s, soucasna hmotnost je 350g.

Dalsi na radu prijde experimentovani se sonarem.
Zkusim co nejdriv doplnit i fotky.

Na zaver ukazka programu, robot v zasade jezdi z jedne strany areny na druhou

Symbol left = 20
Symbol right = 1
Symbol l_vpred = 1
Symbol l_vzad = 255
Symbol r_vpred = 255
Symbol r_vzad = 1
Symbol h = 0

ProgStart:
pause 300
i2cslave $c2, i2cslow, i2cbyte

Main:
writei2c left, (l_vpred)
writei2c right, (r_vpred)
if pin0 = 0 or pin1 = 0 then Vzad
goto Main

Vzad:
writei2c left, (l_vzad)
writei2c right, (r_vzad)
pause 294
writei2c left, (l_vzad)
writei2c right, (r_vpred)
pause 950
goto Main

0 Comments:

Okomentovat

<< Home