Blog personnel de Jesus Forain où les principaux sujets sont l'informatique, la technologie, le spatial mais aussi divers sujets.
Filtrer par date
Derniers commentaires
Bloquer la popup "Connectez-vous à YouTube" Jesus Forain mercredi 16 décembre 2020 à 13:01

Merci pour le commentaire

Bloquer la popup "Connectez-vous à YouTube" ToscanSeplante (non inscrit) mercredi 16 décembre 2020 à 12:40

Je suis sur Chrome et ça marche niquel !Gros merci !

Éclipse de Soleil du 20 mars 2015 __invité__ dimanche 20 septembre 2020 à 01:29

Hola buenas noche mi numero es 646933333 luis ablame estoi interesado para comprarte el atracion jamaica de feria gracias

Éclipse de Soleil du 20 mars 2015 Eric (non inscrit) jeudi 05 novembre 2015 à 13:51

Si l'aérotrain renaissait de nos jours aurait il un moteur linéaire ? Félicitations pour le sujet de l'aérotrain sur turbo Kermis. Vivement un article sur l'aérotrain et l'explication des moteurs linéaires sur ce blog

Éclipse de Soleil du 20 mars 2015 Eric (non inscrit) jeudi 05 novembre 2015 à 13:46

Pourrais tu faire un article sur le moteur électrique linéaire ? Merci à toi

Éclipse de Soleil du 20 mars 2015 Fandemanèges mercredi 28 octobre 2015 à 12:08

Quand tu auras le temps pourras tu faire un article sur l'aérotrain ? Merci à toi.

Éclipse de Soleil du 20 mars 2015 Fandemanèges jeudi 20 août 2015 à 19:52

Cela serait possible d'avoir un article sur le fonctionnement du coussin d'air ? Merci

Tester ses regex en direct jean samedi 07 février 2015 à 17:50

Pas mal ton site de regex!

Un serveur chez soi Jesus Forain lundi 10 février 2014 à 19:09

Je crois que toutes les marques se valent plus ou moins niveau fiabilité, il faut repérer des modèles qui t'intéressent et chercher sur Google ce qu'en pensent les gens.

Un serveur chez soi Pat91 dimanche 09 février 2014 à 22:24

Je compte changer d'ordinateur, pour l'instant j'ai un Dell. Peux tu me conseiller une marque Jesus Forain s'il te plais. C'est très important. Merci à toi.

Raspberry PI en récepteur audio Bluetooth (A2DP audio sink)

Je vais t'expliquer comment utiliser un Raspberry PI en tant que récepteur audio Bluetooth et ainsi pouvoir transformer n'importe quelle chaîne HI-FI ou ampli en enceinte Bluetooth. Ce dispositif utilise le protocole A2DP utilisé par toutes les enceintes Bluetooth du commerce.

Il est possible de connecter plusieurs appareils en même temps et il y a une latence d'environ 0,5 secondes. Si ce n'est pas gênant pour écouter de la musique ça l'est beaucoup plus pour la vidéo car on se retrouve avec un décalage entre le son et l'image. Je ne sais pas si l'on peux réduire cette latence.

Ceci n'est pas spécifique au Raspberry, ça fonctionne aussi sur tout PC Linux en adaptant les commandes à ta distribution.

Pour les anciens modèles datant d'avant le PI3 et dépourvus de connections sans fil, il faudra utiliser une clé USB Bluetooth.

Si tu ne veux pas t'embêter et que tu cherche la simplicité, ce genre de dispositif existe tout fait dans le commerce à des prix allant de quelques euros à plusieurs centaines d'euros selon la qualité. De plus la plupart intègrent une batterie et un micro permettant de l'utiliser comme kit mains libres pour téléphoner.

La qualité du son ne dépend pas du Bluetooth qui transporte juste un signal numérique ne subissant aucune modification mais du convertisseur numérique vers analogique appelé DAC (Digital to Analogue Converter = Convertisseur Numérique vers Analogique). C'est ce convertisseur qui transforme le signal numérique en signal analogique qui est envoyé sur les hauts-parleurs. Tu peux brancher à ton Raspberry une carte son USB pour avoir un son de meilleure qualité.

Pour y parvenir j'ai beaucoup galéré car la plupart des tutos que l'on trouve sur internet sont trop vieux et les commandes ne fonctionnent plus avec les nouvelles versions des systèmes Linux.
La difficulté est que la configuration repose sur plusieurs éléments: radio Bluetooth, authentification, paramètres audio. La recherche d'erreurs s'en trouve compliquée.

Cette procédure a été testée sur un Raspberry PI 3 sous raspios_lite_arm64-2021-05-28

Toutes les commandes se font avec l'utilisateur root.

Installation des paquets

Tu auras besoin de ces paquets

apt install bluez-tools bluealsa

Activer la sortie jack par défaut

La sortie audio par défaut est le HDMI et s'il n'y a pas d'écran branché sur le PI ça pose problème pour la suite. Auparavant cela se configurait via le fichier /boot/config.txt mais depuis la version Buster de Raspberry PI OS cette méthode ne fonctionne plus.

Liste les cartes son disponibles

cat /proc/asound/cards

Tu obtiens un résultat de ce type. Il y a 2 cartes son numérotés 0 et 1, celle qui nous intéresse ici est la N°1 “Headphones” correspondant à la sortie jack 3,5mm. La N°0 est la sortie audio HDMI.

0 [b1             ]: bcm2835_hdmi - bcm2835 HDMI 1
                     bcm2835 HDMI 1
1 [Headphones     ]: bcm2835_headphonbcm2835 Headphones - bcm2835 Headphones
                     bcm2835 Headphones

Crée le fichier de configuration indiquant la carte son par défaut à utiliser

vim /etc/asound.conf

Mets-y ces 2 lignes

defaults.pcm.card <NUMERO_CARTE_SON>
defaults.ctl.card <NUMERO_CARTE_SON>

Dans cet exemple on utilise la carte son N°1 par défaut

defaults.pcm.card 1
defaults.ctl.card 1

Redémarre le Raspberry

reboot

Et fais un test pour vérifier que ça fonctionne.

Branche quelque chose sur la prise jack (casque, enceinte, etc…) et exécute cette commande pour lire un fichier wav quelconque.

aplay <FICHIER_WAV>

Tu as peut-être des fichiers wav dans /usr/share/sounds/alsa/, dans ce cas tu peux exécuter par exemple

aplay /usr/share/sounds/alsa/Front_Left.wav

Tu dois entendre un son, signe que tout fonctionne.

Tu peux modifier le volume avec alsamixer

alsamixer

Tu as une interface graphique, utilise les flèches [HAUT] et [BAS] pour modifier le volume. Vérifie que tu as bien “Headphone” en dessous de la barre. Si ce n'est pas le cas appuie sur [F6] et sélectionne “Headphone”. Quand tu as terminé appuie sur [échap].

Si tu connecte ton Raspberry à des enceintes, il faut mettre le volume au maximum afin d'augmenter le ratio signal / bruit. Ceci permet d'éviter d'amplifier le bruit de fond, ce psssss,  produit par la sortie audio du Raspberry et d'avoir un meilleur son.

Service Bluetooth

Il est chargé de la gestion des périphériques Bluetooth.

Rendre le Raspberry PI visible

On va rendre le Raspberry visible par les autres périphériques Bluetooth.

Liste les périphériques Bluetooth de ton Raspberry

ls /var/lib/bluetooth/

Si tu n'a pas d'autre dispositif Bluetooth connecté à ton Raspberry tu n'auras qu'une ligne de ce type

A8:F7:B0:94:3D:9C

En réalité c'est un nom de dossier correspondant à l'adresse MAC de ton périphérique Bluetooth dans lequel il y a un fichier “settings” que l'on va éditer.

vim /var/lib/bluetooth/<ADRESSE_MAC_BLUETOOTH>/settings

Exemple si ton adresse MAC est A8:F7:B0:94:3D:9C

vim /var/lib/bluetooth/A8\:F7\:B0\:94\:3D\:9C/settings

Dans ce fichier il n'y a qu'un seul paramètre, “Discoverable” qu'il faut passer de “false” à "true".

Après modification tu dois avoir ça. Si le fichier est vide, colle ça dedans.

[General]
Discoverable=true

Définir le type de classe Bluetooth

On va définir de quel type de périphérique Bluetooth on s'annonce. Dans notre cas on va s'annoncer en tant que haut-parleur ce qui correspond au code hexadécimal 0x414. Tu as une liste des différents codes ici.

Ouvre le fichier de configuration du Bluetooth

vim /etc/bluetooth/main.conf

Sous “General” ajoute ces 2 lignes. Le paramètre “DiscoverableTimeout” avec la valeur “0” rend le Raspberry toujours visible

[General]
DiscoverableTimeout = 0
Class = 0x414

Changer le nom Bluetooth (optionnel)

Par défaut le nom Bluetooth du Raspberry est son hostname mais il est possible de mettre un autre nom.

Crée un fichier

vim /etc/machine-info

Et mets-y ça

PRETTY_HOSTNAME=<CE_QUE_TU_VEUX>

Dans cet exemple on appelle notre Raspberry "RPI BT audio"

PRETTY_HOSTNAME=RPI BT audio

Activer et démarrer le service

Il ne reste plus qu'à activer le service au démarrage et le démarrer

systemctl enable bluetooth
systemctl start bluetooth

Agent Bluetooth

Il est chargé de l'appairage et de l'authentification des appareils.

Crée un fichier de service systemd.

vim /etc/systemd/system/bt-agent.service

Et colle ça dans le fichier

[Unit]
Description=Bluetooth Auth Agent
After=bluetooth.service
PartOf=bluetooth.service

[Service]
Type=simple
ExecStart=/bin/sh -c '/usr/bin/yes | /usr/bin/bt-agent -c NoInputNoOutput'

[Install]
WantedBy=bluetooth.target

Active le service au démarrage et le démarre-le

systemctl enable bt-agent
systemctl start bt-agent

Audio Bluetooth

Ce service va récupérer le flux audio Bluetooth et l'envoyer sur la sortie audio.

Modifie le service bluealsa afin de s'annoncer en “a2dp-sink” (enceinte Bluetooth)

vim /lib/systemd/system/bluealsa.service

À la fin de la ligne “ExecStart=/usr/bin/bluealsa” ajoute “--profile=a2dp-sink”. Ton fichier doit ressembler à ça

[Unit]
Description=BluezALSA proxy
Requires=bluetooth.service
After=bluetooth.service

[Service]
Type=simple
User=root
ExecStart=/usr/bin/bluealsa --profile=a2dp-sink

Crée un fichier de service systemd.

vim /etc/systemd/system/aplay.service

Et colle ça dans le fichier

[Unit]
Description=BlueALSA aplay service
After=bluetooth.service
Requires=bluetooth.service

[Service]
ExecStart=/usr/bin/bluealsa-aplay 00:00:00:00:00:00 -vv
Restart=always

[Install]
WantedBy=multi-user.target

Activer le service au démarrage et démarre-le

systemctl enable aplay
systemctl start aplay

 

Ton Raspberry PI est maintenant opérationnel, tu n'a plus qu'à tester que tout fonctionne.

Depuis ton smartphone / tablette / ordinateur recherche les dispositifs Bluetooth, connecte-toi au Raspberry PI et lance la lecture d'un fichier audio. Tu dois avoir le son qui sors de la prise jack du Raspberry PI.

partager sur Facebook
Écrire un commentaire

Pour insérer une vidéo YouTube:
   Sur YouTube, cliquez sur le bouton "Partager" en dessous de la vidéo, copiez le lien (Exemple: http://youtu.be/p_kXgnvsUuo) et
   collez-le sans le modifier dans le commentaire.
Votre adresse Ip est enregistrée avec votre message.


Message
Envoi d'images
Déposez les images ici ou utilisez le formulaire.
Envoi de fichiers
Déposez les fichiers ici ou utilisez le formulaire. 400 Mo max par fichier.