Jouer un fichier .wav en Python sur la brique EV3

Méthode de la classe Sound pour jouer un fichier Wav

L'affichage d'un fichier image s'effectue par l'invocation de la méthode play_file() de la classe Sound. Cette instruction est équivalente à la brique graphique ci-dessous :
Elle est déclarée comme ci-dessous :
play_file(wav_file, volume=100, play_type=0)

Programmation

from ev3dev2.sound import Sound

HP = Sound()

HP.play_file("res/sounds/Fanfare.wav")

Explications

  • La classe Sound est importée à partir du module sound de la bibliothèque ev3dev2.
  • La classe Sound n'est instanciée qu'une seule fois. Cette instance est affecté à une constante globale HP.
  • Pour jouer un fichier son, on invoque la méthode play_file() de la classe Sound sur l'instance HP.
  • Le paramètre wav_file de la méthode play_file() est une chaîne de caractères contenant le chemin relatif par rapport au fichier du programme Python qui l'utilise.

Utilisation des fichiers sons de Lego

Le logiciel de programmation par briques graphiques livré avec le kit du robot Lego MindStorm dispose de nombreuses images. Pour les utiliser, il faut le recopier dans le projet du programme. En principe les fichiers des images Lego se trouvent dans le répertoire C:\Program Files\LEGO Software\LEGO MINDSTORMS EV3 Home Edition\Resources\BrickResources\Retail\Sounds\files.
Le problème de ces fichiers c'est qu'ils ont l'extension .rsf. Or la méthode play_file() de la classe Sound n'accepte que des fichiers dont l'extension est .wav. Cependant, les fichiers .rsf de Lego sont bien structurés comme des fichiers .wav. Il suffit donc de les renommer avant de les recopier dans le projet Python.
Une bonne pratique consiste à créer un répertoire res dans le projet pour les ressources, que l'on peut subdiviser en deux sous répertoires images qui contient tous les fichiers des images utilisées par le projet et sounds pour les fichiers des sons.

Commentaires

Posts les plus consultés de ce blog

Connecter ev3dev2 à Internet en WiFi

Connecter Visual Studio Code à un robot MindStorm EV3 avec ev3dev-browser

Installer les modules EV3DEV2 sur Python