Testador Automatizado Baseado em Arduino para Produtos Power Blough-R
Componentes e Materiais
| Arduino Nano R3 (um Uno também funciona) | × | 1 |
| Conector USB Macho | × | 1 |
| Conector USB Fêmea | × | 1 |
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto
Este pode não parecer grande coisa, mas é provavelmente o dispositivo mais útil que já construí com um Arduino. Trata-se de um testador automático para um produto que vendo chamado Power Blough-R. Ele não apenas me poupa tempo (já me economizou pelo menos 4 horas e contando), mas também me dá muito mais confiança de que o produto está 100% funcional antes do envio.
O que é o Power Blough-R?
O Power Blough-R (pronuncia-se "Power Blocker" — uma brincadeira com meu sobrenome, que soa como "lock"!) resolve o problema de back-feed de energia que ocorre frequentemente ao usar OctoPrint com uma impressora 3D. Basicamente, a tela da impressora permanece ligada pela alimentação USB do Raspberry Pi, mesmo quando a impressora está desligada.
O Power Blough-R é uma simples PCB com um conector USB macho e outro fêmea, mas não conecta a linha de 5V. Existem outras soluções (cortar o fio de 5V do cabo USB ou isolar o pino com fita), mas eu queria uma solução simples, robusta e que não danificasse cabos.
Se você se interessar, o Power Blough-R está disponível para compra na minha loja Tindie (kit ou montado) e na TH3D Studio (montado).
Contexto: O Grande Pedido
Originalmente eu vendia os Power Blough-Rs principalmente como kits. Para as unidades montadas, eu testava com multímetro: verificava continuidade em GND, D+, D- e Shield, confirmava que o 5V estava desconectado e checava por curtos. Levava cerca de 30 segundos por unidade e era propenso a erros se eu não estivesse muito atento.
Tudo mudou quando postei uma foto no subreddit de impressão 3D e o Tim da TH3DStudio entrou em contato querendo fazer um pedido de teste. Eu esperava 10 ou 20 unidades. Ele disse: "Vamos começar com 100."
Testar 100 unidades com multímetro seria quase impossível com confiança. Eu precisava de uma solução automatizada.
Hardware
Optei pela montagem mais simples possível, pois estava com pressa. O custo total ficou em torno de US$ 5.
- Arduino Nano (este tem micro USB, mas qualquer um serve)*
- Breakout de terminal de parafuso para Nano*
- Breakout USB Macho*
- Breakout USB Fêmea*
- Fios
Montagem: Solde os pinos de header no Nano (se não vierem soldados) e encaixe no breakout de terminais. Solde 5 fios em cada breakout USB. No conector fêmea, não havia pad para o shield, então soldei na lateral do conector. Deixe folga nos fios para facilitar a inserção/remoção dos dispositivos.
Pinagem do conector macho:
- GND → Pino 2
- D+ → Pino 3
- D- → Pino 4
- VCC → Pino 5
- Shield → Pino 10
Pinagem do conector fêmea:
- GND → Pino 6
- D+ → Pino 7
- D- → Pino 8
- VCC → Pino 9
- Shield → Pino 11
*Links de afiliado
Software
Você precisará da Arduino IDE instalada. O sketch está disponível no meu GitHub — basta fazer upload para a placa.
Na inicialização, o sketch executa uma suíte de testes. Se todos passarem, o LED embutido do Nano acende fixo. Se houver falhas, o LED pisca. O motivo da falha também é enviado ao Monitor Serial (embora eu não use esse recurso na prática).
Testes realizados:
- Teste Inicial: Verifica se os pinos fêmea leem o esperado ignorando os pinos macho (usa lógica tri-state — veja abaixo).
- Teste Principal: Confirma que GND, D+, D- e Shield estão conectados enquanto a linha de 5V permanece bloqueada. Valida a funcionalidade principal do Power Blough-R.
- Teste de Pontes (Bridge Test): Verifica se nenhum pino está em curto com outro. Percorre cada pino definindo sua saída e checa se os demais não são afetados.
Conceitos-Chave do Código
INPUT_PULLUP
Recurso muito útil que economiza resistores externos (um por pino). Quando um pino é configurado como INPUT_PULLUP, ele é conectado internamente ao VCC através de um resistor de ~10kΩ. Sem pull-up (ou pull-down), o estado do pino é "flutuante" e leituras são inconsistentes. Como o resistor tem valor alto, o estado muda facilmente quando uma força externa puxa o pino para LOW (ex.: botão pressionado ligando ao GND).
Configurei os pinos FEMEA como INPUT_PULLUP para ter um ponto de referência (HIGH) enquanto não houver interferência externa. Durante os testes, os pinos MACHO foram colocados em LOW; quando conectados, esperamos que o pino FEMEA leia LOW.
Lógica Tri-State
Para o teste inicial, precisei verificar o nível lógico dos pinos FEMEA ignorando os MACHO. Pinos de microcontroladores têm três estados: HIGH, LOW e ALTA IMPEDÂNCIA (Hi-Z). O estado Hi-Z é obtido configurando o pino como INPUT — equivalente a colocar um resistor de ~100 MΩ na frente do pino, desconectando-o efetivamente do circuito.
Essa é a base do Charlieplexing, técnica para controlar muitos LEDs com poucos pinos.
Testando o Testador
Passo crucial: se você não testar se o testador detecta falhas, como confiar que um "PASS" significa produto bom? Equivale a criar testes negativos em desenvolvimento de software.
Criei duas placas com defeitos:
- Headers USB soldados no lado errado da PCB: cabem fisicamente, mas GND fica desconectado e 5V conectado (este defeito não foi intencional — prova a necessidade do testador!)
- Dois pinos propositalmente em curto para validar o teste de pontes.
Conclusão
Como disse no início, este é provavelmente o mais útil projeto que já fiz com Arduino. Após o pedido inicial de 100, a TH3D fez outro de 200 unidades. A economia de tempo é ótima, mas a confiança de que cada unidade sai perfeita é o que mais valorizo.
Inclusive, no pedido de 200, minha esposa fez praticamente todos os testes. Ela adorou a rapidez e a simplicidade do indicador passa/falha.
Espero que algo aqui seja útil para você. Dúvidas? Deixe nos comentários!
Até mais,
Brian
- YouTube
- Tindie
Código
GitHub: https://github.com/witnessmenow/Power-BLough-R-Tester
Processo de manufatura
- Reduzindo Consumo em Standby em Dispositivos de Casa Inteligente com LinkSwitch-TNZ da Power Integrations
- Escolhendo o Dispositivo Certo para Bluetooth Mesh: Guia Prático de Hardware, Software e Requisitos de App
- Construa um Sistema Rápido e Confiável de Detecção de Incêndio com Samsung SAMI, Arduino UNO e Raspberry Pi
- Sensor K30 CO₂: Monitoramento de Qualidade do Ar Interno em Tempo Real
- Facilitando Comunicação Surdo-Cego com 1Sheeld e Arduino
- Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
- Sistema Automático de Rega de Plantas com Arduino
- Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
- O que é uma Prensa de Potência Automática? – A Máquina Definitiva de Conformação de Chapas Metálicas
- Entendendo Prensas de Potência Automáticas: Características, Benefícios e Aplicações