Stem SiRe
  • Home
  • Leerlingen
    • ICT Algemeen >
      • Powerpoint
      • Sway
      • OBS-Studio
    • Programmeren >
      • Snap!
      • Micro:bit >
        • Voor je begint
        • Solo >
          • S01 Knipperend licht
          • S02 Naamkaartje
          • S03 Emoji's Hoe ik me voel
          • S04 Dobbelsteen (eenvoudig)
          • S05 Ja of Nee
        • @home >
          • H01 Fruitmachine
          • H02 Magische knoppen
          • H03 Reflex Game
        • Upgraded >
          • Maqueen >
            • UM01 Wandelde Maqueen
            • UM03 Rythm Master
          • GamePad >
            • UGP01 Menselijke robot
          • ZIP Halo LED Ring >
            • UH01 Bewegende regenboog
            • UH02 De lichtquiz
          • Verkeersplein >
            • UV01 Verkeerslicht eenvoudig
            • UV02 Lantaarnpaal eenvoudig
            • UV03 Slagboom eenvoudig
            • UV04 Automatisch buitenlicht
          • Mi:sound >
            • US01 De dokters deurbel
            • US02 Morse code
            • US03 Muziekdoosje
          • LCD-scherm >
            • UL01 Wachten bij de slager
          • Grove Inventor kit >
            • UG01 Bewegende regenboog
            • UG02 De lichtquiz
        • Break out >
          • Breadboard
          • Jumper Kabels
          • Breakout board
          • Compact Robotics Board
          • Afstandssensoren >
            • BAS1 Ganglicht
            • BAS1 Vrije parkeerplaats
          • LED-strip >
            • BL01 Bewegende regenboog
            • BL02 De lichtquiz
          • LED >
            • BL01 Licht Opnamestudio
            • BL02 seinlicht vliegtuig
            • BL03 Licht kruispunt
          • Servomotor >
            • BSM1 Metronoom
            • BSM2 automatisch slot bank
      • Brainbox AVR >
        • Ardublock >
          • Downloaden & installatie
          • Oefeningen
        • Componenten aansluiten
    • 3D-ontwerpen >
      • Schetsen
      • 3D-tekenen >
        • Problem Solving SE
      • 3D-printen >
        • Wat?
        • Spelregels 3D-ontwerp
  • Leraren
    • Programmeren >
      • Micro:bit >
        • Leerplandoelstellingen
        • Eigen methode
        • oplossing oefeningen >
          • Solo
          • @home
          • Upgraded
          • Breakout
        • Code*org
    • 3D-ontwerpen
  • Robotkamp
    • Al eens deelgenomen
    • Bouwen Smartcar
    • Programmeren >
      • Voor je begint
      • Leds
      • motoren (rijden)
    • Sfeerbeelden
    • Archief robotkamp >
      • SMARTCAR
  • Contact
  • Archief
    • Break out
    • What's new?
    • STEM-thema's >
      • 3D-ontwerpen >
        • Solid Edge >
          • Solid Edge Wikipedia >
            • Wat
            • Videolessen >
              • 1. Downloaden en installeren SE9
              • 2. Voor je begint te tekenen
              • 3. Algemene technieken
              • 4. Part
            • Inoefenen Technieken
            • Vertaling en extra uitleg
            • Vragen van leerlingen
        • 3D-printen
        • Lasercutten
      • Programmeren >
        • Algemeen
        • Printplaten >
          • Algemeen
        • Software programmeren
      • ICT - Algemeen
    • Teachers only >
      • Thema Downforce Racer voor de vrienden
      • Micro:bit
      • Oplossingen oefeningen ArduBlock
      • Nascholing >
        • Smartcar - Robotkamp
        • Elektronica 1e graad
        • 3D ontwerpen in SE
      • printproblemen
    • Downloads
  • STEM-Projecten
    • Escape room
  • Home
  • Leerlingen
    • ICT Algemeen >
      • Powerpoint
      • Sway
      • OBS-Studio
    • Programmeren >
      • Snap!
      • Micro:bit >
        • Voor je begint
        • Solo >
          • S01 Knipperend licht
          • S02 Naamkaartje
          • S03 Emoji's Hoe ik me voel
          • S04 Dobbelsteen (eenvoudig)
          • S05 Ja of Nee
        • @home >
          • H01 Fruitmachine
          • H02 Magische knoppen
          • H03 Reflex Game
        • Upgraded >
          • Maqueen >
            • UM01 Wandelde Maqueen
            • UM03 Rythm Master
          • GamePad >
            • UGP01 Menselijke robot
          • ZIP Halo LED Ring >
            • UH01 Bewegende regenboog
            • UH02 De lichtquiz
          • Verkeersplein >
            • UV01 Verkeerslicht eenvoudig
            • UV02 Lantaarnpaal eenvoudig
            • UV03 Slagboom eenvoudig
            • UV04 Automatisch buitenlicht
          • Mi:sound >
            • US01 De dokters deurbel
            • US02 Morse code
            • US03 Muziekdoosje
          • LCD-scherm >
            • UL01 Wachten bij de slager
          • Grove Inventor kit >
            • UG01 Bewegende regenboog
            • UG02 De lichtquiz
        • Break out >
          • Breadboard
          • Jumper Kabels
          • Breakout board
          • Compact Robotics Board
          • Afstandssensoren >
            • BAS1 Ganglicht
            • BAS1 Vrije parkeerplaats
          • LED-strip >
            • BL01 Bewegende regenboog
            • BL02 De lichtquiz
          • LED >
            • BL01 Licht Opnamestudio
            • BL02 seinlicht vliegtuig
            • BL03 Licht kruispunt
          • Servomotor >
            • BSM1 Metronoom
            • BSM2 automatisch slot bank
      • Brainbox AVR >
        • Ardublock >
          • Downloaden & installatie
          • Oefeningen
        • Componenten aansluiten
    • 3D-ontwerpen >
      • Schetsen
      • 3D-tekenen >
        • Problem Solving SE
      • 3D-printen >
        • Wat?
        • Spelregels 3D-ontwerp
  • Leraren
    • Programmeren >
      • Micro:bit >
        • Leerplandoelstellingen
        • Eigen methode
        • oplossing oefeningen >
          • Solo
          • @home
          • Upgraded
          • Breakout
        • Code*org
    • 3D-ontwerpen
  • Robotkamp
    • Al eens deelgenomen
    • Bouwen Smartcar
    • Programmeren >
      • Voor je begint
      • Leds
      • motoren (rijden)
    • Sfeerbeelden
    • Archief robotkamp >
      • SMARTCAR
  • Contact
  • Archief
    • Break out
    • What's new?
    • STEM-thema's >
      • 3D-ontwerpen >
        • Solid Edge >
          • Solid Edge Wikipedia >
            • Wat
            • Videolessen >
              • 1. Downloaden en installeren SE9
              • 2. Voor je begint te tekenen
              • 3. Algemene technieken
              • 4. Part
            • Inoefenen Technieken
            • Vertaling en extra uitleg
            • Vragen van leerlingen
        • 3D-printen
        • Lasercutten
      • Programmeren >
        • Algemeen
        • Printplaten >
          • Algemeen
        • Software programmeren
      • ICT - Algemeen
    • Teachers only >
      • Thema Downforce Racer voor de vrienden
      • Micro:bit
      • Oplossingen oefeningen ArduBlock
      • Nascholing >
        • Smartcar - Robotkamp
        • Elektronica 1e graad
        • 3D ontwerpen in SE
      • printproblemen
    • Downloads
  • STEM-Projecten
    • Escape room
Search by typing & pressing enter

YOUR CART

Picture
Picture

Uitleg

Dit filmpje is nog een oud filmpje van de Brainbox Arduino. We zullen binnenkort een nieuw (en beter) filmpje maken. 

1- Start van het spel (P0)

A - Aftellen
​Als je een vinger op GND houdt, en met de andere hand op start duwt, moet je  op het LED-scherm van je Micro:bit zien aftellen van 3 naar 1. Daarna valt het scherm uit.

Dit zou op zich moeten lukken. De enige blok die misschien nieuw is, kan je vinden bij invoer:
Picture
Deze blok begint door zijn code te lopen als de Pin een signaal krijgt.

B - Figuur verschijnt 
Na een willekeurige tijd tussen 1 en 3 seconden verschijnt er een figuur op het scherm.
We zullen hier een beetje wiskunde en een blok nodig hebben die willekeurig een getal neemt.
​
Picture
Picture
Let wel op: Door de snelheid van de Micro:bit werken we niet met seconden, maar met milliseconden (1/1000ste van een seconde).

2- Spel met 1 speler

Uiteindelijk gaan we naar een spel met 2 spelers. De code van speler 2 is heel gelijkaardig als die van speler 1. We gaan die dus later gewoon dupliceren en aanpassen.
tA - De variabel 'Wachten'
​De bedoeling is dat de speler pas wint als hij slaat nadat hij de figuur gezien heeft.  Als hij ervoor slaat moet dit getoond worden.

We hebben dus een variabel nodig die dit regelt. Wij geven deze de naam 'wachten' met als mogelijkheden:
  • 0 -> Neen (De spelers mogen nog niet slaan)
  • 1 -> Ja (De spelers mogen wel slaan)
Een goede gewoonte is om je variabelen bij het opstarten van je programma al juist in te stellen.
Picture
Picture

B - Spel maken (met een kleine bug)
De code die nu volgt is logisch. Als Speler 1 op zijn knop (P1) slaat terwijl zijn andere hand op de GND ligt, moet er een nieuwe tekening verschijnen:
  • Als hij te vroeg was: Een kruis
  • Als hij te laat was: Een blokje
We moeten ook al een beetje vooruit denken. Want straks komt er een 2e speler bij. En we moeten kunnen zien wie:
  • Wint
  • Als eerste te vroeg sloeg.
Daarom kiezen we voor deze figuren:
Picture
Picture
Om deze code te maken zal je volgende nieuwe blokken nodig hebben:
Picture
Picture
Picture
We moeten in onze code van de 'start (P0)' de variabel 2 keer instellen. In onze nieuwe code van 'Speler 1 (P1)' moeten we er nu voor zorgen dat we met de bovenstaande blokken de speler duidelijk maken of hij gewonnen heeft of niet.
Als je de code hierboven bekijkt, krijgen we vaak de vraag waarom we de blok [Stel (wachten) in op (0)] niet bovenaan de code plaatsen van 'Start (P0)'. Elk plaats heeft zijn voor- en nadeel:
  • Bovenaan: Je krijgt al een 'valse start' bij het aftellen, maar hij telt wel nog verder af.
  • Midden: Je kan geen valse start maken tijdens het aftellen, maar het kruis blijft staan.
We hebben uitvoerig beide getest, en eigenlijk drukt er zelden iemand af tijdens het aftellen. Daarom kiezen we voor deze code.
Je zal merken dat de figuur van het startsignaal  nog verschijnt na de melding dat je 'te vroeg' ingedukt hebt.  Je kan zelf nog eens drukken waardoor je alsnog wint. In de volgende stap lossen we dit op.

B - Spel maken (zonder een kleine bug)
Waar zit het probleem van de bug? 
De code loopt gewoon verder nadat je te vroeg geduwd hebt. De code zet dus de variabel 'wachten' op 1, waardoor je kan winnen. Druk je nog eens op de knop, dan win je toch nog.

Dit kunnen we enkel oplossen door een 2e variabel toe te voegen: 'Te vroeg':
  • 0 -> Nee (Je hebt nog niet te vroeg gedrukt)
  • 1 -> Ja (Je hebt te vroeg gedrukt)
De moeilijkheid is nu om deze variabel op de goede momenten in te stellen.

We beginnen met deze variabel in te stellen bij het opstarten en als er op de startknop (P0) gedrukt wordt.

Daarna moeten we bij een te vroeg indrukken van de knop zo snel mogelijk mijn programma dit laten weten door mijn variabel 'Te vroeg' in te stellen.

Als laatste moet ik nu in mijn 'start(P0)'-code een als blok gebruiken om bepaalde code niet uit te voeren. 

Als je dit juist gedaan hebt, heb je een werkend spel voor 1 speler.​

2 - Hoe snel was speler 1?

Zoals het spel nu is, zal je als speler heel snel geen doel meer hebben in het spel. Laten we daarom wat competitie met jezelf toevoegen. 
We laten de Micro:bit je vertellen hoe snel je nu eigenlijk wel was. 

Om dit te kunnen doen, moet je wel verstaan hoe tijd werkt op een micro:bit. Bij het opstarten van een programma begint er een timer te lopen.  Deze timer is tot op de microseconde nauwkeurig en blijft oneindig doorlopen, tenzij je micro:bit zonder spanning valt of iemand op de resetknop drukt.

Het enige wat we kunnen doen met die tijd is ze op een bepaald moment 'plukken' en gebruiken met de onderstaande blokken. Het verschil tussen beide blokken is de nauwkeurigheid. Voor dit project is een nauwkeurigheid van milliseconden voldoende.
Picture
Picture
Nu we dit weten, kunnen we heel eenvoudig en heel precies de tijd berekenen voor ons project.

​We zullen wel 2 nieuwe variabelen moeten aanmaken:
  • Starttijd (Tijd vanaf het startsignaal)
  • Eindtijd (Tijd dat speler 1 op de knop drukt)

Met eenvoudige wiskunde en deze nieuwe blokken zou het moeten lukken de reactietijd te berekenen en op het juiste moment te laten verschijnen.
Picture
Picture
Picture
Picture
Je zou in principe kunnen redeneren dat de 'win-figuur' niet meer nodig is in de code. Maar laat de tijd toch maar 1 seconde na deze blok verschijnen. Anders kunnen we in de volgende upgrade niet meer weten wie er gewonnen is. ​

3 - Extra speler

Zou het niet veel toffer zijn als we dit spel ook met 2 spelers kunnen spelen. We hebben nog een knop over en op ons spelbord is er plaats voor een 2e speler.  
​Zou het lukken om gewoon de code van speler 1 te dupliceren (rechtermuisknop op code - dupliceren), het pinnummer te veranderen en de 'toon lichtjes' aan te passen? Probeer maar eens.

Je merkt dat de beide codes door elkaar werken. We zouden dus graag hebben dat beide pinnen niets meer doen nadat er op en spelerspin is geduwd. Dit kan eenvoudig door een 5e variabel toe te voegen: Game over
  • 0 -> Neen (Er is nog niet op een knop geduwd en het spel is nog bezig)​
  • 1 -> Ja (Er is een op een knop geduwd en het spel stopt. )
Voor we verder gaan, verwijderen we weer de code van 'Speler 2 (P2)'. 

Hoe lossen we dit probleem precies op:
Als je op een knop drukt, dan controleer je altijd eerst of het spel nog bezig is.
  1. Ja ->  Stop het spel direct. Daarna laat je de code van deze pin eenmalig alles doorlopen waarmee hij alle nodige info aan de spelers geeft. 
  2. Neen -> Als dat niet zo is, moet hij al de code van deze pin negeren.
Picture
Picture
Picture
Picture
Foto
Proudly powered by Weebly