Korisnički alati

Site alati


studenti:mate_pavelic:mp_dnevnik

Razlike

Slijede razlike između dviju inačica stranice

Poveznica na ovu usporedbu

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 ​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-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ž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 dakada 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~~
studenti/mate_pavelic/mp_dnevnik.1390525053.txt.gz · Zadnja izmjena: 2023/06/19 16:21 (vanjsko uređivanje)