terça-feira, 22 de dezembro de 2015

Pizula: A primeira placa de expansão do EverPi

expansão pizula para raspberry pi

É com alegria que apresento nossa primeira placa de expansão para Raspberry Pi, uma das primeiras do Brasil, a Pizula.


História da Pizula, uma das primeiras expansões brasileiras para Raspberry Pi


Foi difícil manter o segredo já que faz alguns meses que a placa foi desenvolvida. Em meados de setembro recebi 10 PCBs sem componentes. No post de 2 anos do EverPi eu quase deixei escapar uma dica, que acabei apagando posteriormente. A ideia era realmente ser uma surpresa.

Frente e verso da PCB
Frente e verso da PCB

pizula v0.2 6 pcbs frente
Seis das dez unidades, frente

pizula v0.2 6 pcbs verso
Seis das dez unidades, verso

A Pizula nasceu como um teste inicial, a ideia era ter algo diferente para sortear na próxima Campus Party, uma placa de expansão própria do EverPi.

A ideia de criar uma expansão própria do nosso blog já existe faz tempo. Em meados de julho nasceu em projeto a primeira versão (v0.1) da placa que estava terminada no fim do mesmo mês. Essa versão não foi construída efetivamente devido ao formato e dimensões que não seriam adequados à minha proposta posterior.

pizula v0.1

Em agosto a versão 0.2 (atual) foi desenvolvida. No meio do mês o projeto da PCB estava completo e já no fornecedor. Segue algumas fotos:

pizula v0.2

pizula v0.2

pizula v0.2

pizula v0.2

A expansão é em parte artesanal, soldada manualmente no laboratório do EverPi (Brasil) :).


Para que serve a expansão Pizula para Raspberry Pi


Como teste inicial, resolvi desenvolver algo simples, com componentes comuns (não SMD) mas que ao mesmo tempo fosse útil.

A Pizula é inicialmente uma placa específica com um transistor para controlar a velocidade do cooler usado em cases de acrílico (e outros, mas explico posteriormente). A grande sacada e vantagem da placa é que ela foi feita sob medida para encaixar em um Raspberry Pi já com case que utilize cooler. Ideal para quem não quer fazer gambiarras ou mexer com soldas.

pizula v0.2 no raspberry pi + case

pizula v0.2 no raspberry pi + case

pizula v0.2 no raspberry pi + case

A placa pode ser usada também para outros fins, controlar motores DC (em um sentido) ou algumas outras cargas até o limite da especificação. O diodo de proteção foi colocado para o uso de cargas indutivas. O circuito base é simples, parecido com o encontrado no post: Como conectar um cooler (ou outro motor) e controlar sua velocidade com base na temperatura do Raspberry Pi.

A placa contém também um receptor IR (infravermelho) de 3 pinos (já com amplificador embutido), sendo possível utilizar controles remotos, ótimo para media centers.

pizula v0.2 no raspberry pi 2

pizula v0.2 no raspberry pi 2

pizula v0.2 no raspberry pi 2


Especificações


- Suporta cargas de até 450mA (Não ultrapassar 200mA em modelos antigos, ver abaixo).
- Receptor infravermelho VS1838B
- PCB de fibra de vidro (FR-4) de 1,6mm
- Dimensões (totais, com conectores): 14,5mm (altura) x 40,6mm x 15,8mm
- Peso: 3,9g
- Compatível com o Raspberry Pi Modelo A,B,B+,A+,2B


Questões quanto as dimensões


Os cases para Raspberry Pi são feitos em uma grande variedade de materiais e tamanhos. Os testes da expansão foram realizados inicialmente em um case de acrílico com cooler para Raspberry Pi 2 e B+ que está entre os mais utilizados. Mesmo os cases de acrílico podem sofrer algumas variações nas dimensões dependendo do fabricante. Um exemplo é o case para Raspberry Pi A+ que é mais baixo devido a placa não ter conectores tão altos. Para que a expansão Pizula consiga encaixar de forma satisfatória em caso da utilização de outros cases é necessário que esteja de acordo com o mínimo das dimensões. É claro que existe a possibilidade de parafusar o cooler por fora do case.

dimensoes case acrílico

dimensoes case acrílico

No case de acrílico que utilizei a única modificação que precisou ser feita foi fixar o cooler com somente 3 parafusos, pois o parafuso no sentido do conector era um obstáculo. É possível sim conectar com ele, mas será necessário entornar os pinos um pouco em ângulo. Como 3 parafusos são capazes de fixar bem o cooler não há necessidade de modificações na expansão.

conector vs cooler

No case abaixo com um Raspberry Pi Modelo B a expansão também encaixou perfeitamente apesar de não haver cooler.

raspberry pi modelo b e pizula

raspberry pi modelo b e pizula

Como dito nas especificações, a placa é compatível com vários modelos de Raspberry Pi, acima podemos ver o antigo modelo B, abaixo o B+ e A+.

raspberry pi b+ e pizula v0.2

raspberry pi b+ e pizula v0.2


Como utilizar a expansão Pizula


Para utilização com cooler a ligação de polaridade deverá ser obedecida, onde vermelho geralmente é o fio VCC e preto GND. Há marcações abaixo da placa Pizula identificando os pinos. Após a conexão devida no Raspberry Pi com a placa desligada, basta ligar e instalar o software fan_pi como explicado na seção Como controlar o cooler com base na temperatura do Raspberry Pi desse outro post.

O sensor infravermelho será matéria de um post futuro dedicado ao assunto, mas utilizaremos o software de terceiros lirc. A utilização de controles que já existam na base de dados do software tornarão sua utilização mais fácil. Alguns que não existem e utilizarão o modo RAW podem não funcionar de forma satisfatória (como exemplo o controle de um aparelho de som que tenho).

Atualização: Os que seguirem algum tutorial sobre o lirc para Raspberry Pi, levem em conta que o IR da placa está ligado no GPIO14. O parâmetro gpio_in_pin=14 deve ser passado ao módulo lirc_rpi. O pino GPIO14 deve funcionar com o pull-up interno do Raspberry Pi. Embora eu tenha lido que nas versões atualizadas do módulo era aceito o parâmetro gpio_in_pull=up, este não fez efeito em meus testes, algo que irei investigar. Enquanto isso você poderá ativar manualmente o pull-up utilizando a tool gpio da biblioteca wiringPi, com o comando: gpio mode 15 up (o número 15 na wiringpi é referente ao GPIO14). Desative o console serial ttyAMA0. É bom deixar claro que existem controles que utilizam protocolos e frequências diferentes de transmissão. Esse foi provavelmente o caso do controle do som acima que citei, onde não foi possível para o lirc decodificar a transmissão, enquanto outros 3 funcionaram. Todas as placas atuais soldadas foram testadas com ao menos um controle.

Atualização 2: Veja como conectar um sensor infravermelho (IR) VS1838B ao Raspberry Pi e controlar o Kodi. O tutorial funciona também para a Pizula v0.2 levando em conta as devidas alterações do GPIO citadas.


O terceiro pino que está sem marcação era destinado a verificar o RPM do cooler, ele está desativado, um dos motivos é que a maioria dos coolers de 3cm x 3cm utilizados nesses cases não vem com pino do sensor HALL. Ele pode ser utilizado para outros fins caso alguém solde um ou dois resistors na placa. A configuração utilizando dois é de divisor de tensão.


Cuidados a se tomar e observações


O consumo da carga deve ser de no máximo 450mA (meu cooler por exemplo utiliza 200mA) quando ligado em 5V (tensão fornecida pelo Raspberry Pi, algumas cargas funcionam em uma variedade de tensões, mas não podem consumir uma corrente maior que a declarada quando ligada nessa tensão), no caso dos coolers geralmente o consumo vem declarado na parte de trás. Caso não tenha certeza do consumo dentro das condições de uso (um motor DC por exemplo), teste fora da placa com um multímetro a corrente consumida.

No caso de motores DC há outras questões envolvidas como a corrente de partida que é maior que a nominal, o transistor da placa é capaz de aguentar o pico de corrente em cerca de 800mA, que é realizado de forma rápida. Verifique as especificações do motor para corrente de partida ou travado. É bom lembrar que em caso de um motor DC travado, ele poderá consumir sua corrente de pico de forma constante, que caso for maior que 450mA poderá ocasionar a queima do transistor.

É preciso levar em consideração a fonte do Raspberry Pi que deverá ter corrente suficiente para a carga que será utilizada, no caso de um motor DC deverá ser levado em conta a corrente de pico. Se utilizar por exemplo uma fonte de 1A e 700mA (chutando alto, pois o consumo geralmente é bem abaixo disso) forem utilizados pela placa, sobrarão 300mA que será dividido entre a carga ligada na expansão e as portas USB.

Apesar da carga suportada pela placa ser 450mA, o limite da carga quando utilizado em um Raspberry Pi Modelo B (o modelo antigo) deve permanecer em no máximo 200mA (isso levando em conta que nada esteja ligado a USB). Essa limitação se dá por causa do limite total de corrente que o modelo antigo pode fornecer além de ter um polyfuse que se fecha entre 750mA e 1.1A. É possível ir além? É, mas corre o risco da placa ficar instável, reiniciar, etc.

Após o modelo B+ (que inclui aí o novo 2B) o sistema de energia da placa foi modificado, fornecendo uma corrente maior e tensão muito mais estável. Os 450mA de carga são possíveis de serem consumidos em um Raspberry Pi B+ ou 2B por exemplo desde que a fonte de alimentação seja dimensionada corretamente.

Em alguns testes preliminares, a queda de tensão e o ruído gerado pelos dois pequenos motores DC testados não foram suficientes para reiniciar a placa (Modelo B e 2B). Em um deles a corrente consumida travado é de cerca de 573mA. No caso do antigo modelo B, correntes com picos maiores podem gerar problemas devido as limitações citadas acima. O caso do dongle Wi-Fi que testei meses atrás é um exemplo, quando conectado a placa reiniciava, algo que não ocorre nos modelos mais novos (B+ e 2B).

Apesar da placa ser destinada inicialmente à conexão de coolers, a conexão de motores DC e outras cargas (levando em conta as limitações) podem ser úteis em alguns projetos. Dependendo do caso, como por exemplo o uso de motores mais potentes que dependam de uma fonte externa ou a necessidade da rotação nos dois sentidos, uma ponte H como a L298N poderá ser mais adequada.

No Raspberry Pi Modelo B e A a placa fica por cima de todos os pinos (embora não conectado a todos), dificultando um pouco o acesso. No modelo B+ em diante um pouco menos da metade fica acessível, como pode ser visto nas imagens acima.


Conclusão


A criação de uma expansão própria gera um outro marco importante para o EverPi.

Como citei no início do post, a expansão foi feita inicialmente para sortear na próxima Campus Party. Esse sorteio ainda não está confirmado pois dependemos do nosso representante no evento para entregar as placas. Caso ocorra, um post confirmando será feito, como ocorre nos últimos 2 anos. Provavelmente serão 2 ou 3 placas a serem sorteadas.

Caso houver interesse do público, a placa poderá ser comercializada, mas sem data predefinida.

23 comentários:

  1. Agora pensar em uma versão 0.3 com componentes SMD para diminuir ainda mais o tamanho e garantir que o espaço extra da placa não atrapalhe o acesso aos demais pinos! Mas ficou bacana!

    ResponderExcluir
    Respostas
    1. Opa, obrigado! Quanto aos componentes SMD, provavelmente na versão 0.3 terá 2 componentes adicionais SMD, entretanto os já existentes provavelmente continuarão como estão. No caso da 0.3 irei verificar essa questão de todo modo, lidar com componentes SMD é um trabalho a mais para o lab aqui que ainda não tem tantos equipamentos para isso. Mas se não acontecer na v0.3 há chances melhores na v0.4 :).

      Excluir
  2. Que tipo de cooler você utilizou (rolamento ou bucha), pois vi no seu vídeo que não faz ruídos. Eu tenho uma pizula e mesmo com ela o meu fica gritando (kkkk).

    ResponderExcluir
    Respostas
    1. Olá, aquele cooler do video no post linkado é outro, diferente das fotos desse, esse do post faz um pouco de barulho no máximo (mas nada exagerado), com redução faz menos. Esse do post é sem rolamento (esperado pra um cooler tão barato), abri ele e tirei uma foto para conferir, veja: Foto do cooler.

      Como é esse barulho do seu? Já vi gente reclamando disso, mas se for muito barulhento já não é normal, no caso desse que mostrei ele é sem rolamento e tem uma certa lubrificação de fábrica. Se possível enviei um vídeo com aúdio para eu ver.

      Excluir
    2. Mesmo em velocidades mais baixas ele fica "gritando" ? Veja esse exemplo no youtube, é assim que o seu fica? o meu não fica assim.

      Excluir
  3. Igual...
    Gravei um vídeo também
    https://www.youtube.com/watch?v=S-7_V1Z4eUY

    ResponderExcluir
  4. Cara, muito boa a iniciativa!
    Você poderia informar o processo de fabricação da PCI? Tenho alguns projetos legais mas sempre esbarro na fabricação da placa!

    Obrigado!

    ResponderExcluir
    Respostas
    1. Obrigado! Quanto à PCI eu não a fabrico em casa, essas mandei fabricar lá fora na makerstudio.cc

      Excluir
    2. Obrigado! Vou entrar em contato com este fabricante!

      Excluir
  5. Legal a iniciativa, a placa ficou legal, o único porém (eu posso tá errado)é o sensor de infravermelho que me parece não está numa condição favorável para uso com controle remoto.
    Parabéns!!!

    ResponderExcluir
    Respostas
    1. Obrigado! Então, no caso do sensor, apesar da posição, foram testados controles em uma distância significativa enquanto a placa (deitada normalmente) estava em cima de uma mesa e funcionou normalmente.

      Excluir
    2. Este comentário foi removido pelo autor.

      Excluir
  6. Há algum tutorial seu mostrando como utiliza esta função ?

    ResponderExcluir
    Respostas
    1. A função ir para mídia center

      Excluir
    2. A função ir para mídia center

      Excluir
    3. Olá, ainda não temos um tutorial de IR (mas pretendemos fazer), entretanto há outros em português por aí que utilizam o LIRC no linux, esse tutoriais serão válidos desde que se faça as modificações nas configurações dos GPIOs citadas nesse post (se for o caso do mesmo gpio utilizado na pizula).

      Excluir
  7. Boa tarde, você tem essa placa para venda ? Como faço para adquiri uma ?

    ResponderExcluir