Spisu treści:

Moduł sterowania przełącznikiem Raspberry Pi ATX PSU: 3 kroki
Moduł sterowania przełącznikiem Raspberry Pi ATX PSU: 3 kroki

Wideo: Moduł sterowania przełącznikiem Raspberry Pi ATX PSU: 3 kroki

Wideo: Moduł sterowania przełącznikiem Raspberry Pi ATX PSU: 3 kroki
Wideo: Jak zgrać firmware do sonoff TH16 (tasmota): instrukcja krok po kroku 2024, Lipiec
Anonim
Moduł sterowania przełącznikiem Raspberry Pi ATX PSU
Moduł sterowania przełącznikiem Raspberry Pi ATX PSU

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

Prezentacja funkcjonalna
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

Zalecana: