Talus-Droid / recuperação elétrica
Rascunho de bancada
11 ago 2026 · BRT

Projeto elétrico da ressolda · TCC2

Um terra só.
Uma placa de distribuição.

O robô está aberto porque o trilho de 5 V do Raspberry ficava em 4,4 V. A causa medida é fio de kit Arduino em ramo de potência — mas há uma segunda hipótese aberta no conversor, e ela precisa ser separada antes de fechar o chassi.

6trilhos na placa de distribuição
5peças cortadas da perfboard 6x28
1ponto comum entre os dois terras
0,03 Vqueda em 2× 20 AWG a 3 A — era 0,38 V
5alertas antes de energizar
17pendências de medição abertas
P0 · Segunda causa raiz possívelSe o XL4015E1 do Pi for a versão CC/CV com limite de corrente baixo, ele afunda sob carga independentemente da bitola do fio.
P1 · XL6019 é boost, não buck-boostCom o pack 3S2P cheio em 12,6 V a saída passa direto. O alvo de 11,8 a 12,2 V não é alcançável em carga cheia.
P0 · Jack P1 antes do fusívelOs dois packs saem para o P1 da borda externa antes da chave. Um curto no jack, ou no fio até a borda, não é protegido por nada.
P1 · Hall esquerdo sem trimpotSem ajuste eletrônico, resta o entreferro e a polaridade do ímã. A razão L/R variável aponta detecção intermitente.

Grafo 01

Dos packs até os consumidores

Clique em um nó para destacar suas dependências. Tracejado amarelo é ramo previsto mas desligado; linha teal cruza os dois domínios.

CONSUMIDORES · circuito superior PLACA A · distribuição no topo DOMÍNIO MOTOR DOMÍNIO SISTEMA · pack 3S2P + BMS PLACA A · 6 x 11 furos L1 GND_SYS L2 GND_MOT L3 5V_LOGIC L4 5V_PI L5 12V_KIN L6 8V_MOT C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 PONTE TESTE M Roda ESQ M Roda DIR AO BO VM VCC GND TB6612FNG rodas · C4 12V GND Kinect v1 P1 centro + · C6 VCC GND Hall ESQ DO → D2 · C8 VCC GND Hall DIR DO → D3 · C9 TX RX GND PEÇA E divisor UART · C10 pino 4 pino 6 Raspberry Pi 4 C5 5V GND Arduino Nano C7 5V MPU6050 0x68 PROTOBOARD SUPERIOR já montada + Pack 3S original · 9,9–12,6 V Fusível 10 A mover p/ antes do P1 emenda borda externa do chassi P1 MOTOR só carga O I SW_MOT on/off IN GND OUT GND XL4015E1 → 8 V IN GND OUT GND LM2596 → 5V_MOT · desligado + Pack 3S2P com BMS · 9,9–12,6 V emenda borda externa do chassi P1 SISTEMA só carga O I SW_SYS on/off PEÇA G · 6 x 4 VBAT+ GND C1 C2 C3 C4 IN GND OUT GND LM2596 → 5V_LOGIC IN GND OUT GND XL4015E1 ⚠ → 5V_PI · 5,1 V IN GND OUT GND XL6019E1 ⚠ → 12V_KIN · boost 8V 2× 20 AWG 20 AWG 8V_MOT · 20 AWG 2× 20 AWG 20 AWG GND não passa pela chave 5V_LOGIC · 22 AWG 5V_PI · 2× 20 AWG 12V_KIN GND_SYS 8V_MOT 12V_KIN 5V_LOGIC GND do divisor 5V_PI 5V_LOGIC AO → ESQ BO → DIR PWM · AIN/BIN · STBY I2C DO → D2 DO → D3 RX/TX UART · 5 V → 3,2 V USB terminais do circuito superior bulk 470 µF no VM

Mesma topologia em texto

O caminho real na base

Cada pack sai para o P1 fêmea da borda externa e de lá vai para o botão on/off. Os conversores ficam na base; a placa do topo recebe só tensão já convertida.

   DOMÍNIO SISTEMA — pack 3S2P + BMS · 9,9 a 12,6 V conforme a carga
   ══════════════════════════════════════════════════════════════════════════════

                       ┌── rabicho 20 AWG ──► [ P1 fêmea SIS ]   ◄ borda externa
                       │                       só corrente de carga
                       │
   pack 3S2P ──────────●──────► SW_SYS ──► ┌──── PEÇA G · 6x4 ────┐
     + BMS           emenda       (+)      │  L6 ═ VBAT_SYS+      ├──► LM2596     ──► 5V_LOGIC
   (sem fusível)   perto do pack           │  L1 ═ GND_SYS        ├──► XL4015E1 ⚠ ──► 5V_PI
                       │                   └──────────────────────┴──► XL6019E1 ⚠ ──► 12V_KIN
                       └── GND ──[2× 20 AWG]──────► L1 da peça G
                           (o GND não passa pela chave)


   DOMÍNIO MOTOR — pack 3S original · 9,9 a 12,6 V
   ══════════════════════════════════════════════════════════════════════════════

                       ┌── rabicho 20 AWG ──► [ P1 fêmea MOT ]   ◄ borda externa
                       │
   pack 3S ──[FUSE 10A]──●──► SW_MOT ──┬──► XL4015E1 ──► 8V_MOT
   original            emenda    (+)   │
                       │               └──► LM2596 ──► 5V_MOT   ✂ ENTRADA DESLIGADA
                       └── GND ──[2× 20 AWG]────────────────────► GND_MOT


        │           │           │          │                       │            │
    5V_LOGIC+    5V_PI+     12V_KIN+    GND_SYS               8V_MOT+       GND_MOT
        │           │           │          │                       │            │
        └───────────┴───────────┴──────────┴──► sobe pro TOPO ◄────┴────────────┘

O que a bateria entrega não é 12 V fixo: um pack 3S vai de 9,9 V descarregado a 12,6 V cheio, com 11,1 V nominal. Essa faixa é exatamente o motivo de o XL6019 não segurar 12,0 V com o pack cheio.

Correção

O P1 vira derivação, não passagem

Do jeito antigo os dois fios pousavam no mesmo terminal de latão do jack, e toda a corrente de uso do robô atravessava as abas do P1.

   COMO ESTAVA — corrente de uso passa pelo terminal do jack

      pack + ─────────────────► [ P1 terminal ] ─────────────────► chave ──► módulos
                                 aba de latão fino, contato que degrada


   COMO FICA — o P1 vira derivação

      pack + ──┬──[ emenda ocidental + termorretrátil ]──[2× 20 AWG]──► chave ──► módulos
               │
               └──[ rabicho 20 AWG ]──► [ P1 terminal ]     só corrente de carga


   POSIÇÃO DO FUSÍVEL DE 10 A

      hoje    pack ──┬──────────────► P1        ◄ sem proteção
                     └── FUSE 10A ──► chave ──► módulos

      melhor  pack ── FUSE 10A ──┬──► P1        ◄ protegido
                                 └──► chave ──► módulos

Fazer a emenda perto do pack, não na borda: assim o tronco de uso não faz o desvio até a borda externa. Economiza cerca de 0,7 m de cobre de ida e volta — a 3 A vale ~0,04 V em 2× 20 AWG, e valeria 0,44 V se ainda fosse jumper de 28 AWG. Reposicionar o fusível não custa componente novo, é o mesmo fusível em outra posição.

segurança

O P1 está sempre energizado

Como o jack fica antes da chave, ele permanece na tensão do pack mesmo com o robô desligado.

  • Reforça a regra: soldar sempre com os dois packs desconectados no conector.
  • No ramo de sistema não há fusível, então o P1 do 3S2P depende só do BMS.
operação

Carregar com a chave desligada

A chave é o interlock de carga. Com ela ligada, o carregador alimenta o pack e os módulos ao mesmo tempo.

  • O carregador enxerga corrente permanente e pode nunca terminar o ciclo em CV.
  • Conferir a polaridade das duas P1: centro positivo, malha no GND.
  • Etiqueta no chassi ao lado de cada P1: DESLIGAR ANTES DE CARREGAR.
inalterado

A placa A não muda

Ela fica no topo e recebe só tensão convertida.

  • Continua com 11 colunas e o mesmo mapa de furos.
  • O que encolheu foi D, E e F, de onde saiu espaço para a peça G.

Dúvida de bancada, respondida

O carregador alimenta o resto do circuito?

Sim, mas só com a chave ligada — e isso não é efeito da derivação. Nas duas topologias o P1 fica antes da chave, no mesmo nó elétrico.

   ANTES (P1 em série)               DEPOIS (P1 em derivação)

   pack ── P1 ── chave ── carga      pack ──●── chave ── carga
                                            │
                                            └── P1

   Paralelo ou em série pelo terminal dá o MESMO nó. A derivação muda apenas
   por onde passa a corrente de uso: abas de latão do jack, ou emenda de cobre.


   CARREGANDO COM A CHAVE DESLIGADA          ◄ correto

   carregador ──► P1 ──●── pack           ✔ só a bateria recebe
                       │
                       └──[ CHAVE ABERTA ]──X   conversores      ✔ circuito morto


   CARREGANDO COM A CHAVE LIGADA             ◄ o cenário temido

   carregador ──► P1 ──●── pack           ✘ carregador alimenta os dois
                       │
                       └──[ CHAVE FECHADA ]──►  conversores      ✘ robô ligado na tomada


   INTERLOCK MECÂNICO — jack P1 de 3 terminais · DESCARTADO

   pino 1 (centro)  ──► pack +
   pino 2 (malha)   ──► pack −
   pino 3 (contato) ──► tronco da carga ──► chave ──► módulos

   sem plugue  → pinos 1 e 3 fechados  → robô alimentado normalmente
   com plugue  → pinos 1 e 3 ABERTOS   → carga desconectada automaticamente

   Descartado: o contato de comutação é rated para 0,5 a 2 A, contra os 5 a 6 A
   do tronco. Esquentaria e oxidaria — a mesma armadilha da solda no terminal
   do jack, só que pior.

Com a chave aberta o positivo está interrompido, e o GND sozinho não fecha circuito nenhum. A chave isola de verdade.

o estrago

Se carregar com a chave ligada

Não é fogo imediato, é degradação.

  • O carregador nunca termina. Li-ion encerra quando a corrente cai abaixo de ~C/10 na fase CV; com carga constante o critério nunca é atingido e o pack fica preso em 12,6 V, ou 4,2 V por célula.
  • O pack pode nem carregar. Se o robô puxa 3 A e o carregador entrega 2 A, o pack vira a fonte da diferença.
  • O BMS vê carga e descarga juntas. A maioria aguenta, mas é operação fora do previsto.
verificação

Teste que comprova o isolamento

Com os packs fora, medir continuidade do centro do P1 até a entrada de cada conversor.

  • Chave desligada → tem que dar OL
  • Chave ligada → tem que bipar
  • Continuidade com a chave desligada significa caminho paralelo desconhecido
  • Bônus: puxar o jumper cap de C3 separa os dois negativos para carregar os packs em paralelo sem dúvida
pergunta aberta

O pack 3S do motor tem BMS?

O talus-power.yml descreve o pack de sistema como Li-ion pack 3S2P with BMS, mas o de motor apenas como Li-ion pack 3S original, sem menção a BMS.

  • Sem BMS não há proteção de célula, balanceamento nem corte por sobretensão.
  • Aí carregar com a chave ligada deixa de ser desgaste e vira risco real.
  • Confirmar olhando o pack.

O emaranhado de GND era um bug, não bagunça

Com vários GND num nó torcido, o retorno do motor — 2 a 3 A chaveados em PWM — atravessa o mesmo cobre que serve de referência para Halls e IMU. O zero da lógica balança dezenas a centenas de mV no ritmo do PWM. Isso se chama impedância compartilhada, e é candidato à inconsistência histórica do canal esquerdo.

Por que centralizar sai de graça

10 cm a mais de 20 AWG, ida e volta, a 3 A custam 2 × 0,10 × 0,033 × 3 = 0,020 V. São 20 mV contra um orçamento de 100 mV. O ganho é ponto estrela único, medição sob carga com o robô fechado e um lugar só para procurar quando algo cair.

Vale só com trilho de 20 AWG ou mais grosso. Em 26 AWG o mesmo desvio custa 80 mV e a placa vira o novo gargalo.

Peça A · 6 x 11 furos

A placa de distribuição

Cada linha é um trilho: um fio sólido soldado por cima, ao longo da fileira inteira. Os furos são âncora mecânica — dá para soldar em qualquer ponto do cobre.

          C1     C2     C3     C4     C5     C6     C7     C8     C9    C10    C11
        ┌─────────────────────────────────────────────────────────────────────────┐
  L1    │ ●══════●══════●══════●══════●══════●══════●══════●══════●══════●══════● │ GND_SYS    preto
  L2    │ ●══════●══════●══════●══════●══════●══════●══════●══════●══════●══════● │ GND_MOT    preto
  L3    │ ●══════●══════●══════●══════●══════●══════●══════●══════●══════●══════● │ 5V_LOGIC   vermelho
  L4    │ ●══════●══════●══════●══════●══════●══════●══════●══════●══════●══════● │ 5V_PI      vermelho
  L5    │ ●══════●══════●══════●══════●══════●══════●══════●══════●══════●══════● │ 12V_KIN    amarelo
  L6    │ ●══════●══════●══════●══════●══════●══════●══════●══════●══════●══════● │ 8V_MOT     verm.+etiqueta
        └─────────────────────────────────────────────────────────────────────────┘
          ▼      ▼      ▼      ▼      ▼      ▼      ▼      ▼      ▼      ▼      ▼
         ENT    ENT   PONTE  TB6612  Pi   KINECT  NANO   HALL   HALL  PEÇA  TESTE
         SIS    MOT   L1↔L2                              ESQ    DIR     E


  LEGENDA DAS COLUNAS

  C1   ENTRADA SISTEMA   vem da base:  L1 GND_SYS · L3 5V_LOGIC · L4 5V_PI · L5 12V_KIN
  C2   ENTRADA MOTOR     vem da base:  L2 GND_MOT · L6 8V_MOT
  C3   PONTE DE TERRA    L1 ↔ L2 · barra de 2 pinos + jumper cap · ponto estrela único
  C4   TB6612FNG         L2 GND · L6 VM · L3 VCC
  C5   RASPBERRY PI 4    L4 5V (pino físico 4) · L1 GND (pino físico 6)
  C6   KINECT v1         L5 12V (P1 centro +) · L1 GND (P1 malha)
  C7   ARDUINO NANO      L3 5V · L1 GND
  C8   HALL ESQUERDO     L3 VCC · L1 GND          o sinal DO vai direto ao D2
  C9   HALL DIREITO      L3 VCC · L1 GND          o sinal DO vai direto ao D3
  C10  PEÇA E · UART     L1 GND                   referência do divisor de nível
  C11  PONTOS DE TESTE   1 pino macho em cada linha, L1 a L6


  ORDEM OBRIGATÓRIA: C1 · C2 · C3 · C4
  O retorno dos motores vai de C4 até C2 pela L2 — 5 mm de trilho — e sai para o
  pack sem entrar no GND_SYS. De C5 em diante a ordem é livre.

  LINHA = trilho = uma rede elétrica.   COLUNA = uma posição de ligação.
  Só a C11 é de medição.

A ordem das colunas não é arbitrária: o retorno dos motores percorre C4 → C3 → C2 na L2, cerca de 5 mm de trilho, 0,2 mV a 3 A. Nunca entra no GND_SYS.

ColLinhaLiga emFio
C1L1 / L3 / L4 / L5da base: GND_SYS / 5V_LOGIC / 5V_PI / 12V_KIN20 · L1 e L4 dobrados
C2L2 / L6da base: GND_MOT / 8V_MOT20 · L2 dobrado
C3L1 + L2PONTE — barra de 2 pinos mais jumper cap
C4L2 / L6 / L3TB6612 rodas: GND / VM / VCC20 / 20 / 22
C5L4 / L1Raspberry Pi — pino 4 e pino 62× 20 AWG
C6L5 / L1Kinect — P1, centro positivo20
C7L3 / L1Arduino Nano — pino 5V e GND22
C8L3 / L1módulo Hall ESQ24
C9L3 / L1módulo Hall DIR24
C10L1GND da peça E (divisor UART)24
C11L1..L6pontos de teste — 1 pino macho por linha
diagnóstico

A ponte de GND vira ferramenta

Com barra de 2 pinos e jumper cap em C3, o ponto comum fica removível.

  1. Cap fora e TB6612 desconectadaGND_MOT ↔ GND_SYS tem que dar OL. Se bipar, existe um segundo ponto comum não intencional.
  2. Cap dentro — bipa. É o ponto estrela.
  3. A ressalva importa: os pinos GND da TB6612 são um nó só dentro do módulo. Sem tirar o módulo, o teste dá falso positivo.
  4. O jumper cap aguenta porque a corrente dos motores não passa por ele — volta ao pack pela L2. A ponte carrega alguns mA de referência.
montagem

Ordem que evita retrabalho

  1. Quebrar as 4 peças da perfboard.
  2. Soldar os 6 trilhos na peça A.
  3. Testar os 6 trilhos entre si — todos OL, exceto GND_SYS ↔ GND_MOT com o cap dentro.
  4. Só então soldar os fios dos consumidores.

Achar um curto entre trilhos com 25 fios já soldados é bem pior do que achar agora.

Antes de soldar qualquer coisa

Plano de corte da perfboard 6 x 28

Cortar placa já soldada é sofrimento. Quebra primeiro.

 C1                      C11 │C13  C15│C17  C19│C21  C23│C25       C28
 ┌──────────────────────────┬─┬───────┬─┬───────┬─┬───────┬─┬──────────┐
 │  A — DISTRIBUIÇÃO (6x11) │✂│D (6x3)│✂│E (6x3)│✂│F (6x3)│✂│ G (6x4)  │
 │  topo · os 6 trilhos     │ │cap VM │ │divisor│ │cap do │ │ base ·   │
 │  INALTERADA              │ │TB6612 │ │ UART  │ │  Pi   │ │ sistema  │
 └──────────────────────────┴─┴───────┴─┴───────┴─┴───────┴─┴──────────┘
                           C12       C16       C20       C24

11 + 3 + 3 + 3 + 4 = 24 furos úteis; 4 colunas viram serragem. A peça A não muda — o que encolheu foi D, E e F, de onde saiu espaço para a peça G da base. Riscar com estilete e régua de metal em cima da fileira de furos, 10 a 15 passadas de cada lado, e quebrar na quina da mesa. Placa marrom de baquelite quebra assim; placa verde de FR4 exige serra fina ou Dremel — e máscara, porque o pó de fibra de vidro irrita pulmão e pele.

Grafo 02

O que não passa pela placa

Sinal vai direto, pelo caminho mais curto. A regra é: potência centraliza, sinal vai pelo caminho mais curto.

Mesma camada em texto

Pinagem completa

Fonte de verdade é hardware/WIRING.md mais o firmware. O Wokwi modela nano:12, nano:13 e nano:A3 para aspirador e vassourinhas, que o firmware real não usa.

   RASPBERRY PI 4                                       ARDUINO NANO
   ┌──────────────────┐                                 ┌──────────────────┐
   │ pino 4   (5V) ◄──┼── C5-L4 (5V_PI)                 │ 5V   ◄───────────┼── C7-L3 (5V_LOGIC)
   │ pino 6  (GND) ───┼──► C5-L1 (GND_SYS)              │ GND  ────────────┼──► C7-L1 (GND_SYS)
   │                  │                                 │                  │
   │ pino 8  (TXD) ───┼──────────────────────────────── ┼──► D0  (RX)      │   direto, 3,3 V
   │ pino 10 (RXD) ◄──┼──── [PEÇA E: divisor] ◄──────── ┼─── D1  (TX)      │   ⚠ 5 V → 3,2 V
   │                  │                                 │                  │
   │ USB ◄════════════┼══ Kinect (dados)                │ D4   STBY   ─────┼──┐
   └──────────────────┘                                 │ D5   PWMA   ─────┼─┐│
                                                        │ D7   AIN1   ─────┼┐││
   KINECT v1                                            │ D8   AIN2   ────┐│││
   ┌──────────────────┐                                 │ D6   PWMB   ───┐││││
   │ P1 centro (+) ◄──┼── C6-L5 (12V_KIN)               │ D9   BIN1   ──┐│││││
   │ P1 malha (GND)───┼──► C6-L1 (GND_SYS)              │ D10  BIN2   ─┐││││││
   │ USB ═════════════┼══► Pi                           │              ││││││││
   └──────────────────┘                                 │ D2 HALL_L ◄──┼┼┼┼┼┼┼┼── módulo Hall ESQ (DO)
                                                        │ D3 HALL_R ◄──┼┼┼┼┼┼┼┼── módulo Hall DIR (DO)
                                                        │ D11 BUZZER ──┼┼┼┼┼┼┼┼──► buzzer ATIVO ──► C7-L1
                                                        │ A4  SDA   ───┼┼┼┼┼┼┼┼──► MPU6050
                                                        │ A5  SCL   ───┼┼┼┼┼┼┼┼──► MPU6050
                                                        └──────────────┼┼┼┼┼┼┼┘
                                                                       │││││││
        ┌──────────────────────────────────────────────────────────────┘││││││
        │  ┌──────────────────────────────────────────────────────────── ┘│││││
        │  │  ┌───────────────────────────────────────────────────────────┘││││
        │  │  │  ┌─────────────────────────────────────────────────────────┘│││
        │  │  │  │  ┌───────────────────────────────────────────────────────┘││
        │  │  │  │  │  ┌──────────────────────────────────────────────────────┘│
        │  │  │  │  │  │  ┌────────────────────────────────────────────────────┘
        ▼  ▼  ▼  ▼  ▼  ▼  ▼
   ┌────────────────────────────────────┐
   │ B  B  A  A  P  P  S    TB6612FNG   │
   │ I  I  I  I  W  W  T     (rodas)    │            ╔═══════════╗
   │ N  N  N  N  M  M  B          AO1 ──┼───────────►║  MOTOR    ║
   │ 2  1  2  1  B  A  Y          AO2 ──┼───────────►║   ESQ     ║   3× 100 nF
   │                                    │            ╚═══════════╝
   │  VM  ◄── C4-L6 (8V_MOT) ──┐        │            ╔═══════════╗
   │  VCC ◄── C4-L3 (5V_LOGIC) │ PEÇA D │      BO1 ──┼──────────►║  MOTOR    ║
   │  GND ──► C4-L2 (GND_MOT) ─┘        │      BO2 ──┼──────────►║   DIR     ║   3× 100 nF
   └────────────────────────────────────┘            ╚═══════════╝

Par de cada motor torcido. Cabo de cada Hall — VCC, GND, DO — torcido, com o DO torcido junto do GND.

O quêVai diretoPor quê
PWM, AIN/BIN, STBYNano → TB6612alongar sinal e encostar em trilho de potência é convite a ruído
Sinal dos Hallsmódulo → Nanoidem; o par vai torcido com o próprio GND
SDA/SCL da IMUNano → MPU6050I2C curto, abaixo de 20 cm
AO1 / AO2 / BO1 / BO2TB6612 → motorescorrente alta ponto a ponto, não tem o que distribuir
Buzzer D11Nano → buzzerponto a ponto
UART TX/RXPi ↔ peça E ↔ Nanosem fio de GND no cabo: os dois terras já se encontram na L1, a 5 mm um do outro

Peças D, E e F

O que sai da mesma perfboard

Capacitor de desacoplamento só funciona perto do que ele desacopla. Nenhuma dessas peças fica na placa central.

peça D · 6 x 3

Bulk no VM da TB6612

Colada no módulo. Longe do driver, o fio entre os dois anula o efeito.

  • 470 µF / 25 V eletrolítico
  • 100 nF cerâmico
  • Faixa preta do eletrolítico na L6
  • 25 V basta: o 8 V vem de buck, não de pack direto
peça E · 6 x 3

Divisor de nível do UART

Já instalado nesta sessão. É o que impede 5 V de entrar no GPIO do Pi.

  • R1 = 1 kΩ em série no TX do Nano
  • R2 = 1,8 kΩ do nó para o GND
  • Nó em L1-C3, com ponte vertical até L3-C1
  • Alternativas: 1k8 + 3k3, ou 1k + 2k
peça F · 6 x 3

Bulk na entrada do Pi

O Pi 4 tem transiente rápido que fio nenhum acompanha. Quem responde nesse tempo é capacitor local.

  • 470 µF / 16 V eletrolítico
  • 100 nF cerâmico
  • 470 e não 1000 µF: inrush maior pode disparar a proteção do XL4015 ou arcar a chave
peça G · 6 x 4 · NOVA

Distribuição da base

Substitui o nó torcido na saída da chave. A SW_SYS alimenta três conversores; sem essa placa os três fios voltam a se amontoar no terminal da chave — que era o problema original.

  • L6 = VBAT_SYS+, da saída da chave
  • L1 = GND_SYS, direto do negativo do pack, sem passar pela chave
  • Uma coluna por conversor: XL4015E1, XL6019E1, LM2596
  • L2 a L5 livres — cabe o transistor do buzzer ou o VBAT_MOT futuro
sem peça G

O domínio motor não precisa

Com o 5V_MOT desligado, a SW_MOT alimenta um conversor só.

  • Um par direto resolve; não há nó para distribuir.
  • Quando o aspirador entrar, o segundo par sai das linhas livres da peça G.
por que 18 e não 16

Queda na entrada pesa menos

Um buck regula a própria saída, então queda no fio de entrada não aparece na saída — ela só reduz margem.

  • 20 AWG simples basta nas entradas dos conversores.
  • O tronco antes da chave carrega tudo do domínio: esse vai dobrado.
   PEÇA D — bulk no VM da TB6612          PEÇA F — bulk na entrada do Pi

        C1        C2        C3                 C1        C2        C3
      ┌──────────────────────────┐           ┌──────────────────────────┐
 L1   │  ●═════════●═════════●   │ ═ VM      │  ●═════════●═════════●   │ ═ 5V_PI
      │            │         │   │           │            │         │   │
 L3   │           ┌┴┐       ┌┴┐  │           │           ┌┴┐       ┌┴┐  │
      │           │E│       │C│  │           │           │E│       │C│  │
 L4   │           └┬┘       └┬┘  │           │           └┬┘       └┬┘  │
      │            │         │   │           │            │         │   │
 L6   │  ●═════════●═════════●   │ ═ GND_MOT │  ●═════════●═════════●   │ ═ GND_SYS
      └──────────────────────────┘           └──────────────────────────┘
         entra     470 µF   100 nF              entra     470 µF   100 nF
       (C4-L6/L2)   25 V                      (C5-L4/L1)   16 V


   PEÇA G — distribuição da base, domínio sistema (6x4)      ◄ NOVA

        C1        C2        C3        C4
      ┌────────────────────────────────────┐
 L1   │  ●═════════●═════════●═════════●   │ ═ GND_SYS   direto do negativo do pack
 L2   │  ●         ●         ●         ●   │
 L3   │  ●         ●         ●         ●   │   linhas L2..L5 livres:
 L4   │  ●         ●         ●         ●   │   transistor do buzzer ou VBAT_MOT
 L5   │  ●         ●         ●         ●   │
 L6   │  ●═════════●═════════●═════════●   │ ═ VBAT_SYS+  da saída da SW_SYS
      └────────────────────────────────────┘
          ▲         ▲         ▲         ▲
        entra    XL4015E1  XL6019E1   LM2596
      (chave +   → 5V_PI   → 12V_KIN  → 5V_LOGIC
       pack −)    20 AWG    20 AWG      22 AWG


   PEÇA E — divisor de nível do UART (6x3)

   Nano D1 (TX, 5 V) ───[ R1 = 1 kΩ ]───┬─── Pi pino 10 / GPIO15 (RXD)     ≈ 3,2 V
                                        │
                                   [ R2 = 1,8 kΩ ]
                                        │
                                       GND ──── C10-L1 (GND_SYS)

   Pi pino 8 / GPIO14 (TXD) ──────────────────── Nano D0 (RX)              direto

Na peça E: R1 deitado entre L1-C1 e L1-C3; R2 entre L3-C1 e L3-C3. O nó da junção é L1-C3 com ponte vertical até L3-C1. A L6 vira trilho curto de GND. A linha D0 ↔ pino 8 passa reta pela L5, só apoiada mecanicamente.

Sem perfboard

Módulos Hall

A plaquinha já traz pull-up, LED e comparador. Um salto de placa a mais só adicionaria duas juntas e um ponto de falha.

   MÓDULO HALL (azul, LM393, 4 pinos, SEM trimpot)
   ┌───────────────────────────┐
   │  ┌─────┐                  │
   │  │A3144│  [LM393]         │
   │  └─────┘  [LED pwr] [LED sinal]
   │                           │
   │   VCC  GND   DO   AO      │
   └────┬────┬────┬─────╳──────┘
        │    │    │     └── sem uso
        │    │    └──────── D2 (esq.) / D3 (dir.)
        │    └───────────── C8-L1 / C9-L1  (GND_SYS)
        └────────────────── C8-L3 / C9-L3  (5V_LOGIC)
                    +
        100 nF entre VCC e GND, soldado nos próprios pinos do módulo

Soldar o cabo de 3 vias direto nos pinos pré-soldados e afogar em termorretrátil com cola. Dupont na roda, com vibração, é a receita do contato intermitente já vivido. Conferir a marcação do TO-92 com lupa: 49E ou SS49E indica sensor linear, e aí o LM393 é quem gera o digital; A3144 ou 3144 indica sensor já digital, com o comparador redundante. Nos dois casos usa-se DO.

Antes de energizar

Cinco coisas que precisam de medição

Ordenadas por consequência. As três primeiras podem mudar o que é soldado ou queimar componente.

resolvido nesta sessão

1 · UART de 5 V no GPIO do Pi

O Nano tem lógica de 5 V; o GPIO do Pi é 3,3 V e não tolera 5 V. Divisor já instalado.

  1. Só o sentido Nano → Pi precisa de divisor.
  2. Pi → Nano dispensa: o V_IH do ATmega328P é 0,6 × Vcc = 3,0 V e o Pi entrega 3,3 V.
  3. Sem fio de GND no cabo UART — criaria laço.
  4. Pendência de software: enable_uart=1, console serial desabilitado, e /dev/ttyUSB0 vira /dev/serial0.
segunda causa raiz possível

2 · O XL4015E1 do Pi pode ser CC/CV

O sintoma registrado é entrega 5 V vazio, afunda sob carga. Módulo CC/CV com o limite de corrente baixo faz exatamente isso.

  1. Um potenciômetro = step-down simples, só ajustar tensão.
  2. Dois potenciômetros mais shunt grosso na saída = CC/CV. Girar o pot de corrente ao máximo antes de ajustar a tensão.
  3. Teste: 5,1 V sem carga, aplicar cerca de 2 A e medir de novo. Se cair, é limite de corrente, não é fio.
  4. Conferir dissipador: a 3 A ele dissipa cerca de 2 W e entra em proteção térmica sem refrigeração.
limitação de topologia

3 · O XL6019E1 é boost, não buck-boost

Conversor elevador não regula abaixo da entrada. Com o pack 3S2P cheio em 12,6 V, a saída passa direto, cerca de 12,3 a 12,6 V.

  1. O alvo de 11,8 a 12,2 V não é alcançável em carga cheia. Isso não é defeito.
  2. O Kinect v1 tem reguladores internos; mais 5 % provavelmente passa.
  3. Teste: alimentar com 12,6 V, ajustar saída para 12,0 V e medir. Saída em 12,0 V é buck-boost real; saída acompanhando a entrada é boost puro.
  4. Medir a temperatura do módulo após 5 min com o Kinect streaming.
suspeito nº 1 restante

4 · Halls sem trimpot — o ajuste é mecânico

Sem potenciômetro, o pull-up já embarcado neutraliza o pinMode(HALL_L, INPUT) do firmware. Mas o único parâmetro ajustável passa a ser o ímã.

  1. O A3144 é unipolar e com histerese: liga em 200 a 350 G, solta em 150 a 250 G.
  2. Entreferro marginal — ímã 1 a 2 mm mais longe fica no fio da navalha. Explica a razão L/R variando de 0,75 a 0,98.
  3. Polaridade — sensor unipolar responde a um polo só, na face marcada do TO-92. Ímã invertido nunca é lido.
  4. Caracterizar: 5 V no módulo, multímetro entre DO e GND, aproximar o ímã e anotar em quantos mm comuta. As duas distâncias devem bater dentro de ~1 mm.
medir

5 · Buzzer ativo em D11

Duas consequências, nenhuma bloqueante.

  • Sem tom diferente: o firmware chama tone() em 2400 e 1800 Hz; buzzer ativo ignora frequência. Os padrões continuam funcionando, mas HORN e BEEP soam iguais.
  • Corrente do pino: buzzer ativo puxa 15 a 25 mA; D11 aguenta 20 mA contínuos.
  • Acima de 20 mA, NPN BC337 ou 2N2222 com 1 kΩ na base, na sobra da peça F.
risco aceito

Sem fusível de 5 A no sistema

O talus-power.yml declara FUTURE_FUSE_SYS_5A, mas ele não é referenciado em nenhuma conexão — o próprio WireViz avisa.

  • O ramo de motor tem os 10 A instalados.
  • O ramo de sistema segue com o BMS como única proteção.
  • Decisão desta rodada; registrado, não bloqueia.
decidido

Não trocar o LM2596 para o Pi

Seria downgrade justamente no trilho que já deu subtensão.

  • LM2596: 3 A nominais, cerca de 2 A realistas no módulo barato.
  • XL4015E1: 5 A nominais, cerca de 4 A com dissipador.
  • O Pi 4 puxa 1,5 a 2 A com ROS 2 e Kinect.
  • Também não ligar em paralelo: bucks sem compartilhamento de corrente brigam entre si.

Ferro de solda

Temperatura — estanho com chumbo

Ponto de fusão do 63/37 é 183 °C; do 60/40, 183 a 190 °C. O ferro fica mais quente porque a ponta perde calor para a junta.

TarefaTemperaturaTempo na junta
Fio fino de sinal (24–28 AWG)300–320 °C1–2 s
Fio grosso ATX (18–20 AWG)330–350 °C3–5 s
Ilha de módulo (Hall, TB6612, MPU6050)320–340 °Cmáx. 3–4 s
Pino de barra, dupont, JST320–340 °C2–3 s
Terminal de motor, plano de massa350–370 °C4–6 s
Dessoldagem350–370 °C

Acima de 400 °C degrada a ponta e queima o fluxo antes dele agir. Mais de 4 s na ilha de módulo barato descola a trilha. Na dessoldagem, adicionar solda nova à junta velha antes de sugar — o fluxo fresco baixa o ponto de fusão do conjunto.

Cobre a 20 °C

Bitola e queda de tensão

Cabo flexível estanhado e quente: somar cerca de 5 %.

BitolaΩ/mCorrente prática (feixe curto)
28 AWG (jumper de kit)0,213~0,5 A
26 AWG0,134~0,8 A
24 AWG0,084~1,2 A
22 AWG0,053~2 A
20 AWG0,033~3 A
18 AWG (ATX)0,021~5 A
16 AWG0,013~8 A

Positivo + GND

Queda total num trecho de 30 cm

queda = 2 × distância × Ω/m × corrente. Ida e volta: 30 cm de distância são 60 cm de cobre.

Bitola1 A2 A3 A5 A
28 AWG0,13 V0,26 V0,38 V0,64 V
26 AWG0,08 V0,16 V0,24 V0,40 V
24 AWG0,05 V0,10 V0,15 V0,25 V
22 AWG0,03 V0,06 V0,10 V0,16 V
20 AWG0,02 V0,04 V0,06 V0,10 V
18 AWG0,01 V0,03 V0,04 V0,06 V

Escala linear: dobrou a distância ou a corrente, dobrou a queda. A linha do 28 AWG a 3 A é exatamente o bug original — 0,38 V mais a resistência de contato dos dupont dão os 4,4 V medidos no Pi. Orçamento: no trilho de 5 V, no máximo 0,10 V de fiação.

O que usar onde

Bitola por ramo

Plano com 20 AWG de fonte ATX, que é o que há em quantidade. Nos três ramos de ~3 A o que aperta deixa de ser a queda e passa a ser o aquecimento — por isso eles vão com o fio dobrado.

RamoCorrenteQueda com 1× 20 AWG (30 cm)Usar
Tronco sistema pack → emenda → chave → peça G~3,1 A0,061 V2× 20 AWG
Tronco motor pack → emenda → chave → XL4015~2,5 A0,050 V2× 20 AWG
Rabicho da emenda até a P1 na borda~2 A (só carga)20 AWG
Peça G → entrada do XL4015E1 e do XL6019E1~1,5 A0,030 V20 AWG
Peça G → entrada do LM2596 da lógica< 0,1 A22 AWG
5V_PI (buck → Pi)3 A0,060 V2× 20 AWG
8V_MOT (→ VM da TB6612)2–3 A0,060 V20 AWG
12V_KIN (buck → Kinect)1,1 A0,022 V20 AWG
5V_LOGIC (Nano, IMU, Halls)< 0,3 A0,006 V22 AWG
Sinais: PWM, AIN/BIN, STBY, Halls, I2CmAjumper serve

Engrossar positivo e GND sempre juntos — engrossar só o positivo corta metade da queda. Cores da ATX: amarelo = 12 V, vermelho = 5 V, preto = GND. Não existe cor de 8 V; usar vermelho com etiqueta.

Inventário

Componentes

Confirmados no repositório ou no runtime, mais o que falta providenciar.

ComponenteQtdEstadoNota
Arduino Nano (ATmega328P)1existeUART, sem USB simultâneo
Módulo TB6612FNG (rodas)1existeD4D10
MPU6050 / GY-521 (0x68)1existeA4/A5, alimentado pelo Nano
Buzzer ativo em D111mediralerta 5
Módulo Hall azul (A3144 + LM393, sem trimpot)2caracterizaralerta 4
Motor DC de roda2existedeadband ≈ PWM 80
Pack 3S + P1 + fusível 10 A + SW_MOT1existedomínio motor
Pack 3S2P + BMS + P1 + SW_SYS1sem fusívelrisco aceito
XL4015E1 → 8V_MOT1existedo pack 3S
LM2596 → 5V_MOT1desligadoentrada isolada até o aspirador existir
LM2596 → 5V_LOGIC1existecarga ~100 mA, folgadíssimo
XL4015E1 → 5V_PI 5,1 V1conferiralerta 2
XL6019E1 → 12V_KIN1conferiralerta 3
Raspberry Pi 4 · Kinect v1 + P11 + 1existe
Perfboard 6x28 → A(11) + D(3) + E(3) + F(3) + G(4)1cortarpeça G nova, para o leque da chave
Barra de pinos macho~12 pinosprovidenciar6 de teste + 2 da ponte + folga
Jumper cap 2,54 mm1–2providenciara ponte de GND
Resistor 1 kΩ e 1,8 kΩ1 + 1instaladodivisor UART
Capacitor 100 nF cerâmico~10providenciarHalls, motores, peças D/F
Capacitor 470 µF / 25 V e 470 µF / 16 V1 + 1providenciarpeças D e F
Fio 20 AWG de fonte ATX · 22–24 AWG~4 m · 2 mtem de sobra16 e 18 AWG saíram do projeto
Termorretrátil 3:1 com cola · abraçadeirassortido · ~30providenciaralívio de tração
NPN BC337/2N2222 + 1 kΩ1condicionalsó se o buzzer passar de 20 mA

Saíram da lista por decisão: os resistores de pull-up de 10 kΩ (o módulo Hall já tem), os breakouts de Hall em perfboard, e o fusível de 5 A do ramo de sistema.

Protocolo

Como validar cada junta

regra de segurança

Ciclo de 3 medidas por junta

Soldar sempre com os dois packs desconectados no conector. Chave desligada ainda deixa o lado de entrada energizado.

  1. Continuidade entre os extremos do fio novo: bom = menos de 1 Ω. 2 a 5 Ω é solda fria.
  2. Curto com o vizinho: junta nova contra cada terminal adjacente, deve dar OL.
  3. Tração leve com a mão: se sair, era solda fria que passou na continuidade.

Zerar o multímetro antes. Encostar as duas pontas e anotar o valor — normalmente 0,2 a 0,5 Ω. Esse número está dentro de toda medida de continuidade; sem subtrair, você aprova solda fria de 0,7 Ω achando que deu 1,2 Ω legítimo.

técnica

Sequência por junta

  1. Enfiar o termorretrátil no fio primeiro. Erro clássico.
  2. Estanhar as duas pontas separadamente antes de juntar.
  3. Junta mecânica antes da solda: emenda ocidental, 5 a 6 voltas de cada lado. Puxando com a mão tem que segurar antes de soldar.
  4. Aquecer a junta, não o ferro. Alimentar a solda do lado oposto ao ferro.
  5. Junta boa é côncava e brilhante, com o desenho do fio aparecendo. Bolha opaca e convexa é solda fria.
  6. Máximo 2 a 3 fios por junta. Precisando de 5, aquele nó deveria ser um trilho.

Tudo desligado

Testes que validam a arquitetura

MedidaEntreCorreto
ContinuidadeGND_MOTGND_SYS — cap dentrobipa — único ponto comum
ContinuidadeGND_MOTGND_SYS — cap fora, TB6612 foraOL
Continuidade8V_MOT+5V_LOGIC+5V_PI+12V_KIN+aberto entre todos os pares
Continuidadequalquer + ↔ seu próprio GNDaberto (ou subindo, se for capacitor carregando)
Polaridadeas duas P1centro positivo, malha no GND

Sob carga

Alvos de tensão

RamoOnde medirAlvoTeste de software
5V_PIpino físico 2 ou 4 contra GND 6/145,0–5,2 Vvcgencmd get_throttled = 0x0
12V_KINsaída do buck-boost e entrada do Kinect11,8–12,2 V (ver alerta 3)tópicos RGB-D publicam
5V_LOGICpino 5V do Nano, VCC da TB6612 e dos Halls4,9–5,1 VPONG e IMU_OK=1
TB6612VM e VCC contra GNDVM ≈ 8 V, VCC ≈ 5 V, STBY alto quando ativopulso DRV curto, suspenso
ordem de energização

Um ramo por vez

  1. Ajustar buck-boost em 12,0 V sem carga.
  2. Kinect.
  3. Raspberry Pi.
  4. Arduino, Halls e IMU.
  5. Validar os Halls à mão, com o ímã.
  6. Medir a TB6612.
  7. Só então religar os motores.
  8. Por último o joystick, com o robô suspenso.

O watchdog de comando é de 250 ms (CMD_TIMEOUT_MS). Um DRV isolado para sozinho — em bancada é preciso repetir o comando a mais de 4 Hz.

Pendências abertas

  • Confirmar se o pack 3S do motor tem BMS
  • Verificar o interlock: P1 → entrada dos conversores deve dar OL com a chave desligada
  • Colar etiqueta DESLIGAR ANTES DE CARREGAR ao lado de cada P1
  • Refazer a junta do P1 como derivação: emenda perto do pack, rabicho até a borda
  • Mover o fusível de 10 A para antes da derivação do P1 do pack 3S
  • Montar a peça G e refazer o leque da chave em 18/22 AWG
  • Medir a resistência de contato de cada P1 com o plugue inserido (esperado < 50 mΩ)
  • Medir corrente do buzzer em D11 (limite 20 mA)
  • Contar os pots do XL4015 do Pi e testar sob carga de ~2 A
  • Testar se o XL6019 regula 12,0 V com entrada de 12,6 V
  • Caracterizar os dois módulos Hall (distância de comutação, polaridade)
  • Igualar o entreferro dos ímãs das duas rodas
  • Medir temperatura do XL6019 após 5 min com Kinect streaming
  • Habilitar UART no Pi e trocar /dev/ttyUSB0 por /dev/serial0
  • Medir corrente de stall dos motores
  • Atualizar hardware/WIRING.md e talus-power.yml após a ressolda
  • Corrigir a linha 96 do talus-power.yml-> quebra o render do WireViz