Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Em um sistema composto por um RaspberryPi alimentado por uma fonte de alimentação ATX, o objetivo deste circuito é permitir ligar ou desligar o sistema com um único botão.
Este tutorial foi desenvolvido por sitelec.org.
Etapa 1: apresentação funcional
Abaixo estão detalhadas as etapas de funcionamento do circuito.
Consulte o esquema em anexo e o diagrama de simulação:
X: 2s / div, Y: 0,5v / divATX_PS-ON (amarelo) (medida) PWR_SW (reg) (simulação) RPI_GPIO (azul) (medida) RPI_UART0-TXD (verde) (simulação)
Ligar
Este circuito atua no pino ATX PSU ATX_PS-ON para acionar sua alimentação ou desligamento. Por padrão, este pino é configurado para 5 V, o que significa que a PSU está parada. Para ligar a PSU, o circuito deve definir ATX_PS-ON para o terra. Quando o botão de pressão é ativado, o transistor Q2 define ATX_PS-ON para o solo, o que aciona a alimentação da PSU e a inicialização do RaspberryPi.
Sistema funcionando
Na inicialização, o RaspberryPi configurou seu pino RPI_UART0-TXD para 3,3 V, agindo no transistor Q1 que mantém a PSU ativa mantendo ATX_PS-ON no solo. No entanto, pode levar algum tempo até que RPI_UART0-TXD vá para 3,3 V (2,6 segundos no RaspberryPi 3). O sub-circuito RC na base Q2 é projetado para manter a saturação do transistor por tempo suficiente. O capacitor C1 absorve variações de tensão no pino RPI_UART0-TXD, o que é útil se o RaspberryPi UART for usado porque mantém o sistema ativo.
Desligamento do sistema
Uma nova pressão no botão de pressão é detectada pelo software no RaspberryPi lendo um pino GPIO de entrada, o desligamento do sistema pode então ser executado. Uma vez que o RaspberryPi é parado, seu PCB permanece energizado, mas o pino RPI_UART0-TXD vai para o solo, Q1 é então cortado e o PSU para.
Etapa 2: configurações do RaspberryPi
Pino RPI_UART0-TXD definido para 3,3 V durante a execução
Por meio de um cliente SSH, faça o login no RaspberryPi.
Primeiro, configure o RaspberryPi para definir RPI_UART0-TXD para 3,3 V durante a execução, para manter o PSU ativo. Para fazer isso, edite /boot/config.txt e adicione no final:
enable_uart = 1
Parada do RaspberryPi acionada por GPIO
Para permitir que o botão acione o desligamento do RaspberryPi, o circuito deve ser conectado a um GPIO.
Baixe o script rpi_shutdown.py anexado.
Você pode editá-lo para alterar os seguintes valores:
- HOLD_TIME: tempo para manter o botão pressionado para acionar o desligamento (este valor é distorcido por C2 que mantém o nível por um tempo após o botão ser liberado)
- PIN_NB: número GPIO a ser usado
Copie o script para / usr / local / bin e torne-o executável:
sudo chmod + x /usr/local/bin/rpi_shutdown.py
Instale suas dependências, como gpiozero:
sudo apt-get -y install python3-gpiozero python3-pkg-resources
Habilite-o na inicialização do sistema:
sudo crontab -e
adicione o seguinte no arquivo de abertura:
@reboot /usr/local/bin/rpi_shutdown.py &
Este script foi escrito de acordo com a seguinte documentação:
Reinicie o RaspberryPi corretamente:
sudo reboot
Agora você pode conectar o circuito ao RaspberryPi e ao PSU e testar o seguinte:
- a PSU é mantida ativa conforme esperado pelo pino RPI_UART0-TXD RaspberryPi
- pressionar o botão ativa o desligamento do RaspberryPi, que interrompe o PSU
Etapa 3: Recursos Adicionais
Recursos relacionados podem ser encontrados em sitelec.org:
- Tutorial de inglês incluindo projeto FreeCad atualizado e ambiente de simulação
- Tutorial em francês incluindo projeto FreeCad atualizado e ambiente de simulação
- Tutorial de iniciação da simulação FreeCad em francês, com base em um método de planilha de simulação separada