Fügen Sie dem Himbeer-Pi den Netzschalter hinzu

2022-09-05
Raspberry Pi 4
Als Hardware-Enthusiast, Embedded-System-Ingenieur und technischer Nerd ist Raspberry Pi definitiv etwas zum Spielen, aber nach längerer Verwendung werden Sie immer feststellen, dass es einige Unvollkommenheiten hat, wie zum Beispiel: kein Netzschalter!
Es gibt zwei häufig verwendete Methoden zum Herunterfahren (ganz zu schweigen vom externen Bildschirm und der Tastatur):
1. Melden Sie sich aus der Ferne an und geben Sie dann einen Befehl ein (dies ist die am besten geeignete Methode zum Herunterfahren, aber es ist zu mühsam, wenn kein Computer in der Nähe ist, kann er nicht heruntergefahren werden)
2. Trennen Sie die Stromversorgung (einfach und unhöflich, aber es kann leicht zu Dateischäden führen)
Um den Raspberry Pi also glücklich zu nutzen, ist es am besten, einen Power-Button wie einen Computer hinzuzufügen. Baidu fand viel Inland (ja, ich ziele auf China ab, und es gibt nur wenige Artikel, die hin und her gehen, aber ich denke immer noch, dass sie sich wiederholt kopieren) Es gibt nur eine Möglichkeit, den Netzschalter hinzuzufügen, nämlich zu Schreiben Sie ein Python-Skript oder ein anderes Skript oder kompilieren Sie ein Programm, das Prinzip ist jedenfalls das gleiche, lassen Sie das Skript (oder Programm) starten, das Programm erkennt immer den GPIO, der auf die Ein- / Aus-Taste eingestellt ist, und fährt herunter, wenn er ausgelöst wird. Obwohl diese Methode das Problem lösen kann, ist sie wirklich niedrig! ! ! Und es kann nur ausgeschaltet, nicht eingeschaltet werden.
Hier teile ich mit Ihnen eine sehr elegante Methode, die ein- und ausgeschaltet werden kann:
Öffnen und lesen Sie /boot/overlays/README sorgfältig
. Dies ist das Ende des heutigen Teilens, danke.
Tatsächlich hat /boot/overlays/README es bereits sehr ausführlich gesagt. Zum Wohle der Allgemeinheit werde ich das regeln.
Viele Leute haben Kopfschmerzen, wenn sie Englisch sehen, und diese Datei hat Tausende von Zeilen, und nur wenige Leute werden sie sorgfältig lesen. Hier werde ich nur den Inhalt extrahieren, der sich auf die Stromversorgung bezieht (der Inhalt der Systemdateien verschiedener Versionen unterscheidet sich geringfügig):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
einundzwanzig
zweiundzwanzig
dreiundzwanzig
vierundzwanzig
25
26
27
28
29
30
Name: gpio-shutdown
Info: Initiiert ein Herunterfahren, wenn sich der GPIO-Pin ändert. Der angegebene GPIO-Pin
ist als Eingabetaste konfiguriert, die KEY_POWER-Ereignisse generiert.
Dieses Ereignis wird von systemd-logind behandelt, indem a
stilllegen. Systemd-Versionen älter als 225 benötigen eine udev-Regel
Aktivieren Sie das Abhören des Eingabegeräts:
ACTION!="REMOVE", SUBSYSTEM=="input", KERNEL=="event*", \
SUBSYSTEMS=="Plattform", DRIVERS=="gpio-keys", \
ATTRS{keys}=="116", TAG+="power-switch"
Dieses Overlay behandelt nur das Herunterfahren. Nach dem Herunterfahren des Systems
kann wieder eingeschaltet werden, indem GPIO3 auf Low gesetzt wird. Der Standard
Konfiguration verwendet GPIO3 mit einem Pullup, wenn Sie also eine Verbindung herstellen
Taster zwischen GPIO3 und GND (Pin 5 und 6 auf dem 40-Pin-Header),
Sie erhalten einen Shutdown- und Power-Up-Button.
Laden: dtoverlay=gpio-shutdown,=
Parameter: gpio_pin GPIO-Pin zum Triggern (Standard 3)
active_low Wenn dies 1 ist (aktiv niedrig), ein Fallen
edge generiert ein Key-Down-Event und a
steigende Flanke erzeugt ein Key-Up-Ereignis.
Wenn dies 0 (aktiv hoch) ist, ist dies der Fall
umgedreht. Der Standardwert ist 1 (aktiv niedrig).
gpio_pull Gewünschter Pull-up/down-Zustand (off, down, up)
Standard ist "oben".
Beachten Sie, dass der Standard-Pin (GPIO3) eine hat
externer Pullup.
Es wurde hier sehr deutlich gemacht, solange die entsprechende Konfiguration in /boot/config.txt hinzugefügt wird, kann das Herunterfahren realisiert werden.
Zum Beispiel so:
1
2
# Verwenden Sie GPIO3 (der GPIO bezieht sich hier auf die 3BCM-GPIO-Nummer, dh SCL1) als Einschaltknopf, die fallende Flanke wird gedrückt, die steigende Flanke wird geprellt und der interne Pull-up
dtoverlay=gpio-shutdown
Speichern und neu starten, dann müssen Sie nur noch einen Taster zwischen GPIO3 und GND verbinden, um herunterzufahren, ist das nicht einfach?
Beginnen Sie, sich zu konzentrieren! ! Prüfungen sind zu absolvieren! ! denken Sie daran! !
Es ist nicht erforderlich, eine Konfiguration hinzuzufügen. Nach dem normalen Herunterfahren wird dieHimbeer-Pikann eingeschaltet werden, indem GPIO3 auf einen niedrigen Pegel gezogen wird, ohne die Stromversorgung zu unterbrechen! Richtig, das ist der Einschaltknopf! Wenn Sie GPIO3 nicht als Einschalttaste benötigen, lesen Sie bitte selbst den entsprechenden Inhalt von gpio-poweroff in /boot/overlays/README
Die oben erwähnte Konfiguration verwendet standardmäßig GPIO3, also SCL1 als Power-Button, der die I2C-Schnittstelle belegt. Obwohl andere GPIO-Software zur Simulation von I2C verwendet werden kann, ist dies offensichtlich sehr unpraktisch. Es ist besser, es wie folgt zu einem anderen GPIO zu ändern. Der GPIO-Port kann nur als Ausschalttaste verwendet werden, und die Einschalttaste ist immer noch GPIO3. Derzeit habe ich keine Möglichkeit gefunden, andere Einschalttasten anzupassen.
1
2
# Verwenden Sie gpio_pin=17, dh GPIO_0 (physischer Pin PIN_11) als Schaltfläche zum Herunterfahren
dtoverlay=gpio-shutdown,gpio_pin=17,active_low=1,gpio_pull=up
GPIO3 kollidiert mit SCL1. Die spezifische Leistung besteht darin, dass bei aktiviertem I2C GPIO3 als SCL1 verwendet wird, sodass nur GPIO3 zum Einschalten, aber nicht zum Ausschalten verwendet werden kann. Wenn Sie also nur eine Taste als Ein-/Aus-Taste verwenden möchten, müssen Sie den Hardware-I2C aufgeben und andere Pins verwenden, um den I2C zu simulieren. Wenn Sie die Ein/Aus-Taste haben und gleichzeitig den Hardware-I2C verwenden müssen, verwenden Sie GPIO3 als Einschalttaste und konfigurieren Sie zusätzlich eine Taste als Ausschalttaste.
Ich habe nur die oben genannten Inhalte auf überprüftRaspberryPi 3B+(Systemversion: Raspbian Buster mit Desktop, Image mit Desktop basierend auf Debian Buster, Version:Juli 2019, Veröffentlichungsdatum:2019-07-10, Kernel-Version:4.19), Andere Versionen sind nicht garantiert verfügbar
Es gibt viele sehr nützliche Konfigurationen in /boot/overlays/README, und interessierte Studenten können sich selbst damit vertraut machen.
Abschließend hoffe ich, dass Sie alle schnell handeln! ! Verzichten Sie auf diese niedrigexplosiven Schalterlösungen!