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

Code
Niveau
Upgrade
UGP01
4
4
Foto

Opgave

We maken een spel voor 2 personen. De ene persoon is mens, de andere een 'robot'. De mens struurt opdrachten via de GamePad door. In de basisversie zijn de opdrachten: Vooruit, achteruit, links en rechts. De 'robot' krijgt deze commando's door op het scherm van zijn Micro:bit en voert deze uit. 

Let op: Deze oefening kan je enkel maken als je weet hoe de 'radio' (communicatie) bij micro:bits werkt. Als je dit niet kan, maak je best eerst de oefening ja/nee. 

Benodigheden

2x Micro:bit 
1x GamePad

We leren:

  • De GamePad gebruiken om andere Micro:bits aan te sturen.​

Uitleg

Het filmpje volgt later. Wat moet je weten:
1. Je hebt geen uitbreiding nodig. We werken blokken binnen de categorie 'pinnen'.
2. Er zijn 2 soorten knoppen:
  • Digitaal: De 4 gekleurde knoppen en de witte knoppen aan de zijkant.
    Het signaal die je krijgt kan enkel 0 of 1 zijn. 
    Je moet hier blokken gebruiken met het woord 'digitaal' in.
  • Analoog: De Joystick
    Het signaal kan waarden aannemen van 0 tot 1024. In zijn ruststand is de waarde ongeveer 500.
    Je moet hier blokken gebruiken met het woord 'Analoog' in. 
3. Het pinschema kan je hieronder vinden. Het staat ook op de GamePad zelf geschreven.
4. Het schema hiernaast is een handig schema om te gebruiken voor de Joystick.  Je kan dit kopiëren en plakken in een reactie in je code. 
5. Voor de analoge joystick zijn volgende waarden handig als grenzen:
  • Tussen 400 en 600: Ruststand
  • Kleiner dan 400: Links/Onder
  • Groter dan 600: Rechts/Boven​
6. De gekleurde knoppen moeten we bij het opstarten eerst instellen! Als je een sensor of knop aanstuurt, moet je de micro:bit vertellen wat voor soort knop/sensor het is (pull up of Pull down). Maar sommige upgrades regelen dit zelf.
​                                      Y-as (P2)
                                       +/-1024
                                                |
  X-as(P1)  + /- 0 --- +/-512 ---  +/-1024
                                                |
                                            +/- 0

                            Knoppen (Pin):
                              Rood (P15) 
Geel (P14) / )                           Blauw (P16)
                             Groen (P13

​                              Joystick (P8)
Afbeelding

Stappenplan oefening starten

  1. Surf naar Makecode 
  2. Helemaal onderaan de pagina kan je eventueel de taal wijzigen naar Nederlands (Dutch).
  3.  Klik op "Nieuw Project" bij "Mijn projecten".
  4. Vervang bij titel "zonder titel" door "UGP01 menselijke robot - zender ".
  5. Sla je bestand op. 
  6. Herhaal deze stappen en maak in een nieuw tabblad het bestand "UGP01 menselijke robot - ontvanger".

1 - Zender: Montage + instellingen op voorhand.

Schuif één van de micro:bits in de GamePad.

Daarna moeten we zorgen dat onze gekleurde knoppen en drukknop op de joystick juist ingesteld worden. Dit doen we per knop eenmalig bij het opstarten. Zoek op het pinschema over welk pinnen het gaat en stel ze in met de blokken hieronder. Elke pin moet op "geen" staan.
Afbeelding
Foto
Afbeelding
Twijfel je of je dit juist hebt ingesteld? Kijk dan even onder de knop 'Help'. Hou er wel wel rekening mee dat dit dan telt alsof je een tip van de leraar krijgt.

2 – Zender: De eerste opdracht (Vooruit)op eigen scherm laten verschijnen.

Voor we verder gaan een beetje uitleg:
We gaan nu de joystick leren 'uitlezen'. Dit wilt zeggen dat ons programma reageert bij een bepaalde stand van de joystick.

Zoals je kan zien in het schema hiernaast zie je dat je joystick 2 assen heeft: De X-as en de Y-as. Elke as zit op een pin van de micro:bit. 

In wiskunde is in een getallenas het snijpunt van de 2 assen het punt (0,0). Naar rechts/boven zijn positieve coördinaten, naar links/onder zijn negatieve coördinaten.

Bij een Joystick werkt dit gelijkaardig. Het enige verschil is dat we geen negatieve getallen hebben. Helemaal links/onder is de waarde 0 en helemaal rechts is de waarde 1024. Het midden is dus niet 0 zoals in de wiskunde, maar 512. Dit maakt het soms een beetje verwarrend. Maar op het schema hiernaast zou jullie moeten helpen
 




​                                       Y-as (P2)

                                       +/-1024
                                                |
  X-as(P1)  + /- 0 --- +/-512 ---  +/-1024
                                                 |
                                              +/- 0
Er is nog een groot verschil tussen elektronica en wiskunde. De waarden zijn nooit perfect. Er is dus altijd kans dat de joystick in rust niet perfect de waarden voor X-as en Y-as 512 heeft. Daarom werken we beter in zones. Voor deze opdracht kozen we volgende grenzen:
  • Midden:  400 < Waarde < 600
  • Rechts/boven: > 600
  • Links / onder: < 400 

Elke beweging die je kan maken met de joystick levert een combinatie van die getallen op. In het voorbeeld hiernaast zie je alle mogelijke posities van de joystick. We hebben ook de waarden van 2 posities ingevuld. Kan je de andere aanvullen?
​Je kan dit controleren door de volgende afbeelding te selecteren. Dit telt dan wel als een tip.
​

We gaan nu de joystick programmeren.  We zullen voortdurend de joystick controleren. Het spreekt dus voor zich dat we gaan werken met deze gekende blokken.
Afbeelding
Afbeelding

We beginnen met de opdracht "vooruit" die een pijl naar boven is. Deze opdracht verschijnt als we de joystick naar boven bewegen.  Bij deze opdracht moet onze waarden liggen tussen:
  • P1(X-as): P1 tussen 400 en 600 of 'P1 groter dan 400 en P1 kleiner dan 600)
  • P2 (Y-as): P2  groter dan 600
We gaan dus in het deel <waar> een logische formule maken. Je hebt de volgende blokken nodig.
2x
Afbeelding
3x
Afbeelding
Afbeelding
3x
Afbeelding
Afbeelding
Probeer met deze blokken de code te maken. Je kan hiernaast stap per stap zien hoe je dit stukje code best maakt. ​Dit telt dan wel als een tip.

In de volgende stap vertellen we ons programma wat het moet doen als deze situatie gebeurd. We voegen dus de blok 'toon lichtjes' toe aan onze code en teken de pijl.

Test nu zeker je code uit voor je verder gaat!
Afbeelding

In de laatste stap moeten we zorgen dat ons scherm weer naar zijn basisscherm terugkeert als we de joystick los laten. We gaan hiervoor de ruimte 'anders' gebruiken in onze 'Als/Anders-blok'.
Voor deze opdracht kiezen we er voor om als 'basisscherm' een puntje te toon op onze LED-scherm van de Micro:bit. 
​Vergeet je niet om er voor te zorgen dat we ook het opstartscherm zien bij het opstarten van ons programma?

Programmeer dit en test je programma uit.
​Als dit niet werkt, kan je een tip hiernaast krijgen.

3 - Zender: De andere opdrachten (Rechts, Achteruit en links) maken.

Op zich zou je nu moeten kunnen de andere 3 opdrachten ook kunnen maken.

Het enige wat je moet weten is dat je de 'Als/ Anders -blok' kan uitbreiden door op het + te drukken onderaan de blok. Dan schuift er een voorwaarde tussen je laatste 'Als' en 'Anders'.

Telkens een opdracht klaar is, moet je zeker testen of alles nog goed werkt. 

Als je hier niet in slaagt, kan je de volledige code hier bekijken. Dit telt dan wel als een tip(s).
Afbeelding
Foto
Afbeelding

4 – Zender: Opdrachten laten doorsturen

We hebben nu een programma gemaakt waarbij alle opdrachten enkel verschijnen op de eigen micro:bit. Nu moeten we deze opdrachten ook rond ons doorgeven aan micro:bits.
Om te vermijden dat andere Micro:bits ​werken dan deze die we voor deze opdracht gebruiken, moeten we eerst een radiogroep aanmaken. We moeten dit maar eenmalig en bij het opstarten doen. 
Afbeelding
Tip: Kies nooit de standaard waarde, want dan is de kans groter dat iemand die per ongeluk ook gebruikt.
Nu gaan we letters versturen naar onze 2e  Micro:bit.
We doen dit zo snel mogelijk wanneer de joystick zo beweegt dat er een opdracht moet worden door gegeven.

We versturen de volgende letters:
  • B: Boven (of vooruit)
  • R: Rechts
  • O: Onder (of achteruit)
  • L: Links
  • X: Niets ​
Afbeelding
Tip: Kies consequent als je hoofdletters of kleine letters gebruikt voor het doorsturen van de code. Fouten hiertegen zijn de meest voorkomende!
Dit telt dan wel als een tip(s).
Deze code kunnen we voorlopig nog niet testen, want er is nog geen Micro:bit die deze signalen kan ontvangen. Onze zender is nu helemaal klaar.

Werkt iets niet helemaal zoals gepland. Dan kan je hier een voorbeeldcode zien. ​Dit telt dan wel als een tip(s).

5 - Ontvanger: Opdrachten ontvangen en tonen op LED-scherm

We hebben nu een eerste programma geschreven voor de zender. Nu moeten we nog een afzonderlijk programma schrijven voor de Micro:bit. Maak dus eerst een nieuw programma aan met de naam: "UGP01 menselijke robot - ontvanger".

Het maken van de ontvanger zou je eigenlijk al zelf moeten kunnen. We zetten alle stappen nog eens kort op een rijtje.

A - Maak een radiogroep aan. 
Hierbij is het belangrijk dat je hetzelfde nummer kiest als dat van de zender. Dit moeten we eenmalig doen bij het opstarten.
Afbeelding
B - Zorg dat je programma reageert als het een signaal ontvangt van een Micro:bit uit de zelfde radiogroep. Een computertekst noemt men een string. Zorg dus zeker dat je de juiste blok neemt. 

Afbeelding
C - Je programma past 'toon lichtjes' aan
Hierbij moet hij anders reageren afhankelijk van welke letter hij ontvangt.
Wanneer de Micro:bit een tekst ontvangt, plaatst hij die tekst in een variabel 'ReceivedString'.
Je kan deze variabel snel plukken ui de blok [Wanneer de radio ontvangt (ReceivedString)] door (ReceivedString) te slepen uit zijn blok. Deze kan je dan gebruiken in een 'Als/Anders-blok'.

Met alle blokken die je hiernaast ziet staan, zou je moeten in staat zijn om zelf de zender te maken. 

​Let op: Voor een programma zijn tekst en getallen 2 verschillende dingen. Je zal merken dat er 2 logische blokken zijn met "=". Zorg dat je zeker de juiste gebruikt warabij er "en in de witte velden staan.

​Tip: Vergeet niet tussendoor heel regelmatig je programma uit te testen.
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Werkt iets niet helemaal zoals gepland. Dan kan je hier een voorbeeldcode zien. ​Dit telt dan wel als een tip(s).

Upgraden niveau

  • +2
    Kan je er voor zorgen dat er ook opdrachten kunnen verstuurd worden waarbij men schuin gaat (Vooruit-rechts, vooruit-links, achteruit-rechts, achteruit-links)
  • +2
    Probeer voor de 4 gekleurde knoppen nog extra opdrachten te maken. bv. Draai 90° naar rechts, neem iets vast, laat iets los,... 

Tips

  1. Wanneer je klaar bent, verwijder je best blokken die je niet gebruikt.
  2. Plaats de blokken die je gebruikt mooi overzichtelijk op je scherm. 
  3. Bekijk eens de code in {} Javascript.
    Dan kan je zien hoe een ervaren programmeur deze code zou schrijven. 
    Probeer eens te kijken of je je eigen blokken kan herkennen in deze code.
Proudly powered by Weebly