Hier zullen we jullie uitleggen hoe je een knipperende kerstboom kan maken met een MicroBit!

Je hebt de volgende benodigdheden nodig (van links naar rechts):

  • MicroBit met micro-USB kabel
  • Music Box (Base:Bit)
  • Blinky Xmas Tree
  • (Optioneel: 3 x AAA batterijen)

In elkaar zetten

1 . Haal de schroefjes uit de Music Box. Zorg eerst dat er geen batterijen erin zitten of dat de USB kabel  niet ingeplugd is!   Pas als je helemaal zeker bent dat er geen stroom erop staat, gebruik een schroevendraaier om de schroefjes los te maken.

2. Monteer de MicroBit op de Music Box. Check met welke pinnen je ze met elkaar moet verbinden. Pin 0 moet met Pin 0, Pin 1 met Pin 1, 3V moet met 3V en GND met GND.

3. Zet de schroeven weer vast. Het moet er ongeveer zo uit zien:

4. Er zit een connector bij de music box,  die twee in en out pinnen met elkaar verbinden. Dit is om te zorgen dat je de de kerstboom met de LED lampjes richting de LED’s van de MicroBit kan staan. Je kan ook de boom andersom zetten, maar wij vinden dit persoonlijk iets leuker.

6. Zet de kerstboom op de Music Box. Je bent nu klaar om naar de volgende stap te gaan.

 

Programmeren

Nu gaan we programmeren! In dit voorbeeld laten we het zien hoe je de lampjes kan laten branden van de kerstboom, waar we gebruik kan maken van Python. Als je daar geen ervaring mee hebt, is het misschien handig om een paar lesjes te volgen op bijvoorbeeld https://www.codecademy.com/. Microbit heeft ook een handige block editor, https://makecode.microbit.org/ maar wij zullen daar geen gebruik maken ervan in dit voorbeeld.

Laten we beginnen!

1. Open de website http://python.microbit.org , hier heb je een on-line python based editor speciaal gemaakt voor MicroBit

2. Type in het venstertje de eerste paar regels:
__________________________
from microbit import *
import neopixel
from random import randint
__________________________
Hier importeer je de benodigde bestanden om met microbit te kunnen programmeren. De “from microbit import *” betekent dat je alle functies van microbit wilt gebruiken (* staat voor “alles”). De “import neopixel” is de functies speciaal gemaakt voor de LED lichtjes op de kerst boom, genaamd NeoPixels. Hier kan je meer informatie over vinden: http://microbit-micropython.readthedocs.io/en/latest/neopixel.html
Het laatste importeert functies waar je een willekeurig nummer kan kiezen. Daarom heet het ook “random” wat letterlijk in het engels “willekeurig betekend.

3. Initialisatie van een aantal waardes, voeg de volgende twee regels toe
__________________________
kerstboom = neopixel.NeoPixel(pin1, 10)
knipper_iteratie = 0
__________________________
Met de eerste regel initialiser je de kerstboom met neopixels. De kerstboom is aangesloten aan pin1. Als je hier pin0 zou zetten, dan zou je de speaker horen tikken, omdat de speaker met pin0 is verbonden. En tot slot moet je aangeven hoeveel LEDs je hebt, en dat zijn er in totaal 10. LED nummer 0 is helemaal rechts onderaan en LED 9 is helemaal boven aan de kerstboom. De knipper_iteratie is iets wat we later uitleggen, maar hier willen we dat het als 0 begint.

4. En nu gaan we naar het interessante gedeelte. Begin nu een “while” loop
__________________________
while True:
__________________________

We willen natuurlijk niet dat nadat 1 LED heeft gebrand, de kerstboom er weer mee ophoudt. Een “while” loop betekend dus dat de code altijd in een loop zal blijven draaien als de voorwaarde vlak erachter waar is. Zodra dit niet zo is, dan zal het uit de loop gaan en verder gaan met de code. Gezien nu de voorwaarde “True” is, dus al waar, zal de code in dit voorbeeld altijd hierin blijven. Denk aan de indent (tab), van alle code dat in de while loop moet blijven!

5. Nu gaan we beginnen met een “for” loop, waar we gaan kijken naar elke LED in de kerstboom.
__________________________
for pixel_nr in range(0, len(kerstboom)):
__________________________

De variabele “pixel_nr” is dus de het nummer dat elk loop van de “for” loop van waarde zal veranderen. Hoe hij gaat veranderen, is aangeven door “range(0, len(kerstboom))”, wat hier dus [0,1,…,9] betekend. De eerste rondje, is “pixel_nr” 0, daarna 1, enzovoorts totdat het bij 9 aankomt. Daarna zal de programma de loop verlaten. Denk hier ook aan dat je een tab moet hebben voor alle code die in de “for”-loop moet zetten.

6. Nu gaan we de kleuren kiezen per LED
__________________________
if knipper_iteratie%4 is 0:
      rood = randint(0, 10)
      groen = randint(0, 10)
      blauw = randint(0, 10)
else:
      rood = randint(0, 0)
      groen = randint(0, 0)
      blauw = randint(0, 0)
knipper_iteratie = knipper_iteratie+1
__________________________
Elk neopixel LED heeft een rode, groene en blauwe led, dus je kan kleuren combinaties maken door te kiezen wat voor felheid die LEDS hebben. Hier komt de “random” functies van pas, want we willen dat de LED een willekeurige kleur aanneemt. De functie “randint(0,10)” kiest dus willekeurig een getal uit tussen 0-10. Je kan kiezen voor een hoger getal dan 10, maar dat betekend dat de LEDS nog feller kunnen gaan schijnen. Je kan het zelf even proberen.

Wij hebben hier ook een soort van knipperlichtjes van gemaakt, door met “if” verklaringen (if-statements), aan te geven dat we willen dat elke 4e pixel (“knipper_iteratie%4=0”) even uit gaat. Het “%” symbool is de modulus, en controleert of het getal door 4 deelbaar is. Let hier wel op! Kies geen getal waar door 10 gedeeld door kan worden, zoals 2, 5 of 10. Dan krijg je geen knipperlichtjes maar zullen er altijd een aantal LED altijd uitstaan. Kan jij bedenken waarom dat is?

6. En nu willen we de kleuren laten zien. Zet de volgende 3 regels in de code:
______________________
kerstboom[pixel_nr] = (rood, groen, blauw)
kerstboom.show()
sleep(100)
______________________
In de eerste regel, geef je de intensiteits waardes van rood, groen en blauw door voor de LED die bij “pixel_nr” hoort. Met “kerstboom.show()”, gaat het lampje ook daadwerkelijk branden. Je wilt niet dat het te snel gaat natuurlijk, dus daarom kan je beter zorgen dat de code en de loop even pauzeert. Met “sleep(100)” zeg je dus, dat je wilt dat er met 100 microseconden = 0.1 seconden gewacht wordt voordat het volgende lampje aan de beurt is.

7. Zo zou je code eruit moeten zien:

Uploaden 

Nu wil je natuurlijk het eind resultaat zien op de kerstboom! Hier zie je de instructies om de code op je MicroBit te laden.

1. Plug je MicroBit met de bijbehoorende micro-usb kabel in je computer

2. Druk nu op het knop “Download” in de editor. Er wordt nu automatisch het bestand microbit.hex gedownload vanuit je internet browers.

3. Als je microbit met je computer verbonden is, dan komt het tevoorschijn als een aangesloten USB stick, met een eigen folder. Sleep de “microbit.hex” naar de microbit folder.

4. Je ziet nu de lampjes bij de micro-usb aansluiting knipperen, dat betekend dat je code geladen wordt op je MicroBit!

5. Als het goed is moet je nu de lampjes zien branden! Net als in het filmpje hier beneden. Gebeurt dit niet, en zie je text op de MicroBit zelf verschijnen, dan is er waarschijnlijk een fout in de code. Controleer het nogmaals en probeer het opnieuw.

play-sharp-fill