NOVI PROJEKT - 01
micro:bit AD-BW
ZAVRŠEN PROJEKT
Pr01_01.jpg
Micro:bit ima velike mogućnosti. Da bi vam omogućili prikaz dobivenih podataka napravili smo micro:bit AD-BW sučelje koje vam omogućava prikaz teksta, grafike, kreiranje igara, zvukova ili izvođenje melodija. Da bi u izradi programa mogli iskoristiti što više mogućnosti koje pruža sučelje micro:bit AD-BW, kreirali smo oko 30 različitih funkcija. Za početak smo obradili primjere programa koji ne koriste senzore ili druge ulazne module. Ovi demo programi samo prikazuju grafičke i audio mogućnosti sučelja. Načine korištenja ulaznih modula za prikaz vrijednosti na ekranu ili kao audio izlaz, planiramo obraditi u narednom periodu. Demo primjeri prikazuju način korištenja funkcija u programskom jeziku Python. Za Microsoft MakeCode podrška (library) je u izradi.
PROGRAMSKI PRIMJERI - ŠKOLA PROGRAMIRANJA:
1. TEHNIČKI OPIS11. STANJE TIPKALA (Python)
2. KOMPLETNA IGRA SA DVIJE PLATFORME (EKRANA) (MakeCode)NEW12. FOTO SENZORI - VRIJEDNOSTI (Python)
3. KONTROLE OBJEKTA - IGRAČ (MakeCode)13. FOTO SENZORI - GRAF VRIJEDNOSTI (Python)
4. VERTIKALNI POMAK VIŠE OBJEKATA - (MakeCode)14. KREIRANJE BIT MAPE
5. PLATFORM GAME - POČETAK (MakeCode)15. DIZAJN IGRE - EKRANA
6. FUNKCIJE ZA RAD S TEKSTOM (Python)16. PLATFORMASKA IGRA (Python)
7. SENZORI DODIRA17. IGRA - METEORI (Python)
8. GRAFIČKE FUNKCIJE U PRIMJENI - KOMPAS (Python)18. IGRA -  JEDNOSTAVNI PRIMJER (Python)
9. GRAFIČKE FUNKCIJE (Python)19. IGRA - LABIRINT (Python)
10. micro:bit AD + micro:bit IO F5 - I2C komunikacija (Python)
FAZA RAZVOJA
14.09.2020. Radimo na testiranju programske podrške i hardvera. Nove pločice s nekim izmjenama su u dolasku (konektor za programiranje). Priprema za izradu kućišta sučelja.
Pr01_06.jpg
28.09.2020. Nova verzija radi očekivano. dobili smo bolje cijene za neke dijelove i prekalkulirali prodajnu cijenu, tako da je promotivna cijena još povoljnija. NOVE CIJENE VAŽE ZA SVE PRED-NARUDŽBE.
06.10.2020. Započeli smo s testiranjem MakeCode programa i funkcija sučelja. Sučelje podržava oko 40 funkcija za prikaz podataka i izradu programa za igre.
24.10.2020. Programski dio je pri kraju. MakeCode biblioteka se testira i također je gotova. Mogu se vidjeti primjeri (kompletni program) programa. Kućište je u izradi.
Pr01_16.jpg
29.10.2020. Ispitani su prvi testni uzorci micro:bit AD kućišta. Još sitne korekcije i gotovo. Prve isporuke do 15.11.
TEHNIČKI OPIS
Pr01_02.jpg
Sučelje je micro:bit AD-BW je Arduino UNO kompatibilno i koristi ATMEGA328 mikroprocesor na 16 Mhz. Da bi vam omogućili programiranje sučelja ugradili smo konektor za programiranje. Sučelje je moguće programirati kao Arduino UNO ili putem programatora. Za grafički ili tekstualni prikaz sučelje koristi ekran (display) s rezolucijom 84x48 piksela. Za audio izlaz ugrađen je zvučnik od 0.5W s regulatorom jačine zvuka i spojen na pin P0 micro:bita. Za prihvat podataka od različitih senzora, koriste se tri ulazna konektora koja su spojena na pinove P1,P2 i P4. Na ulaze se mogu spojiti senzori sa signalom do 9V. Za napajanje senzora sučelje ima dva izlaza s napajanjem od 3.3V i 5V. Za napajanje sučelja i micro:bita mogu se koristiti baterija 9V ili USB adapter 5V.
KOMPLETNA IGRA SA DVIJE PLATFORME (EKRANA) (MakeCode)

Primjer igre sa dvije platforme i četiri objekta - ukupno šest na dva ekrana (max.20). U programu se mogu vidjeti sve glavne funkcije i parametri koji se trebaju (mogu) postaviti. Ima još funkcija koje utječu na igru i mogu se koristiti, kao što je automatska izmjena nivoa (LEVELA) igre. Od početne brzine (sporije) prema sve većoj brzini. Kontrola objekta igrača putem tipke A na micro:bitu (JUMP).
KONTROLE OBJEKTA - IGRAČ (MakeCode)

Objekt igrača možemo kontrolirati putem tipkala na micro:bitu (A i B) i analogno putem ulaza P1 i P2. Primjer prikazuje program za kontrolu u sva četiri smjera. Osim kontrole pomakom objekta za nekoliko piksela, objekt igrača može skakati. Ovu kontrolu prikazat ćemo u drugom primjeru.
VERTIKALNI POMAK VIŠE OBJEKATA - (MakeCode)

Primjer pomaka više objekata na ekranu putem SCROLL funkcije. Program putem RANDOM funkcije iscrtava objekte na horizontalnu (x) poziciju i početnu vertikalnu poziciju (y=0). Zatim se kompletan sadržaj ekrana pomakne (scroll) za osam piksela prema dolje.
PLATFORM GAME - POČETAK (MakeCode)

U svega OSAM KORAKA (dodali smo još jednu funkciju) postavlja se osnovna konstrukcija platformske igre. Ovaj osnovni primjer pokazuje kako se kreira objekt, platforma i određene karakteristike igre. Igrač se kontrolira putem tipke A na micro:bitu.
FUNKCIJE ZA RAD S TEKSTOM (Python)

Demo program prikazuje funkcije koje rade s ispisom i kontrolom teksta. Prikazane su funkcije ispisa teksta različite veličine u standardnom i grafičkom modu. Standardni mod koristi tekst rezoluciju ekrana (14x6), a grafički grafičku rezoluciju (84x48). Osim ispisa prikazane su funkcije za manipulaciju tekstom (scroll).
SENZORI DODIRA
Pr01_03.jpg
Da bi bila moguća kontrola kretanja objekta (igrača) u svim smjerovima, osim gumba A i B na micro:bitu, koristimo i ulaze P1 i P2. Za tu potrebu na vijke koji spajaju micro:bit i sučelje micro:bit AD-BW smo stavili polukružne kapice koje koristimo kao dodirne senzore.
GRAFIČKE FUNKCIJE U PRIMJENI - KOMPAS (Python)

Za prikaz podataka dobivenih od kompasa, koristili smo funkcije za iscrtavanje kružnice, punog kruga i linije.
GRAFIČKE FUNKCIJE (Python)

Demo prikazuje funkcije za iscrtavanje linije, kružnice, pravokutnika, piksela u kombinaciji sa scroll funkcijama. Scroll funkcije omogućavaju prikaz podataka u obliku GRAFA ili jednostavnu animaciju. Kombinacije scroll funkcija s grafičkim objektima, najbolje se mogu vidjeti u demo primjerima igara.
micro:bit AD + micro:bit IO F5 - I2C komunikacija (Python)

Micro:bit AD se može koristiti za prikaz vrijednosti u kombinaciji sa drugim sučeljima koja omogućavaju I2C (3.3V) komunikaciju. Prikazano sučelje je micro:bit IO F5 koje ima konektor za I2C (3.3V) komunikaciju. Sučelje F5 istovremeno napaja micro:bit AD putem priključka za napajanje 5V.
STANJE TIPKALA (Python)

Jedan od načina prikaza stanja tipkala ili nekog drugog senzora, s digitalnim očitavanjem vrijednosti, je tekstualni prikaz stanja. Moguće je prikazati i grafički.
FOTO SENZORI - VRIJEDNOSTI (Python)

Prikaz analognih vrijednosti senzora očitanja također se može prikazati na nekoliko načina. Jedan je prikaz u obliku teksta.
FOTO SENZORI - GRAF VRIJEDNOSTI (Python)

Prikaz analognih vrijednosti očitanih senzora moguće je prikazati na više grafičkih načina. Primjer prikazuje očitane vrijednosti u obliku 2D grafa.
KREIRANJE BIT MAPE
Pr01_04.jpg
Za kreiranje objekata koje koristimo u nekoj igri, upotrebljavamo bitmape 8x8 piksela. Sami možete kreirati bitmape koje koristite u programu. Primjer za kreiranje bitmape igrača (9) u EXCELu. Primjer možete vidjeti u programu za igru koji slijedi. Izgled Python funkcije za definiranje bitmape broj 9 (igrača): ispis("BIT; 9; 60; 126; 219; 219; 255; 219; 102; 255")
DIZAJN IGRE - EKRANA
Pr01_05.jpg
Jednostavan dizajn ekrana (okolina igre - background) sa objektima. Moguće je izraditi nekoliko ekrana sa do 20 objekata različitih dužina (multiplikator) i funkcija. Na slici u prilogu je prikazan dizajn tri ekrana u Excel tablici. Primjer je za igru meteori i svi objekti su dužine jedne bitmape. U primjeru demo igre meteori koristi se i neutralna bitmapa, koja nema neku specijalnu funkciju (4). Objekti su s funkcijom dodavanja bodova (2) i oduzimanja života (3). Objekt X je početna pozicija objekta igrača. Za prikaz objekata na displeju, koristi se virtualni ekran koji se pomiče (scroll) preko definiranih ekrana putem funkcije scroll u smjeru s lijeva na desno. Nakon prelaska preko zadnjeg ekrana ponovo počinje prikaz prvog. Redoslijed prikaza može biti izmjenjen korištenjem RND (random) funkcije. Korištenjem RND funkcije, redoslijed prikaza ekrana mjenja se svaki puta kad se program pokrene.
PLATFORMASKA IGRA (Python)

Prilikom izrade platformske igre potrebno je definirati određene parametre igre. Da bi igra bila zanimljiva potrebno je kreirati grafičke objekte koji imaju određenu funkciju. Osim objekta igrača (9), potrebno je kreirati objekt koji će donositi bodove igraču (2), te objekt koji će oduzimati život (3). Kod platformske igre potrebno je kreirati platforme po kojima se objekt igrača kreče. Funkcija OBJ omogućava kreiranje jednog ili više "ekrana" sa pozicijama različitih objekata. Prikaz tih "ekrana" na ekranu izvodi se redoslijedno i kružno. Osim kreiranja grafičkih objekata ( bitmape ), potrebno je definirati rad funkcija koje kontroliraju kretanje objekta igrača. Jedna od funkcija je GRAVITACIJA. Postavljanjem parametra za gravitaciju na 1 uključuje se funkcija koja kontrolira objekt igrača da pada, ako se ne nalazi na platformi. Ako je uključena funkcija PAD (1) objekt igrača nakon pada izvan ekrana se ponovo pojavljuje na početnoj poziciji, a ako je PAD isključen, objekt igrača će se pojaviti na gornjoj poziciji ekrana. Osim toga, ako se igra želi bodovati, potrebno je uključiti funkciju BOD sa početnim stanjem (0). Za dodjeljivanje početnog broj života koristi se funkcija LIV. Ovo je samo kratak opis nekih funkcija koje se koriste u ovoj demo igri.
IGRA - METEORI (Python)

Kao i u prethodnoj igri, potrebno je definirati izgled "ekrana" i pozicije objekata na ekranu. Kod ove igre nemamo platforme već objekte koji se sudaraju sa objektom igrača (letjelica). Osim objekata sa funkcijom (2,3), igra koristi i objekt koji ne mijenja rezultat igre direktno, ali utječe na poziciju objekta igrača.
IGRA -  JEDNOSTAVNI PRIMJER (Python)

Ova igra ne koristi scroll funkciju za pomak objekata. Objekti se prikazuju na ekranu i ne mijenjaju poziciju. Koriste se objekti sa funkcijama koji utječu na objekt igrača. Osim prethodno prikazanih objekata, koristi se novi objekt sa funkcijom VRATA. Prolaskom kroz VRATA, objekt igrača se pojavljuje na početnoj poziciji i kompletni ekran se ponovo prikazuje. Koriste se i DODIRNI senzori za dodatne kontrole objekta igrača. Za iscrtavanje linija koriste se standardne funkcije. Za kreiranje ekrana mogu se koristiti i ostale standardne funkcije za iscrtavanje ili ispis teksta.
IGRA - LABIRINT (Python)

Igra koja sadrži sve osnovne funkcije za izradu igre i sva četiri smjera kontrole objekta igrača. U prethodnim igrama pojavljuju se zvučni efekti prilikom različitih situacija u igri. Zvučni efekti se koriste za dobivanje bodova, gubitak života i pad izvan ekrana (gubitak života). Zvučni efekti se mogu po želji kreirati.