On/Off/Reset RPi2

Un lieu pour discuter des composants et de leur utilisation. Un passage obligé si vous devez interfacer votre Raspberry Pi avec le monde extérieur. On y trouvera aussi les cartes type commande de moteur pas à pas, continu, servo...

Modérateurs : Francois, smba38

McFly
Messages : 22
Enregistré le : mar. 29 mars 2016 14:05

On/Off/Reset RPi2

Message par McFly » mar. 12 avr. 2016 01:08

Salut,

J'ai cherche un peu d'aide pour avancer sur mon premier petit projet.
Le but est de mettre le RPi dans un boitier de Megadrive et de faire fonctionner le tout avec Retropie.

Sur la Megadrive 2 il y a 2 boutons : Power et Reset.
A l'aide d'un petit circuit et de 2 boutons poussoir :

=> Je cherche à reproduire le fonctionnement de ces boutons à la manière d'un PC, et donc garder leur fonction d'origine sur Megadrive.

Contraintes:

- SW1 (Bouton poussoir POWER) peut faire un arrêt "propre" du système (testé OK, script python et commande shutdown)
- SW1 peut démarrer le RPi via les pin RUN (Je n'ai pas trouvé comment le faire par GPIO)
- SW2 (BP RESET) fait un RESET et uniquement quand le RPi est démarré (sinon il ferait la même chose que SW1)
- SW2 (BP RESET) ne fonctionne que lorsque le raspberry est éteint (ne le démarre pas).
- Le nombre de pin GPIO est limité car j'en utilise déjà 18 pins pour connecter les 2 manettes + 4 pour des led.
- Je ne souhaite pas utiliser un "Powerblock" pour conserver les GPIO / USB

Je m'appuie sur 5V du RPi (ou si possible sur 1 GPIO pour obtenir l'état du raspberry (1 ou 0 / Démarré ou éteint).

J'ai fait un petit schéma avec logicsim (en pj) pour tester, et ça semble fonctionner.


=> Pouvez-vous me dire si c'est cohérent, ou si je fais fausse route?
=> Je pense que ça peut fonctionner, mais je suis persuadé qu'il est possible de le simplifier en gardant le même comportement. Des idées?


Image

Les LED symbolisent un input GPIO et RUN.

Par la suite, il faut que je traduise ça en électronique et je me pose plein de questions sur ce qu'il faut utiliser :quel composants? CI ou transistors + resistances? Comment faire que ce soit safe pour le RPi? etc... etc... Je vais potasser un peu mon électronique et le RPi pour tenter de trouver des réponses.

Merci pour votre aide! :)
Fichiers joints
power_reset_rpi_logicsim.zip
(1.26 Kio) Téléchargé 207 fois
Modifié en dernier par McFly le lun. 16 mai 2016 19:33, modifié 1 fois.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: On/Off/Reset RPi2 - Simplification logique ?

Message par spourre » mer. 13 avr. 2016 18:27

Bonjour,

Le problème c'est que, justement, tu prends le problème à l'envers ;-)
L'idée est de simplifier l'équation en utilisant les tableaux de Karnaugh. Une fois l'équation simplifiée, on passe au schéma.
Une démo en français de la méthode:
https://www.youtube.com/watch?v=OCzYsIK ... tml5=False

Sylvain

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: On/Off/Reset RPi2 - Simplification logique ?

Message par guillaume9344 » mer. 13 avr. 2016 20:51

Bonsoir,
pour l'équation je ne pense pas quelle soit beaucoup simplifiable, voir pour la réalisation pratique il faudra peut être la compliquer un peut (à voir).
de plus , il faudra bien penser au résistances de pullup/down sur les poussoirs et une pull down sur la pin de gpio pour fixer le potentiel à zéro lorsque le pi est à l’arrêt.
Attention aussi à ne pas utiliser du 5v mais du 3.3v LES PINS DU RASPBERRY SUPPORTENT TRES MAL LE 5V.

Pour en revenir sur l'équation :
si gpio=a
sw1=b
sw2=c

run=(anon et b) ou (a et c) = (â.b)+(a.c)

gpioinput= (a et b)=(a.b)

en tripatouillant un peut on peut tout faire avec des portes nand (loi de Morgan) ce qui est plus facile à câbler une seule sorte de circuit intégré.

Voilas quelques aides . bonnes suites.
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

McFly
Messages : 22
Enregistré le : mar. 29 mars 2016 14:05

Re: On/Off/Reset RPi2 - Simplification logique ?

Message par McFly » mer. 13 avr. 2016 20:56

Salut Sylvain et merci !

Je vais regarder ça attentivement =)

Sinon, dans l'idée ça te parait cohérent ? Le circuit fonctionne tel qu'il est là (en simulation au moins).
Le comportement des boutons power et reset correspond exactement à ce que je veux. Il y a peut-être un moyen plus simple d'y arriver sans toute cette électronique?
Je me demandais si le RPi ne serait pas capable de simuler ce fonctionnement? Mais je me dis que pour pour démarrer le RPi ou faire un hard Reset je n'aurais peut-être pas d'autre choix que d'utiliser les pin RUN.

Pour la ptite histoire: Avant mes études d'informatique j'ai fait un BEP électronique mais ça fait bien 10 ans que j'ai pas touché à un fer à souder! :) Si seulement j'avais pas oublié tout ce que j'ai vu en cours ^^
J'ai un peu honte :oops:

Bonne soirée!

McFly
Messages : 22
Enregistré le : mar. 29 mars 2016 14:05

Re: On/Off/Reset RPi2 - Simplification logique ?

Message par McFly » mer. 13 avr. 2016 21:04

guillaume9344 a écrit : pour l'équation je ne pense pas quelle soit beaucoup simplifiable, voir pour la réalisation pratique il faudra peut être la compliquer un peut (à voir).
de plus , il faudra bien penser au résistances de pullup/down sur les poussoirs et une pull down sur la pin de gpio pour fixer le potentiel à zéro lorsque le pi est à l’arrêt.
Attention aussi à ne pas utiliser du 5v mais du 3.3v LES PINS DU RASPBERRY SUPPORTENT TRES MAL LE 5V.

Pour en revenir sur l'équation :
si gpio=a
sw1=b
sw2=c

run=(anon et b) ou (a et c) = (â.b)+(a.c)

gpioinput= (a et b)=(a.b)

en tripatouillant un peut on peut tout faire avec des portes nand (loi de Morgan) ce qui est plus facile à câbler une seule sorte de circuit intégré.

Voilas quelques aides . bonnes suites.
Merci pour ton aide Guillaume :)

Oui je me doutais que les portes ne suffiraient pas, j'ai potassé un peu autour des pull up / pull down.
Pour "anon" c'est la même chose que "a barre"?

Pour le 5v oui j'ai lu que ce n'était pas conseillé du tout. Je n'ai pas réussi à trouver une bonne doc sur le fonctionnement "électronique" des GPIO, y'a tout ce qu'il faut pour Python par contre. Je me demandais si je peux utiliser la fonction GPIO.INPUT dans un script avec un simple contact à la masse ou s'il faut une tension d'entrée impérativement, et dans ce cas quelle est l'amplitude tolérée?

Je vais aller voir mes potes Karnaugh et De Morgan ils vont me filer un coup de pouce, merci encore!

Bye ;) Pierrick.

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: On/Off/Reset RPi2 - Simplification logique ?

Message par guillaume9344 » mer. 13 avr. 2016 21:18

anon c'est a barre â dans l'équation.

pour le fonctionnement des gpio: en entrée , on peut metres toutes les tensions que l'on veux entre 0v et 3.3v , entre 0v et 1.5v le programme python (GPIO.INPUT) lira un 0 logique, entre 2.5v et 3.3v , un 1 logique.( ne pas oublier de paramétrer la pin en entrée.donc un interrupteur fermé sur la masse renvoi un 0 mais ouvert sans pullup renvoi un état indéterminé (des fois 1 des foi 0 , un c'est jamais celui qu'on veut). un interrupteur fermé sur 3.3v renvoi un 1 logique , un interrupteur ouvert sans pulldown renverra un état indéterminé.

donc pour un inter, résistance de tirage obligatoire.

pour une pin en sortie : quand le programme envoi un 1 logique , on trouvera sur la pin 3.3v , pour un 0 logique , 0v.
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

McFly
Messages : 22
Enregistré le : mar. 29 mars 2016 14:05

Re: On/Off/Reset RPi2 - Simplification logique ?

Message par McFly » mer. 13 avr. 2016 21:54

guillaume9344 a écrit :anon c'est a barre â dans l'équation.

pour le fonctionnement des gpio: en entrée , on peut metres toutes les tensions que l'on veux entre 0v et 3.3v , entre 0v et 1.5v le programme python (GPIO.INPUT) lira un 0 logique, entre 2.5v et 3.3v , un 1 logique.( ne pas oublier de paramétrer la pin en entrée.donc un interrupteur fermé sur la masse renvoi un 0 mais ouvert sans pullup renvoi un état indéterminé (des fois 1 des foi 0 , un c'est jamais celui qu'on veut). un interrupteur fermé sur 3.3v renvoi un 1 logique , un interrupteur ouvert sans pulldown renverra un état indéterminé.

donc pour un inter, résistance de tirage obligatoire.

pour une pin en sortie : quand le programme envoi un 1 logique , on trouvera sur la pin 3.3v , pour un 0 logique , 0v.
Ok pigé ! :) merci, il me reste à creuser un peu pour déterminer ce dont j'ai besoin (pull up ou down) selon ce le circuit en amont.

Pour la porte nand j'ai pas compris, mais j'en saurais certainement plus quand j'aurais revu la loi de De Morgan.

Je vous mettrais ici la suite de mes travaux, et dès que j'aurais pu expérimenter (j'ai les outils mais pas les composants encore), je vous filera tout ça, en espérant que ça puisse intéresser d'autres personnes.

Bonne soirée,
Pierrick.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: On/Off/Reset RPi2 - Simplification logique ?

Message par spourre » jeu. 14 avr. 2016 00:05

McFly a écrit :

Sinon, dans l'idée ça te parait cohérent ? Le circuit fonctionne tel qu'il est là (en simulation au moins).
...
Sinon, pour la ptite histoire: Avant mes études d'informatique j'ai fait un BEP électronique mais ça fait bien 10 ans que j'ai pas touché à un fer à souder! :) Si seulement j'avais pas oublié tout ce que j'ai vu en cours ^^
J'ai un peu honte :oops:
...
!
Bonsoir,

Ça semble tenir la route à une remarque près: La tenue du Raspberry aux rebonds des boutons poussoirs (BP). Cela peut provoquer des comportements bizarres, difficiles à analyser.
Moi aussi je suis passé par la case électronique avant de passer à l'informatique mais c'était au dernier millénaire ;-) sans aller jusqu’à ajouter un circuit logique (trigger de schmitt), tu peux mettre un condensateur en // sur le BP:
https://www.google.fr/search?q=protecti ... QIIw&dpr=1

Bonnes bidouilles.

Sylvain

bruno83
Messages : 72
Enregistré le : lun. 11 mai 2015 13:29

Re: On/Off/Reset RPi2 - Simplification logique ?

Message par bruno83 » dim. 17 avr. 2016 14:13

bonjour,
Juste un truc il y a plus simple en jouant sur les résistances de rappelles avec les bp, si non faire des « ou » et « et » à diodes rapide et efficace.
A+bruno

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: On/Off/Reset RPi2 - Simplification logique ?

Message par spourre » dim. 17 avr. 2016 23:34

McFly a écrit : ...
Pour la porte nand j'ai pas compris, mais j'en saurais certainement plus quand j'aurais revu la loi de De Morgan.
Toute fonction logique peut être réalisée en n'utilisant que des NAND.
A priori, ça peut sembler peu intéressant et même compliquer le circuit. C'est vrai pour un montage amateur avec peu de fonctions.
Par contre, pour un industriel qui met sur le marché des milliers de cartes utilisant des centaines de circuits, il y a un réel intérêt.
Si tu regardes le prix au détail, par tube de 25, du classique CD4011E chez RS:
http://fr.rs-online.com/web/p/portes-lo ... d/0526537/
Je te laisses imaginer le prix payé par très grosses quantités. L'avantage pour l'industriel est immédiat:
- Un seul type de composant à approvisionner et à stocker
- Des prix de très très gros volume
- Gestion de stocks simplifiée donc moins coûteuse

Sylvain

Répondre

Retourner vers « L'électronique et le Raspberry Pi »