[3/3] Do hardware à nuvem: Projetando um PCB
No artigo anterior descrevi o teste realizado com o sensor magnético MMC5883MA e expliquei os resultados obtidos medindo o campo magnético com e sem a presença de veículo. Porém, antes de testar os demais sensores (como planejei anteriormente), resolvi me aventurar em um desafio que todo desenvolvedor de hardware terá que enfrentar em algum momento: projetar e produzir uma Placa de Circuito Impresso (PCB) .
As protoboards são ferramentas fundamentais para prototipagem de hardware. Permitem-nos alterar e testar o desenho do circuito quantas vezes forem necessárias, até obter a melhor composição. Apesar disso, estes tipos de circuitos não se destinam ao desenvolvimento de produtos finais. As conexões elétricas fornecidas pelas protoboards são temporárias por natureza, o que significa que são fracas e não confiáveis. Além disso, tendem a ocupar mais espaço do que realmente necessitam.
Ao utilizar PCBs, conseguimos implementar o design final de um projeto de hardware com conexões confiáveis e maior robustez, além de reduzir o espaço necessário ao permitir a utilização de componentes menores, que geralmente são de tecnologia de montagem em superfície (SMT) .
Hoje, existe uma grande variedade de softwares feitos para design de PCB . Resolvi usar o Eagle , que é um dos mais populares. O protótipo a ser implementado na PCB é baseado no circuito construído no artigo anterior , destinado a testar o sensor magnético MMC5883MA . Porém, nesta oportunidade, utilizei a SODAQ ONE em vez do NodeMCU ESP8266 , com o objetivo de testar facilmente o sensor magnético LSM303AGR , atualmente integrado nesta placa.
Além disso, eu já havia adquirido um sensor infravermelho para montagem em superfície, com a IS31SE5000 , que não pude testar antes no protótipo da placa de ensaio devido à sua embalagem. Então quis aproveitar este design e incluir também o circuito típico de aplicação deste sensor infravermelho, para poder testar o seu comportamento e avaliar a sua capacidade de detecção de veículos.
Resumidamente, para esta etapa do projeto, pretendia integrar os três sensores mencionados numa simples PCB e poder transmitir as suas medições através de LoRaWAN utilizando o RN2903 , também integrado na placa SODAQ ONE. Além disso, achei apropriado adicionar um estágio de regulação de energia para regular a tensão de entrada e proteger os componentes.
Diagrama de blocos
Vale ressaltar que o PCB se destina a utilizar um sensor por vez. Para conseguir isso, uma "lógica de seleção de sensor" é adicionada ao projeto, que consiste em um conector macho de linha única com 6 pinos e dois jumpers, para selecionar as entradas SCL e SDA para a porta I2C da placa SODAQ. Além disso, um dip switch foi adicionado para desativar a energia do sensor não utilizado, a fim de consumir menos energia. O diagrama de blocos que descreve a composição do circuito é mostrado abaixo.
O estágio de regulação de potência é baseado no regulador de tensão LM317T . O circuito foi construído com o auxílio da ficha técnica do LM317 e configurado para fornecer 3,3 V, tensão necessária para o SODAQ e sensores.
Águia
Eagle é um software Electronic Design Automation (EDA), desenvolvido pela Autodesk, que fornece ferramentas úteis e intuitivas para projetar PCBs. Além disso, possui uma enorme comunidade mundial, o que implica que você poderá encontrar facilmente documentação e exemplos, bem como perguntas respondidas.
Um projeto no Eagle pode ser dividido em duas partes principais: esquemático e layout da PCB. Esquema é a parte onde são selecionados os componentes do circuito e feitas as conexões entre eles. O layout do PCB refere-se à distribuição e posicionamento físico dos componentes.
Antes de explicar como foi feito o esquema e o layout da PCB do meu projeto, é necessário explicar um dos conceitos mais importantes no design Eagle: as bibliotecas.
Bibliotecas
Uma biblioteca é a representação completa de um componente eletrônico no Eagle. Ele contém todas as informações, desde os nomes dos pinos até as medidas físicas. Se você quiser usar um componente em um projeto Eagle, é obrigatório ter a biblioteca desse componente. Por padrão, Eagle inclui uma grande quantidade de bibliotecas dos componentes mais comuns usados em circuitos. No entanto, em algum momento, você poderá precisar de um componente que não está incluído. Neste caso, existem duas opções: procurar a biblioteca do componente (há uma grande variedade na internet graças à comunidade Eagle) ou criá-la você mesmo.
No meu caso, precisei utilizar três componentes específicos que não estavam incluídos nas bibliotecas Eagle: os dois sensores e a placa SODAQ ONE. Como fiz algumas pesquisas sem sucesso, decidi criá-las sozinho. Para criar uma biblioteca, basta ir ao Painel de Controle do Eagle e clicar no menu “ Arquivo ”, seguido de “ Novo ” e depois “ Biblioteca ”.
Uma nova janela será aberta. Lá você encontrará quatro espaços chamados Dispositivo, Pegada, Pacote 3D e Símbolo. O primeiro passo é criar um “ Símbolo ”, ou seja, o diagrama simbólico que representará o dispositivo no esquema. Para isso, clique no botão “ Adicionar Símbolo... ”, ou no ícone na parte superior marcado com o “ 1 ” na imagem abaixo.
Depois disso, é necessário criar uma “ Pegada ”, que corresponde à representação do dispositivo físico, e deverá ter as dimensões precisas do componente, bem como a correta distribuição dos pinos. Isso pode ser feito clicando no botão " Adicionar Pegada... " na parte inferior, ou no ícone na parte superior marcado como " 2 " na imagem abaixo.
A etapa final é adicionar um “ Dispositivo ”. Este elemento é uma fusão entre o Símbolo e a Pegada, onde deve ser especificado quais partes do Símbolo correspondem a qual parte física do dispositivo. Para fazer isso, clique no botão “ Adicionar Dispositivo... ” ou clicando no ícone na parte superior marcado com o “ 3 ”.
A visualização dos resultados é mostrada no painel direito da janela. No meu caso, como a placa SODAQ tinha headers machos em seus pinos para poder ser facilmente colocada em uma protoboard, a criação da biblioteca para a SODAQ ONE foi muito simples pois só precisei adicionar dois headers fêmeas de 12 pinos cada ( Eu queria que a placa SODAQ fosse removível). Algo semelhante aconteceu com o sensor magnético, pois comprei a placa de avaliação MMC5883MA-B, que também possui conectores macho.
Porém, o desenvolvimento da biblioteca para o sensor infravermelho foi muito difícil para mim porque nunca havia trabalhado com componentes de superfície. É um componente muito pequeno e eu precisava ser extremamente preciso com os tamanhos e distâncias.
Após algumas horas de trabalho, estas foram as bibliotecas resultantes:
- SODAQ UM:
- Sensor magnético (placa de avaliação) MMC5883MA-B:
- Sensor infravermelho IS31SE5000:
É importante ressaltar que as bibliotecas criadas pelo usuário podem ser encontradas no menu Bibliotecas/bibliotecas do painel esquerdo do Painel de Controle do Eagle.
Esquemático
Depois de ter todas as bibliotecas necessárias prontas, é hora de integrar os componentes em um esquema. Para criar um novo esquema, vá até o Painel de Controle do Eagle e clique no menu “ Arquivo ”, depois em “ Novo ” e depois em “ Esquema ”.
Na janela do esquema, para adicionar um componente vá até a barra de ferramentas (geralmente à esquerda), utilize a ferramenta " Adicionar peça " clicando no ícone marcado como " 1 " na imagem abaixo. Para fazer as conexões entre os pinos dos componentes, utilize a ferramenta “ Net ” clicando no ícone marcado como “ 2 ”.
Depois de adicionar todos os componentes do meu projeto e fazer as respectivas conexões, o resultado foi este:
PCB
Após finalizar o esquema, o próximo passo é criar um novo “ Quadro ”. Para isso, clique no ícone " Gerar/mudar para placa " na parte superior da janela do esquemático (marcado com o quadrado vermelho na imagem abaixo).
Isto abrirá uma nova janela, onde você encontrará todos os componentes utilizados no esquema, com pequenas linhas unindo-os que representam as conexões feitas no esquema. Além disso, você encontrará um espaço em branco que representa a placa física do PCB. Todos os componentes devem ser organizados e distribuídos da melhor forma possível neste espaço em branco. Depois, as pequenas linhas devem ser convertidas em rotas, que são as conexões físicas entre os componentes da PCB. Para rotear o circuito é necessário utilizar a ferramenta “ Route Airwire ”, que pode ser encontrada no painel esquerdo.
É importante mencionar que o roteamento pode ser feito em uma ou várias camadas. Além disso, há muitos parâmetros que devem ser mantidos em mente quando você está nesta fase do projeto da PCB. Alguns deles são: a espessura das rotas, a distância mínima entre componentes, a distância mínima entre rotas consecutivas, a largura dos furos, etc. Todos esses parâmetros de projeto devem ser suportados pelo fabricante de PCB que você escolher. Por último, mas não menos importante, você precisa ter muito cuidado com a camada que está usando.
Depois de mais algumas horas de trabalho, alcancei meu objetivo de rotear todos os meus componentes em uma camada. Como estava trabalhando com um componente superficial, tive que colocá-lo na mesma camada das rotas. Este foi o resultado:
Arquivos Gerber
A etapa final para produzir uma PCB é enviar o projeto para fabricação. Embora também seja possível imprimir o circuito sozinho, neste caso quis fazer de forma mais profissional, por isso procurei fabricantes locais. Para poder enviar seu projeto você precisa gerar os arquivos Gerber do seu circuito. Para aprender como fazer isso, segui este tutorial. Após exportar os arquivos correspondentes, enviei-os ao fabricante.
Alguns dias depois recebi seis cópias do meu PCB. Devo admitir que fiquei muito animado ao ver que o que criei estava ganhando vida lentamente. Sinceramente, esses avanços são os que mais podem motivar você na hora de fazer um projeto de hardware do zero.
Eu estava ansioso para provar se meu projeto estava correto e se o circuito funcionaria ou não. Assim, sem mais demoras, comecei a soldar todos os componentes. Infelizmente, quando estava prestes a soldar o sensor infravermelho (a parte mais difícil), percebi que cometi um erro no Footprint: os pinos estavam invertidos. Fiquei preocupado com meu erro, mas sabia que essa primeira experiência com componentes superficiais me ajudaria muito em projetos futuros. Esta é a aparência do PCB quando terminei de soldar os componentes:
Finalmente, eu estava pronto para testar o resto do circuito. Então adicionei uma bateria e liguei meu gateway . Depois de alguns segundos, eu estava recebendo dados das medições do campo magnético na minha conta Ubidots ! Isso significava que o comportamento do PCB era o esperado.
O design de PCB é um mundo amplo onde as técnicas, software e ferramentas são aprimoradas a cada dia. Neste artigo, tentei descrever o processo básico para levar seu circuito do protótipo ao PCB, mas ainda há um longo caminho a explorar. Espero que minha experiência possa se tornar um guia para quem está começando. Porém, o mais importante é não desistir ao primeiro erro, e não parar de explorar e melhorar suas habilidades para produzir circuitos cada vez melhores.
Fique atento aos próximos posts para saber o restante do processo!