Primeiro passo: o projeto
O que é?
Crie uma ferramenta para garantir que fotos, prateleiras ou bancadas de trabalho estejam niveladas. Com novo alto-falante integrado do micro:bit fica mais fácil melhorar o seu nível de bolha graças ao feedback auditivo.
Introdução
Código
O que você aprenderá:
- Como usar o acelerômetro do sensor para medir ângulos;
 - O que é "pitch" (inclinação) e "roll" (rotação);
 - Como combinar as leituras do sensor de duas dimensões para determinar o nivelamento de uma superfície.
 
Como funciona:

- O acelerômetro do micro:bit pode medir os ângulos de inclinação em duas direções: para cima e para baixo (pitch) e de um lado ao outro (roll). O projeto não só utiliza o acelerômetro, mas também recorre ao visor LED e ao alto-falante para indicar quando o micro:bit está nivelado, o qual pode ser útil para pendurar um quadro ou construir uma bancada de trabalho;
 - Um laço (estrutura de repetição) mantém o programa medindo o ângulo do micro:bit constantemente;
 - Se o acelerômetro medir um ângulo de declive entre +5 e -5 graus tanto de inclinação quanto de rotação, o micro:bit deve estar razoavelmente nivelado. Em seguida, uma indicação (marca indicadora) é exibida no visor LED e um alerta sonoro é emitido;
 - Para ouvir a melodia, conecte fones de ouvido ou um alto-falante ao pino 0 e ao pino GND. Caso você possua o novo micro:bit, o som será emitido pelo alto-falante integrado;
 - Se tanto a inclinação quanto a rotação estiverem fora do intervalo entre +5 e -5 graus, um ícone de X será mostrado no visor LED e o áudio é interrompido.
 
Itens necessários:
- Um micro:bit;
 - Editor MakeCode ou Python;
 - Conjunto de baterias (opcional).
 
Segundo passo: é hora de programar
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)
14Terceiro passo: vamos deixar o código ainda melhor
- Você consegue fazer com que a melodia da inclinação seja alterada dependendo do ângulo?
 - Você poderia programar para que uma "bolha", que se pareça com um nível de bolha real e se mova pela tela, seja exibida no visor LED?
 
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.


