Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    [WIP] Indicateur de batterie

    Recalbox Général
    indicateur batterie
    7
    32
    11655
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • godhunter74
      godhunter74 last edited by

      Que du bonheur merci d'avoir essayé et merci d'avoir réussi !!!

      Relier un écran I2C et afficher des informations sur les roms

      1 Reply Last reply Reply Quote 0
      • wizardpc
        wizardpc last edited by wizardpc

        Aujourd'hui j'ai réussi à toucher au but !

        1. J'ai réinstallé Recalbox 4.1 pour le Pi Zero W
        2. J'ai copié le projet "raspidmx" en gardant seulement les dossiers "common" et "pngview" déjà compilé
        3. J'ai modifié le code ainsi que le fichier de config pour avoir toujours la batterie à 100% et ainsi tester sans attendre le micro contrôleur...
        4. J'ai crée un script pour qu'il lance le "main.py" au boot. En me basant sur le "S99custom" déjà présent dans le dossier "init.d".
        5. Voilà le résultat une fois sur Recalbox !!!

        alt text

        Donc ça fonctionne 🙂

        Il reste encore quelques points :

        1. L'image est en centrée en haut :
        • Dans le code c'est fixé en dur à 650px horizontalement et 5 px verticalement. (Voir readme de pngview)
        • Il faudrait rendre ça dynamique en calculant à partir de la résolution de l'écran. Y a surement une commande sous raspberry pi qui donne la résolution d'affichage ?
        1. Le code utilise des "sudo" :
        • Or sous Recalbox il n'y en a pas
        • A supprimer dans le code du coup
        1. L'image disparait au retour d'un jeu :
        • Peut-être que la façon de lancer la commande python n'est pas la bonne ?
        • Ou alors en rentrant dans l'émulateur il essaye de killer le process "pngview" sauf que ça plante avec le "sudo" (j'ai pas testé en l'enlevant).
        1. Globalement :
        • Ou placer les projets "pngview" et "gbzbatterymonitor" sur le Pi ?
        • Comment savoir si le Wifi est activé, puis connecté ou non ? avec une commande
        • Comment savoir si le bluetooth est activé, puis appairé ou non ? toujours avec une commande
        • @rockaddicted @Substring Qu'est-ce que je/vous/on fait maintenant ? 😛
        1 Reply Last reply Reply Quote 0
        • wizardpc
          wizardpc last edited by

          Bonjour 🙂

          Finalement j'ai repris en main le projet d'origine.

          • Nettoyage du code
          • Mise à niveau de la syntaxe python
          • Optimisation du code :
            • Plusieurs "if" était codé bizarrement
            • Des boucles étaient inutiles
            • Code mort
          • Nouveaux paramètres dans le config.py
          • Nouvelles fonctionnalités :
            • Possibilité de choisir le coin de l'écran où l'on veut placer l'icône ainsi que le décalage (en pixel) à appliquer par rapport au bord
            • Positionnement dynamique de l'icône en prenant en compte la résolution utilisée !
            • Logs plus précises
            • Possibilité de forcer la batterie à 100% pour tester l'affichage
          • Compatibilité avec Recalbox :
            • Suppression des sudo
            • Modification du retour de "ps aux | grep pngview", sous Recalbox l'id est en première position et pas en deuxième (comme sous Ubuntu par exemple)

          Je vais essayer dans la semaine de rajouter :

          • La possibilité de choisir le set d'icônes à utiliser (si quelqu'un veut/sait en faire dites le moi)
          • Ajout des icônes Wifi et Bluetooth
          • Sortir un fichier CSV exploitable du monitor.py (sert à calibrer le config.py par rapport à sa batterie)

          Voilà !

          1 Reply Last reply Reply Quote 2
          • acris
            acris last edited by

            Ya plus qu à voir en action dis donc. Bravo 🙂

            1 Reply Last reply Reply Quote 0
            • kjbstar
              kjbstar last edited by

              Beau boulot ! Tu vas faire un fork sur Github ? 🙂

              Recalbox 4.0.2 sur Raspberry Pi 2
              Recalboy sur Raspberry Pi Zero

              1 Reply Last reply Reply Quote 0
              • wizardpc
                wizardpc last edited by

                C'est déjà fait 🙂 Il est ici => https://github.com/WizardPC/gbzbatterymonitor !

                piboy 1 Reply Last reply Reply Quote 1
                • wizardpc
                  wizardpc last edited by

                  Est-ce qu'il y a une commande bash pour connaitre l'état du bluetooth ? Activé ou non puis appairé ou non ? Pour le wifi j'ai trouvé 🙂

                  Ou alors une variable/données accessible quelque part dans Recalbox ? Pour savoir si le Wifi/Bluetooth est ON ou OFF.

                  kjbstar 1 Reply Last reply Reply Quote 0
                  • kjbstar
                    kjbstar @wizardpc last edited by

                    @wizardpc Toi je sens que tu vas rajouter 2 autres icônes, non ? ^^

                    Recalbox 4.0.2 sur Raspberry Pi 2
                    Recalboy sur Raspberry Pi Zero

                    wizardpc 1 Reply Last reply Reply Quote 0
                    • acris
                      acris last edited by

                      @wizardpc
                      peut être systemctl status bluetooth ?

                      acris 1 Reply Last reply Reply Quote 0
                      • wizardpc
                        wizardpc @kjbstar last edited by

                        @kjbstar said in [WIP] Indicateur de batterie:

                        @wizardpc Toi je sens que tu vas rajouter 2 autres icônes, non ? ^^

                        Oui ^^ Pour le wifi c'est presque bon ! Il juste que je trouve une image pour tester et gérer les deux process pngview indépendamment, pour ne pas modifier l'image de la batterie par celle du wifi (ou inversement) dès qu'il y a un changement.

                        Pour le bluetooth aucune d'idée de comment avoir les informations...

                        1 Reply Last reply Reply Quote 0
                        • acris
                          acris @acris last edited by

                          @acris said in [WIP] Indicateur de batterie:

                          @wizardpc
                          peut être systemctl status bluetooth ?

                          wizardpc 1 Reply Last reply Reply Quote 0
                          • wizardpc
                            wizardpc @acris last edited by

                            @acris Merci 🙂

                            Avec la commande "systemctl is-active bluetooth" ça me renvois directement "active" ou "inactive" donc pour l'image c'est déjà ça !

                            A tester la commande "hcitool con" pour voir les connexions actives 😉

                            1 Reply Last reply Reply Quote 0
                            • wizardpc
                              wizardpc last edited by

                              Bien le bonjour !

                              Je viens vous faire part de l'avancement 🙂

                              Après avoir bien galéré (T_T), j'ai enfin réussi à faire fonctionner la transition d'icône, batterie 100% > 75% > 50%... J'étais bloqué avec solution d'origine car le "pid" remonté n'était pas celui de "pngview", je ne sais pas exactement à quoi il correspondait du coup, peut être le shell exécutant la commande ??*

                              Bref ! J'ai fini par abandonner ça et passer par un "subprocess.Popen" qui lui à directement l'attribut "pid" de retourné.

                              J'en ai profité pour rajouter une variable "DEBUGMODE" qui permet de changer le niveau de batterie à chaque fois qu'il va vérifier son pourcentage restant 🙂 ça sera le même principe pour Wifi et BT.

                              Du coup dans ce qu'il reste à faire :

                              • Gérer l'affichage des icônes wifi et bluetooth
                              • Nouvelle variable dans le path pour choisir le thème des icônes (j'anticipe ^^)
                              • Tester avec une vraie batterie ! J'ai reçu le MCP3008 mais pas le reste...
                              • Tester les alertes vidéos

                              Le fork a été mis à jour. S'il y a des experts Python je veux bien avoir des retours ! Surtout sur l'utilisation du subprocess.

                              piboy 2 Replies Last reply Reply Quote 0
                              • wizardpc
                                wizardpc last edited by

                                C'est encore moi !

                                Pour ma part je pense presque avoir fini, à part la position des icônes bluetooth et wifi en fonction du coin choisi. Peut-être refaire des icônes pour avoir un thème complet de base, j'ai juste piqué sur Google image pour l'instant 😛

                                Problèmes : Les commandes pour le bluetooth et wifi "hcitool", "systemctl" et "nmcli" ne sont pas présentes sur Recalbox 😞 J'ai essayé de chercher d'autres solutions, mais c'est ce qui me semblait le plus simple.

                                Est-ce qu'elles pourraient être ajoutées en 4.1 ? Sans ça il faudrait une alternative ou alors se cantonner à l'icône de batterie..

                                @rockaddicted @Substring @acris

                                Substring 1 Reply Last reply Reply Quote 0
                                • Substring
                                  Substring @wizardpc last edited by

                                  @wizardpc hcitool est sur la 4.1 ca c'est sûr. Pour les 2 autres, je doute fortement (pas de recalbox sous la main pour vérifier)

                                  Ton truc pourrait etre rigolo pour afficher l'etat de batterie des periphs bluetooth 😉

                                  Former dev - Please reply with @substring so that i am notified when you answer me
                                  Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                  wizardpc 1 Reply Last reply Reply Quote 0
                                  • wizardpc
                                    wizardpc @Substring last edited by

                                    @Substring : En effet "hcitool" est présent, j'avais du mal l'écrire ^^ Pour les autres j'ai vérifié ils n'y sont pas, est-ce que c'est possible de les rajouter de votre côté ? Ou je dois trouver une alternative ?

                                    La batterie des périphériques... à voir si c'est faisable ! Mais je pense que le périphérique doit directement renvoyé la valeur pour que ça marche.

                                    Substring 1 Reply Last reply Reply Quote 0
                                    • Substring
                                      Substring @wizardpc last edited by

                                      @wizardpc c'est une sysclass à lire, donc tout simplement un fichier. Le pads ps3 renvoient 100/75/50/25 faut voir pour les autres

                                      Former dev - Please reply with @substring so that i am notified when you answer me
                                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                      wizardpc 1 Reply Last reply Reply Quote 1
                                      • wizardpc
                                        wizardpc @Substring last edited by

                                        @Substring : Tu le lis comment ça ?

                                        Tu aurais un exemple de code ?

                                        Substring 1 Reply Last reply Reply Quote 0
                                        • Substring
                                          Substring @wizardpc last edited by

                                          @wizardpc ouaip : https://wiki.gentoo.org/wiki/Sony_DualShock#Battery_charge_level

                                          Former dev - Please reply with @substring so that i am notified when you answer me
                                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                          1 Reply Last reply Reply Quote 0
                                          • piboy
                                            piboy @wizardpc last edited by

                                            @wizardpc Bonjour et encore bravo, en effet c'est du très bon job :).
                                            En revanche, sur le schéma sur Github sous la partie "Hardware part" , on voit la RPI connecté au MPC3008; et ce dernier connecté directement à une batterie. Je ne vois pas le module de charge entre les deux ou en dérivation. Par exemple dans mon cas, je possède un Powerboost 1000C relié à la batterie, servant de step-up et de mise en sécurité pour la batterie en cas de sous ou surtension.
                                            Si on s'appuie sur ce schéma, peut on directement connecté la batterie avec les résistances au MPC3008 ? je préfère m'en assurer car la mauvaise manipulation d'une batterie li-ion peut être catastrophique.
                                            Vous, comment avez vous procédé ? n' hésitez pas à me reprendre si je dis des bêtises 😉

                                            Je vous remercie. Très bonne journée.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            81
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com