Montez le son avec la carte Intel Edison !

Par:
fredericmazue

ven, 10/07/2015 - 11:59

Ce guide pratique vise à expliquer les différentes façons d’obtenir et de jouer du son avec la carte Intel Edison. Par JOSEPH W. (Intel)

Seulement les méthodes de rebouclage (Loopback en Anglais) seront expliquées, puisqu’elles sont plus interactives et permettent à la carte Edison de se comporter comme un appareil connecté. Pour procéder à la lecture d’un fichier sonore, l’utilisation d’un lecteur externe à base d’A2DP connecté en Bluetooth est préférable.

Les 3 méthodes qui seront décrites ici sont :

- Rebouclage audio depuis et vers un casque USB

- Rebouclage d’un flux A2DP sur un dispositif sonore USB

- Rebouclage d’un flux A2DP vers un dispositif à distance A2DP

Prérequis

Matériel :

Une carte Intel Edison avec une carte d’extension basée sur Arduino

Un dispositif audio USB (un casque audio USB conviendra parfaitement)

Un dispositif A2DP pour envoyer l’audio vers la carte (comme un smartphone)

Un dispositif A2DP pour jouer l’audio depuis la carte (comme une enceinte Bluetooth)

Logiciel :

Software pour carte Edison

Ou une image mise à disposition en 2015 ou après.

Rebouclage audio depuis et vers un casque USB

1. Activez le mode hôte USB en positionnant le SW1 (entre le port USB principal et le port mini USB) dans la position la plus proche des ports mini USB. Vous aurez besoin d’une source d’alimentation externe dans ce mode.

2. Connectez votre casque USB.

3. Vérifiez si votre dispositif est correctement monté :

root@edison:~# cat /proc/asound/pcm
00-00: Loopback PCM : Loopback PCM : playback 8 : capture 8
00-01: Loopback PCM : Loopback PCM : playback 8 : capture 8
01-00: USB Audio : USB Audio : playback 1 : capture 1

Dans cet exemple, un casque USB est connecté. Vous pouvez voir le nombre d’appareils de lecture et de capture connectés à cet appareil USB.

root@edison:~# pactl list | grep Name | grep usb
Name: alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo
Name: alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo.monitor
Name: alsa_input.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-mono
Name: alsa_card.usb-JABRA_Jabra_BIZ_620_USB-00-USB

4. Rebouclez le dispositif de capture USB vers le dispositif de lecture USB.

Le rebouclage de flux audio peut être réalisé avec le module pulseAudio "module-loopback".

Le module de rebouclage doit être chargé et configuré selon les noms de vos appareils :

pactl load-module module-loopback source=<nom de votre appareil source> sink=<nom de votre appareil récepteur>

Exemple :

root@edison:~# pactl load-module module-loopback source=alsa_input.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-mono sink=alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo

5. Parlez dans le microphone et vérifiez le son du côté du casque.

Rebouclage dun flux A2DP sur un dispositif sonore USB

1. Activez le mode hôte USB en positionnant le SW1 (entre le port USB principal et le port mini USB) dans la position la plus proche des ports mini USB. Vous aurez besoin d’une source d’alimentation externe dans ce mode.

2. Connectez votre casque USB.

3. Vérifiez si votre dispositif est correctement monté :

root@edison:~# cat /proc/asound/pcm
00-00: Loopback PCM : Loopback PCM : playback 8 : capture 8
00-01: Loopback PCM : Loopback PCM : playback 8 : capture 8
01-00: USB Audio : USB Audio : playback 1 : capture 1

Dans cet exemple, un casque USB est connecté. Vous pouvez voir le nombre d’appareils de lecture et de capture connectés à cet appareil USB.

root@edison:~# pactl list | grep Name | grep usb
Name: alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo
Name: alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo.monitor

4. Connectez votre appareil de lecture A2DP (par exemple, un smartphone) et vérifiez qu’il est bien listé dans pulse audio comme un appareil source en débloquant l’appareil local BT :

root@edison:~# rfkill unblock 2

Maintenant, découvrez/validez/appairez/connectez votre appareil à distance A2DP avec BTADDR comme adresse mac de votre appareil A2DP :

root@edison:~# bluetoothctl
[bluetooth]# scan on
[bluetooth]# trust BTADDR
[bluetooth]# pair BTADDR
[bluetooth]# connect BTADDR
[bluetooth]# scan off
[bluetooth]# exit

Vérifiez que votre appareil A2DP est reconnu dans pulse audio et obtenez le nom de source de votre appareil (il devrait commencer par "bluez_source") :

root@edison:~# pactl list sources | grep bluez_source
Name: bluez_source.88_C9_D0_51_C6_AE

Note : par défaut, le nom BT de la carte edison est "BlueZ 5.24", donc c’est le nom qui devrait apparaître sur votre appareil de lecture. Reportez-vous aux infos pour le modifier.

5. Rebouclez l’appareil source A2DP vers l’appareil de lecture USB.

root@edison:~# pactl load-module module-loopback source=bluez_source.88_C9_D0_51_C6_AE sink=alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo

6. Jouez un son sur votre appareil à distance et vérifiez l’audio du côté du casque.

Rebouclage dun flux A2DP sur un dispositif à distance A2DP

Guide étape par étape      

1. Connectez à la fois votre appareil de lecture A2DP (par exemple, un smartphone) et votre enceinte BT, puis vérifiez qu’ils sont listés dans pulse audio :

root@edison:~# rfkill unblock 2

Maintenant, découvrez/validez/appairez/connectez votre appareil à distance A2DP avec BTADDR comme adresse mac de votre appareil A2DP :

root@edison:~# bluetoothctl
[bluetooth]# scan on
[bluetooth]# trust BTADDR
[bluetooth]# pair BTADDR
[bluetooth]# connect BTADDR
[bluetooth]# scan off
[bluetooth]# exit

vérifiez que vos deux appareils A2DP sont reconnus dans pulse audio et obtenez le nom de source et de sortie de vos appareils.

root@edison:~# pactl list | grep bluez
Name: bluez_source.88_C9_D0_51_C6_AE
Name: bluez_sink.00_1D_DF_89_12_8E

Note : par défaut, le nom BT de la carte edison est "BlueZ 5.24", donc c’est le nom qui devrait apparaître sur votre appareil de lecture. Reportez-vous aux infos pour le modifier.

2. Rebouclez l’appareil source A2DP (le smartphone) vers l’appareil de lecture A2DP (l’enceinte BT).

root@edison:~# pactl load-module module-loopback source=bluez_source.88_C9_D0_51_C6_AE sink=bluez_sink.00_1D_DF_89_12_8E

6. Jouez un son sur votre appareil à distance et vérifiez l’audio sur l’enceinte BT.

Vous pouvez renommer le nom de votre contrôleur Bluetooth en le modifiant dans /etc/bluetooth/main.conf.

Retirez le statut de commentaire de l’attribut "Name" et donnez un nom dans la section [general] :

[general]
...
# %d - substituted for adapter id
# Defaults to 'BlueZ'
Name = Edison

Redémarrez ensuite le service Bluetooth et vérifiez le nom du contrôleur :

root@edison:~# systemctl restart bluetooth
root@edison:~# bluetoothctl

[NEW] Controller 98:4F:EE:02:00:6A Edison [default]

Résolution des problèmes

Pensez toujours à vérifier si le Bluetooth est bloqué ou débloqué. La plupart du temps il est bloqué, et il faut commencer par le débloquer. Référez-vous à la FAQ et aux pages d’aide, ainsi qu’aux forums le cas échéant.

Rendez-vous sur la zone des développeurs Intel IoT ou sur la page Intel Maker pour découvrir les outils de développements et les projets en cours.

Vous trouverez de plus amples informations sur le guide de démarrage Edison ainsi que sur le forum Intel IoT.

Ressouces

Intel Developer Ressources