Les anciens (et amateurs de bricolage soviétique) se souviennent sans doute de mes aventures, il y a quelques années, suite au défi lancé par Wardormeur : créer un DAP nomade basé sur la Raspberry Pi de l'époque, première du nom...
Le fil correspondant s'étale de mars 2013 à novembre 2014 :
http://www.tellementnomade.org/forum/vi ... 109&t=4947
J'ai appris une foultitude de choses au fil des prototypes successifs, qui tous fonctionnaient, mais force est de constater qu'aucun n'a jamais été vraiment utilisé en tant que DAP nomade, notamment par manque de compétence, d'outils et de courage de ma part pour créer un boîtier digne de ce nom, et surtout autonome...
Aujourd'hui nous en sommes à la Raspi3, et comme j'en ai touché une en promo cet hiver, j'ai eu envie de réutiliser une partie de cette expérience pour en faire une version sédentaire (plus simple, avec moins de contraintes).
En gros l'idée est de remplacer le fouillis qui traîne sur ma table de nuit, pour la lecture du soir (Hidisz AP100, ampli ALO, chargeurs, câbles...) par un "rig" compact et avec un meilleur WAF :-)
D'où le "BMP", pour "Bedside Music Player"...
Comme pour le DAPI je n'ai jamais eu juste du premier coup, et j'étais toujours en train d'attendre la pièce manquante qui arrive à pied par la Chine, mais là le proto est en passe de passer "en prod", miracle !
Il faut dire que le cahier des charges est drastiquement simplifié :
- plus de galère de boutons, récupération de la zapette Air Mouse du DAPI
- plus d'écrans chelous avec des fils partout, passage à un 7" 800x480 en HDMI
- plus de contraintes d'alimentation/portabilité
- la Raspi elle-même
- l'écran LCD avec sa carte d'interface HDMI (principale source de galères comme on verra)
- la carte DAC de chez Pimoroni, un clone apacher de Hifiberry et reconnu comme tel
Ci-dessous le tout à ciel ouvert pour la tof (cliquer pour agrandir) :
De gauche à droite,
- l'écran posé à l'envers avec son support (un porte-téléphone, sans doute provisoire),
- la carte d'interface entre la nappe du LCD et le HDMI du Rpi,
- la Rpi et le DAC soudé dessus,
- la zapette,
- la grosse batterie USB qui va alimenter le tout (pour éviter les histoires de masse et parasites)
Juste pour rire, la même tof mais avec la carte d'interface livrée d'origine avec le LCD, très complète avec ses trois sorties HDMI, VGA et coax, et ses boutons de contrôle pour le menu des réglages, mais qui est juste énôôrme :
A comparer avec la version HDMI-only à 10$, dure à dégoter mais nettement plus simple à intégrer :
Visez un peu le "cable management" de compétition :-)
Après divers essais (comme d'hab) j'ai retrouvé dans mon bric à brac un vieux répéteur Wifi Netgear, dont le boîtier avait le bon goût d'être sobre, compact, démontable et suffisant pour loger le tout, avec des ouvertures pour l'aération et le passage des fils.
Le gros casse-tête pour l'intégration, c'est cette histoire de nappe et de connecteur qui imposent que la carte d'interface soit à l'arrière et à l'envers par rapport à la Rpi :
- Les câbles HDMI, même très courts, ont de très gros connecteurs et sont très rigides, impossibles à loger.
- Les "dongles" à deux prises rapprochent les deux cartes, ce qui est bien, mais du coup on ne peut plus régler l'écartement et il faut la version avec prises inversées.
- Bien entendu les prises des deux cartes ne tombent pas en face et bien entendu elle tombent face à d'autres prises (d'alimentation en général, d'où la soudure du câble USB directement sur la carte HDMI).
- Sachant qu'en plus il faut arriver à centrer à peu près la nappe par rapport au boîtier...
Bref pas mal d'essais et d'erreurs (et un plein tiroir de trucs inutilisables) pour arriver à ce résultat qui paraît tout simple !
Et vue de face, comme il est destiné à être utilisé :
(faudra que j'enlève la protection un jour, quand même :-)
Pour l'interface j'ai récupéré le code python/pygame du DAPI, en le simplifiant notablement (plus de GPIO pour l'écran, plus de boutons) et en le toilettant.
Avec cet énôôrme écran à la définition colossale j'ai plutôt travaillé la partie graphique, avec un fond volontairement "rétro" (un affreux mélange de vinyle et de pictos "K7"), l'affichage des pochettes et un scrolling amélioré des titres longs (furieusement boosté par la découverte entretemps des "sprites" de pygame :-). Donc ça pour une fois c'était la partie facile...
C'était moins simple de trouver les formules magiques pour afficher les "splash screens" de début et de fin, et encore moins celles de "systemd" pour lancer le tout avec le nouveau raspbian Jessie, mais comme toujours StackOverflow est ton ami :-)
Un aperçu vite fait du résultat :
[video][/video]
Question/commentaires bienvenus :-)