Manual
do
Maker
.
com
Vale a pena economizar com fonte? Bem, na hora de escolher fonte para Raspberry, muita gente está considerando o custo. Devemos ter em mente que subtensão queima mais facilmente circuitos eletrônicos. Também, a corrente insuficiente poderá gerar reinicialização e aquecimento da placa. Então, qual a fonte ideal? Vou discorrer a respeito, mas leia o artigo todo porque tem conteúdo que certamente lhe interessará.
Tem várias, claro. Fonte gaiola chaveada é certamente a melhor opção, tendo inclusive uma própria para Raspberry, com 5V@5A. E ela é impressionantemente cravada em 5V! É importante considerar essa estabilidade porque o Raspberry não regula a tensão de entrada. Mas como ligar essa fonte no Raspberry? Simples! Corte um cabo USB, ligue os fios preto e vermelho no GND e VCC respectivamente. Conecte o cabo à porta USB normalmente e pronto, uma fonte compacta e segura. A única recomendação é que ela não seja sobrecarregada. Se você pretende por carga nela, então compre uma fonte gaiola dessas grandes. Vai ficar feio, mas vai resolver qualquer problema. Mas repare no case que fiz para usar com essa fonte, deixando apenas a ethernet exposta. Veja como fica:
E o produto final:
Na imagem de destaque está o dashboard que fiz com Grafana e MQTT para um cliente. Esses valores são tirados da própria Raspberry (exceto a subtensão da esquerda, que forcei valor alto para alarmar). Nos alarmes de tensão da direita foram eventos gerados durante o boot, ou seja, pode não aparecer raio amarelo na tela durante o uso, mas a fonte está no limite. Certamente a maioria tem ruídos, o que esporadicamente gerará algum alarme de tensão e/ou corrente, o que não é bom para o processador. Mas esse artigo não é só pra recomendar a fonte, é para lhe dar meios para aferir a que você possa estar usando atualmente.
Encontrei um vendedor que ainda tem disponível essas fontes (que se esgotam rapidamente, acredite, porque estou continuamente comprando e sempre preciso procurar por fornecedor) - A Magir Fast Shopping, que vende direto pelo ML ou pela loja integrada em seu site, portanto, a compra é segura de qualquer modo.
Com essa fonte, não tive mais nenhum problema com a alimentação:
Custa muito? - Em relação a uma fonte vira-latas, custa o dobro. Mas lembre-se: A Raspberry custa centenas de reais, não arrisque.
Vale lembrar que ela é ideal para Raspberry, mas você pode ligar qualquer outra placa com nível lógico 5V, como Arduino, ESP8266, ESP32, STM32 etc. E vamos aproveitar para reforçar o conceito: corrente demais não queima circuito, a corrente é consumida sob demanda; apenas a tensão tem que ser realmente igual, exceto se o circuito contemple um regulador de tensão que permita tensão excedente ao nível lógico.
Se for utilizar uma das placas citadas, lembre-se de que a fonte não deverá passar pelo regulador de tensão da placa nesse caso.
Para saber como anda a relação do seu Raspberry com a alimentação, utilize o programa vcgencmd. Além de pegar parâmetros de tensão do circuito, ele também dá diagnósticos de eventos relacionados ocorrendo e/ou ocorridos. Vou escrever um artigo exclusivo sobre esse programa, mas no momento vamos focar apenas na alimentação.
Esse é o comando, mas a saída depende de interpretação. Se não houver nenhum evento, o comando retorna 0x0, de outro modo retorna o código do evento, sendo o código tratado em binário, 4 bits à esquerda e 4 bits à direita.
0x50000 = 0101 0000 0000 0000 0000
Considerando os 4 bits da esquerda e os 4 bits da direita:
19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
O significado dos bits:
Bit | Meaning |
---|---|
0 | Under-voltage detected |
1 | Arm frequency capped |
2 | Currently throttled |
3 | Soft temperature limit active |
16 | Under-voltage has occurred |
17 | Arm frequency capping has occurred |
18 | Throttling has occurred |
19 | Soft temperature limit has occurred |
Portanto 0x50000em binário dará apenas o código 0101, representando 16 e 18. Isso significa que o Raspberry teve previamente uma redução de desempenho devido à insuficiência de tensão - mais significativo para quem o usa em games e multimídia. Percebeu a importância da fonte? Mas como vamos tratar isso para ficar fácil interpretar os eventos? Sigamos.
Para lançar esses valores como na imagem de destaque, tive que criar uma representação para "verdadeiro" ou "falso". Se não leu o artigo sobre Grafana com MQTT, sugiro fortemente a leitura. Para o caso de desejar um monitoramento apenas local, utilize esse shell script:
#!/bin/bash
powerReason(){
D2B=({0..1}{0..1}{0..1}{0..1})
THROTTLE=`vcgencmd get_throttled|cut -f2 -dx`
NO_PROBLEMS=`echo $THROTTLE|wc -c`
[ $NO_PROBLEMS -eq 1 ] && {
THROTTLE="00000"
}
HIGHER=$(echo ${D2B[`echo $THROTTLE|cut -c1`]})
LOWER=$(echo ${D2B[`echo $THROTTLE|cut -c4`]})
echo "Monitor de alimentacao"
echo "AGORA:"
echo "Subtensao: `echo $LOWER|cut -c4`"
echo "Reducao de frequencia: `echo $LOWER|cut -c3`"
echo "Subcorrente: `echo $LOWER|cut -c2`"
echo "Temperatura: `echo $LOWER|cut -c1`"
echo "OCORRIDO:"
echo "Subtensao `echo $HIGHER|cut -c4`"
echo "Reducao de frequencia: `echo $HIGHER|cut -c3`"
echo "Reducao de desempenho: `echo $HIGHER|cut -c2`"
echo "Temperatura: `echo $HIGHER|cut -c1`"
}
while [ true ]; do
powerReason
sleep 10
done
Desse modo a leitura será feita uma vez a cada 10 segundos. Para executar, salve esse conteúdo em um arquivo como monitor.sh e torne-o executável:
chmod 750 monitor.sh
E para executá-lo em um terminal:
./monitor.sh
Por enquanto é isso, agora é só aguardar o próximo artigo onde mostrarei também como pegar os valores de tensão como o da imagem de destaque, no gráfico que aparece à esquerda. Também veremos os demais recursos úteis.
Até a próxima! Revisão: Ricardo Amaral de Andrade
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.