L’arrivée du WiFi et du BlueTooth sur le Raspberry Pi 3 est un événement important. Si la mise en œuvre du WiFi ne pose pas trop de problème, le BlueTooth soulève pas mal de questions. David ROBERTS a publié il y a quelques jours un article sur la configuration du BlueTooth avec un Raspberry Pi 3. Et puis est sorti le MagPi N°44 qui aborde également le sujet. Je vous propose d’en découvrir une synthèse et de voir comment utiliser votre Raspberry Pi pour envoyer du son à un casque/écouteur/enceinte Bluetooth.
============= Article sponsorisé =============
Le Raspberry Pi 3 et le BlueTooth
Le Raspberry Pi 3 est un petit ordinateur utilisable pour de nombreux usages. Son système d’exploitation Raspbian n’est pas prévu d’origine pour écouter de l’audio sur un casque ou des haut-parleurs Bluetooth. Cependant, ce n’est pas très difficile à mettre en place, c’est très agréable à écouter, et… ça marche ! Pendant que j’écris cet article j’écoute du Jesse COOK – j’écoute ce que je veux, non ?– sur mon RasPi 3 (vidéo ci-dessus), avec mes écouteurs Bluetooth yep !
Ce que je voulais faire, c’est recevoir du signal via Internet en WiFi et le renvoyer en Bluetooth vers mes écouteurs. Le RasPi posé sur la table, pas de fil à la patte mis à part celui de l’alimentation.
Cet article a été réalisé avec la version de Raspbian (ou de NOOBS) du 18 mars 2016. Il devrait fonctionner avec les versions précédentes de Jessie. N’importe quel Raspberry Pi fait l’affaire, mais il faut reconnaître que le Pi d’origine (le tout premier avec 512 Mo de RAM) et le Pi Zero sont un peu limités en puissance pour diffuser correctement de l’audio à partir d’Internet sur une liaison BlueTooth. Ils vont bien pour jouer des MP3 avec un media player comme VLC… mais n’en demandez pas trop
C’est l’apparition d’une interface WiFi/Bluetooth sur le Raspberry Pi 3 qui ouvre la porte à ce genre de manip, sans monopoliser 2 ports USB, un pour une clé USB WiFi, un autre pour une clé USB Bluetooth . Là tout est intégré, tout est compris !
Préparation du Raspberry Pi 3 et de Raspbian
Téléchargez la dernière version de Raspbian Jessie et mettez la sur une carte microSD de 8 Go ou plus. Effectuez les connexions des différents câbles au Raspberry Pi et démarrez-le. Ouvrez un terminal et exécutez les commandes suivantes pour vous assurer que tout est mis à jour. Si vous ouvrez cette page en même temps dans le navigateur sur votre Raspberry Pi, vous pouvez copier/coller ces commandes directement dans votre terminal pour éviter les fautes de frappe.
Je vous conseille dans un premier temps d’étendre le système de fichiers car c’est un peu ric-rac à mon avis et j’ai eu plusieurs fois des surprises lors des mises à jour parce qu’il n’y avait plus de place disponible sur la carte. L’image que vous téléchargez est livrée avec un espace de 4Go et lorsque vous faites les mises à jour, il risque de ne plus y avoir assez d’espace disponible. Le fait d’étendre le système de fichier à toute la carte donne un peu d’air au système. J’ai l’habitude d’utiliser des cartes Samsung EVO de 16Go (moins de 9€ dans le supermarché du coin).En mode graphique (bin oui il en faut pour tout le monde ) cliquez sur Menu >> Preferences >> Raspberry Pi Configuration. La fenêtre ci-dessus s’ouvre. Cliquez sur le bouton Expand Filesystem. Puis soyez conciliant répondez oui (yes, ok) à tout ce que vous demande le RasPi. Vous irez ainsi jusqu’au Reboot de la bête, après quoi le système de fichier, tel un gaz (ou moi sur mon bureau:-D ) occupera tout l’espace disponible.
Si vous faites une allergie au mode graphique (si si, ça arrive, il y en a à qui ça file… des boutons) connectez vous en mode texte et faites
sudo raspi-config
ce qui devrait avoir pour effet d’ouvrir cette fenêtre semi-graphique (bin oui, on est en mode texte )
On est déjà sur Expand Filesystem… Ça tombe bien. Validez, soyez poli, répondez voui sur la prochaine fenêtre. Après quelques TAB vous illuminerez <Finish>, validez avec Entrée et votre Filesystem occupera aussi toute la place ==> après le prochain reboot.
Bon cette fois, on redémarre le Raspi.
sudo reboot
Ou tout autre moyen. Évitez toutefois le sauvage « j’le débranche, y va bien redémarrer » qui se termine parfois en… « bin zut y r’démarre plus «
Connectez-vous en mode texte pour vérifier que le RFS est bien étendu à toute la carte SD :
Ma foi tout ça m’a l’air de bon aloi, on va pouvoir passer à la suite.
sudo apt-get update sudo apt-get upgrade
Acceptez toutes les mises à jour proposées. En date du 2 avril 2016 il y a 18Mo à télécharger.
(C’est le minimum syndical pour mes tests j’ai aussi fait dist-upgrade et rpi-upgrade )
Installation de la suite Blootooth pour le Raspberry Pi 3
Installez la suite Bluetooth pour le Raspberry Pi : pi-bluetooth. Dans mon cas la dernière version était installée.
pi@raspberrypi:~ $ sudo apt-get install pi-bluetooth Reading package lists... Done Building dependency tree Reading state information... Done pi-bluetooth is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Vous pouvez maintenant installer les utilitaires nécessaires à la gestion Bluetooth.
sudo apt-get install blueman pulseaudio pavucontrol pulseaudio-module-bluetooth
Cette fois il y a du monde et une quinzaine de Mo vont être téléchargés, décompactés et installés.
Quand l’installation est terminée, redémarrez le Raspberry Pi.
Oh surprise (enfin… non) une icône Bluetooth est apparue dans la barre des tâches.
Configuration du Bluetooth sur Raspberry Pi 3
Cliquez sur l’icône Bluetooth de la barre des tâches.
Cette fenêtre s’ouvre au centre de l’écran. Mettez votre périphérique en mode appairage (pairing en anglais). Pour mes écouteurs, par exemple, ils doivent être éteints et il faut les allumer en maintenant ensuite la pression sur la touche multifonction jusqu’à entendre une voix féminine qui annonce « Pairing ! ». Pour savoir comment faire avec votre périphérique c’est simple : RTFM… Surtout ne me demandez pas comment on fait avec vos écouteurs ou votre enceinte, je n’en sais rien
Lorsque votre écouteur/enceinte est prêt pour l’appairage, cliquez sur Search (à côté de la loupe).
L’écouteur Syncwire SW-BTE-01 a bien été détecté par le Raspberry Pi. Il faut maintenant le connecter à celui-ci :
Faites un clic droit sur le périphérique que vous souhaitez connecter. Choisissez Connect dans le menu qui s’est affiché. Remarquez en bas du menu l’item Remove… qui vous permettra de retirer un périphérique de la liste.
Les chiffres en bas à droite indiquent la quantité de données qui a transité par le Bluetooth, ainsi que la vitesse de transmission.
Des icônes indiquant la connexion et son état apparaissent à droite de la ligne de votre périphérique. On y est presque !
Cliquez sur le bouton Menu (en haut à gauche) puis sur Sound & Video et enfin sur PulseAudio Volume Control.
Si vous aviez eu la curiosité d’ouvrir cette fenêtre avant de connecter votre écouteur/enceinte, vous n’auriez trouvé que la partie haute de la fenêtre (bcm2835 ALSA Analog Stereo) qui envoie le son en analogique (en fait en PWM) vers la sortie Jack du Raspberry Pi.
Le fait d’avoir connecté l’écouteur SW-BTE-01 l’a fait apparaitre dans la liste des choix possibles pour la sortie son. Ici les deux sorties sont actives.
Comme je n’ai rien de connecté (pour le moment) sur la sortie audio analogique, j’ai dévalidé la sortie son d’origine en cliquant sur l’icône du haut-parleur orné d’une croix(Mute= Muet).
Allez, tout est en place…
Ouvrez une vidéo Youtube et… dégustez !
Après un moment d’audition, vous voyez que la quantité de données envoyée au casque à fortement augmenté par rapport à la vue précédente de cette fenêtre.
Et ce casque alors ? ma foi après l’avoir mis en charge je l’ai utilisé plusieurs heures sans défaillance. Le fabricant annonce que la batterie Lithium-ion polymère de 80mAh permet 7 heures de lecture audio/appels téléphoniques et 175 heures en veille avec une seule charge. La portée d’appairage d’appareils Bluetooth va jusqu’à 10 mètres. En intérieur j’ai pu aller jusque 6 mètres.
La qualité sonore était au rendez vous. Je n’ai pas forcément un oreille très affutée mais la qualité est très bonne, avec des basse profondes et des aigus bien distincts. Mon seul motif d’agacement concerne le cache qui referme le port USB destiné à la recharge. Il manque ne serait-ce qu’une aspérité pour pouvoir l’attraper. Je n’ai pas réussi à l’ouvrir avec un ongle (non, je ne me les ronge pas ) il a fallu à chaque fois que je fasse appel à un tournevis d’horloger ou une pointe de cutter.
Je l’ai utilisé également avec mon smartphone (Samsung Galaxy IV) aussi bien pour écouter de la musique que pour des appels téléphoniques le tout sans problème.
Les écouteurs m’ont été envoyés par Syncwire pour les tester. Voici une présentation de ce casque destiné à l’écoute de la musique et à une utilisation téléphonique.
Les écouteurs Bluetooth Syncwire
Vous avez vu que cet article est sponsorisé : c’est toujours indiqué quand c’est le cas sur framboise314. D’une part parce que c’est la loi, d’autre part parce que lorsqu’un article est sponsorisé, je pense que le respect des lecteurs implique que ce soit indiqué
Ici c’est Sync-wire, une entreprise de Shenzen, qui m’a contacté pour que je présente leurs produits. Comme ils sont plutôt spécialisé sur la gamme Apple (câbles pour iPhone, iPad, iPod) ce genre de produits ne concerne pas trop le Raspberry Pi. Mais… les écouteurs bluetooth et les chargeurs/alimentations oui ! Ils m’ont donc fait parvenir une paire d’écouteurs et un chargeur pour que je les teste.
Comme beaucoup de produits maintenant, les écouteurs sont livrés dans une boîte en carton assez épais et résistant.
Dans laquelle on trouve une autre boîte avec la notice des écouteurs (en anglais) ainsi qu’un pochette de rangement.
Les écouteurs sont reliés par un câble siliconé très souple qui permet de faire transiter le signal mais aussi l’alimentation entre les deux écouteurs.
L’écouteur gauche (ils sont marqués R=droite et L=gauche) comporte un bouton multi fonction destiné à mettre les écouteurs sous tension, mais aussi les appairer avec… un Raspberry Pi ou encore prendre un appel téléphonique.
Ce qui m’a aussi intéressé sur le site du constructeur, c’est la présentation du produit sous forme d’éclaté :
On n’a pas trop l’habitude de découvrir ce que ces bestioles ont dans le ventre. Les écouteurs se rechargent en 2 heures environ. Il sont à la norme Bluetooth 4.1+EDR et utilisent le décodage audio AptX.
Un chargeur un peu juste pour le Raspberry Pi 3
Dans la même livraison j’ai reçu un chargeur/alimentation mural USB à 4 ports. Il fait merveille pour charger smartphones et tablettes avec ses deux sortie 2,4A.
Là encore on a affaire à un emballage soigné et un produit de taille réduite avec un plus pour les voyageurs : Il peut en quelques secondes être équipé d’une prise clipsable au format adapté à la Grande-Bretagne, l’UE et les États-Unis. Sa petite taille permet de l’emmener dans un sac de voyage et de disposer d’un chargeur universel.
Ce chargeur est prévu pour fournir une charge complète aux appareils connectés. Il dispose de 4 ports USB (2 de 2.4A et 2 de 1A). Il peut fournir une puissance maximale de 34W (6.8A), et charge rapidement jusqu’à quatre appareils en même temps, en adaptant automatiquement la sortie pour chacun en fonction des besoins. Il est géré par un circuit « intelligent » qui protège l’adaptateur USB contre la surchauffe et la surcharge de l’appareil, et gère la charge des appareils connectés.
Les essais sur le Raspberry Pi 3 ont montré que la tension de sortie de 5,04v est un peu juste quand il faut alimenter un Raspberry Pi 3 avec l’écran officiel. Le carré signalant une sous alimentation de la carte clignote de temps en temps en haut à droite de l’écran. Il en a été de même avec un Raspberry Pi 3 équipé d’un écran 5 pouces HDMI. Par contre pour des versions plus anciennes il fournit suffisamment de puissance.
Là aussi le constructeur fournit des éclatés du produit, ce qui permet d’avoir une idée de ce qu’il y a dedans.
Tester son Bluetooth
Pour tester votre installation, voici quelques signaux (certains viennent de http://www.testsounds.com/)
Jesse COOK :
Son uniquement (MP3)
(2,28 Mo)
Video HD (MPEG4)
(87 Mo)
Solo de batterie MONO (MP3)
Solo de batterie STEREO (MP3)
Signal sinusoïdal :
20Hz
30Hz
50Hz
100Hz
200Hz en phase
200Hz déphasé
2500Hz
10KHz (droit)
10KHz (gauche)
Conclusion
La mise en œuvre du Bluetooth sur le Raspberry Pi 3 devient plus simple. Que ceux qui n’ont jamais galéré avec bluez me jettent la première clé USB
Tout n’est pas encore au point, loin de là puisque seule cette fonction d’envoi de musique est disponible actuellement. La réception de musique par le Raspberry Pi est indiquée comme Expérimentale! et l’émulation de casque (lui faire jouer le rôle du casque) est indiquée Très Expérimentale!
Je vous passe les installations qui n’ont pas fonctionné avec un blueman à la ramasse du genre tu cliques et tu as le temps de boire un café avant que la fenêtre s’ouvre… (tu as même le temps de le torréfier et de le mouliner). Parfois également l’icône Bluetooth n’apparait pas dans la barre des tâches… Bin ? où qu’il est passé ?
En résumé on peut dire que le Bluetooth existe sur le Pi 3 mais que pour son utilisation au quotidien il faudra sans doute être encore patient.
J’ai également testé le Bluetooth en mode manuel (bluetoothctl) et vous savez quoi… ça marche vraiment bien Mais ça… c’est une autre histoire.
Si vous vous êtes également frotté(e) au Bluetooth n’hésitez pas à faire un retour d’expérience dans les commentaires ci-dessous. Ce sera profitable à tous les utilisateurs de Raspberry Pi 3… Et pourquoi pas un article ?
Sources
Listen to Bluetooth Audio on Your Raspberry Pi 3, Pi Zero, or Earlier Pi
- The MagPi N°44 p 50 et 51
- https://www.element14.com/community/docs/DOC-81266/l/setting-up-bluetooth-on-the-raspberry-pi-3
- https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=131999
- http://www.sync-wire.com/
- http://www.amazon.fr/Syncwire-Bluetooth-Oreillette-Suppression-Appareils/dp/B015SCNJQG/ref=pd_sim_23_1?ie=UTF8&dpID=41Dao70FWlL&dpSrc=sims&preST=_AC_UL160_SR160%2C160_&refRID=1V6NPSMDNSH7XJC5R65N
- http://www.amazon.fr/Syncwire-Chargeur-Universel-Adaptateurs-Portables/dp/B011KPRE1G/ref=aag_m_pw_dp?ie=UTF8&m=A2DGIQMFD2NGBK