Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
W systemie złożonym z RaspberryPi zasilanego przez zasilacz ATX, celem tego obwodu jest umożliwienie włączenia lub wyłączenia systemu za pomocą jednego przycisku.
Ten samouczek został opracowany przez sitelec.org.
Krok 1: Prezentacja funkcjonalna
Poniżej znajdują się szczegółowe etapy działania obwodu.
Proszę odnieść się do załączonego schematu i diagramu symulacyjnego:
X: 2s / div, Y: 0.5v / divATX_PS-ON (żółty) (pomiar)PWR_SW (reg) (symulacja)RPI_GPIO (niebieski) (pomiar)RPI_UART0-TXD (zielony) (symulacja)
Zasilanie włączone
Obwód ten działa na pin zasilacza ATX_PS-ON ATX PSU, uruchamiając jego włączenie lub wyłączenie. Domyślnie ten pin jest ustawiony na 5V, co oznacza zatrzymanie zasilacza. Aby włączyć zasilacz, obwód musi ustawić ATX_PS-ON na masę. Po naciśnięciu przycisku tranzystor Q2 ustawia ATX_PS-ON na masę, co powoduje włączenie zasilania zasilacza i uruchomienie RaspberryPi.
System działa
Podczas uruchamiania RaspberryPi ustawia swój pin RPI_UART0-TXD na 3,3 V, działając na tranzystorze Q1, który utrzymuje aktywny zasilacz, utrzymując ATX_PS-ON na ziemi. Jednak może minąć trochę czasu, zanim RPI_UART0-TXD przejdzie do 3,3 V (2,6 sekundy na RaspberryPi 3). Podukład RC na bazie Q2 jest zaprojektowany tak, aby utrzymać nasycenie tranzystora wystarczająco długo. Kondensator C1 absorbuje wahania napięcia na pinie RPI_UART0-TXD, co jest przydatne w przypadku korzystania z RaspberryPi UART, ponieważ utrzymuje system w stanie aktywnym.
Zamknięcie systemu
Nowe naciśnięcie przycisku jest wykrywane przez oprogramowanie na RaspberryPi poprzez odczytanie pinu wejściowego GPIO, a następnie można wykonać zamknięcie systemu. Po zatrzymaniu RaspberryPi jego płytka drukowana pozostaje zasilana, ale pin RPI_UART0-TXD trafia do masy, Q1 jest następnie odcinany, a zasilacz zatrzymuje się.
Krok 2: Ustawienia RaspberryPi
RPI_UART0-TXD pin ustawiony na 3,3 V podczas pracy
Za pomocą klienta SSH zaloguj się do swojego RaspberryPi.
Najpierw skonfiguruj RaspberryPi, aby ustawić RPI_UART0-TXD na 3,3 V podczas pracy, aby utrzymać aktywny zasilacz. W tym celu edytuj /boot/config.txt i dodaj na końcu:
enable_uart=1
Zatrzymanie RaspberryPi wyzwalane przez GPIO
Aby przycisk mógł uruchomić wyłączenie RaspberryPi, obwód musi być podłączony do GPIO.
Pobierz załączony skrypt rpi_shutdown.py.
Możesz go edytować, aby zmienić następujące wartości:
- HOLD_TIME: czas przytrzymania przycisku w celu wywołania wyłączenia (ta wartość jest zniekształcona przez C2, który utrzymuje poziom przez chwilę po zwolnieniu przycisku)
- PIN_NB: numer GPIO do użycia
Skopiuj skrypt do /usr/local/bin i uczyń go wykonywalnym:
sudo chmod +x /usr/local/bin/rpi_shutdown.py
Zainstaluj jego zależności, takie jak gpiozero:
sudo apt-get -y zainstaluj python3-gpiozero python3-pkg-resources
Włącz go przy starcie systemu:
sudo crontab -e
dodaj następujące w pliku otwierającym:
@reboot /usr/local/bin/rpi_shutdown.py &
Ten skrypt został napisany zgodnie z poniższą dokumentacją:
Poprawnie uruchom ponownie RaspberryPi:
ponowne uruchomienie sudo
Możesz teraz podłączyć obwód do RaspberryPi i do zasilacza i przetestować następujące elementy:
- zasilacz jest utrzymywany w stanie aktywnym zgodnie z oczekiwaniami przez pin RPI_UART0-TXD RaspberryPi
- naciśnięcie przycisku powoduje wyłączenie RaspberryPi, co powoduje zatrzymanie zasilacza
Krok 3: Dodatkowe zasoby
Powiązane zasoby można znaleźć na stronie sitelec.org:
- Samouczek w języku angielskim zawierający aktualny projekt i środowisko symulacji FreeCad
- Francuski samouczek zawierający aktualny projekt FreeCad i środowisko symulacyjne
- Francuski samouczek inicjujący symulację FreeCad, oparty na metodzie oddzielnego arkusza symulacji