Fonte para Raspberry Pi – Como saber a ideal? (artigo com bônus)

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á.

Fonte para Raspberry Pi

a melhor fonte para raspberry

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:

MQTT no Raspberry | fonte para raspberry - case especial para Raspberry

E o produto final:

fonte para raspberry - case sob encomenda

Então, se quiser um case personalizado para essa fonte, fale comigo ou veja se já coloquei alguma na minha loja online. De outro modo, ela pode simplesmente ser utilizada como uma fonte qualquer, externamente!

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.

Onde comprar fonte para Raspberry de qualidade?

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. O link para compra é esse.

Com essa fonte, não tive mais nenhum problema com a alimentação:

fonte para raspberry - leitura no Grafana

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.

Como saber se a fonte do Raspberry é adequada?

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.

vcgencmd get_throttled

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:

BitMeaning
0Under-voltage detected
1Arm frequency capped
2Currently throttled
3Soft temperature limit active
16Under-voltage has occurred
17Arm frequency capping has occurred
18Throttling has occurred
19Soft temperature limit has occurred

Portanto 0x50000 em binário dará apenas o código 0101, representando 1618. 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.

Monitoramento de eventos de energia no Raspberry

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

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.