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)
14
Terceiro 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.