View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Programmer le pcDuino : Audio : Lire un fichier son.

Par X. HINAULT - Juin 2013

Ce que l'on va faire ici

  • Dans ce code, je montre comment pyduino permet de lire très simplement un fichier son, ce qui permettra d'ajouter facilement des bruitages de toutes sortes à ses réalisations.
  • Pour plus de détails sur la lecture des fichiers sons, voir l'instruction Pyduino playSound()

Pré-requis

Exemples de sons

$ wget -4 http://www.mon-club-elec.fr/mes_downloads/pyduino_sons.tar.gz
  • Extraire l'archive puis copier-là dans votre répertoire de sources audio.

Schéma fonctionnel

  • La sortie audio permet d'entendre le son :

Matériel nécessaire

Système

  • Le pcDuino
  • une sortie son opérationnelle :
    • soit la sortie audio HDMI connectée à un écran HDMI
    • soit la sortie audio jack intégrée si elle existe (raspberryPi)
    • soit une carte son USB disposant d'une sortie audio

E/S

  • aucun matériel

Instructions de montage

  • Connecter la sortie son soit sur un écran (HDMI) soit sur des enceintes.

Le montage à réaliser

Le fichier *.py

Copier/coller ce code dans l'éditeur Geany :

#!/usr/bin/python
# -*- coding: utf-8 -*-

# exemple pyDuino - par X. HINAULT - www.mon-club-elec.fr
# Juin 2013 - Tous droits réservés - GPLv3
# voir : https://github.com/sensor56/pyDuino

# test playsound

from pyduinoMultimedia import * # importe les fonctions Arduino pour Python

# entete declarative
noLoop=True

#--- setup ---
def setup():

        # exemples de sons :  wget -4 http://www.mon-club-elec.fr/mes_downloads/pyduino_sons.tar.gz

        filepathAudio=homePath()+sourcesPath(AUDIO)+"star_wars/"
        filename="r2d2.mp3"
        print filepathAudio+filename

        playSound(filepathAudio+"r2d2.mp3") # joue le son

        playSound(filepathAudio+"r2d2_5.mp3") # joue le son

        setSourcesPath(AUDIO, "sources/audio/star_wars/") # fixe le chemin sources audio courant relatif à main/
        print sourcesPath(AUDIO) # affiche le chemin audio courant
        playSound("r2d2_3.mp3") # utilise le chemin sources audio courant


# -- fin setup --

# -- loop --
def loop():
        return  # si vide

# -- fin loop --

#--- obligatoire pour lancement du code --
if __name__=="__main__": # pour rendre le code executable
        setup() # appelle la fonction main
        while not noLoop: loop() # appelle fonction loop sans fin
 

Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/Audio/PlaySound.py

Utilisation

  • Vérifier au besoin le bon fonctionnement de la sortie audio au préalable (par exemple en générant un son avec Audacity...)
  • Appuyer sur le bouton exécuter dans Geany
  • Une fenêtre de Terminal doit apparaître : plusieurs fichiers sons doivent être joués.

Discussion technique

  • Il est très simple d'ajouter des bruitages à une application de cette façon.