Croatian

2016 / Robotika / Radionica 4 i Domaća zadaća 3

Danas je na red došao novi zadatak koji će nas zaokupiti možda i nekoliko sljedećih radionica:

Napraviti program za robota koji će se ponašati na sljedeći način:

  • program se pokreće nakon pritiska na tipkalo na robotu. Dok tipka nije pritisnuta, LED svjetla su na robotu ugašena. Kada se tipka pritisne tada se uključe oba LED svjetla u plavoj boji.
  • ako je na daljinskom pritisnuto naprijed onda robot ide naprijed. Ukoliko pri kretanju naiđe na prepreku koja je bliže od 25 tada robot mora stati i zapištati dva puta
  • ako se na daljinskom pritisne tipka za nazad tada se robot mora okrenuti za 180 stupnjeva (otprilike). Ako se robot kretao prije okretanja tada se nakon okretanja mora nastaviti kretati.
  • ako je pritisnuta tipka lijevo na daljinskom tada se robot okreće u lijevo sve dok se ne otpusti tipka. Kada se tipka otpusti robot treba nastaviti naprijed ako se prije okretanja kretao naprijed.
  • ako je pritisnuta tipka desno na daljinskom tada se robot okreće u desno sve dok se ne otpusti tipka. Kada se tipka otpusti robot treba nastaviti naprijed ako se prije okretanja kretao naprijed.
  • ako je pritisnuta tipka A na daljinskom tada robot mora stati
  • svaki put kada program počne raditi nešto na pritisak tipke robot mora jednom zapištati

  

Domaća zadaća ima dva zadatka:

Zadatak 1

Napravi program u kojemu će panda slijediti miša. Dok se kreće za mišem panda mora izmjenjivati svoje dvije slike te davati dojam kao da hoda. Ukoliko panda doše na lokaciju gdje je miš tada mora reći "ulovio sam te" no čim se strelica miša pokrene ta poruka treba biti uklonjena.

  • Pomoć

    Program sa kojim panda slijedi miša smo napravili na prošloj domaćoj zadaći. Najjednostavnije rješenje da bi panda slijedio miša a da se vidi njegovo kretanje je:

    2016 robotika slijedi misa

    Ovo rješenje ima tu manu da se panda uvijek pokreće na onu poziciju miša koju je ugledao i dok ne stigne na to mjesto - panda ne gleda gdje je miš. Što se duže kreće to je vidljivije da panda ne reagira na pokrete miša dok ne stigne na mjesto gdje ga je ugledao prije pokretanja (povećajte vrijednost u "pomoči" na recimo 2 sekunde i probajte pomicati miša dok se panda kreće.

    Da bi ispravno riješili zadatak moramo omogućiti da panda mijenja sliku nakon svakog koraka a to znači da panda ne može ići na poziciju miša jer do te pozicije može biti puno koraka a mi ne možemo dok panda ne stigne - promjeniti pandi sliku. Zato trebamo pomicati pandu korak po korak prema mišu i pri svakom pomicanju za jedan korak moramo promijeniti pandinu sliku na onu koja nije tada postavljena. Izmjenjujući slikice dok se panda kreće dobivamo dojam da panda hoda. Jedan pandin korak ne mora biti veličine 1. Što je korak veći to će se panda brže kretati.

  • Prijedlog rješenja

    U beskonačnoj petlji neka panda prvo pogleda gdje je miš. Neka onda izračuna koja je udaljenost po X i po Y do miša kao i smjer gdje treba krenuti (predznak udaljenosti). Ukoliko je udaljenost po X ili po Y manja od koraka tada neka korak bude udaljenost (da se osiguramo da će panda uloviti miša a ne preskočiti ga). Kada se zna u kojem smjeru se treba kretati tada se treba izračunati nova pandina pozicija tako da se sadašnja pandina pozicija po X i po Y umanji ili uveća za dužinu koraka (ovisno o tome u kojem pravcu panda mora ići) te neka se panda uputi na tu novu poziciju bekom brzinom od recimo 0.1 sek.  Nakon što je panda napravio korak neka izmijeni svoju sliku na drugu. Da bi zadatak uspješno bio rješen treba se dakle pamtiti koja je slika pande aktivna, koji je predznak po X i Y za udaljenost od pande do miša i koji je korak po X i Y.

  • Rješenje

    Program za mBlock možete preuzeti ovdje.

    Ovako on izgleda:

    2016 robotika DZ3 / hodaj za misem

 

Zadatak 2

Napravi program kod kojega će panda nacrtati dva pravokutnika dužine stranice 100. Prvi pravokutnik mora biti smješten gore lijevo na papiru a drugi pravokutnik dole lijevo. Nakon crtanja panda se mora vratiti na sredinu ekrana i čekati. Kada korisnik sa mišem UĐE u gornji okvir tada mora reći „Evo te - GORE si!“ a kada sa mišem uđe u DONJI okvir tada mora reći „Vidim te – DOLJE si!“. Ako se miš ne nalazi ni u donjem ni u gornjem okviru tada panda mora „misliti“: „UFF ne vidim te ako nisi u kučicama koje sam nacrtao!“. Za one koji žele probati više: ako je miš izvan kučica ali se NE mrda barem 10 sekundi tada panda mora REĆI:  „Hej ne ljenčari! Mrdni guzu!“

  • Pomoć

    Već smo u prethodnim zadacima crtali pravokutnike pa vam kvadrat (pravokutnik kojemu su sve stranice iste dužine) ne bi trebao biti problem. Ovdje je glavna stvar shvatiti da središte ekrana predstavlja poziciju 0,0 Sve što je od te pozicije lijevo (X) je manje od nule a sve što je desno je veće od nule. Sve što je od te pozicije iznad (Y) je veće od nule a sve što je ispod je manje od nule.

    Ako pokušate micati miša u prozoru od pande, tada ćete u donjem desnom dijelu tog prozora vidjeti kako se mijenjaju X i Y brojke - te brojke predstavljaju poziciju miša. Probajte odrediti gdje bi otprilike trebao početi prvi kvadrat a gdje bi trebao početi drugi kvadrat. Probajte napraviti tako da vam kvadrati budu za nekih 10 točaka udaljeni od rubova.  

    Ako ste sposobni nacrtati kvadrat tada znate i koji su njegovi najmanji X i najveći X kao i najmanji Y i najveći Y. Kada panda gleda gdje je miš tada je potrebno da ispita da li mu se X pozicija nalazi između najmanje i najveće X pozicije kvadrata i Y pozicija miša mora biti unutar kvadrata po Y koordinati.

    Ovisno o tome u kojem je kvadratu - ispišite poruku.

  • Prijedlog rješenja

    Postoji jednostavnije i kompliciranije rješenje. Ja sam stvar riješio na kompliciraniji način i on ima svoje prednosti no stvar se može pojednostavniti.

    Dakle kao prvo sa mišem izračunajte gdje bi svaki kvadrat trebao započeti. Dužine stranica znate pa onda neka panda ode na početne pozicije i spusti pero pa nacrta prvo jedan pa onda drugi kvadrat (uz dizanje pera, premještanje i naravno ponovno sputanje pera). 

    Kada ste nacrtali sve vratite pandu na 0,0 i započnite beskonačnu petlju u kojoj prvo provjerite da li se x koordinata miša nalazi unutar prvog kvadrata po X osi a onda i da li se isto tako Y koordinata nalazi unutar prvog kvadrata po Y osi. Ako je to istina tada ispišite poruku a ako nije tada ispitajte da li se miš nalazi unuta drugog kvadrata. Ako je i to istina tada ispišite poruku a ako ni to nije točno tada ispišite treću poruku. :) Pogledajte moje rješenje - možda bude jasnije ;)

  • Rješenje

     Već sam spomenuo da sam ja malo kompliciranije rješenje. Kod mene panda ne zna unaprijed gdje mu je gornji i donji rub već ga ja potjeram u lijevo dok ne dođe do ruba pa onda zapamtim X koordinatu u varijablu lijevo. Onda ga potjeram prema gore do ruba i zapamtim Y poziciju u varijablu gore. U ovom trenutku znam gdje mogu nacrtati prvi kvadrat pa ga i nacrtam. nakon toga potjeram pandu prema dolje i kada dođe do donjeg ruba, tada Y poziciju zapamtim u varijablu dolje te nacrtam i drugi kvadrat.

    Dalje je sve prilično slično jednostavnijem rješenju s time da su moja lijeva i desna kao i gornja i donja granica kvadrata - izračunate na osnovu zapamćenih varijabli lijevo, gore i dolje. Znači malo više matematike koristim no rezultat je isti. Moje rješenje bi bilo bolje kada bi se pandu bacilo na veliki papir kod kojega se ne zna veličina i onda bi moj panda uvijek nacrtao pravokutnike blizu gornjeg i donjeg ruba i uvijek uz lijevu stranu papira.

    Program za mBlock možete preuzeti ovdje.

    Ovako on izgleda:

    2016 robotika DZ3 panda mis u kucicama



Škola robotike i programiranja - detaljno

Pozdrav svima!

Kao voditelj ove škole za majstorice i majstore pokušati ću ovdje dati pregled svega što se događalo na pojedinim radionicama. Radionice se odvijaju subotom u 9:30 ujutro u prostorijama Iskrinog ureda. Na radionicama pokušavamo obraditi kako opće probleme u programiranju i stvarima vezanim za računala, tako i probleme vezane za programiranje robota. U radu se koristimo mBot robotima. Roboti se temelje na Arduino platformi. Ukoliko želite saznati više o njima ili nabaviti takav robot tada možete potražiti pojam mBot na nekoj od tražilica (npr. Google). U Hrvatskoj postoji nekoliko mjesta za kupovinu takvih robota a CroatianMakers liga predlaže ovu Web trgovinu: https://arduino-elektronika.eu/hr/

Za programiranje koristimo program mBlock. Program omogućuje izradu kako programa za mBlock robote (i ostale robote iz Arduino platforme) tako i izradu programa za koje nije potrebno imati robota. Djeca nakon svake radionice dobivaju domaću zadaću. Domaća zadaća nije obavezna niti se ocjenjuje. Cilj domaće zadaće je da sudionici kroz istraživanje i razmišljanje pokušaju doći do rješenja. To rješenje ne mora biti idealno - niti u konačnici ne mora niti potpuno raditi - bitno je da je majstorica ili majstor proba samostalno napraviti svoj proizvod. Na sljedećoj radionici ili na ovim stranicama pokušati ćemo odraditi neko rješenje koje radi pa će i oni radoznali koji nisu uspjeli riješiti stvar - moći pokrenuti i pogledati kako se problem može riješiti.

 

Radionica 1 do 3 i prvo natjecanje

- naknadno unesem

 

Radionica 4 (7.5.2016)

Danas je na red došao novi zadatak koji će nas zaokupiti možda i nekoliko sljedećih radionica. Majstorice i majstori su također dobili i dvije domaće zadaće. Više detalja o svemu možete pronaći ovdje.

 

Radionica 5 (14.5.2016)

Zadatak još uvijek nije dovršen te smo danas nastavili sa pokušajima. Domaću zadaću su neki učenici poslali mailom i najuspješniji primjer možete potražiti u tekstu o Radionici 4. Na nastavi smo prošli kroz zadatke i objasnili pojedine segmente a ukoliko želite doznati i koji je novi zadatak tada za detalje pogledajte ovdje.

 

Radionica 6 (21.5.2016)

Zadatak još uvijek nije dovršen te smo danas nastavili sa pokušajima. I dalje zbunjuje čudno ponašanje senzora no većina kôda je napisana. Na sljedećoj radionici ćemo probati napraviti testni program koji će ispisivati vrijednosti senzora čime će majstorice i majstori uspjeti debugirati i ovaj problem :D
Pored svega, na nastavi smo prošli kroz rješenje prošle domaće zadaće i objasnili pojedine segmente a ukoliko želite doznati i koji je novi zadatak tada za detalje pogledajte ovdje.

 

Neki dodatni programi

- potražite ih ovdje

Ovdje ću pokušati ubaciti neke programe koje sam napisao sa željom da objasnim neke druge koncepte u programiranju koji nisu obuhvaćeni "klasičnim" linearnim pristupom koji se uči u osnovnoj školi. Recimo prvi program koji dajem se igra sa likovima. Pokazuje se rad sa više likova, način programiranja za njih i način njihove međusobne komunikacije - ovo je dobra osnova za objektno i "event driven" programiranje koje predstavlja neki uobičajeni pristup u današnjem svijetu programiranja. Sa svakim programom dolazi i doza uputa koje će, nadam se, dati prikladno objašnjenje sadržaja programa.

Individualno savjetovanje

usluge individualno savjetovanjeIskustva višegodišnjeg rada s pojedincima, grupama i obiteljima pokazala su da određeni osobni akutni problemi trebaju posebno vrijeme i stručnjaka koji će biti posvećen samo toj jednoj osobi, stoga smo u Iskri intenzivirali individuino savjetovanje kao oblik usluge za osobe koje trebaju savjet ili stručnu pomoć.

Obratite nam se s povjerenjem i u ugodnoj atmosferi potražite odgovor na svoja pitanja i probleme.

Dogovori i rezervacija termina na tel: 01/3381-772 ili na Ova e-mail adresa je zaštićena od spambota. Potrebno je omogućiti JavaScript da je vidite.

Usluge

Sadržaj u pripremi ....

Ova mrežna stranica izrađena je u sklopu projekta "Žene okreću novu stranicu" kojeg provodi udruga Iskra – Centar za edukaciju i savjetovanje. Projekt i izradu stranice sufinancirali su Europska unija iz Europskog socijalnog fonda i Ured za udruge Vlade Republike Hrvatske. Sadržaj ove mrežne stranice isključiva je odgovornost Iskre – Centra za edukaciju i savjetovanje. 

Top
Za što bolje korisničko iskustvo, ova internet stranica pohranjuje vaše kolačiće (cookies). Pritiskom gumba "Prihvaćam kolačiće" slažete se sa korištenjem kolačića. More details…