Outils pour utilisateurs

Outils du site


a-faire:pensebete

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
a-faire:pensebete [2022/04/15 12:25] gerardadmina-faire:pensebete [2023/02/11 16:18] (Version actuelle) – [Installer windows 11 dans virtualbox sans TPM2] gerardadmin
Ligne 1: Ligne 1:
 +======== Commandes linux ========
 +
 +[[start:linux:cmd:Commandes Linux Chg Repertoire Home]]
 +
 +
 +======== Boutons Arduino ========
 +
 +[[Start:arduino:BPSCL|Bouton poussoir en interrupteur sans cligotement]]
 +
 +
 +==== exemple 2 ====
 +Anti-rebonds logiciel : approche simple
 +
 +La solution la plus simple, est d’attendre quelques millisecondes avant de relire l’état du bouton :
 +
 +<code c>
 +if( le bouton vient d être appuyé){
 +    effectuer l action nécessaire
 +    attendre quelques millisecondes
 +}
 +</code>
 +
 +Cependant, cette solution possède plusieurs inconvénients : il faut tout d’abord suivre l’état du bouton en permanence pour détecter le moment où le bouton vient d’être appuyé ( front descendant du signal ), sans quoi l’action se répétera tant que le bouton est maintenu appuyé. De plus, on ne différencie par un appui bref d’un appui maintenu. Je vous propose donc une autre solution bien plus complète, mais également un peu plus complexe.
 +Anti-rebonds logiciel : approche complète avec détection d’appui long
 +
 +Le code ci-dessous a été écrit en C pour un microcontrôleurs PIC avec le compilateur PICC de hi-tech, mais il est portable très facilement vers tout autre système programmable en C :
 +
 +<code c test1.ino>
 +#define BUTTON_POLLING_INTERVAL 20          //intervalles de lecture du bouton, en ms
 +#define COUNT_DEBOUNCE 10                   //durée maximale autorisée de relâchement du bouton (en nombre d'intervalles)
 +#define COUNT_SHORT_PRESS 5                 //durée mini d'un appui court (en nombre d'intervalles)
 +#define COUNT_LONG_PRESS 50                 //durée d'un appui long (en nombre d'intervalles)
 +
 +unsigned int releasedCount = 0;
 +unsigned totalCount = 0;
 +
 +//comptage du temps d appui et anti-rebonds
 +while(totalCount<COUNT_LONG_PRESS){
 +    tempo(BUTTON_POLLING_INTERVAL);
 +    if(BUTTONPIN){
 +        releasedCount=0;
 +        totalCount++;
 +    }
 +    else{
 +        releasedCount++;
 +    }
 +    if(releasedCount>=COUNT_DEBOUNCE){
 +        break;
 +    }
 +}
 +
 +//execution des actions apres appui
 +if(totalCount==COUNT_LONG_PRESS){
 +    //inserer ici action appui long
 +    while(BUTTONPIN);
 +}
 +else if(totalCount>COUNT_SHORT_PRESS){
 +    //inserer ici action appui bref
 +}
 +
 +</code>
 +
 +
 +
 +    *BUTTONPIN correspond au nom de la broche du microcontrôleur à laquelle le bouton est connecté.
 +
 +    *BUTTON_POLLING_INTERVAL correspond à intervalle de temps séparant 2 lectures de l’état du bouton ( en ms ).
 +
 +    *COUNT_DEBOUNCE permet l’anti-rebonds. Multiplié par BUTTON_POLLING_INTERVAL, il donne le temps que le signal du bouton doit rester à Vcc avant que le bouton soit considéré comme relâché.
 +
 +    *COUNT_SHORT_PRESS multiplié par BUTTON_POLLING_INTERVAL indique la durée minimum de l’appui sur le bouton avant de déclencher l’action « appui bref ».
 +
 +    *COUNT_LONG_PRESS multiplié par BUTTON_POLLING_INTERVAL indique la durée d’appui sur le bouton après laquelle l’action « appui long » est effectuée.
 +
 +===Explication du fonctionnement===
 +
 +La partie majeure du code se situe dans la boucle « while » qui lit régulièrement l’état du bouton. Le programme quitte la boucle si
 +
 +    *Le bouton est lu « relâché » un nombre COUNT_DEBOUNCE de fois consécutives. On considère alors que le bouton est bien relâché.
 +    *Le bouton est resté appuyé un nombre COUNT_LONG_PRESS de fois. On a alors atteint la durée de l’appui long.
 +
 +Une fois cette boucle quittée, le programme regarde combien de fois le bouton a été lu comme appuyé :
 +
 +    *Si le bouton a été lu appuyé un nombre COUNT_LONG_PRESS de fois, qui correspond à un appui long, il effectue l’action correspondante à un appui long.
 +    *Sinon, si le bouton a été appuyé assez longtemps ( cette valeur est définie par COUNT_SHORT_PRESS ), il effectue l’action correspondante à un appui bref.
 +    *Sinon, c’est que le bouton n’a pas été appuyé, ou appuyés de façon très ponctuelle, alors le programme ne fait rien.
 +
 +Après un appui long, le programme attend que le bouton soit relâché avant de continuer.
 +
 +On a donc un système qui intègre un anti-rebonds, et qui permet de différencier un appui bref d’un appui maintenu, et capable d’agir en conséquence. Ayant déjà utilisé ce code, je vous conseille les valeurs suivantes pour optimiser son fonctionnement, et le confort d’utilisation du bouton :
 +
 +    *BUTTON_POLLING_INTERVAL = 20
 +    *COUNT_DEBOUNCE = 10
 +    *COUNT_SHORT_PRESS = 5
 +    *COUNT_LONG_PRESS = 50
 +
 +
 +
 ======== Visieres ========= ======== Visieres =========
  
Ligne 105: Ligne 203:
  
 ======== Installer windows 11 dans virtualbox  sans TPM2======== ======== Installer windows 11 dans virtualbox  sans TPM2========
 +
 +[[https://www.easytutoriel.com/installer-windows-11-virtualbox.html|Installer windows11 sans TPM2]]
  
 Voici un guide étape par étape pour créer une machine virtuelle Windows 11 dans VirtualBox, y compris en contournant les restrictions TPM et le démarrage sécurisé. Voici un guide étape par étape pour créer une machine virtuelle Windows 11 dans VirtualBox, y compris en contournant les restrictions TPM et le démarrage sécurisé.
/home/chanteri/www/fablab37110/data/attic/a-faire/pensebete.1650018355.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)