Circuit pour éteindre Pi en toute sécurité


29

Je veux utiliser mon Pi comme serveur XBMC dans la voiture. Les documents XBMC disent que vous devez toujours utiliser la commande d' arrêt avant de déconnecter l'alimentation.

J'ai pensé qu'il devrait être possible de créer un circuit simple avec un condensateur et probablement une diode pour détecter le moment où l'alimentation a été déconnectée (et déclencher une interruption sur l'une des broches GPIO) mais le condensateur fournirait du courant assez longtemps pour que le système s'arrête correctement.

premier brouillon

Cela semble-t-il correct et suffisant?

... En fait, je pense que ce serait probablement plus comme ça:

deuxième brouillon

De quel type de condensateur aurais-je besoin pour stocker suffisamment de charge pour que le Pi fonctionne suffisamment longtemps pour que le XBMC s'arrête correctement?


Pour mémoire, cette question a également été posée sur SE Electrical Engineering .


Qu'est-ce que le "GPIO 3.3V"? Dans le premier circuit, il abaissera simplement le rail 3,3 V avec la résistance inférieure, et le second reliant la sortie d'un ampli-op fonctionnant à partir d'une alimentation asymétrique 5v au GPIO avec les entrées définies, le pilotage de l'ampli-op sa sortie proche de 5V aussi fort que possible - ce qui ne va pas aider l'alimentation 3,3 V du Pi ( cela peut tuer le Pi ). L'utilisation d'un régulateur de puissance linéaire (7805) ne fera que gaspiller la charge limitée dans le ?? condensateur. Je voudrais "-1" mais la question est bonne même si vos suggestions sont mauvaises.
SlySven

Je ne pense pas qu'un quelconque condensateur fera l'affaire car cela peut prendre jusqu'à 30 secondes pour arrêter un Pi. Vous devrez peut-être plutôt examiner un petit système UPS. Ou vous ne pouvez pas essayer cela, mais c'est un projet 90USD. instructables.com/id/…
Piotr Kula

Réponses:


13

Projets pour ajouter des fonctionnalités d'arrêt et de démarrage à Pi :

Il existe également une solution pour allumer / éteindre Pi, mais il ne coupe pas l'alimentation , il n'est donc pas adapté à une voiture:



4

La meilleure solution à mon avis est d'utiliser l' onduleur Pico , spécialement conçu pour les onduleurs Raspberry Pi, qui offre de nombreuses autres fonctionnalités.

Il est peu coûteux, comprend la batterie, pas besoin de câble supplémentaire, il suffit de le placer sur le RPi.

Fonctionnant sur une voiture et arrêt automatique, fonctionnant également sur XBMC.


3

La sortie du comparateur va à la broche GPIO (dans ce circuit, il y a un multimètre placé à la place) afin que Raspberry puisse vérifier si le contact de la voiture est toujours activé. Tout le reste est expliqué par l'orateur précédent. "S2" est un bouton de réinitialisation - juste au cas où. Dans l'image, vous pouvez voir XMH4, XMM1, .. Ne vous en souciez pas. Je ne l'ai utilisé que pour vérifier des paramètres intéressants lors du test du circuit dans Multisim. Ma seule question est la réaction à l'augmentation de la température. Il faudra peut-être changer les valeurs des résistances dans les diviseurs de tension.

Edit: J'ai réalisé que malgré le fait que le cirucit soit sûrement correct dans la théorie, il est inutile. Le coût d'un tel gros condensateur (1F, 12V) est inacceptable. Une autre solution pourrait être de connecter le régulateur de tension à l'accumulateur et d'utiliser un comparateur de tension entre l'allumage de la voiture et la batterie.

entrez la description de l'image ici


4
Bonjour et bienvenue! Nous vous remercions de votre contribution. Envie d'expliquer le fonctionnement de votre circuit?
Ghanima

1

Il peut être possible de concevoir un circuit approprié avec un ensemble de "super-condensateurs" batteryuniversity.com article et entrée Wikipedia et quelque chose comme ce que vous obtenez d'un site d'enchères en ligne si votre recherche d'un "3V à 5V 1A DC- DC Boost Converter "- vous feriez un autre convertisseur (disons 5-25V à 5V 2A (?) Sortie Buck-Boost") pour laisser tomber l'alimentation de la voiture 12V (bien 13.8V) aux 3 à 5 Volts nécessaires pour garder les condensateurs chargés - puis le premier convertisseur l'utilise pour alimenter le Pi.

Vous voudriez surveiller le 12V entrant pour détecter qu'il est éteint et dire au Pi de s'éteindre (comme le font les appareils UPiS dans l'autre réponse!)

Vous auriez également besoin d'une certaine prévention d'appel dans le circuit car les super-capuchons prendront un courant de surtension important (provenant du convertisseur 12V) lorsqu'une tension leur est appliquée et qu'ils sont déchargés.

Pour mémoire: les super-caps individuels ont généralement une tension maximale inférieure à 5V mais vous pouvez maintenant acheter des unités qui ont deux en série pour fonctionner avec 5V volts - mais ce n'est pas un bon idéal pour en mettre plus de 2 ou 3 série sans circuits supplémentaires "d'équilibrage de tension" qui ne font que rendre la conception plus complexe - la raison d'utiliser un convertisseur "boost" est qu'il continuera à produire 5V lorsque la tension des condensateurs descendra en dessous de cela ...


1

Restez simple et prouvez que votre projet vaut l'effort d'un onduleur.

Ajoutez simplement un commutateur momentané pour court-circuiter quelques GPIO qui déclenchent un arrêt. Le Pi s'allumera lors du prochain démarrage de la voiture. Attention, votre alimentation n'est livrée qu'après le démarrage du moteur, pour éviter un plongeon lors du processus d'allumage.

Créez un script:

$ nano shutdown.py

Saisissez le texte.

import RPi.GPIO as GPIO
import os
channel=11
GPIO.setmode(GPIO.BOARD)
#Pin 11 & Gnd
GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(channel,GPIO.FALLING)
os.system("sudo shutdown -h now")

Ajoutez la ligne ci-dessous à /etc/rc.local

Python /home/pi/shutdown.py

Connectez un fil à la broche 11 et un fil à une broche Gnd.

Je ne sais pas si Kodi joue bien avec les commutateurs GPIO, donc il se peut qu'il doive être dans Raspbian.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.