Skip to content

Activiteit

Waterpas

Gevorderd | MakeCode, Python | Acceleratiemeter, Geluid, LED scherm | Boolean logica, Relationele operators, Selectie, Sensoren

Stap 1: Maak het

Wat is het?

Maak een hulpmiddel om ervoor te zorgen dat foto's, planken of werkbladen waterpas zijn. De ingebouwde luidspreker van de nieuwe micro:bit maakt het gemakkelijk om je waterpas te verbeteren met audiofeedback.

Inleiding

Codeer instructies

Wat je gaat leren

  • Hoe gebruik je de acceleratiemeter sensor om hoeken te meten
  • Wat 'helling' en 'kanteling' zijn
  • Hoe sensor metingen in twee dimensies te combineren om een vlak oppervlak te vinden

Zo werkt het

diagram met helling en kanteling op de micro:bit
  • De acceleratiemeter van de micro:bit kan kantelhoeken in twee richtingen meten: op en neer (helling) en van links naar rechts (kanteling). Dit project gebruikt dit om te laten zien wanneer de micro:bit waterpas staat op het LED display en door een geluid te maken, wat handig kan zijn bij het ophangen van een foto of het maken van een werkoppervlak.
  • Een lus zorgt ervoor dat het programma constant de hoek van de micro:bit meet.
  • Als de acceleratiemeter een hellingshoek meet tussen +5 en -5 graden van zowel helling als kanteling, moet de micro:bit redelijk waterpas zijn. Het toont dan een vinkje op de LED display uitvoer en speelt een muzikale toon.
  • Om de toon te horen, sluit je een koptelefoon of een luidspreker aan op pin 0 en GND, of als je een nieuwe micro:bit heeft, hoort je deze op de ingebouwde luidspreker.
  • Als de helling of de kanteling buiten het bereik van +5 tot -5 graden valt, wordt er een kruis weergegeven op het LED display en stopt het geluid.

Benodigdheden

  • Een micro:bit
  • MakeCode of Python editor
  • batterijpakket (optioneel)

Step 2: Codeer het

1from microbit import *
2import music
3
4# Uses accelerometer readings in the x and y axis 
5# and also allows the micro:bit to be slightly off-level
6# to make it work better in practice
7while True:
8    if accelerometer.get_x() > -10 and accelerometer.get_x() < 10 and accelerometer.get_y() > -10 and accelerometer.get_y() < 10:
9        display.show(Image.YES)
10        music.play('C5:1')
11        sleep(200)
12    else:
13        display.show(Image.NO)
14

Stap 3: Verbeter het

  • Kun je de muzikale toonhoogte veranderen afhankelijk van de hoek?
  • Kun je een LED 'luchtbel' coderen die als een echte waterpas over het scherm beweegt?