Table des matières

BUT DU PROJET

Le projet est de créer une bibliothèque audio portable sans DAC ni Ampli, délivrant un flux numérique sur USB (et peut-être avoir un headphone out sur mini-jack).

PROJET

IDEE ARCHITECTURALE GENERALE

Raspberry Pi > flux audio numérique > DAC/Amp USB

Ou

Arduino > flux audio numérique > DAC/Amp USB

A confirmer la possibilité de sortir en USB à partir de debian → Pas de Debian sur Arduino ! Si on doit partir d'une Arduino, il faudra le faire à la main.

Baladeur avec mémoire sur SD sans DSP ni amplification

taille ~ 11cm x 5cm x 2cm

MATERIEL

MACHINE

- Raspberry pi modèle A ( moins puissant moins énergivore ): http://raspberrypi.rsdelivers.com/product/raspberry-pi/raspberry-pi-type-a/raspberry-pi-type-a-single-board-computer-256mb/7568317.aspx

ECRAN

- Utiliser l'ecran d'emsystech avec les boutons : http://www.emsystech.de/lcd-display-add-on-for-raspberry-pi/ (contient un code C d'exemple)

- Utiliser l'ecran d'emsystech avec les images et autres (en allemand) : http://www.emsystech.de/raspi-lcd-tutorial/

- Exemple d'ajout d'un écran (de vieux Nokio 4,5€) sur un Rpi : http://blog.idleman.fr/?p=1946

- Autre implementation d'ecran : http://binerry.de/post/25787954149/pcd8544-library-for-raspberry-pi

BATTERIE

- Chargeur USB batterie : https://www.adafruit.com/products/259

- Une batterie : https://www.adafruit.com/products/328

- Sujet sur le forum de RPI sur la batterie : http://www.raspberrypi.org/phpBB3/viewtopic.php?f=65&t=13370

MEMOIRE

- Stockage : SD de 64go ou 128go (sur la Carte SD où se trouve le système ?)→ /, après tu peux partionner je suppose

voire potentiellement rajouter un second slot SD

INTERFACE PHYSIQUE UTILISATEUR

- Des touches (x5): multidirectionnel 5 sens ou des boutons normaux https://www.adafruit.com/products/367

MODIFICATION HARDWARE

- plusieurs port dessoudés : hdmi / powerup / RCA video / Jack

- Dimension écran :

- Capacité batterie : 5V en ? mAh, consomation raspberry pi 2W/h

- Calcul de l'autonomie : V*A/P=t

exemple avec une batterie 5V, 7000mAh : 5*7/2= 17,5h (avec aucune perte, donc le résultat devrait être autour de 15h)

- Optimisation de la consomation : http://www.raspberrypi.org/phpBB3/viewtopic.php?t=12387&p=134975 (réduction de la conso de 30% sur un rasp pi B)

Le lien ci-dessus parle de l'optimisation via un convertisseur DC/DC 5/3,3V, qui est celui-ci : http://dx.com/p/vmp3111-high-efficiency-dc-dc-power-supply-module-47820?item=1

LOGICIELS UTILISABLES

MOC : http://moc.lophus.org/

- Article présentant le lecteur en console moc ainsi que des idées de scripts pour récupérer les pistes jouées notamment via des scripts bash : http://polishlinux.org/apps/cli/moc-audio-player-advanced-tricks/

Ou bien Github : https://github.com/albertz/music-player

MODIFICATION SOFTWARE

Deux approches sont ici possibles à mon avis selon le type d'écran choisi et sa connectique :

  1. On prend un écran LCD qu'on connecte sur les ports GPIO, ça voudra dire que le système tournera en “aveugle” (comprendre on ne verra pas le système à l'écran) et on doit alors envoyer les informations sur l'écran lcd via une bibliothèque python déjà existante ( RPi-GPIO). Il faudra donc s'occuper de faire “parler” entre eux le système, l'écran et les boutons de manière grossière. L'avantage c'est que ce n'est pas bien gourmand.
  2. On prend un écran LCD/TFT/e-ink/etc qui se branche sur le composite et sera donc pour le RPi un écran “externe” et on verra le système et dans ce cas-là on peut configurer finement ce qu'on voit à l'écran et ne permettre que ça (le système se lance et bim on tombe sur le dossier Music où il n'y a plus qu'à sélectionner ce qu'on veut écouter) avec une gestion des boutons en GPIO. Le désavantage de cette solution est liée à sa consommation plus importante par rapport à la première solution.

Dans les deux cas, on peut se passer de X et par exemple lancer cmos ou moc dans le tty 1 (et virer le tty 2-6 ou quelque chose du genre pour gagner un peu de ram sauf si Raspbian le fait déjà de base).

Le deuxième truc marrant, ça va être de tester un maximum de DAC USB pour voir ceux qui sont pris en charge par le système et comment faire le cas échéant sans devoir sortir xbmc alias le bazooka.

DESIGN CASE

- Bouton sur la tranche / facade avant?

- Case en silicone : température du moulage (résistance des différents composants)?

INFORMATIONS UTILES DIVERSES

Le connecteur GPIO est un 26 points.

- Problemes sur le port USB qui perd les paquets, introduisant du jitter : http://www.raspyfi.com/anatomy-of-a-pi-usb-audio-quality-and-related-issues-on-pi/

- Un type qui a fait un serveur de streaming de musique dematerialise : http://mmed.roulleau.net/?p=171

- Le Raspyfi project : http://www.raspyfi.com/

- Les différents connecteurs pour ércan sur Rpi : http://elinux.org/Rpi_Screens#interfacing_to_Raw_LCD_panels

- Listes de cartes son USB qui fonctionnent sur le RPi en modifiant un peu alsa (rien de méchant) : http://elinux.org/RPi_VerifiedPeripherals#USB_Sound_Cards

ETAPES DU PROJET

Les etapes sont classees par ordre d'importance ET dans l'ordre dans lequel elles doivent etre realisees.

  1. Installer Raspbian ou Raspyfi, puis lancer un player standard. Utiliser un DAC/AMP USB connecte sur le port USB du RPI. Ecouter si le son est mieux que des DAP actuels
  2. Faire fonctionner le transfert synchrone/asynchrone en USB 16-24 bits/xkHz via drivers USB, sans jitter (cf. problemes de la RPI sur l'USB)
  3. Determiner quel est l'ecran a utiliser
  4. Determiner quels sont les boutons a utiliser
  5. Determiner quel est le logiciel a utiliser, s'il faut programmer une partie ou non, s'il faut utiliser du X (graphique) ou du termcap/TTY (mode console)
  6. Déterminer le temps de démarrage de la solution hard+soft (de l'allumage jusqu'à la reprise du morceau précédemment en cours)
  7. Determiner si le DAPi peut fonctionner commodément en on/off au quotidien (comme un Clip par exemple) ou s'il doit rester en veille la plupart du temps (comme un smartphone par exemple) et dimensionner la batterie en consequence
  8. Determiner la batterie : Li-ion ou LiFePO4 + comment recharger la batterie
  9. Choix de l'enclosure + form factor + finition