Skip to content

Activitat

Nivell de bombolla

Intermedi | MakeCode, Python | Acceleròmetre, Pantalla LED, So | Lògica booleana, Operadors relacionals, Selecció, Sensors

Pas 1: Crea-ho

En què consisteix?

Fes una eina per assegurar que quadres, prestatges o superfícies de treball estan anivellats. L'altaveu incorporat a la nova micro:bit fa més fàcil de millorar el teu nivell de bombolla amb indicacions sonores.

Introducció

Guia de programació

Què aprendràs

  • Com fer servir el sensor acceleròmetre per mesurar angles.
  • Que vol dir 'inclinació' (pitch) capcineig i 'inclinació' (roll) balanceig.
  • Com combinar les lectures del sensor en dues dimensions per trobar l'anivellament d'una superfície.

Com funciona

diagrama que mostra la inclinació (pitch) capcineig i inclinació (roll) balanceig a la micro:bit
  • L'acceleròmetre de la micro:bit pot mesurar angles d'inclinació en dues direccions: amunt i avall (capcineig) i costat a costat (balanceig). Aquest projecte fa servir això per indicar a la pantalla de leds i fent un so quan la micro:bit està anivellada. Podria ser útil quan penges un quadre o quan prepares una superfície de treball.
  • Un bucle manté el programa constantment mesurant l'angle de la micro:bit.
  • Si l'acceleròmetre detecta angles d'inclinació entre +5 i -5 graus en els dos eixos, capcineig i balanceig, la micro:bit estarà raonablement anivellada. A continuació, mostra un tic a la sortida de la pantalla LED i reprodueix un to musical.
  • Per sentir el so, connecta auriculars o un altaveu als pins 0 i GND, o si tens la nova micro:bit ho sentiràs en l'altaveu incorporat.
  • Si el capcineig o el balanceig està fora de l'interval +5 a -5 graus, mostra una creu en la pantalla de leds i atura el so.

Què necessites

  • Una micro:bit
  • Editor MakeCode o Python
  • Piles (opcional)

Pas 2: Programa-ho

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

Pas 3: Millora-ho

  • Pots fer canviar l'altura del to musical en funció de l'angle?
  • Podries programar un led com si fos una "bombolla" que es mogui com al voltant de la pantalla, igual que passa a un nivell de bombolla?