Ovo je stara izmjena dokumenta!
Napravio sam prvu verziju Bee-bota koji se upravlja računalom preko USB kabela i može se kretati u smjeru naprijed-nazad. Rastavio sam DVD drive i na donji pravokutni dio limenog kučišta sam pričvrstio tri DC motora. Po jedan sa stražnje lijeve i desne strane i jedan naprijed u sredini. Zadnja dva sam spojio na Arduino, protoboard, IC s H-bridegom i njima pokretao autić, dok je prednji motor služio samo za održavanje ravnoteže.
Napraviti cjelokupni program za rad Bee-bota, proučiti i naći rješenja za “ekstremne” slučajeve u kojima se Bee-bot može naći, uplodati programe direktno na zamjenski čip bez prethodnog uplodanja bootloadera.
Mislim da bi rješenje za određivanje je li Bee-bot u nekom od “ekstremnih” slučajeva (podignut s poda, proklizavanje kotača …) bilo korištenje akcelerometra koji može mjeriti vibracije. Odredio bih koliko iznose vibracije kada je Bee-bot u normalnom načinu rada i napravio bi rješenja za situacije kada se nađe u zabranjenom načinu rada. Umjesto prednjeg DC motora stavio sam kotač koji se može rotirati za 360 stupnjeva i tada bi autić mogao mijenjati smjer na način da se nakratko ugasi motor suprotan od strane u koju se želi dovesti autić tj. da se ostavi upaljen onaj u koju se stranu želi skrenuti. Tako ako se ostavi ugašen desni motor i lijevi upaljen motor će skrenuti u lijevo. Autić se nije pomicao, iako su motori radili kako treba. Pretpostavljam da su preslabi.
Proučio sam kako i na koji način radi laserski miš za računalo i njeogv IC ću iskoristiti za određivanje brzine i stanja Bee-bota.
Napraviti “dijagram stanja” koji će grafički prikazati što će Bee-bot izvršavati i u kojem će se stanju naći u ovisnosti o unešenoj naredbi.
Napravio sam “dijagram stanja” koji pokazuje kako bi Bee-bot trebao raditi. Proučio sam i uspio uplodati program (sketch) na Arduino direktno, bez prethodnog uplodanja bootloadera, kako bi se uštedilo na količini memorije.
Probati pomoću zupčanika iz CD/DVD drivea dobiti da se Bee-bot može pomicati, jer DC motori imaju preslabi okretni momenat da bi uopće pokrenuli cijelu konstrukciju.
Zupčanici iz CD/DVD drivea neće biti dobri jer nema niti jedan par međusobno istih zupčanika i niti jedan se ne može staviti na već izvađene motore. Izvadio sam iz dva DC/DVD drivea dio kučišta na kojem se nalazi DC motor zajedno sa zupčanicima koji se izbacuju “ladicu” drivea.
Pokušati staviti IC od laserskog miša i mjeriti brzinu konstrukcije.
Motore sam zajedno sa zupčanicima na plastici iz kučišta drivea pričvrstio na šasiju i sada se konstrukcija bez problema pomiče u bilo kojem smjeru. Zamijenio sam podlogu od CD/DVD drivea na kojoj se nalazio sklop i na kojoj su bili pričvršćeni motori s poklopcem (gornjom stranom) HDD-a koja je čvršća i lakša i čitavom konstrukcijom za sada upravljam preko laptopa koji je USB kabelom spojen na Arduino i šaljem mu naredbe, preko serial porta, u kojem smjeru da okreče motore.
Proučiti librarye napravljenje za Arduino za upravljanje IC-em iz laserskog miša. Saznati kako programirati Arduino da upravlja konstrukcijom bez da je prikopčan na laptop putem USB-a i da mu kao izvor energije služi baterija.
Napravio sam dijagram stanja i dijagram toka programa. Napravio sam pojednostavljeni sklop autića s tri push-buttona i dvije ledice. Pritiskanje prva dva gumba bi određivalo koja će LEDica blinkati, a treći gumb, kada se pritisne, bi u programu predstavljao kraj unosa naredbi preko prva dva gumba. Još nisam uspio dobiti program da ispravno radi, mada se program uploada bez javljanja grešaka.
Poraviti program da radi kako treba i onda proširiti funkcionalnost na autić. Popraviti i doraditi dijagram stanja i dijagram toka programa
Dodao sam još tri LEDice i sada ih ima sveukupno četiri i one predstavljaju smjer gibanja autića. Spojio sam i šest push-buttona od kojih prva četiri određuju koja će se LEDica blinkati. Peti button određuje kada je gotov unos naredbi i kada će početi blinkanje, a ako se pritisne dok LEDice blinkaju, označava kraj tj. LEDice prestaju blinkati. Šesti button služi za brisanje unešenih naredbi
Postići da kada se stisne peti gumb dok LEDice još blinkaju, blinkanje prestane.
Dodao sam mogučnost programu da, kada je pritisnut peti gumb, blinkanje prestane i program ponovo čeka pritisak nekih od prva četiri gumba koji označuju koja će LEDica blinkati. Program sada unešene naredbe (pritiske gumbiju) sprema u EEPROM.
Napravio sam program gdje se u “glavnom dijelu” (void loop) očitavaju pritisnute tipke, određuje u kojem se stanju program trenutno nalazi i onda koje LEDice upaliti ili ugasiti. Dodan je i interrupt koji se dešava 5 puta u sekundi i on provjerava koje je trenutno stanje i da li je pritisnut peti gumb. Ukoliko je program u stanju blinkanja LEDica i peti gumb nije pritisnut, blinkanje se nastavlja. Ukoliko je program u stanju blinkanja LEDica i peti gumb je pritisnut, blinkanje prestaje i program prelazi u stanje “programiranja” i čeka nove pritiske buttona koji određuju kako blinkati LEDice.
Primjeniti program na autiću.
Prebacio sam breadboard i Arduino na šasiju autića, priključio bateriju i pokrenuo ga. Autić se bez problema giba naprijed/nazad, ali skretanje je problem zbog središnjeg kotača koji se ne okreče dovoljno brzo.
Naći drugo rješenje za središnji kotač.
Probao sam umjesto središnjeg kotača staviti kuglicu. Nije pomoglo jer je fiksirana, pa autić samo struže njome po podu.
Napraviti program gdje će se očitavanje tipki i određivanje stanja dešavati u interruptu, a u glavnom dijelu programa će se samo izvoditi naredbe vezane za pojedinu tipku. Napraviti središnji kotač na principu starog računalnog miša s kuglicom, gdje je kuglica u potpunosti slobodna i može se okretati u bilo kojem smjeru.