Autor: MiraH <mirah@wo.cz>,
Téma: Roboti a programování,
Vydáno dne: 24. 01. 2010
Tak jsme zase trochu pokročili. Nejdřív jsem zkonstruoval jakého si polorobota, občas chtěl pošťouchnout, ale poslední pokusy už vypadaly nadějně:-)
Zase jsem si našel dost volna, abych se zahloubal do dalších pokusů. Zavrhnul jsem složité konstrukce u čidel, abych nemusel nic pájet a čidlo zapojil podle nejjednoduššího schematu z datasheetu.
No a s tímhle čidlem jsem zkusil jednoduché prográmky - jeď po bílé podlaze, dokud nenarazíš na černou čáru,... Prostě něco jednoduchého, abych si osahal nastavení výšky čidla nad podložkou, nastavení 10k odporu, tedy dával jsem tam trimr abych to mohl ladit. Tím jsem strávil hooodně času. Pořád jsem měl čidlo nízko nebo vysoko a PIC měl problém vyhodnotit, jaký napětí do něj vlastně teče. Prostě se fakt budu muset naučit pájet a dělat věci složitější, ale spolehlivější.
Pro další pokusy jsem udělal druhé čidlo. Robot dostal čelo k upevnění senzorů. a na desce jsem zdrátoval dvě zapojení čidel.
Předpokládal jsem, že tohle už by mohlo jezdit po čáře. Jezdilo, ale, pokud se obě čidla dostala mimo čáru, robot se zastavil. A to se dostala v každém větším ohybu. Ale robot se alespoň rozjel.
Ještě jsem zkusil variantu pobíhání v ohradě, ale opět pouze 2 čidla způsobily, že robot narazil na plot z černé čáry, zastavil se a jen čuměl na druhou stranu.
Takže přišlo třetí čidlo. Prostě u robota asi platí víc očí víc rozumu :-))
No a už to bylo téměř ono. Tedy ještě musím vychytat mouchy, jako pořádně si nabít baterky, protože ke konci už robotek silně zdechával :-) No a další pokusy příště.
Tohle ho řídí:
REM stopar
start:
if pin3=1 and pin2=1 and pin1=1 then goto vpred
if pin3=1 and pin2=1 and pin1=0 then goto vlevo
if pin3=1 and pin2=0 and pin1=0 then goto vvlevo
if pin3=0 and pin2=1 and pin1=1 then goto vpravo
if pin3=0 and pin2=0 and pin1=1 then goto vvpravo
if pin3=0 and pin2=0 and pin1=0 then goto stuj
goto start
vpred:
pulsout 0,100
pulsout 4,200
goto start
vpravo:
pulsout 0,150
pulsout 4,200
goto start
vvpravo:
pulsout 0,200
pulsout 4,200
goto start
vlevo:
pulsout 0,100
pulsout 4,150
goto start
vvlevo:
pulsout 0,100
pulsout 4,100
goto start
stuj:
pulsout 0,150
pulsout 4,150
goto start
A takhle jezdí, když má ještě alespoň trochu nabité baterky.