Table des matières:

PAB : une boîte audio personnelle : 5 étapes
PAB : une boîte audio personnelle : 5 étapes

Vidéo: PAB : une boîte audio personnelle : 5 étapes

Vidéo: PAB : une boîte audio personnelle : 5 étapes
Vidéo: Les 5 niveaux du leadership. Atteignez votre plein potentiel. John Maxwell. Livre audio 2024, Juillet
Anonim
PAB: une boîte audio personnelle
PAB: une boîte audio personnelle

L'idée de ce projet est née de la nécessité de gratter les trois gros composants du système HiFi, qui étaient désormais arrivés en fin de vie. De plus, j'avais besoin de plus de place dans l'étagère pour d'autres objets, j'en ai donc profité pour commencer à étudier dans une Personal Audio Box pour remplacer toutes les fonctions des trois "géants" vintage.

Un Raspberry Pi3B+ semblait être le meilleur choix pour ces raisons:

  • Petit facteur de forme et faible consommation d'énergie;
  • Une sortie audio PCM de qualité acceptable;
  • Disponibilité de mopidy, un serveur de musique extensible mettant en œuvre le protocole mpd;
  • Forte intégration des sources: musique locale, CDROM, flux radio, Spotify, Tunein, etc.

En l'intégrant à quelques autres composants, j'ai pu créer un système complet et sans tête, capable de lire de la musique à partir de CD, de fichiers locaux, de radio en ligne, de listes de lecture Spotify, de podcasts. Et grâce à l'utilisation d'un frontend, je peux désormais gérer tout son fonctionnement depuis n'importe quel appareil connecté au LAN (smartphone, ordinateur, tablette).

Fournitures

  • Framboise PI3B+
  • Un vieux boîtier de DVD
  • lecteur de cédérom
  • Alimentation 5v-5A
  • Supercondensateurs
  • Divers composants (transistors, LED, relais, Op-Amp): voir les détails du projet

Étape 1: Cas et disposition des composants

Cas et disposition des composants
Cas et disposition des composants
Cas et disposition des composants
Cas et disposition des composants
Cas et disposition des composants
Cas et disposition des composants
Cas et disposition des composants
Cas et disposition des composants

Le premier problème auquel j'ai été confronté a été de sélectionner et de trouver un cas approprié. Ne trouvant rien à la maison, j'ai trouvé ce lecteur DVD bon marché sur Amazon pour quelques dollars, mais quelque chose de similaire suffira. Le boîtier a ces dimensions: 27 cm x 20 cm x 3,5 cm.

J'ai complètement supprimé tout le contenu, ne gardant que la petite carte pour gérer la LED avant, le bouton d'alimentation et l'entrée USB. Ensuite, j'ai planifié l'aménagement interne des nouveaux composants (voir photo).

Étape 2: Le commutateur de détection audio stéréo

Le commutateur de détection audio stéréo
Le commutateur de détection audio stéréo
Le commutateur de détection audio stéréo
Le commutateur de détection audio stéréo
Le commutateur de détection audio stéréo
Le commutateur de détection audio stéréo

Pourquoi un interrupteur audio automatique ? Le besoin vient du fait que j'écoute souvent la télévision via l'amplificateur HiFi, mais je ne voulais pas à chaque fois sélectionner le commutateur de source sur l'amplificateur. Avec ce circuit, l'entrée de l'amplificateur est toujours la même et la source est automatiquement sélectionnée par le commutateur de détection audio stéréo.

Le schéma est simple. Lorsque le PAB ne joue pas, la source audio de la HiFi provient du téléviseur. Si le PAB joue, le relais sélectionne l'audio du Raspberry.

Étape 3: La boîte des super-condensateurs

La Boîte Super-Condensateurs
La Boîte Super-Condensateurs
La Boîte Super-Condensateurs
La Boîte Super-Condensateurs

Comme on le sait, une interruption brutale de l'alimentation du Raspberry provoque la mise hors tension immédiate sans l'exécution de la procédure d'arrêt, risquant de compromettre le système d'exploitation et donc sa fonctionnalité totale. Un supercondensateur diffère d'un condensateur traditionnel par deux caractéristiques essentielles: ses plaques ont en fait une plus grande surface et la distance entre elles est beaucoup plus petite, car l'isolant interposé fonctionne différemment d'un diélectrique classique. Ces techniques permettent de réaliser des condensateurs de très grande capacité (de l'ordre de plusieurs dizaines de Farads) tout en conservant des dimensions réduites. L'idée est donc de créer un "buffer" 5v via des supercondensateurs et d'activer l'arrêt lorsque l'absence de la tension d'alimentation est détectée. De cette façon, il ne sera plus nécessaire d'intervenir manuellement pour lancer l'arrêt, mais simplement de débrancher la prise (ou d'activer un interrupteur) pour assurer un arrêt en toute sécurité.

En se référant au schéma, l'alimentation est appliquée à la borne gauche et la diode Schottky empêche tout retour de courant vers l'alimentation. Les deux résistances de puissance 1,2Ω 5W en parallèle limitent le courant de charge des supercondensateurs, pour protéger l'alimentation. Sans ces résistances, le courant de crête requis par les deux supercondensateurs déchargés pourrait presque certainement endommager l'alimentation. La diode de puissance doit obligatoirement être de type Schottky afin d'insérer une chute de tension minimale en série avec la barre 5V.

Les deux supercondensateurs sont connectés en série pour assurer une tension maximale de 5,4 volts à leurs extrémités (chaque supercondensateur fait 10F, 2,7V) et les deux résistances en parallèle aux capacités équilibrent les courants de charge et garantissent une décharge lente lorsque le Raspberry est allumé désactivé. Les deux résistances 1KΩ parallèles à l'entrée divisent le 5V de l'alimentation en deux pour prendre le signal nécessaire pour détecter une panne de courant (connecté au Raspberry GPIO 7). Contrairement aux piles au lithium modernes, les supercondensateurs garantissent un nombre presque infini de cycles de charge et de décharge, sans perdre aucune caractéristique.

Le circuit pourra donc maintenir le Raspberry alimenté et fonctionnel pendant le temps nécessaire pour effectuer un arrêt régulier. Le début du processus d'arrêt sera détecté par un programme exécuté sur le Raspberry qui surveillera l'état du GPIO 7, auquel le niveau de puissance est connecté. Lorsque l'alimentation est coupée, la broche GPIO 7 passe à un niveau bas et déclenche l'arrêt. C'est le code:

#!/usr/bin/env python

importer RPi. GPIO en tant que sous-processus d'importation GPIO GPIO.setmode(GPIO. BCM) # utiliser la numérotation GPIO GPIO.setwarnings(False) INT = 7 # broche 26 moniteurs Alimentation # utiliser un pull_up faible pour créer un GPIO.setup (INT, GPIO. IN, pull_up_down=GPIO. PUD_UP) def main(): while True: # définit une interruption sur un front descendant et attend que cela se produise GPIO.wait_for_edge(INT, GPIO. FALLING) # vérifie à nouveau le niveau de la broche si GPIO.input(INT) == 0: # toujours faible, arrêt Pi subprocess.call(['poweroff'], shell=True, / stdout=subprocess. PIPE, stderr=subprocess. PIPE) if _name_ == '_main_': principale()

Le programme doit être enregistré dans /usr/local/bin/.py et configuré pour s'exécuter au démarrage du Raspberry. D'après les tests effectués, les capacités des deux supercondensateurs se sont avérées suffisantes pour assurer le temps d'arrêt du Raspberry. S'il faut plus de temps, il suffira d'introduire deux autres supercondensateurs en parallèle à ceux existants, ou de les remplacer par deux de plus grande capacité.

Étape 4: Assemblage et utilisation des ports USB

Assemblage et utilisation des ports USB
Assemblage et utilisation des ports USB

Le schéma du bloc montre comment connecter les différents appareils pour PAB sur le bus 3 principal (+5v, USB et audio stéréo).

Notez que l'alimentation du lecteur de CD a été connectée directement à l'alimentation principale via un câble "Y", tandis que l'entrée audio va au Raspberry. Les quatre ports USB Raspberry ont été utilisés pour:

  • Lecteur CD;
  • une clé USB de 250 Go pour stocker des fichiers musicaux locaux (mp3, m4a, wma, flac, etc.);
  • une carte micro SD de 16 Go (avec adaptateur USB) pour stocker la sauvegarde complète de la carte SD principale Raspi (voir ci-dessous);
  • une connexion au port USB externe sur le boîtier.

Le port USB externe peut être utilisé pour lire de la musique externe ou pour alimenter des périphériques externes. Dans mon cas, j'alimente un émetteur Bluetooth externe car j'ai jeté l'émetteur interne du Raspi en raison de la faible portée et de l'instabilité. Avec le Bluetooth externe, je conduis 2 haut-parleurs stéréo différents à la maison.

La carte micro SD de 16 Go (avec adaptateur USB) contient une sauvegarde complète de Raspberry. J'utilise rpi-clone, qui s'est révélé être un très bon projet qui permet d'avoir une sauvegarde complète du Raspberry sans avoir besoin de retirer la SD interne. J'ai échangé plusieurs fois cette SD avec celle interne, sans aucun problème. J'ai donc configuré une tâche cron pour l'utilisateur root:

#Sauvegarde sur sda - chaque mercredi soir

15 2 * * 3 /usr/sbin/rpi-clone sda -u | mail -s "Sauvegarde PAB sur SD - terminé"

J'ai ensuite réutilisé le bouton d'alimentation d'origine du boîtier pour arrêter et redémarrer le Raspberry, en suivant ce guide:

Étape 5: Logiciel et système d'exploitation

Logiciel et système d'exploitation
Logiciel et système d'exploitation
Logiciel et système d'exploitation
Logiciel et système d'exploitation
Logiciel et système d'exploitation
Logiciel et système d'exploitation

Le système d'exploitation principal de PAB est un Raspbian minimal (Debian Buster) avec plusieurs ajouts spécifiques:

  • rpi-clone pour la sauvegarde principale;
  • ssmtp, un simple MTA pour retirer le courrier du système;
  • udevil, pour permettre le montage automatique des clés USB;
  • abcde, pour récupérer ma collection de CD et la compresser dans n'importe quel format audio;
  • mopidy, un démon de lecteur de musique complet avec un tas de plugins.

J'ai ensuite écrit une application serveur PAB Scheduler complète en utilisant python3 et tornado, dont le code sort du cadre de cet article, mais je peux fournir des instructions sur demande. Avec le planificateur, vous pouvez configurer des listes de lecture à tout moment de la journée, en différenciant les jours de la semaine des week-ends.

Le principal logiciel exécutant PAB est mpidy. Pour l'installation et la configuration de mopidy (assez complète) veuillez vous référer à sa documentation ici:

Voici les plugins installés:

  • Mopidy-Alsamixer
  • Mopidy-Internetarchive
  • Mopidy-Local-Sqlite
  • Mopidy-Podcast
  • Mopidy-Scrobbler
  • Mopidy-Soundcloud
  • Mopidy-Spotify
  • Mopidy-Spotify-Tunigo
  • Mopidy-Cd
  • Mopidy-Iris
  • Mopidy-Local-Images
  • Mopidy-TuneIn

Afin d'avoir le contrôle total de PAB, j'ai choisi l'extension frontend Iris (voir photos). Il s'agit d'une application Web très puissante avec les fonctionnalités suivantes:

  • Contrôles d'interface Web complets pour Mopidy
  • Prise en charge améliorée des bibliothèques locales (optimisé par Mopidy-Local-Sqlite)
  • Parcourir et gérer les listes de lecture et les pistes
  • Découvrez de la musique nouvelle, populaire et connexe (propulsée par Spotify)
  • Hébergé gratuitement
  • Intégration avec:

    • Spotify
    • LastFM
    • Génie
    • Snapcast
    • Icecast

De cette façon, je suis libre de contrôler ma musique depuis presque n'importe où (ordinateur, tablette, smartphone).

Conseillé: