Skip to content

Activité

Métronome

Débutant | MakeCode, Python | Boutons, Son, Écran LED | Itération, Tempo

Étape 1 : Fais-le

Qu'est-ce que c'est ?

Codez votre propre métronome électronique qui fait des battements réguliers que vous pouvez ralentir et accélérer au fur et à mesure que vous jouez de la musique.

Introduction

Guide de codage

Ce que vous apprendrez

  • Comment ajuster le tempo des notes musicales jouées par le micro:bit
  • Comment utiliser les boutons de saisie et les sorties audio pour faire un périphérique électronique utile

Comment ça marche

  • Au début du programme, il fixe le tempo à 100 bpm - battements par minute. C'est une façon standard de mesurer le tempo ou la vitesse de la musique.
  • Une boucle infinie ordonne au micro:bit de jouer une note courte puis de ne rien faire pendant un battement.
  • Vous pouvez entendre le son en connectant un casque à la broche 0 et GND ou sur le haut-parleur intégré du nouveau micro:bit.
  • Appuyez sur le bouton A pour ralentir le tempo de 5 bpm.
  • Appuyez sur le bouton B pour l'accélérer de 5 bpm.
  • Appuyez sur les boutons A et B simultanément permet d'afficher le tempo actuel sur l'afficheur LED.

Ce dont vous aurez besoin

  • Un micro:bit
  • MakeCode ou éditeur Python
  • un boîtier de piles (optionnel)

Étape 2 : Programme-le

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    

Étape 3 : Améliore-le

  • Vous remarquerez peut-être qu'il joue son rythme un peu plus lentement qu'un instrument électronique avec le męme paramétrage BPM - c'est parce que chaque boucle prend un battementplus un seizième de battement au lieu d'un seul.
  • Vous pourriez essayer de le rendre plus précis en ajoutant des fractions d'un battement pour faire un battement entier : 1/2 + 1/4 + 1/8 + 1/8 + 1/16 fait 15/16 à ajouter au 1/16 d'un battement pendant lequel vous jouez le son.
  • Les blocs "répéter indéfiniment" ajoutent aussi un peu de délai, donc utiliser une boucle "répéter jusqu'à ce que" à l’intérieur de celle-ci accélérera votre code et le rendra plus précis.
  • La vidéo de codage en haut de cette page vous montre comment faire ceci.
Grille montrant les fractions de battements additionnant jusqu'à quinze 16èmes.