On/Off/Reset RPi2
Modérateurs : Francois, smba38
On/Off/Reset RPi2
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?
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!
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?
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é 208 fois
Modifié en dernier par McFly le lun. 16 mai 2016 19:33, modifié 1 fois.
-
- Raspinaute
- Messages : 735
- Enregistré le : lun. 22 déc. 2014 16:50
- Localisation : 67380 LINGOLSHEIM
Re: On/Off/Reset RPi2 - Simplification logique ?
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
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
-
- Raspinaute
- Messages : 629
- Enregistré le : mar. 6 janv. 2015 19:44
- Localisation : finistere
Re: On/Off/Reset RPi2 - Simplification logique ?
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.
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
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
Re: On/Off/Reset RPi2 - Simplification logique ?
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
Bonne soirée!
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
Bonne soirée!
Re: On/Off/Reset RPi2 - Simplification logique ?
Merci pour ton aide Guillaumeguillaume9344 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.
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.
-
- Raspinaute
- Messages : 629
- Enregistré le : mar. 6 janv. 2015 19:44
- Localisation : finistere
Re: On/Off/Reset RPi2 - Simplification logique ?
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.
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
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
Re: On/Off/Reset RPi2 - Simplification logique ?
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.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.
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.
-
- Raspinaute
- Messages : 735
- Enregistré le : lun. 22 déc. 2014 16:50
- Localisation : 67380 LINGOLSHEIM
Re: On/Off/Reset RPi2 - Simplification logique ?
Bonsoir,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
...
!
Ç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
Re: On/Off/Reset RPi2 - Simplification logique ?
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
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
-
- Raspinaute
- Messages : 735
- Enregistré le : lun. 22 déc. 2014 16:50
- Localisation : 67380 LINGOLSHEIM
Re: On/Off/Reset RPi2 - Simplification logique ?
Toute fonction logique peut être réalisée en n'utilisant que des NAND.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.
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