7.4.2018 - Arpakuutio micro:bit:illä

<- Takaisin 3. kerran sivulle

Tutustutaan micro:bitin ohjelmointiympäristöö tarkemmin tekemällä yksinkertainen arpakuutiosovellus. Tämän olisi tarkoitus toimia siten, että laitetta ravistamalla arvotaan satunnainen luku väliltä 1-6 ja näytetään tämä luku led-näytöllä.

Alkuvalmistelut

  1. Yhdistä laite USB-johdolla tietokoneeseen
  2. Avaa sivu https://makecode.microbit.org/ uuteen välilehteen. Ohjelmointi tapahtuu tämän työkalun avulla.
  3. Aloita uusi projekti painamalla sivun vasemmasta ylälaidasta Projects ja avautuvasta valikosta New Project...

Huom! Nämä ohjeet on tehty graafiselle ohjelmointiympäristölle. Jos olet jo koodannut aikaisemmin, voit halutessasi kokeilla tehdä koodia myös suoraan javascriptillä. Tämä onnistuu samassa ympäristössä, valitset vain sivun yläosasta painikkeen {}JavaScript.
Graafisen ja koodiympäristön välillä voi vaihdella vapaasti, eikä ole pakko käyttää vain jompaa kumpaa.

Yksinkertainen arpakuutio

Aloitetaan tekemällä tapahtumakuuntelija laitteen ravistamiselle.

Klikkaa toimintovalikosta kategoria Input ja etsi sieltä violetti palikka, jossa lukee On Shake. Siirrä tämä koodialueelle raahaamalla sitä hiirellä.



Nyt voimme aloittaa satunnaisen luvun arpomisen.

Valitse toimintovalikosta kategoria Variables ja raahaa sieltä koodialueelle palikka, jossa lukee set item to 0.



Raahaa tämä juuri valittu palikka aiemmin luodun On Shake -kuuntelijan sisälle.



Valitse äsken tuodun set-palasen pudotusvalikosta (lukee item ja vieressä on pieni nuoli alaspäin, klikkaa siitä) Rename variable... Nyt avautuu dialogi, jossa voimme nimetä juuri luodun muuttujan. Annetaan sille nimeksi luku ja klikataan Ok.



Lisätään tässä vaiheessa laitteen näytölle välaikainen kuva, jota näytetään "nopanheiton" ajan ennen varsinaisen luvun näyttämistä. Valitse toimintovalikosta Basic-kategorian alta palikka, jossa lukee Show Icon ja raahaa se on shaken sisälle edellisen palikan alapuolelle.



Nyt voit valita tämän uuden palikan pudotusvalikosta tähän haluamasi kuvion, joka laitteen led-näytöllä väliaikaisesti näkyy. Esimerkissä on valittu ns. hyväksymismerkki.



Koska oikeassakin nopanheitossa lopullisen silmäluvun ilmestymisessä kestää hetki, simuloidaan tätä laittamalla ohjelman suoritukseen pieni tauko, ennen kuin jatketaan seuraavaan. Valitse toimintavalikosta sama Basic-kategoria, kuin äskenkin, ja raahaa sieltä ohjelmaan palikka, jossa lukee pause. Tämän jälkeen vaihdetaan odotusajaksi 100:n tilalle 200.



Voit halutessasi kasvattaa (tai lyhentää) odotusaikaa.

Mennään taas toimintovalikossa kategoriaan Variables ja raahataan koodialueelle palikka set item to 0. Valitaan pudotusvalikosta nyt muokattavaksi muuttujaksi luku.



Tämän jälkeen mennään kategoriaan Math ja valitaan sieltä palikka pick random 0 to 4. Raahataan tämä äsken muokattuun set luku to... -palikkaan luvun 0 tilalle. Tämän palapelin palasen pitäisi loksahtaa paikalleen, jos sijoitus on tehty onnistuneesti.



Vaihdetaan tässä luvun 4 tilalle luku 6. Periaatteessa tässä voisi maksimiksi asettaa minkä kokoisen luvun tahansa, sillä onhan olemassa esimerkiksi myös 24-sivuisia noppia.
Luvut, jotka ovat suurempia kuin 9, tosin näkyvät laitteen led-näytöllä useammassa osassa.



Nyt ohjelma arpoo satunnaisen luvun lukujen 0 ja 6 väliltä. Arpakuution mahdolliset silmäluvut alkavat 1:stä, joten tämä täytyy vielä korjata.
Koska ohjelmassa ei ole mahdollista valita satunnaisen luvun pienintä arvoa manuaalisesti, täytyy tätä rajoitetta kiertää käyttämällä hyväksi ns. silmukkaa, jossa luvun uudelleenarpomista jatketaan niin kauan, kunnes saadaan joku muu luku, kuin 0.

Haetaan Loops-kategoriasta while-silmukka ja raahataan on shake:n sisälle ennen äsken lisättyä palikkaa.



Tämän jälkeen mennään kategoriaan Logicja valitaan sieltä palapelin palanen, jossa lukee suurinpiirtein 0 = 0.



Raahataan tämä while-palikassa sanan true tilalle.

Tämän jälkeen valitaan Variables-kategoriasta palapelin palanen, jossa lukee luku. Raahataan se äsken tehtyyn yhtäsuuruusvertailuun toisen 0:n tilalle.



Raahaa nyt on shakessa alimmaisena oleva set luku to...-kokonaisuus äsken lisätyn vihreän while-silmukan sisälle.
Nyt tehty satunnaislukugeneraattori arpoo oikeasti luvun 1:n ja 6:n väliltä!



Huom Jos haluat, voit kokeilla, osaatko vaihtaa nopan arpomaan lukuja vaikkapa lukujen 2 ja 7 väliltä.

Nyt tarvitsee enää laittaa arvottu luku näkymään laitteen led-näytölle. Tämä onnistuu menemällä Basic-kategoriaan ja valitsemalla sieltä show number ja raahaamalla se while-silmukan perään.



Tämän jälkeen valitaan Variables-kategoriasta palikka, jossa lukee luku ja raahataan se äsken lisätyn näyttöpalikan luvun 0 tilalle.


Nyt meillä on toimiva arpanoppa.

Jos haluat laittaa koodinpätkän itse laitteelle, voit ladata tehdyn koodinpätkän ensin koneelle valitsemalla sivun alalaidasta "Download" ja .hex-päätteisen tiedoston pitäisi automaattisesti latautua. Tämän jälkeen ladatun tiedoston voi siirtää suoraan laitteelle samalla tavalla, kuin USB-muistitikulle siirtäisi tiedostoja. Jos et osaa, pyydä ohjaajalta apua!

Silmäluvun lähettäminen muille laitteille

Koska micro:bitissä on sisäänrakennettuna bluetooth-antenni, voi sillä lähettää ja vastaanottaa informaatiota muiden bluetooth-laitteiden kanssa.

Tämän käsittelemiseksi löytyy Radio-kategoriasta paljon valmiita työkaluja.

Esimerkiksi tässä noppaesimerkissä saisi laitteen lähettämään heitetyn silmäluvun toiselle lähistöllä olevalle laitteelle seuraavannköisillä muutoksilla:



radio set group Valitaan ryhmänumero yhteyden muodostamiseksi. Esimerkiksi jos ryhmäksi laitetaan 1, niin nyt kaikki laitteet, joiden ryhmäksi on määritelty 1, voivat kommunikoida keskenään.

radio set transmit power Määritellään signaalin voimakkuus

radio send number Lähetetään valittu numero muille saman ryhmän laitteille

on radio received... tapahtumakuuntelija sille, mitä tehdään, kun toiselta laitteelta on vastaanotettu jokin numero. Saatu numero on tallessa muuttujassa nimeltä receivedNumber

Lisätehtäviä

Nämä ovat vapaaehtoisia lisätehtäviä. Näiden tekemiseen voit kysyä tarvittaessa apua ohjaajilta. Näiden tekemiseksi kannattaa tutkia ja kokeilla, mitä kaikkia ominaisuuksia laitteelta ja koodivalikosta löytyy.

  • Tehtävä 1: Noppaesimerkin muuttaminen niin, että kaksi pelaajaa voi pelata vastakkain. Koeta saada laitteet ilmoittamaan voittaja ja häviäjä.
  • Tehtävä 2: kivi, sakset, paperi -peli kahdelle pelaajalle

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.