Skip to content

Atividade

Metrônomo

Iniciante | MakeCode, Python | Botões, Som, Visor LED | Iteração, Tempo

Primeiro passo: o projeto

O que é?

Programe o seu metrônomo eletrônico que reproduz batidas regulares, as quais você pode acelerar e desacelerar enquanto pratica música.

Introdução

Código

O que você aprenderá:

  • Como ajustar o tempo (ritmo) das notas musicais tocadas pelo micro:bit;
  • Como usar os botões e saídas de áudio para criar um dispositivo eletrônico útil.

Como funciona:

  • No início do programa, o ritmo é definido em 100 bpm (batidas por minuto). Esta é uma maneira padrão de medir o ritmo (velocidade) da música;
  • Um laço de repetição (loop) infinito mantém o micro:bit tocando uma nota e pausando a cada batida;
  • É possível ouvir o som ao conectar fones de ouvido aos pins 0 e GND ou por meio do alto-falante integrado do novo micro:bit;
  • Pressione o botão A para diminuir o ritmo em 5 bpm;
  • Pressione o botão B para acelerar em 5 bpm;
  • Se pressionar os botões A e B ao mesmo tempo, o ritmo (bpm) será exibido no visor LED.

Itens necessários:

  • Um micro:bit;
  • Editor MakeCode ou Python;
  • Conjunto de baterias (opcional).

Segundo passo: é hora de programar

1from microbit import *
2import music
3tempo = 100
4
5while True:
6    music.set_tempo(bpm=tempo)
7    music.play(['C4:1', 'r:3']) # play C for 1 tick, rest for 3 ticks
8    if button_a.was_pressed():
9        tempo -= 5
10    if button_b.was_pressed():
11        tempo += 5  
12    

Terceiro passo: vamos deixar o código ainda melhor

  • Nota-se que ele toca os ritmos um pouco mais devagar que outros instrumentos eletrônicos com as mesmas definições de bpm. Isto deve-se ao fato de cada laço de repetição (loop) demorar um beat e 16 avos, em vez de um só beat;
  • Você poderia torná-lo mais preciso somando frações de uma batida para fazer uma batida inteira: 1/2 + 1/4 + 1/8 + 1/16 faz 15/16, e adicionando 1/16 de uma batida ao ritmo que você está tocando;
  • Blocos "forever" (infinitos) também acrescentam um pequeno atraso. Logo, usar um laço de repetição "while true" (enquanto verdadeiro) dentro do bloco acelera o código, tornando-o mais preciso;
  • O vídeo tutorial fixado no primeiro passo mostra como fazer isso.
Ilustração em grade mostrando as frações de batidas chegando à soma de quinze dezesseis avos