Slijede razlike između dviju inačica stranice
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
studenti:mate_pavelic:mp_dnevnik [2014/01/24 00:57] mpavelic [Dnevnik rada] |
studenti:mate_pavelic:mp_dnevnik [2023/06/19 16:21] (trenutno) |
||
---|---|---|---|
Redak 6: | Redak 6: | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | Prvo sam proučio dokumentaciju Arduina. Preuzeo sam program potreban za programiranje arduina. Saznao sam što je [[studenti:mate_pavelic:mp_nauceno|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 [[studenti:mate_pavelic:mp_nauceno|unipolarnih (FET)]] i [[studenti:mate_pavelic:mp_nauceno|bipolarnih (BJT)]], koja je razlika između podskupine bipolarnih tranzistora - [[studenti:mate_pavelic:mp_nauceno|PNP]] i [[studenti:mate_pavelic:mp_nauceno|NPN]] tranzistori. Saznao sam što je [[studenti:mate_pavelic:mp_nauceno|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 [[studenti:mate_pavelic:mp_nauceno|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. | + | Prvo sam proučio dokumentaciju Arduina. Preuzeo sam program potreban za programiranje Arduina. Saznao sam što je [[studenti:mate_pavelic:mp_nauceno|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 [[studenti:mate_pavelic:mp_nauceno|unipolarnih (FET)]] i [[studenti:mate_pavelic:mp_nauceno|bipolarnih (BJT)]], koja je razlika između podskupine bipolarnih tranzistora - [[studenti:mate_pavelic:mp_nauceno|PNP]] i [[studenti:mate_pavelic:mp_nauceno|NPN]] tranzistori. Saznao sam što je [[studenti:mate_pavelic:mp_nauceno|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 [[studenti:mate_pavelic:mp_nauceno|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. |
+ | |||
+ | Paljenje ledice po Fibonaccijevom nizu: | ||
+ | <code> | ||
+ | int LED = 13; | ||
+ | int wait = 200; | ||
+ | int f[3] = {0, 1, 1}; | ||
+ | int n = 2; | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(LED, OUTPUT); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | f[n] = f[n - 1] + f[n - 2]; | ||
+ | f[n - 2] = f[n - 1]; | ||
+ | f[n - 1] = f[n]; | ||
+ | |||
+ | for (int i = 0; i < f[n]; i++) { | ||
+ | digitalWrite(LED, HIGH); | ||
+ | delay(wait*2); | ||
+ | digitalWrite(LED, LOW); | ||
+ | delay(wait*2); | ||
+ | } | ||
+ | |||
+ | delay(wait*8); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Paljenje i gašenje ugrađene LEDice pomoću PC-a (tipke s brojkama 1 i 2): | ||
+ | |||
+ | <code> | ||
+ | int led = 13; | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(led, OUTPUT); | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | while (Serial.available() == 0); | ||
+ | int val = Serial.read() - 48; | ||
+ | Serial.println(val); | ||
+ | if (val == 1) { | ||
+ | digitalWrite(led, HIGH); | ||
+ | Serial.println("Ledica je upaljena"); | ||
+ | } | ||
+ | |||
+ | else if (val == 2) { | ||
+ | digitalWrite(led, LOW); | ||
+ | Serial.println("Ledica je ugasena"); | ||
+ | } | ||
+ | |||
+ | else { | ||
+ | Serial.println("Krivi broj"); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </code> | ||
----- | ----- | ||
=== 2. tjedan (28.10 - 3.11.2013.) === | === 2. tjedan (28.10 - 3.11.2013.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | Proučio sam i saznao kako rade stepper (koračni) motori. Pronašao sam koje su dvije glavne skupine stepper motora - [[studenti:mate_pavelic:mp_nauceno|UNIPOLARNI]] i [[studenti:mate_pavelic:mp_nauceno|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 [[studenti:mate_pavelic:mp_nauceno|Arduino bootloader]] i napravio sam [[studenti:mate_pavelic:mp_nauceno|Arduino parallel programmer]] prema uputama na službenim Arduino stranicama koji se može koristiti za postavljanje (upload) Arduino bootloadera na zamjenski mikrokontroler. | + | Proučio sam i saznao kako rade stepper (koračni) motori. Pronašao sam koje su dvije glavne skupine stepper motora - [[studenti:mate_pavelic:mp_nauceno|UNIPOLARNI]] i [[studenti:mate_pavelic:mp_nauceno|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 (po jedan H-bridge za svaku zavojnicu). Pogledao sam što je to [[studenti:mate_pavelic:mp_nauceno|Arduino bootloader]] i napravio sam [[studenti:mate_pavelic:mp_nauceno|Arduino parallel programmer]] prema uputama na službenim Arduino stranicama. On se može koristiti za postavljanje (upload) Arduino bootloadera na zamjenski mikrokontroler. |
== Daljnji koraci == | == Daljnji koraci == | ||
Redak 19: | Redak 78: | ||
=== 3. tjedan (4.11 - 10.11.2013.) === | === 3. tjedan (4.11 - 10.11.2013.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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 spajao na protoboard i nakon što sam ih par puta spojio i odspojio na protoboard, žice su otpale s motora. | + | 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. |
+ | Schema: | ||
+ | |||
+ | {{ :studenti:mate_pavelic: upravljanje.jpg |}} | ||
+ | |||
+ | Na schemi je korišten SN754410 (http://www.alldatasheet.com/datasheet-pdf/pdf/177345/TI/SN754410.html) jer je on jedini ponuđen u Fritzingu, ali način spajanja je isti kao da je korišten L293NE | ||
+ | |||
+ | Program za upravljanje (mijenjenje smjera) motorima: | ||
+ | |||
+ | <code> | ||
+ | const int LIJEVIGORE = 3; | ||
+ | const int LIJEVIDOLJE = 5; | ||
+ | const int DESNIGORE = 6; | ||
+ | const int DESNIDOLJE = 9; | ||
+ | int i; | ||
+ | |||
+ | void setup () { | ||
+ | pinMode (LIJEVIGORE, OUTPUT); | ||
+ | pinMode (LIJEVIDOLJE, OUTPUT); | ||
+ | pinMode (DESNIGORE, OUTPUT); | ||
+ | pinMode (DESNIDOLJE, OUTPUT); | ||
+ | } | ||
+ | |||
+ | void loop () { | ||
+ | analogWrite (LIJEVIGORE, 255); | ||
+ | analogWrite (LIJEVIDOLJE, 0); | ||
+ | analogWrite (DESNIGORE, 0); | ||
+ | analogWrite (DESNIDOLJE, 255); | ||
+ | | ||
+ | delay (5000); | ||
+ | | ||
+ | analogWrite (LIJEVIGORE, 0); | ||
+ | analogWrite (LIJEVIDOLJE, 255); | ||
+ | analogWrite (DESNIGORE, 255); | ||
+ | analogWrite (DESNIDOLJE, 0); | ||
+ | | ||
+ | delay (5000); | ||
+ | } | ||
+ | </code> | ||
== Daljnji koraci == | == Daljnji koraci == | ||
- | Pronaći bipolarni stepper motor s bolje izvedenim priključcima i ponovo upravljati motorom s Arduinom i L293NE. | + | Pronaći bipolarni stepper motor s bolje izvedenim priključnim žicama i ponovo upravljati motorom s Arduinom i L293NE. |
----- | ----- | ||
=== 4. tjedan (11.11 - 17.11.2013.) === | === 4. tjedan (11.11 - 17.11.2013.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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 [[studenti:mate_pavelic:mp_nauceno|Arduino bootloader]] na zamjenski IC ATMEGA8-16PU (http://pdf1.alldatasheet.com/datasheet-pdf/view/171443/ATMEL/ATMEGA8-16PU.html) pomoću [[studenti:mate_pavelic:mp_nauceno|parallel port programmera]] kojeg sam napravio. | + | 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 pomoću Arduina i s L293NE-om (http://datasheet.octopart.com/L293NE-Texas-Instruments-datasheet-8627554.pdf). Uplodao sam [[studenti:mate_pavelic:mp_nauceno|Arduino bootloader]] na zamjenski IC ATMEGA8-16PU (http://pdf1.alldatasheet.com/datasheet-pdf/view/171443/ATMEL/ATMEGA8-16PU.html) pomoću [[studenti:mate_pavelic:mp_nauceno|parallel port programmera]] kojeg sam napravio. |
~~NOTOC~~ | ~~NOTOC~~ | ||
Redak 34: | Redak 131: | ||
=== 5. tjedan (18.11 - 24.11.2013.) === | === 5. tjedan (18.11 - 24.11.2013.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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. | + | Napravio sam prvu verziju Bee-bota kojom 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. |
+ | |||
+ | Program: | ||
+ | |||
+ | <code> | ||
+ | const int lijevigore = 10; | ||
+ | const int lijevidolje = 9; | ||
+ | const int desnigore = 6; | ||
+ | const int desnidolje = 5; | ||
+ | int val = 0; | ||
+ | #define BRZINA 255 | ||
+ | |||
+ | void setup () { | ||
+ | pinMode (lijevigore, OUTPUT); | ||
+ | pinMode (lijevidolje, OUTPUT); | ||
+ | pinMode (desnigore, OUTPUT); | ||
+ | pinMode (desnidolje, OUTPUT); | ||
+ | Serial.begin (9600); | ||
+ | } | ||
+ | |||
+ | void loop () { | ||
+ | |||
+ | if (Serial.available() > 0) { | ||
+ | val = Serial.read(); | ||
+ | if (val == 'a') { | ||
+ | analogWrite (desnigore, 0); | ||
+ | analogWrite (desnidolje, BRZINA); | ||
+ | analogWrite (lijevigore, 0); | ||
+ | analogWrite (lijevidolje, BRZINA); | ||
+ | } | ||
+ | |||
+ | if (val == 's') { | ||
+ | analogWrite (desnigore, BRZINA); | ||
+ | analogWrite (desnidolje, 0); | ||
+ | analogWrite (lijevigore, BRZINA); | ||
+ | analogWrite (lijevidolje, 0); | ||
+ | } | ||
+ | |||
+ | if (val == 'd') { | ||
+ | analogWrite (desnigore, 0); | ||
+ | analogWrite (desnidolje, 0); | ||
+ | analogWrite (lijevigore, 0); | ||
+ | analogWrite (lijevidolje, 0); | ||
+ | } | ||
+ | |||
+ | if (val == 'w') { | ||
+ | analogWrite (desnigore, 0); | ||
+ | analogWrite (desnidolje, BRZINA); | ||
+ | analogWrite (lijevigore, BRZINA); | ||
+ | analogWrite (lijevidolje, 0); | ||
+ | } | ||
+ | |||
+ | if (val == 'q') { | ||
+ | analogWrite (desnigore, BRZINA); | ||
+ | analogWrite (desnidolje, 0); | ||
+ | analogWrite (lijevigore, 0); | ||
+ | analogWrite (lijevidolje, BRZINA); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
== Daljnji koraci == | == Daljnji koraci == | ||
- | 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. | + | Napraviti cjelokupni program za rad Bee-bota, uplodati programe direktno na zamjenski čip bez prethodnog uplodanja bootloadera. |
~~NOTOC~~ | ~~NOTOC~~ | ||
Redak 43: | Redak 201: | ||
=== 6. tjedan (25.11 - 1.12.2013.) === | === 6. tjedan (25.11 - 1.12.2013.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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. | + | 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. |
~~NOTOC~~ | ~~NOTOC~~ | ||
Redak 49: | Redak 207: | ||
=== 7. tjedan (2.12 - 8.12.2013.) === | === 7. tjedan (2.12 - 8.12.2013.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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. | + | Proučio sam kako i na koji način radi laserski miš za računalo i njeogv IC ću kasnije, ukoliko bude vremena, iskoristiti za određivanje brzine Bee-bota. |
== Daljnji koraci == | == Daljnji koraci == | ||
- | 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. | + | 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. |
~~NOTOC~~ | ~~NOTOC~~ | ||
Redak 58: | Redak 216: | ||
=== 8. tjedan (9.12 - 15.12.2013.) === | === 8. tjedan (9.12 - 15.12.2013.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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. | + | 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. |
== Daljnji koraci == | == Daljnji koraci == | ||
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. | 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. | ||
Redak 67: | Redak 225: | ||
=== 10. tjedan (16.12 - 22.12.2013.) === | === 10. tjedan (16.12 - 22.12.2013.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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. | + | 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 CD/DVD drivea dio kučišta na kojem se nalazi DC motor zajedno sa zupčanicima koji izbacuju "ladicu" drivea. |
== Daljnji koraci == | == Daljnji koraci == | ||
- | Pokušati staviti IC od laserskog miša i mjeriti brzinu konstrukcije. | + | Staviti DC motore sa zupčanicima koji se nalaze na komadu plastike iz kučišta CD/DVD drivea na šasiju autića. |
~~NOTOC~~ | ~~NOTOC~~ | ||
Redak 75: | Redak 233: | ||
=== 11. tjedan (23.12 - 29.12.2013.) === | === 11. tjedan (23.12 - 29.12.2013.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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. | + | 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. Autićem 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. |
== Daljnji koraci == | == Daljnji koraci == | ||
- | Proučiti librarye napravljenje za Arduino za upravljanje IC-a 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. | + | 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. |
~~NOTOC~~ | ~~NOTOC~~ | ||
Redak 83: | Redak 241: | ||
=== 12. tjedan (30.12.2013. - 5.1.2014.) === | === 12. tjedan (30.12.2013. - 5.1.2014.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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 uploada bez javlja grešaka. | + | Napravio sam novi dijagram stanja i dijagram toka programa. Napravio sam pojednostavljeni sklop autića s tri push-buttona i dvije ledice. Pritiskanje prva dva gumba određuje koja će LEDica blinkati, a treći gumb, kada se pritisne, u programu predstavlja kraj unosa naredbi preko prva dva gumba. Još nisam uspio dobiti program da ispravno radi, mada se program uploada bez javljanja grešaka. |
+ | |||
+ | Dijagram stanja (gornja slika) i dijagram toka programa (donja slika): | ||
+ | |||
+ | {{:studenti:mate_pavelic:dijagram.jpg|Dijagram stanja}} | ||
+ | |||
+ | {{:studenti:mate_pavelic:dijagram1.jpg|Dijagram toka programa}} | ||
== Daljnji koraci == | == Daljnji koraci == | ||
- | Poraviti program da radi kako treba i onda proširiti funkcionalnost na autić. Popraviti i doraditi dijagram stanja i dijagram toka programa | + | Poraviti program da radi kako treba i onda proširiti funkcionalnost na autić. |
~~NOTOC~~ | ~~NOTOC~~ | ||
Redak 91: | Redak 256: | ||
=== 13. tjedan (6.1.2014. - 12.1.2014.) === | === 13. tjedan (6.1.2014. - 12.1.2014.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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 određuje kada je gotov unos naredbi i kada će početi blinkanje, a šesti služi za brisanje unešenih naredbi. | + | 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 će služiti za brisanje unešenih naredbi |
+ | |||
+ | Na schemi, LEDica koje je skroz desno je prva, od desna na lijevo redni brojevi im rastu do 4. Isto je i kod gumbova. Onaj skroz desno je prvi i od desna na lijevo redni brojevi im rastu do 6. Otpornici korišteni s LEDicama iznose 220 oma. Otpornici korišteni s gumbima iznose 2200 oma. [[studenti:mate_pavelic:mp_nauceno|Ovdje]] se nalazi objašnjenje kako se jedan analogan pin na Arduinu može iskoristiti za očitavanje više push-buttona. | ||
+ | |||
+ | Schema: | ||
+ | |||
+ | {{ :studenti:mate_pavelic:ledice.jpg }} | ||
== Daljnji koraci == | == Daljnji koraci == | ||
- | Postići da kada se stisne peti gumb dok LEDice još blinkaju, blinkanje prestane. | + | Postići da, kada se stisne peti gumb dok LEDice još blinkaju, blinkanje prestane. |
Redak 101: | Redak 273: | ||
=== 14. tjedan (13.1.2014. - 19.1.2014.) === | === 14. tjedan (13.1.2014. - 19.1.2014.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | 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 se LEDica blinka. Program sada unešene naredbe (pritiske gumbiju) sprema u EEPROM. | + | 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. |
== Daljnji koraci == | == Daljnji koraci == | ||
~~NOTOC~~ | ~~NOTOC~~ | ||
Redak 107: | Redak 279: | ||
---- | ---- | ||
=== 15. tjedan (20.1.2014. - 26.1.2014.) === | === 15. tjedan (20.1.2014. - 26.1.2014.) === | ||
+ | == Dosadašnji rad == | ||
+ | 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. | ||
+ | == Daljnji koraci == | ||
+ | Primjeniti program na autiću. | ||
+ | ~~NOTOC~~ | ||
+ | |||
+ | ---- | ||
+ | === 16. tjedan (27.1.2014. - 2.2.2014.) === | ||
+ | == Dosadašnji rad == | ||
+ | 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. | ||
+ | == Daljnji koraci == | ||
+ | Naći drugo rješenje za središnji kotač. | ||
+ | ~~NOTOC~~ | ||
+ | |||
+ | ---- | ||
+ | === 17. tjedan (3.2.2014. - 9.2.2014.) === | ||
+ | == Dosadašnji rad == | ||
+ | Probao sam umjesto središnjeg kotača staviti kuglicu. Nije pomoglo jer je fiksirana, pa autić samo struže njome po podu. | ||
+ | == Daljnji koraci == | ||
+ | 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. | ||
+ | ~~NOTOC~~ | ||
+ | |||
+ | ---- | ||
+ | === 18. tjedan (10.2.2014. - 16.2.2014.) === | ||
+ | == Dosadašnji rad == | ||
+ | Na mjesto središnjeg kotača stavio sam završetak dezodoransa. Onaj dio kojim se nanosi tj. loptica u "čašici" koja se laganim pokretom okreće u bilo kojem smjeru. Autić se može pomicati naprijed-nazad, ali još uvijek se ne pomiče lijevo-desno. Mislim da je to zbog toga što nema svaki motor isti prijenos, jednom se prijenos sastoji od tri zupčanika, a drugom od dva zupčanika. Tako da se kotači ne okreču u potpunosti jednako. Probati ću naći još jedan prijednos koji bi odgovarao jednom od sadašnjih koje imam. Krenuo sam sa izradom završnog programa. | ||
+ | == Daljnji koraci == | ||
+ | Završiti program i pronaći prijenos za motore koji je isti kao jedan od sadašnja dva ili pokušati napraviti jedan. | ||
+ | ~~NOTOC~~ | ||
+ | |||
+ | ---- | ||
+ | === 19. tjedan (17.2.2014. - 23.2.2014.) === | ||
+ | == Dosadašnji rad == | ||
+ | Napravio sam završni program i radi kako treba. Očitavanje tipki se dešava tokom interrupta (svakih 0.16 milisekindi) i svaka tipka se sprema u buffer. Buffer je polje od 50 elemenata. Kada se dođe do kraja polja, spremanje tipki kreće od početka polja. U glavnom dijelu programa, ukoliko je program u stanju "PROGRAMIRANJE", iz buffera se čitaju tipke i ukoliko su to tipke: "NAPRIJED", "NAZAD", "LIJEVO" ili "DESNO", onda se one spremaju u polje za naredbe. Ukoliko je u bufferu tipka "CLEAR", onda se trenutno zapisane naredbe "brišu". Te ako je u bufferu tipka "GO", kreće se s izvođenjem naredbi koje su zapisane u polju naredbe i stanje postaje "VOZI". Ako je stanje "VOZI" i pritisne se tipka "GO", autić se zaustavlja, stanje postaje "PROGRAMIRAJ" i ponovo se čekaju nove naredbe. | ||
+ | == Daljnji koraci == | ||
+ | Prokomentirati program s profesorom i vidjeti što napraviti s motorima. | ||
+ | ~~NOTOC~~ | ||
+ | |||
+ | ---- | ||
+ | === 20. tjedan (24.2.2014. - 2.3.2014.) === | ||
+ | == Dosadašnji rad == | ||
+ | Program je imao problem da je jedan pritisak neke tipke očitavao kao više njih ([[studenti:mate_pavelic:mp_nauceno|bouncing]]) i to sam popravio i sada je program završen i radi bez problema. | ||
+ | == Daljnji koraci == | ||
+ | Naći rješenje za motore. | ||
+ | ~~NOTOC~~ | ||
+ | |||
+ | ---- | ||
+ | === 21. tjedan (3.3.2014. - 9.3.2014.) === | ||
== Dosadašnji rad == | == Dosadašnji rad == | ||
== Daljnji koraci == | == Daljnji koraci == | ||
+ | Naći rješenje za motore. | ||
~~NOTOC~~ | ~~NOTOC~~ |