Ajouter un bouton on / off et reset

Bonjour,

Je crée en ce moment un boitier pour ma Pi 4, seulement je coince et j’aurai besoin de votre aide. En clair j’ai remarqué qu’il y avait des cartes vendues avec les boutons pour Raspberry et je ne sais pas si je dois leur prévoir une place.

J’ai vu des posts qui traite ce sujet mais aucun qui ne répond vraiment à mes questions. Alors j’ai plusieurs points à éclaircir :

  • Peut on simplement avoir que le bouton, sans « accessoire » ?
  • Je voudrai qu’il y ait des LED pour indiquer que la Raspberry est allumée. Alors sur quel GPIO brancher le bouton, et sur lequel brancher les LED ?

Merci pour vos réponses, et bon week end de trois jours :slight_smile:

Salut,

J’ai un Rpi3 qui sert de tests.
Il possède 6 boutons dont 2 pour « redémarrage » et « extinction ».
Ces boutons sont de simples boutons poussoirs ; soit des boutons de borne d’arcade à pas cher soit carrément des boutons récupérés sur des PC (les boutons servant à l’allumage).
Chez moi, c’est du basique = branchement en direct sur ports GPIO sans résistance.
Du coup, il peut y avoir de faux positif et … ça redémarre (ou s’éteint) tout seul en cas « d’interférences » (genre si je connecte une clef USB ou branche le câble réseau a posteriori.
Le reste, c’est un simple code python qui est chargé en auto via modification du fichier rc.local afin que les boutons soient opérationnels même si la session graphique n’est pas lancée.

@+

Merci Nabla pour ta réponse. Je comprends mieux mais j’avoue que ça reste encore flou pour moi. Si je comprends bien je peux rajouter un bouton classique (de ce type : https://www.amazon.fr/Tecnostore-modules-circuit-imprimé-Arduino/dp/B06XHJ7DL1/ref=sr_1_302?__mk_fr_FR=ÅMÅŽÕÑ&keywords=bouton+circuit+imprimé&qid=1573408715&sr=8-302) en le connecter au GPIO ? Je pense tout de même que je vais rajouter une résistance.

Bon week end

Bonjour,

La résistance de pull-down (entre le port GPIO et la masse) ou de pull-up (entre le port GPIO et le +3,3V) permet de forcer respectivement l’état bas ou haut sur le port GPIO quand le bouton n’est pas appuyé. En effet un port GPIO sans cette résistance se trouve en l’air et il capte toute interférence, de ce fait le port peut passer d’un état à un autre. Le bouton poussoir doit se trouver entre le port GPIO et le +3,3V avec une résistance de pull-down ou entre le GPIO et la masse avec une résistance de pull-up. En général on met une résistance de 10 kOhm pour cet usage.

Sans résistance physique, il est recommandé de configurer la résistance interne logiciellement.

Plus d’infos sur le principe des pullup et pulldown (c’est pour Arduino, mais le principe est le même):

:warning: Le schéma que l’on voit ci-dessus sur la page du lien n’est pas une résistance de pullup ou pulldown, il faut lire le contenu de l’article :wink:
A+

@jelopo

Actuellement, mon branchement est bêtement :
GPIO --> Bouton --> Masse
Et je pense que c’est la solution choisie également par le plus grand nombre.

Selon ce que je comprends de ton propos, les gens de base comme moi pourraient juste faire :
GPIO --> Résistance pull-up de 10 kOhm --> Bouton --> GND
(ça m’arrangerait car je collerais juste une résistance au milieu de chaque fil partant d’un GPIO)

Mais, un peu partout, on trouve
3.3v --> Résistance pull-up de 10k --> GPIO --> Bouton --> Masse

Tu confirmes le montage basique
GPIO --> Résistance --> Bouton --> GND
Comme étant fonctionnel ?

@ColonelFramboise
Malgré les obligations diverses et variées, profitant d’un week-end rallongé, J’ai un peu bossé sur un projet où j’ai les 6 (:smiley:) boutons poussoir en pagaille.
Mes boutons sont donc, encore, simplement branchés entre GPIO et masse.
J’ai un script auto-chargé à l’allumage pour lance le programme commandant les boutons « redémarrer » et « éteindre ».
Le second script est chargé au lancement de l’interface graphique.
Tout est automatisé.
J’ai encore eu des « reboot » juste en branchant un clavier ou une souris (ça me l’a fait 2-3 fois dans l’après-midi) :slight_smile:
Pour « jouer » à la bidouille = pas un souci.
Mais, comme je dois passer à la production physique réelle du dispositif, je vais acheter des résistances si la solution simple est bien fonctionnelle !

Pour le bouton « état allumé », tu peux « juste » mettre une rampe LED sur port USB ; ça fonctionne bien :wink: (j’ai acheté une rampe LED pour 1 euros dans un magasin près de chez moi)

++

Bonjour,

Non, je me suis mal exprimé, je reprend (et je corrige mon topic précédent):

Soit on a un montage avec résistance de pullup
3,3V–> Résistance --> GPIO --> Bouton --> GND
dans ce cas la résistance force l’état du GPIO vers le haut quand le bouton n’est pas appuyé.
On détecte logiciellement un état bas (0 ou LOW) sur le GPIO lorsque le bouton est appuyé.

Soit on a un montage avec résistance de pulldown
3,3V–> Bouton --> GPIO --> Résistance --> GND
dans ce cas la résistance force l’état du GPIO vers le bas quand le bouton n’est pas appuyé.
On détecte logiciellement un état haut (1 ou HIGH) sur le GPIO lorsque le bouton est appuyé.

Donc le choix du montage pullup ou pulldown se fait donc en parallèle avec le choix de programmation logiciel, détection de l’état haut ou de l’état bas.

:page_facing_up: NOTEZ: Je tiens à repréciser qu’il faut savoir aussi qu’en interne les port GPIO sont équipés de résistances de pullup et pulldown qui sont activables au besoin. Donc il est inutile d’ajouter physiquement des résistances de pullup ou pull down dans le cas ou elle ont été activées logiciellement.

En fonction du langage de programmation utilisé vous trouverez sur le net des exemple pour activer ces résistances.

J’espère avoir été plus clair.

Bonne bidouilles.

A+

Bonsoir,

Ca fait beaucoup d’infos. Pour commencer, vos réponses me sont utiles, mais elles soulèvent de nouvelles questions. Je vais expliquer mon but, ça sera plus facile de comprendre mes question. Je cherche à fabrique une console avec la Raspberry Pi 4, le boitier correspond aux cubes qu’on trouve dans Mario. Donc voici la console vu de l’extérieur, et la coupe vue de dessus.

Comme on peut le voir sur l’image de droite, il y a des points dans les angles, et sur la face avant, je voudrais que ceux du bas soit le bouton reset et le bouton on/off, ce qui oblique à avoir un bouton poussoir à l’intérieur.

Alors voici les questions qui me passent par la tête.

Est ce que les branchements diffèrent entre les bouton va et vien et les boutons poussoir ?

Que veut dire GND ?

Citation
Donc le choix du montage pullup ou pulldown se fait donc en parallèle avec le choix de programmation logiciel, détection de l’état haut ou de l’état bas.

J’ai pas encore commencé la programmation, le boitier est toujours en design (d’où les question sur le bouton pour prévoir les encoche sur le châssis). Alors quel est le mieux entre le montage pullup et pulldown ?

Comme dit précédemment, je n’ai pas encore commencé le programme, alors désolé si ma question peut sembler idiote^^
Comment rentrer le programme pour le on/off et le programme pour activer la résistance des GPIO.

Je vous remercie encore une fois pour vos réponse, vous souhaite une bonne soirée :slight_smile:

Bonjour,

Non ce n’est pas la même chose le va et vient à 3 fils, le bouton poussoir a 2 fils.

GND = Ground, c’est le 0V ou la masse.

Pour débuter, le montage à base de pulldown est plus simple à comprendre et à programmer. On a le niveau bas (0) quand ce n’est pas appuyé, et le niveau haut (1) quand on appuie sur le bouton.

La première chose à choisir c’est le langage de programmation. En fonction, des codes d’exemple se trouvent sur Internet.

Bon courage

A+

Bonjour,

Je comprends mieux, c’est d’un coup moins ambigüe pour moi.

J’ai tout ce qu’il faut pour continuer, je me garde quand même le post sous la main pour y revenir si jamais je rencontre une difficulté.

Un grand merci pour les réponses à ces questions, vous m’avancez beaucoup !

Je vous souhaite à tous un bon dimanche :slight_smile: