Accueil » MR25 – Jouer une mélodie avec le buzzer

🎵 Exercice : Composer une mélodie simple avec un buzzer

On souhaite programmer le robot MR25 pour jouer une petite suite de sons avec son buzzer.

Le buzzer se commande avec la fonction suivante :

MR25.buzzer(frequence, duree)
MR25.buzzerStop()
  • La fréquence est exprimée en Hertz (Hz)
  • La durée est un entier (temps d’émission du son)
  • time.sleep(x) permet de faire une pause de x secondes

🎯 Partie 1 — Comprendre le code

Voici un programme :

import time
import MR25

MR25.buzzer(440, 65536/2)
time.sleep(1)

MR25.buzzer(523, 65536/2)
time.sleep(1)

MR25.buzzer(659, 65536/2)
time.sleep(1)

MR25.buzzerStop()

Questions :

  1. Combien de sons différents sont joués ?
  2. Que se passe-t-il entre deux notes ?
  3. Les fréquences 440, 523 et 659 correspondent-elles à des sons graves ou aigus ?

🎯 Partie 2 — Expérimentation

On donne le tableau suivant :

Question :

Écris un programme qui joue la suite :

-> Do – Mi – Sol – Mi – Do

Chaque note dure environ 1 seconde.

 

🎯 Partie 3 — Création

On veut créer une “signature sonore” du robot.

Consigne :

Crée une suite de 5 sons différents en utilisant au moins 3 fréquences différentes.

Tu dois :

  • écrire le code Python
  • utiliser MR5.buzzer()
  • insérer des pauses entre les notes

 

🎵Un exemple :

Voici un exemple simple pour jouer la musique Star Wars avec le buzzer du robot MR25 :

from MR25 import *
import time

def star_wars():
melody = [
(440, 500), # A
(440, 500), # A
(440, 500), # A
(349, 350), # F
(523, 150), # C
(440, 500), # A
(349, 350), # F
(523, 150), # C
(440, 800), # A

(659, 500), # E
(659, 500), # E
(659, 500), # E
(698, 350), # F
(523, 150), # C
(415, 500), # G#
(349, 350), # F
(523, 150), # C
(440, 800), # A
]

for note, duree in melody:
buzzer(note, duree)
time.sleep(duree / 1000.0 + 0.05)

buzzerStop()

# Lecture de la mélodie
star_wars()

 

 

A vous de jouez !