Ovo je stara izmjena dokumenta!
Prvo sam proučio dokumentaciju Arduina. Preuzeo sam program potreban za programiranje arduina. Saznao sam što je Arduino, kako radi i kako se programira, njegovu sintaksu i o načinu na koji Arduino razmjenjuje podatke sa računalom i ostalim uređajima s kojima se može spojiti. Programirao sam ga da blinka ugrađenu LED-icu u intervalu od jedne sekunde i u intervalima Fibonaccijevog niza, te da se blinkanje može upravljati računalom. Kako bi Arduinom upravljao elektromotor, proučio sam što je tranzistor, koja je razlika između unipolarnih (FET) i bipolarnih (BJT), koja je razlika između podskupine bipolarnih tranzistora - PNP i NPN tranzistori. Saznao sam što je H-bridge, kako se koristi za kontrolu elektromotora i kako se navedeni tranzistori koriste u izradi takvog sklopa. Registrirao sam se na Zoteri i postavio do sada korištene stranice. Saznao sam što je poskakivanje (bouncing) signala kod tipki (push buttons) i kako riješiti taj problem. Izmjerio sam struju koja prolazi kroz motor kada je priključen na 1, 2 i 3 volta, te struju na istim naponima kada se motor namjerno fizički zaustavi. Napravio sam H-bridge od četiri NPN tranzistora i upravljao sam elektromotorom pomoću Arduina i mijenjao smjer vrtnje preko programa. Dodao sam pushbutton i njime i Arduinom mijenjao smjer vrtnje.
Proučio sam i saznao kako rade stepper (koračni) motori. Pronašao sam koje su dvije glavne skupine stepper motora - UNIPOLARNI i BIPOLARNI stepper motori. Saznao sam po čemu se razlikuju i iz starog floppy disk drivea sam izvadio bipolarni stepper motor. Saznao sam da je za upravljanje bipolarnim stepper motorom potrebno imati dva H-bridgea zbog njegove konstrukcije. Pogledao sam što je to Arduino bootloader i napravio sam Arduino parallel programmer prema uputama na službenim Arduino stranicama koji se može koristiti za postavljanje (upload) Arduino bootloadera na zamjenski mikrokontroler.
Pomoću integriranog čipa L293NE (http://datasheet.octopart.com/L293NE-Texas-Instruments-datasheet-8627554.pdf) kontrolirati bipolarni stepper motor iz floppy disk drivea i staviti Arduino bootloader na zamjenski mikrokontroler.
Pomoću IC-a L293NE (http://datasheet.octopart.com/L293NE-Texas-Instruments-datasheet-8627554.pdf) upravljao sam DC elektromotorom. S istim čipom sam upravljao i bipolarnim stepper motorm iz floppy diska, ali priključnice na motoru su međusobno dosta blizu jedna drugoj pa nisam uspio najbolje ih zalemiti za žice kojima bi sam motor lakše spojio na protoboard i nakon što sam ih par puta spojio i odspojio na protoboard, priključne žice su otpale s motora.
Pronaći bipolarni stepper motor s bolje izvedenim priključnim žicama i ponovo upravljati motorom s Arduinom i L293NE.
Pronašao sam bipolarni stepper motor iz floppy diska s dovoljnim razmakom između priključnih pinova na koje sam zalemio žice i uspio sam upravljati stepper motorom s Arduinom i L293NE-om (http://datasheet.octopart.com/L293NE-Texas-Instruments-datasheet-8627554.pdf). Uplodao sam Arduino bootloader na zamjenski IC ATMEGA8-16PU (http://pdf1.alldatasheet.com/datasheet-pdf/view/171443/ATMEL/ATMEGA8-16PU.html) pomoću parallel port programmera kojeg sam napravio.
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.