LSW-framboiseAudio : Différence entre versions
(explication du projet framboiseFlao) |
(→Logiciel) |
||
Ligne 31 : | Ligne 31 : | ||
=== Logiciel === | === Logiciel === | ||
− | * Puredata-extended pour la partie audio et l’algorithme de déclenchement | + | * Puredata-extended version armhf pour la partie audio et l’algorithme de déclenchement |
* Python pour la gestion du capteur via le GPIO | * Python pour la gestion du capteur via le GPIO | ||
Le script Python teste la valeur du capteur toutes les 0,5 secondes. Il écrit cette valeur (0 = absence ou 1 = présence) dans un fichier texte stocké dans un espace de mémoire partagée (pour ne pas devoir écrire sur la SD => /run/shm/monfichier ). | Le script Python teste la valeur du capteur toutes les 0,5 secondes. Il écrit cette valeur (0 = absence ou 1 = présence) dans un fichier texte stocké dans un espace de mémoire partagée (pour ne pas devoir écrire sur la SD => /run/shm/monfichier ). | ||
− | Toutes les 0.5 seconde (pas de callback), le patch Puredata lit la valeur du fichier texte, et l'ajoute à la liste des x dernières valeurs enregistrées | + | Toutes les 0.5 seconde (pas de callback, une simple horloge [metro]), le patch Puredata lit la valeur du fichier texte, et l'ajoute à la liste des x dernières valeurs enregistrées (x correspondant à 2 x durée de la fenêtre temporelle d'observation exprimée en secondes). Lorsque la moyenne arithmétique des valeurs lues dans la fenêtre passe en dessous d'un certain seuil, cela déclenche la lecture du patch audio. |
+ | === Valeurs par défaut pour cette expo === | ||
+ | * fenêtre temporelle : 25 secondes | ||
+ | * seuil de déclenchement: 0.3 | ||
+ | |||
+ | Le patch audio tire au hasard un fichier audio (et ne tire jamais deux fois la même séquence à suivre), lance la lecture dudit fichier ce qui stoppe la lecture du fichier texte du capteur. A la fin de la lecture du fichier, une horloge d'une durée oscillant de façon aléatoire entre y et y + 1/3 y est lancée, avant de relancer la lecture du fichier texte du capteur. | ||
=== Défauts === | === Défauts === |
Version du 17 septembre 2013 à 12:16
lecteur audio déclenchant des samples lors du passage de spectateurs dans une exposition
Contributeur·ice·s
Statut du projet
production
Statut de la publication
License
GPL
Inspiration
yenapa
Fichiers source
Machines
Matériaux
Objectifs
Pour une exposition dédiée à un auteur de bande dessinée dans une bibliothèque, un espace semi-clos doté d'un plancher est consacré à un ouvrage dédié au flamenco. Il faut qu'une bande-son de flamenco se déclenche lorsque le visiteur arrive à la fin de sa visite et ne pas se déclencher lors d'une simple traversée de l'espace.
Analyse
Vu que le plancher est déjà monté au moment de la commande et la discrétion nécessaire du dispositif, l'emploi de micros piezo posés sous le plancher est impossible. Je compte donc employer un capteur PIR (infrarouge) disposé en hauteur. Par mesure d'économie et de réduction de l'encombrement, je ne compte pas utiliser de PC portable. Etant donné le coût et la galère des shields audio pour Arduino, je me penche vers une solution à base de Raspberry Pi.
Réalisation
Matériel
- une framboise Pi avec la distribution Rasbian
- une alim 5V 1A (important d'avoir un ampérage >= 1A pour pouvoir alimenter directement capteur, adaptateur Wifi et sortie son)
- un capteur PIR modèle GH-718 alimenté en 5V, signal en 3,3V (donc parfait pour le GPIO de la framboise)
- un shield de prototypage Adafruit http://www.adafruit.com/products/801 avec des borniers à vis
Logiciel
- Puredata-extended version armhf pour la partie audio et l’algorithme de déclenchement
- Python pour la gestion du capteur via le GPIO
Le script Python teste la valeur du capteur toutes les 0,5 secondes. Il écrit cette valeur (0 = absence ou 1 = présence) dans un fichier texte stocké dans un espace de mémoire partagée (pour ne pas devoir écrire sur la SD => /run/shm/monfichier ).
Toutes les 0.5 seconde (pas de callback, une simple horloge [metro]), le patch Puredata lit la valeur du fichier texte, et l'ajoute à la liste des x dernières valeurs enregistrées (x correspondant à 2 x durée de la fenêtre temporelle d'observation exprimée en secondes). Lorsque la moyenne arithmétique des valeurs lues dans la fenêtre passe en dessous d'un certain seuil, cela déclenche la lecture du patch audio.
Valeurs par défaut pour cette expo
- fenêtre temporelle : 25 secondes
- seuil de déclenchement: 0.3
Le patch audio tire au hasard un fichier audio (et ne tire jamais deux fois la même séquence à suivre), lance la lecture dudit fichier ce qui stoppe la lecture du fichier texte du capteur. A la fin de la lecture du fichier, une horloge d'une durée oscillant de façon aléatoire entre y et y + 1/3 y est lancée, avant de relancer la lecture du fichier texte du capteur.
Défauts
- la qualité sonore de la carte son d'origine de la framboise Pi est vraiment horrible
- je n'avais pas d'enceinte amplifiée équipé d'une lyre ou d'un dispositif d'accroche, j'ai donc du créer en menuiserie vite fait mal fait une boîte en OSB permettant de suspendre cette enceinte Fostex avec un crochet de projecteur lumière.
- la salle d'expo est blanche, j'ai du peindre vite fait mal fait la boite OSB en blanc et cacher les câbles audio dans une moulure électrique Legrand sans pouvoir y glisser l'alim électrique (courants forts/courants faibles)