2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Într-un sistem compus dintr-un RaspberryPi alimentat de o unitate de alimentare ATX, scopul acestui circuit este de a permite pornirea sau oprirea sistemului cu un singur buton.
Acest tutorial a fost dezvoltat de sitelec.org.
Pasul 1: Prezentare funcțională
Mai jos sunt detaliate etapele de rulare a circuitului.
Vă rugăm să consultați schema atașată și diagrama de simulare:
X: 2s / div, Y: 0,5v / divATX_PS-ON (galben) (măsură) PWR_SW (reg) (simulare) RPI_GPIO (albastru) (măsură) RPI_UART0-TXD (verde) (simulare)
Aprinde
Acest circuit acționează pe pinul ATX_PS-ON ATX PSU pentru a declanșa pornirea sau oprirea acestuia. În mod implicit, acest pin este setat la 5V, ceea ce înseamnă că alimentatorul este oprit. Pentru a porni alimentatorul, circuitul trebuie să seteze ATX_PS-ON la sol. Când butonul este activat, tranzistorul Q2 setează ATX_PS-ON la sol, ceea ce declanșează pornirea alimentatorului și pornirea RaspberryPi.
Sistemul rulează
La pornire, RaspberryPi și-a setat pinul RPI_UART0-TXD la 3,3V, acționând asupra tranzistorului Q1, care menține alimentatorul activ, menținând ATX_PS-ON la sol. Cu toate acestea, poate dura ceva timp până când RPI_UART0-TXD ajunge la 3,3 V (2,6 secunde pe RaspberryPi 3). Subcircuitul RC de pe baza Q2 este conceput pentru a menține saturația tranzistorului suficient timp. Condensatorul C1 absoarbe variațiile de tensiune pe pinul RPI_UART0-TXD, ceea ce este util dacă RaspberryPi UART este utilizat deoarece menține sistemul activ.
Oprirea sistemului
O nouă apăsare pe buton este detectată de software-ul de pe RaspberryPi prin citirea unui pin GPIO de intrare, oprirea sistemului poate fi efectuată. Odată ce RaspberryPi este oprit, PCB-ul său rămâne alimentat, dar pinul RPI_UART0-TXD merge la sol, Q1 este apoi tăiat și alimentatorul se oprește.
Pasul 2: Setări RaspberryPi
Pinul RPI_UART0-TXD setat la 3,3V în timpul rulării
Prin intermediul unui client SSH, conectați-vă la RaspberryPi.
Mai întâi, configurați RaspberryPi pentru a seta RPI_UART0-TXD la 3,3V în timpul funcționării, pentru a menține alimentatorul activ. Pentru a face acest lucru, editați /boot/config.txt și adăugați la final:
enable_uart = 1
RaspberryPi stop declanșat de GPIO
Pentru a permite butonului să declanșeze oprirea RaspberryPi, circuitul trebuie să fie conectat la un GPIO.
Descărcați scriptul rpi_shutdown.py atașat.
Puteți să-l editați pentru a modifica următoarele valori:
- HOLD_TIME: timpul de menținere a butonului apăsat pentru a declanșa oprirea (această valoare este distorsionată de C2 care menține nivelul pentru o vreme după ce butonul este eliberat)
- PIN_NB: numărul GPIO de utilizat
Copiați scriptul în / usr / local / bin și faceți executabil:
sudo chmod + x /usr/local/bin/rpi_shutdown.py
Instalați dependențele sale, cum ar fi gpiozero:
sudo apt-get -y install python3-gpiozero python3-pkg-resources
Activați-l la pornirea sistemului:
sudo crontab -e
adăugați următoarele în fișierul de deschidere:
@reboot /usr/local/bin/rpi_shutdown.py &
Acest script a fost scris în conformitate cu următoarea documentație:
Reporniți corect RaspberryPi:
sudo reboot
Acum puteți conecta circuitul la RaspberryPi și la PSU și testați următoarele:
- alimentatorul este menținut activ așa cum era de așteptat de pinul RPI_UART0-TXD RaspberryPi
- apăsarea butonului declanșează oprirea RaspberryPi, care oprește alimentatorul
Pasul 3: Resurse suplimentare
Resursele conexe pot fi găsite de pe sitelec.org:
- Tutorial în limba engleză, incluzând proiectul FreeCad actualizat și mediul de simulare
- Tutorial francez, incluzând proiectul FreeCad actualizat și mediul de simulare
- Tutorial de inițiere a simulării franceze FreeCad, bazat pe o metodă separată de foaie de simulare