Bonjour à toutes et à tous, l'équipe de tellement nomade vous souhaite une bonne année 2025
DAPI
Petite démo rapide du proto V2 dans son état actuel...
Pour comparaison, le V1 avec son LCD mono 4x20 caractères, dit "le tank" :-)
A côté, le V2 avec le 2,2" couleur 320x240 pixels, dit "Kirikou" :
...et la nouvelle interface "Pygame" qui va avec :
[video][/video]
Elle fait quasi exactement la même chose que la précédente, juste en plus joli :-)
Pygame a également sa propre boucle d'évènements, qui est plus efficace, donc c'est plus fluide.
Comme d'habitude ces écrans c'est pénible à filmer, en vrai c'est très lumineux, contrasté et on ne voit pas les pixels...
Pour comparaison, le V1 avec son LCD mono 4x20 caractères, dit "le tank" :-)
A côté, le V2 avec le 2,2" couleur 320x240 pixels, dit "Kirikou" :
...et la nouvelle interface "Pygame" qui va avec :
[video][/video]
Elle fait quasi exactement la même chose que la précédente, juste en plus joli :-)
Pygame a également sa propre boucle d'évènements, qui est plus efficace, donc c'est plus fluide.
Comme d'habitude ces écrans c'est pénible à filmer, en vrai c'est très lumineux, contrasté et on ne voit pas les pixels...
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
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
Parce ue je suis un pov' con, j'amais bien le LCD et son côté rétro-réveil matin . Sinon, encore une fois fpp, excellent boulot ! Je ne savais pas que Pygame pouvait également servir à ça, c'est vraiment intéressant pour le coup ! C'est toujours basé sur mocp ou tu es passé sur mpd (Non non, je vais pas relire le sujet ) ?
- Wardormeur
- Messages : 6827
- Inscription : 15 nov. 2010 14:52
- Localisation : NowhereLand
- Contact :
Il en jette le LCD ! J'adore <3 STu fais rien tourner d'autres dessus je suppose? savoir si question charge ça tient ou si c'est rick/rack
Mais non, moi aussi je l'aimais bien, on était parti pour donner dans le "soviétique", c'était pile poil ! :-)tinara a écrit :Parce que je suis un pov' con, j'amais bien le LCD et son côté rétro-réveil matin .
Malheureusement beaucoup, beaucoup trop gros, et pas d'alternative... je lui trouverai bien un autre usage avec l'autre carte !
Voilà comment on s'embourgeoise... on démarre "ghetto" et on se retrouve avec du RBCD (RockBox Canada Dry :-)...
Ah, Pygame, le parent pauvre, le joyau méconnu de Python... Desservi par son nom (quoi, des jeux ? des sprites ? mouarf), son site Web très années 90 (HTML 1.0, color(VERTCHIASSE)), son parti-pris de désinvolture... mais plus utilisé qu'on ne croit, souvent invisible et planqué sous le tapis...Sinon, encore une fois fpp, excellent boulot ! Je ne savais pas que Pygame pouvait également servir à ça, c'est vraiment intéressant pour le coup !
Pygame c'est une - LA - (bonne) API Python au-dessus de SDL, qui lui-même est LA lib (C) universelle pour gérer tout ce qui a un écran, un clavier, une souris, du son... un HAL (hardware abstraction layer) programmable en Python quoi, une babiole :-)
Comme c'est une API de bas niveau (pas de widgets, menus, fenêtres etc.) il faut tout faire soi-même. C'est pour ça qu'on le retrouve souvent en fondation d'un "framework" orienté utilisateurs.
Par exemple quand on utilise Kivy, qui est LE truc multi-plateformes génial à paillettes du moment, le seul qui permette de faire de belles applis tactiles 100% Python sur Android et IOS (en plus des habituels Linux/MacOS/Windows), et Français en plus Monsieur s'il vous plaît... eh bien, ce qui gère le doigt et affiche quelque chose sur l'écran, à la fin, c'est Pygame sur SDL :-)
Tiens, d'ailleurs faudra que je regarde s'il y en a qui utilisent Kivy sur la raspi... sans la faire fondre...
Oui, suffisait de remonter à début mars, soit deux pages... feignasse :-)C'est toujours basé sur mocp ou tu es passé sur mpd (Non non, je vais pas relire le sujet ) ?
D'ailleurs, as-tu seulement vu le post que je me suis fadé rien que pour toi en page précédente ?...
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
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
A part le système (que j'ai un peu tuné) il n'y a que les tâches MPD et Python qui tournent.Wardormeur a écrit :Il en jette le LCD ! J'adore <3 STu fais rien tourner d'autres dessus je suppose? savoir si question charge ça tient ou si c'est rick/rack
Côté ressources ça va : on est entre 40 et 50% de CPU (moyenne à 45 en gros).
En mode "pause" on est plus vers 30, donc le décodage par MPD pèse environ 15% (pas vu de différence entre mp3 et flac).
Et l'event-loop de Pygame à 30%, faut que je voie si c'est optimisable...
La conso mémoire est ridicule : 50 Mo tout compris (sur les 256 du modèle A).
Faudra voir la conso, aussi. Si ça se trouve le nouvel écran (qui se branche en 3.3V) consomme pas plus, voire moins, que le mastodonte en 5V...
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
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
Dans le genre très fort il y a ça, aussi :
[video][/video]
Je ne sais pas comment il fait, moi je n'ai plus UNE broche GPIO de libre... :-)
[video][/video]
Je ne sais pas comment il fait, moi je n'ai plus UNE broche GPIO de libre... :-)
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
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
...et bien sûr que oui, tu as bien fait de poser la question ! :-)fpp a écrit : Côté ressources ça va : on est entre 40 et 50% de CPU (moyenne à 45 en gros).
En mode "pause" on est plus vers 30, donc le décodage par MPD pèse environ 15% (pas vu de différence entre mp3 et flac).
Et l'event-loop de Pygame à 30%, faut que je voie si c'est optimisable...
J'ai fait 2 trucs tout simples :
1) la fréquence de rafraîchissement de Pygame est à 25 fps par défaut !
C'est fait pour les jeux biens sûr, et ça ne sert à rien sur une interface comme celle-ci...
Je l'ai donc baissée à 10 (en-dessous les titres scrollent trop lentement).
2) comme l'écran passe en veille après 15s sans commande utilisateur, je baisse encore à 5 fps quand le backlight est éteint, et j'arrête de mettre à jour les infos affichées tant qu'il n'est pas rallumé...
En 5 minutes on est passé à environ 30% de CPU en "play" écran allumé, et moins de 20% écran en veille :-)
Plus le gag classique :
... sauf que non ! Je surveillais la conso CPU et RAM avec l'incontournable "htop", et j'ai (encore) oublié de soustraire sa propre charge !A part le système (que j'ai un peu tuné) il n'y a que les tâches MPD et Python qui tournent.
Donc il faut encore enlever 7 à 8% aux valeurs ci-dessus en condition réelles...
Dernière modification par fpp le 18 avr. 2014 11:43, 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
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
- Wardormeur
- Messages : 6827
- Inscription : 15 nov. 2010 14:52
- Localisation : NowhereLand
- Contact :
La loop Pygame est quand même sacrément gourmande, je suppose que les frameworks basés dessus sont plus.. optimisés?
Si si, j'ai tout lu et fais des notes fpp. Yésuilebonneélève.
Quand je parle de l'event-loop c'est aussi tout ce qu'elle fait pendant une boucle en termes d'affichage (surfaces, render, blits etc.).Wardormeur a écrit :
La loop Pygame est quand même sacrément gourmande, je suppose que les frameworks basés dessus sont plus.. optimisés?
Clairement jusqu'ici je me suis surtout attaché à obtenir à peu près ce que je voulais sur l'écran, sans m'occuper des perfs.
En particulier je rafraîchis l'ensemble à chaque tour en mode goret, à part en mode "pause" (et depuis hier soir en mode veille :-).
Les optimisations faites par les frameworks (ou les bons codes) tiennent surtout au suivi fin des zones modifiées, et à leur mise à jour individuelle au pixel près ('update dirty' au lieu de 'flip'), afin de limiter les blits au strict nécessaire.
Ça doit bien se voir sur des machines limitées comme le raspi, et je m'y attaquerai le moment venu, ne serait-ce que pour l'expérience...
Mais vu le niveau de charge déjà atteint, et sur une carte par définition dédiée à ça, c'est pas une priorité :-)
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
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
C'est bon de le savoir :-)tinara a écrit :Si si, j'ai tout lu et fais des notes fpp. Yésuilebonneélève.
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
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
- Wardormeur
- Messages : 6827
- Inscription : 15 nov. 2010 14:52
- Localisation : NowhereLand
- Contact :
depot or it didnt exist
#vampire
@Guru on se fait un depot ouvert pour TN qui s'autohost en parallèle des projets dev des membres?
#vampire
@Guru on se fait un depot ouvert pour TN qui s'autohost en parallèle des projets dev des membres?
- GourouLubrik
- Messages : 3917
- Inscription : 21 oct. 2011 19:50
- Localisation : Grenoble
- Contact :
on va deja commencé par le commencement hein du debut de reste des projets hein :D
DAC / Amp: 2* Pioneer U-05-S \\ DAC: Audiolab M-Dac; Asus Essence STX [/strike] \\ Ampli: Violectric HPA-V200, OPC The Wire (DIY) \\ Casque: Fostex TH-900 & TH-X00, Sony wh-1000xm3, ATH-W1000X, ATH-A900, AKG K272HD, QPad qh-1339 \\ Intras: Sony XBA-H3 VSonic GR07 mk1; Shure SE110 \\ nomade: LG G5 + Module B&O Hifi Plus \\ Salon: HTPC / Nvidia Shield / Marantz CD6002 / AT-LP1240 => Rotel RA-1570=> Dynaudio Excite X34
Bon, la partie optimisation est a priori faite, avec une conso CPU bien contenue (notamment écran éteint, c'est-à-dire la majeure partie du temps).
J'ai passé pas mal de temps à bricoler pour essayer de gagner de la place, notamment en hauteur : les fils avec connecteur "DuPont" c'est génial pour le prototypage, mais ça donne un câblage juste énorme...
Sur le connecteur P1 du raspi j'ai enlevé les bornes en plastique pour brancher directement les broches dessus, avec une gaine plastique autour, qui évite que les fils se touchent, mais qui sont en appui les unes sur les autres pour que ça tienne bien.
Sur l'écran j'ai mis un connecteur coudé pour que les fils soient parallèles au PCB, et je les ai soudés dessus (avec les mêmes gaines de protection).
Pareil pour le keypad, mais directement sur les broches puisqu'elles étaient déjà dans l'axe.
Du coup ça rentre dans à peu près 3cm de profondeur, c'est un gros progrès.
Par ailleurs j'ai découpé le petit bout de face avant sur la carcasse du disque dur multimédia, et je l'ai collé directement sur le keypad à la Loctite, sur les 6 boutons à gérer. Il sert aussi de support pour la diode IR.
Je ne suis pas encore très fixé sur le type de boîtier définitif.
En fait j'attends de tomber par hasard sur une boîte qui fera "Eurêka"...
En attendant ça tourne dans un proto en carton style "Pogo", en hommage à Neil Young ! :-)
J'ai passé pas mal de temps à bricoler pour essayer de gagner de la place, notamment en hauteur : les fils avec connecteur "DuPont" c'est génial pour le prototypage, mais ça donne un câblage juste énorme...
Sur le connecteur P1 du raspi j'ai enlevé les bornes en plastique pour brancher directement les broches dessus, avec une gaine plastique autour, qui évite que les fils se touchent, mais qui sont en appui les unes sur les autres pour que ça tienne bien.
Sur l'écran j'ai mis un connecteur coudé pour que les fils soient parallèles au PCB, et je les ai soudés dessus (avec les mêmes gaines de protection).
Pareil pour le keypad, mais directement sur les broches puisqu'elles étaient déjà dans l'axe.
Du coup ça rentre dans à peu près 3cm de profondeur, c'est un gros progrès.
Par ailleurs j'ai découpé le petit bout de face avant sur la carcasse du disque dur multimédia, et je l'ai collé directement sur le keypad à la Loctite, sur les 6 boutons à gérer. Il sert aussi de support pour la diode IR.
Je ne suis pas encore très fixé sur le type de boîtier définitif.
En fait j'attends de tomber par hasard sur une boîte qui fera "Eurêka"...
En attendant ça tourne dans un proto en carton style "Pogo", en hommage à Neil Young ! :-)
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
Nomade : Shanling M1, TaoTronics TT-EP01
Entre les deux : Bedside Music Player, ALO AUDIO "The National", Xiaomi Hybrid Pro+Spinfit
La grande classe <3 !