Denik stavby robota pro zapas minisumo

středa, srpna 09, 2006

Sonar

Prvni, co bylo nutne pro zprovozneni sonaru, bylo pripajet propojovaci vodice a konektory. Bohuzel jsem nemel konektor o siri 5, tak jsem musel pridelat dva jeden se 4 a jeden se 2 vyvody.
Protoze me stvalo resetovat robota porad pomoci odpojovani baterek, tak jsem k robotovi pridelal vypinac. Sonar jsem prisrouboval na L nosnik, sice je malicko mimo osu, ale to v zasade nevadi. Pro prisroubovani jsem musel upravit sroubek, protoze otvory na tistaku sonaru jsou tak blizko sonickym prvkum, ze standardni sroubek se tam nevejde.
Napsal jsem kratky program, a sonar nefungoval. Zkousel jsem debug, ale mam robota pripjenyho pomoci USB prevodniku a debug hodnoty variablu nezobrazoval. Po podrobne kontrole se ukazalo, ze jsem prehodil input a output vodice, ono v dokumentaci je trigger oznacenej jako input a na popisu desky jako output a vice versa, to me zmatlo.
Po prehozeni vodicu uz sonar jede. Alespon hardwarove. Popisu softwaru budu venovat dalsi post, zdaleka ne vsechno bylo tak jednoduche, jak napoprve vypadalo.

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