DAPI

fpp
Je mange des Kellogg's Corn Flac
Je mange des Kellogg's Corn Flac
Messages : 1342
Inscription : 10 nov. 2010 10:53
Contact :

Message par fpp »

Bon, ne vous bousculez pas surtout :-)

Allez, la petite photo réglementaire du weekend, histoire d'animer un peu ce sujet, qui était parti tout feu tout flamme mais qui s'est arrêté à la porte du fer à souder visiblement :-)

1473

Pas de nouveauté fracassante, mais quelques évolutions :
  • un câblage un peu (beaucoup) plus propre, refait avec les câbles "Dupont" enfin arrivés de Chine :-)
  • l'utilisation du circuit de boutons arrivé en même temps que le LCD, et que j'avais mis de côté comme inadapté.
    En fait j'ai découvert que le circuit imprimé, et le code Python de détection qui va avec, sont très malins :
    on n'a besoin que d'un GPIO pour chaque ligne et pour chaque colonne, soit 8 pour 16 boutons.
    En plus on peut déclarer ce qu'on veut dans le code : ici je n'utilise que 2 rangées de 3 boutons,
    soit autant que ceux que j'ai codés sur la télécommande IR pour le moment, d'où les 5 câbles.
  • au milieu, le petit DAC I2S Hifiberry, que je n'ai pas encore pu tester...
    En bon amateur, il me manque toujours quelque chose, en l'occurrence des broches à souder qui sont toujours en route :-)
J'aimerais bien trouver un écran avec un gabarit plus raisonnable, mais a priori ça court pas les rues pour le raspi en I2C...
Sédentaire : Squeezebox Touch, SMSL AD18, AKG K701
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
Avatar de l’utilisateur
tinara
TN m'a tuer
TN m'a tuer
Messages : 5196
Inscription : 18 août 2012 21:09
Contact :

Message par tinara »

Chouette mise à jour, d'ailleurs, vu que tu commences à avoir tâter du GPIO en python, si tu te sens le cœur d'expliquer sa gestion ou de mettre à disposition du code commenté, ça serait intéressant ! Sinon, vraiment sympa, y manque plus qu'une jolie boite et voir ce que donne le DAC en I2S !
fpp
Je mange des Kellogg's Corn Flac
Je mange des Kellogg's Corn Flac
Messages : 1342
Inscription : 10 nov. 2010 10:53
Contact :

Message par fpp »

Merci pour le soutien psychologique :-)

Effectivement le DAC I2S est le dernier challenge "fonctionnel" à venir, vu qu'à ce stade tout le reste marche bien avec le DAC USB.

J'attendrai d'en avoir le cœur net pour m'attaquer à la mise en boîte... pour aller jusqu'au bout du style "MacGyver" j'ai déjà de côté le boîtier d'un vieux PMP (celui d'où vient la télécommande) qui semble suffisant pour caser le tout, une section de la face avant d'un disque dur multimédia d'époque pour couvrir les boutons et la diode IR, et une plaque de plexi sympa pour y incruster le tout en face avant.

Ça va sûrement être une bonne galère question agencement, découpes, fixations etc. Avec mes deux mains gauche, aucun doute que le résultat sera aussi ghetto qu'unique au monde :-)

Pour les GPIO je reste dans l'empirique pur et dur, tant que ça marche je ne cherche pas à comprendre plus que ça... Je ferai un topo à la suite sur ce que j'en pense à ce stade.
Sédentaire : Squeezebox Touch, SMSL AD18, AKG K701
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
Avatar de l’utilisateur
Wardormeur
Messages : 6827
Inscription : 15 nov. 2010 14:52
Localisation : NowhereLand
Contact :

Message par Wardormeur »

Tu cherches quoi comme ecran au final, un plus petit qu'un 4 lignes? ou c'est la carte fille qui t'emmerde?
Image
fpp
Je mange des Kellogg's Corn Flac
Je mange des Kellogg's Corn Flac
Messages : 1342
Inscription : 10 nov. 2010 10:53
Contact :

Message par fpp »

Non, surtout pas moins de lignes, 4 c'est déjà pas de trop :-)
Et la carte fille fait le I2C, donc indispensable pour économiser des broches, bien qu'elle soit plutôt mal placée.

L'ensemble fait assez bien son boulot, mais c'est l'encombrement général qui m'embête.
Le PCB est énorme, avec plein de place perdue, il dépasse trop en haut comme en bas, du coup c'est plus gros que la raspi elle-même, et ça va me poser des problèmes d'intégration, c'est sûr.
Accessoirement l'ensemble est étonnamment lourd !

J'aurais préféré l'équivalent en plus compact, et si possible plus léger, quitte à ce que ça affiche moins gros, mais j'en ai pas trouvé jusqu'ici...
Sédentaire : Squeezebox Touch, SMSL AD18, AKG K701
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
fpp
Je mange des Kellogg's Corn Flac
Je mange des Kellogg's Corn Flac
Messages : 1342
Inscription : 10 nov. 2010 10:53
Contact :

Message par fpp »

Bon alors pour Tinara, les GPIO vus d'orbite géostationnaire...

J'en garde volontairement une vision simpliste et naïve, tant que ça suffit pour s'en servir.

Physiquement chaque broche se comporte comme un relais : elle peut être "up" ou "down" - y a du courant ou y en a pas.
On peut l'utiliser en input (quelqu'un a fermé le relais et je vois du jus) ou en output (j'ai fermé le relais et ça envoie du jus à quelque chose).
Ici input = un bouton, une diode IR... et output = un écran I2C, un DAC I2S...

Côté logiciel, le système peut lire et écrire l'état de chaque broche, et être averti en cas de changement d'état.
Le principe me rappelle furieusement la programmation des interruptions matérielles en C sous MS-DOS (y a longtemps :-).
Ici c'est déjà dans le système, avec des interfaces de plus haut niveau.

Par exemple en Python il suffit d'un import, d'une ligne pour déclarer un GPIO en entrée ou en sortie, et d'une autre pour lui affecter un callback lorsqu'un événement se produit :

Code : Tout sélectionner

import RPi.GPIO as GPIO
GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(22, GPIO.FALLING, callback=ma_fonction_callback)
Cette méthode est simplissime, mais utilisée pour gérer un input mécanique (typiquement un bouton), elle a deux gros inconvénients.

D'une part, on est ici vraiment en mode relais, on ferme un contact pour envoyer du jus.
Comme le contact physique est toujours imparfait, il se fait souvent en plusieurs fois, et le système peut détecter plusieurs événements pour un seul appui, d'où des rebonds. Ça se gère soit matériellement (rajouter des résistances en série), soit dans le code (tempos, tests), mais c'est pénible et rarement parfait.

D'autre part, c'est bourrin parce qu'il faut une broche GPIO sur une patte de chaque bouton, l'autre étant à la masse.
Or finalement sur le Raspi il n'y en a pas tant que ça :

Image

Sur le connecteur P1 il y a 26 broches, dont deux en +5V, deux en 3.3V et quatre masses (GND).
Il reste donc 17 broches GPIO, sauf que 9 ont une double fonction, et c'est fromage ou dessert...
Par exemple moi j'utilise le 3 et le 5 pour la fonction I2C qui pilote l'écran en mode série : en mode parallèle il en faudrait 10 !
Donc si on a plusieurs périphériques ça part très vite...
D'où l'intérêt d'utiliser des modes série quand c'est possible (I2C, I2S, RS-232, SPI).

On peut aussi gérer des boutons physiques en I2C via un CI intermédiaire comme pour l'écran, ou alors utiliser l'astuce décrite plus haut pour les matrices de boutons (souvent un clavier numérique).

C'est beaucoup plus pointu déjà au niveau câblage, dans ce style-là :
Image
Donc 8 fils pour 16 boutons et pas de masse, on est plus en mode relais...

Et côté code c'est nettement plus sioux aussi, j'ai adapté le mien à partir de ça :
http://crumpspot.blogspot.fr/2013/05/us ... berry.html

Je ne prétends pas comprendre précisément comment ça marche, mais le fait est que ça marche bien, et sans rebonds en plus !
J'ai juste remplacé dans KEYPAD les valeurs des touches par celles que j'ai données aux touches de la télécommande dans LIRC.
Puis adapté dans ROW et COLUMN le nombre de lignes/colonnes et les GPIO affectés.
Du coup mes fonctions existantes gèrent aussi bien la télécommande que le clavier.
Et puis dans ma version j'ai toiletté le code, parce que que ça ressemblait plus à du Basic ou du JS qu'à du Python :-)
Dernière modification par fpp le 30 mars 2014 19:28, modifié 1 fois.
Sédentaire : Squeezebox Touch, SMSL AD18, AKG K701
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
fpp
Je mange des Kellogg's Corn Flac
Je mange des Kellogg's Corn Flac
Messages : 1342
Inscription : 10 nov. 2010 10:53
Contact :

Message par fpp »

Pour ceux qui suivent encore, étape décisive aujourd'hui : le DAC I2S fonctionne !

1489

Comme j'avais la flemme de tout débrancher/rebrancher sur le proto B, j'ai monté ça sur le modèle A, qui est la future version mobile.

On le voit ici au premier plan, débarrassé de ses prises audio et vidéo, pour gagner en hauteur.
J'ai aussi récupéré une sortie jack "low profile" sur une vieille radio, qui va pile poil sur le DAC Hifiberry monté dessous.

1490

A ma grande surprise, à part les soudures qui ne sont pas mon point fort, ça n'a pas été trop galère : une fois chargés les bons modules, ça a marché du premier coup !

MPD se charge au boot et démarre tout seul, donc pour les tests il suffit de brancher l'ampli et le casque et ça roule, le son est nickel :-)
On peut aussi commander ça à distance en Wifi, avec une des applis MPD Android depuis le smartphone...

Sur l'écran du proto derrière, on voit aussi que j'ai enfin réussi à dessouder une diode IR sur une autre épave, sans la cramer, exit la platine avec les 3 fils soudés dessus :-)

Maintenant il va falloir songer sérieusement à comment faire tenir et fixer tout ça dans un boîtier...
Dernière modification par fpp le 16 avr. 2014 10:49, modifié 1 fois.
Sédentaire : Squeezebox Touch, SMSL AD18, AKG K701
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
Avatar de l’utilisateur
Ony
1 euros par message, Stax me voilà!
1 euros par message, Stax me voilà!
Messages : 8488
Inscription : 21 févr. 2012 22:05
Localisation : Paris / Grenoble
Contact :

Message par Ony »

Faudrait quelqu'un avec une imprimante 3D pour le boitier :)

On a pas ça sur TN?
Casques nomades: Spiral Ears SE5ref / Vision Ears VE8 / 64audio N8 / Craft Ears Aurum / Hisenior B5+
Baladeur / Dac-Amp: ibasso DX300 + AMP12 / Lotoo Paw S1


Casques sédentaires: Hifiman He-6 moddé / Sennheiser He60
Amplificateurs sédentaires: Eddie Current 4-45 / DIY SRX+
Dac sédentaire: AMR DP-777
fpp
Je mange des Kellogg's Corn Flac
Je mange des Kellogg's Corn Flac
Messages : 1342
Inscription : 10 nov. 2010 10:53
Contact :

Message par fpp »

C'est pas le tout d'avoir une imprimante 3D sous le coude, faut aussi les compétences CAD pour décrire l'objet qu'on veut créer, ce qui n'est pas mon cas :-)

Dans un premier temps je vais déjà essayer de réutiliser le boîtier de récup que j'ai mis de côté pour ça (celui qui a fait don de sa télécommande IR) :

Image

C'était un PMP d'il y a 10 ans avec disque dur 2"5, donc assez volumineux et facile à démonter, le corps est en trois parties.

Avec un peu de chance ça pourrait rentrer, même s'il est sûr que les trous ne tombent pas en face des prises :-)
Sédentaire : Squeezebox Touch, SMSL AD18, AKG K701
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
Avatar de l’utilisateur
Ony
1 euros par message, Stax me voilà!
1 euros par message, Stax me voilà!
Messages : 8488
Inscription : 21 févr. 2012 22:05
Localisation : Paris / Grenoble
Contact :

Message par Ony »

Si besoin j'ai des compétences en cad :jap:
Casques nomades: Spiral Ears SE5ref / Vision Ears VE8 / 64audio N8 / Craft Ears Aurum / Hisenior B5+
Baladeur / Dac-Amp: ibasso DX300 + AMP12 / Lotoo Paw S1


Casques sédentaires: Hifiman He-6 moddé / Sennheiser He60
Amplificateurs sédentaires: Eddie Current 4-45 / DIY SRX+
Dac sédentaire: AMR DP-777
fpp
Je mange des Kellogg's Corn Flac
Je mange des Kellogg's Corn Flac
Messages : 1342
Inscription : 10 nov. 2010 10:53
Contact :

Message par fpp »

Merci Ony, je note, au cas où Saint MacGyver me lâcherait... mais ça frustrerait mon côté Géo Trouvetou... sinon il reste toujours le Lego :-)
Sédentaire : Squeezebox Touch, SMSL AD18, AKG K701
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
Avatar de l’utilisateur
Wardormeur
Messages : 6827
Inscription : 15 nov. 2010 14:52
Localisation : NowhereLand
Contact :

Message par Wardormeur »

fpp a écrit :C'est pas le tout d'avoir une imprimante 3D sous le coude, faut aussi les compétences CAD pour décrire l'objet qu'on veut créer, ce qui n'est pas mon cas :-)

Dans un premier temps je vais déjà essayer de réutiliser le boîtier de récup que j'ai mis de côté pour ça (celui qui a fait don de sa télécommande IR) :

Image

C'était un PMP d'il y a 10 ans avec disque dur 2"5, donc assez volumineux et facile à démonter, le corps est en trois parties.

Avec un peu de chance ça pourrait rentrer, même s'il est sûr que les trous ne tombent pas en face des prises :-)
lebellium va te hair :mrgreen:

Pour tout ec qui est machine 3D, faut tenter dans les hackerspaces et makerspace, ils ont souvent ce qu'il faut à ce niveau depuis la democratisation de la chose
Sinon :jap:
Tu crois qu'on pourrait faire une story recapitulative vers la fin ?
Image
fpp
Je mange des Kellogg's Corn Flac
Je mange des Kellogg's Corn Flac
Messages : 1342
Inscription : 10 nov. 2010 10:53
Contact :

Message par fpp »

Wardormeur a écrit : lebellium va te hair :mrgreen:
Sûrement pas, un PJB-100 en état de marche, c'était un cadeau d'un autre niveau que ce bouzin-là :-)
Tu crois qu'on pourrait faire une story recapitulative vers la fin ?
Cékoidon une "story recapitulative" ? :-)
Sédentaire : Squeezebox Touch, SMSL AD18, AKG K701
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
Avatar de l’utilisateur
Wardormeur
Messages : 6827
Inscription : 15 nov. 2010 14:52
Localisation : NowhereLand
Contact :

Message par Wardormeur »

http://www.buydisplay.com/default/
J'ai trouvé ça comme site, ça permettrait de trouver un ecran p-e plus adapté, au moins pour trouver une ref :p
story -> un howto global :p
Image
fpp
Je mange des Kellogg's Corn Flac
Je mange des Kellogg's Corn Flac
Messages : 1342
Inscription : 10 nov. 2010 10:53
Contact :

Message par fpp »

Merci War d'avoir pensé à moi :-)

Mais en fait j'avais devancé l'appel, c'est d'ailleurs pour ça qu'il n'y a pas eu de mise à jour ces deux derniers weekends...

Après mon dernier post ci-dessus, décimètre en main, j'ai dû me rendre à l'évidence : il n'y avait aucune chance que ma configuration actuelle puisse dans le boîtier (déjà imposant) que je visais, ni dans quoi que ce soit de plus petit qu'une brouette... et tout ça à cause de cet écran énorme, moche et lourd pour afficher 40 caractères...

J'ai donc été fouiner plus profond, et j'ai vu qu'il commençait à y avoir du support sur le Raspi pour des petits LCD graphiques (et même tactiles) prévus à l'origine pour Arduino et compagnie, pas chers du tout. J'ai ai commandé un aussi sec (4€20 :-) :
http://www.ebay.com/itm/2-2-inch-2-2-SP ... 0939222521?
Image

Je m'attendais à poireauter des lustres en attendant qu'il arrive de Chine (délai annoncé 25-35j), mais à ma grande surprise je l'ai reçu en milieu de semaine dernière (même pas 15j!), et j'ai bricolé ça ce weekend...

Pour le coup c'est tout petit, tout mimi et tout léger... par contre ce n'est plus du I2C mais du SPI (encore un nouveau protocole série...), qui prend deux fois plus de fils (avec un GPIO pour gérer le backlight).

Côté système c'est plus chaud, il faut mettre à jour le noyau, installer des pilotes, etc., mais tout ça est plutôt bien documenté, c'est la grande force de l'écosystème Raspi...
Le branchement est pas évident mais j'avais choisi ce modèle parce qu'un gars l'a décrit aussi...
Le plus beau c'est qu'il a marché du premier coup, j'ai fait des progrès ! :-)
C'est émouvant de voir la console Linux sur un si petit machin, et en couleur s'il vous plaît...

Par contre côté soft y a du taf, on est plus en mode caractère mais en mode graphique (320x240), il faut changer d'artillerie Python et tout refaire.
J'ai dû me replonger dans la doc de Pygame que je n'avais pas touché depuis 10 ans et me remettre dans le bain : c'est un environnement de très bas niveau mais très efficace et qui tourne partout, il faut juste tout faire à la main :-)

Maintenant ça commence à revenir et je ne regrette pas : en mode graphique on est beaucoup plus libre, on peut faire tenir beaucoup plus de choses en moins d'espace, tout en étant plus lisible et plus joli... juste ça prend du temps, je sens que mes vacances vont y passer :-)

Je referai une mise à jour en images dès que ce sera présentable, ça ne devrait plus tarder... puis refaire la config de la matrice de boutons, tout ça a mis la semoule dans les GPIO disponibles... et après si tout va bien on attaque la mise en boîte.
Sédentaire : Squeezebox Touch, SMSL AD18, AKG K701
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
Répondre

Revenir à « Archives Projets »