Liniją senkantis robotas
Įrašyta 2009-05-28, 21:57 | 3 KomentaraiŠį trimestrą univiere darėm du projektus: liniją sekantį robotą ir skaitmeninį termometrą. Robotas, nors ir keistai nuskambės, buvo programinės įrangos projektas. Mes nedarėme geležies dizaino, tiesiog susilitavome duotas dalis. Pagrindinė užduotis buvo parašyti programą, kuri tą robotą valdys.
Roboto smegenys - PIC18F4450 mikrokontroleris. Linijos aptikimui naudojami 5 IR diodai ir 5 IR fotodiodai. Kūnas kažkoks kinietiškas, du ratai varomi DC motoriukų. Motorai valdomi naudojant L298 draiverį.
Robotas programuojamas per usb. Mikrokontroleryje sukasi USB HID bootloader'is iš Microchip. Kompiliavom su C18 kompaileriu, o hex kodą į mikro kėlėm su programa iš to pačio Microchip.
Iš pradžių dar bandžiau susirasti Linux programas, bet nepavyko rasti hex uploaderio. Daėjau iki to, kad skaičiau libusb dokumentaciją, bootloaderio kodą ir snifinau paketus :D Šiaip sakyčiau gan neblogai pavyko (dar neveikia), ypač kai neturėjau jokios normalios specifikacijos. Jei atiduos robotus pabandysiu gal per vasarą pratęst.
Surininktas robotas atrodo maždaug taip:
Veiksmo univiero trasoje kažkaip nenufilmavau, bet šiame video matosi kaip robotas veikia.
O tokią vat trasą turėjo įveikti robotai.
Jei kam smalsu galite pažiūrėti ir kodą.
Gairės: Elektronika, PIC, Programavimas, Robotas, Univieras, Video
3 Komentarai
1. Dalius
2009-05-29, 05:40Įdomu. Tu daugiau apie tokius dalykus parašyk :-) Aš va domiuosi http://www.arduino.cc/ šiuo metu, nors dar net neturiu kur įgydenti vieną idėją.
2. Armandas
2009-05-29, 09:37Na tai man ir įdomu kas aktualu skaitytojam. Jei "daugiau" reiškia detaliau, tai paklauskit komentaruose ir būtinai pratęsiu ir jei atsiras tų norinčių, kituose įrašuose pasitaisysiu :) O jei sakydamas daugiau turi galvoje daugiau įrašų, tai turėkit kantrybės, mano "karjera" dar tik prasideda :D
Kas dėl arduino, tai buvau įsigijęs Duemilanove, bet nieko rimto dar su juo nenuveikiau. Šiaip kadangi pirkau labiau mokymosi tikslais, tai programavimui nenaudojau to Arduino "freimworko". Grynas C kol kas man yra aktualiau.
3. Artūras Šlajus
2009-05-30, 12:11Plem, va čia tai įdomybės univere :)) KTU ilsisi :D