Kocúr v čižmách - Saša Snidová, Veronika Bendíková

From RoboWiki
Jump to: navigation, search

Cieľ projektu

Kocúr v čižmách sa mal naučiť počas chôdze automaticky zatáčať (počas chôdze ho často samovoľne vytáčalo doprava a my sme chceli aby sa vedel sám otočiť a nasmerovať iným smerom).

Kocur.jpg Kocur zboku.jpg

Realizácia projektu

Hneď na začiatku našej práce sme sa museli zoznámiť s naším kocúrom a tiež ho mierne opraviť a upraviť: vymenili sme servo na nohe, upravili sme hlavičku (konkrétne jej konštrukciu aby sme ňou vedeli dobre hýbať doprava a doľava). Už pri týchto úvodných aktivitách sme videli, že kocúr sa vždy po zapnutí vytočí doprava alebo doľava (ako sa zapne celý robot – arduino vyšle signál, ktorý servo pri hlave pochopí ako znamenie na otočenie). Tak sme sa rozhodli, že nájdeme spôsob ako to môžeme opraviť. Spravili sme si dve funkcie, move_head_left() a move_head_right(), ktoré otočili hlavu doľava alebo doprava o malý kúsok. Vzhľadom na to, že počas chôdze náš robot nevieme pohodlne ovládať museli sme vymyslieť spôsob ako ním zatáčať bez toho aby sme niečo stláčali na klávesnici alebo na touch senzore.

Rozhodli sme sa využiť tri LEDky, ktoré sme umiestnili pod hlavičku (jednu priamo pod ňu – symbolizovala stred a dve po jej stranách – doprava, doľava). Na to aby sme ich videli sme sa rozhodli využiť fotosenzor (svetlený senzor). V našom návrhu sme hlavne potrebovali vyriešiť ako zapojiť naše LEDky, ako pridať fotosenzor na kocúra a tiež si premyslieť ako budeme dostávať jeho hodnoty z robota do počítača podľa ktorých sa vieme riadiť pri zatáčaní. Po konzultácií s vyučujúcim sme sa to rozhodli urobiť takto:

Navrh.jpg Fototransistor.jpg

Namerane hodnoty1.jpg Namerane hodnoty2.jpg


Potom nastala fáza realizácie nášho návrhu (pajkovanie káblov, zapojenie všetkých káblov, pripevnenie LEDiek, pripevnenie fotosenzora). Keď sme to už mali hotové, museli sme si pozerať dané hodnoty, ktoré nám dával fotosenzor a podľa tých hodnôt vymyslieť ako sa posunieme po najbližšiu LEDku. To sa nám nakoniec podarilo vo funkciách automatic_move_head_left() a automatic_move_head_right().


Ledky.jpg


Keď už sme funkcie mali otestované začali sme riešiť otázku, ako zistíme natočenie robota. Naším riešením sa stal gyroskop (gyroskop MPU6050). Tu sme ale zistili, že samotný kód pre funkčnosť gyroskopu je dosť dlhý a nezmestil by sa nám do nášho súboru cat.src (kvôli pamäťovému obmedzeniu) a teda sme vytvorili nový súbor sprint.src kde sme nechali len tie najpodstatnejšie príkazy a funkcie, ktoré sme doplnili o kód pre gyroskop. Zase sme istý čas skúmali hodnoty, ktoré nám gyroskop vracia a snažili sa do našej chôdze doplniť automatické zatáčanie.


Záver

Keďže sme videli, že chôdza, ktorú máme nie je dobrá (keď bol robot veľmi natočený zvykol padať) rozhodli sme sa upraviť ešte choreografiu pre chôdzu. Rozpísali sme si spôsob ako kocúr chodí krok po kroku a potom sme každý krok prechádzali a upravovali natoľko aby kocúr počas chôdze a pri zatáčaní nepadal. Po mnohých pokusoch sa nám to nakoniec podarilo.


Kroky.jpg

Zdrojový kód

Link na GitHub