Painel ScaraNode

RP2040-Zero · TMC2209 ou DM556 · Web Serial
desconectado 24 V TMC motor solto Robô GitHub
posição—
velocidade— rpm
parado

Posição

—
voltas do motor

passos
—
graus na saída
—
velocidade
— rpm

Curso: não calibrado (página Testes).

Sensores da placa

24 V (VSENSE, GP1)
—
NTC1 (GP29)
—
FIM1 (GP27)
—
FIM2 (GP15)
—
RP2040 (interno)
—
UART por VACTUAL
—

TMC2209: diagnóstico —

Endereço / versão
—
Corrente real
—
Escala atual (CS)
—
Carga (StallGuard)
—
Velocidade medida
—
Pinos vistos pelo TMC
—

"Fase aberta" só vale com o motor girando devagar. Carga (StallGuard) só é medida em stealthChop, girando.

Últimos 30 s

velocidade (rpm)carga StallGuard (0–510)

LED da placa (RP2040-Zero)

vermelho piscando rápidoerro: emergência, 24 V caiu, TMC superaqueceu ou curto (6 s; na falha do TMC até reconfigurar)
magenta, 2 piscadasparou por fim de curso ou travamento (StallGuard)
laranja piscandoTMC acima de 120 °C (corrente já reduzida)
amarelo, piscada curtasem 24 V no J5 (modo TMC)
vermelho lentotem 24 V, mas o TMC não responde pelo UART
cianogirando (amarelo fixo: desacelerando)
verdeparado e energizado
brancopronto, motor solto
azul "respirando"sem painel conectado há mais de 3 s
roxofirmware parado (mpremote/REPL)

Movimento



Jog: o motor gira enquanto o botão estiver pressionado, na velocidade acima. Parar e Emergência ficam no topo, em todas as páginas.

Motor

Mover com o motor solto energiza automaticamente.

Parar desacelera com rampa. Emergência corta os passos na hora e, sem a opção acima, solta o motor.


Girar pelo UART (VACTUAL)

rpm (negativo inverte)

Gerador interno do TMC, sem usar o pino STEP: serve para isolar problema de fiação. Não tem rampa e não conta a posição.

TMC2209

O firmware limita a 1,4 A RMS e, acima de 120 °C no chip, baixa a corrente para 60% sozinho; em superaquecimento ou curto corta tudo. O trimpot do módulo é ignorado com o UART ativo.


Mecânica do motor no TMC

J2 do SCARA: planetária 6:1 × correia 4:1 = 24. Fica salvo neste navegador.


Parar por travamento (StallGuard)

Menor SG no último movimento: —

Calibrar: gire livre na velocidade de uso e anote o menor SG. Repita segurando o eixo (pano ou luva) até quase travar. Ponha o limite entre os dois. Só funciona em stealthChop; no modo automático, só abaixo da rpm de troca. Uma leitura a cada ~2 ms pelo UART.

DM556 (externo, pelo J4)

Use o mesmo número de pulsos por volta das chaves do DM556 (tabela na lateral do driver). J1 do SCARA: 260:20 = redução 13.


J4 pino 1 (5 V)
PUL+, DIR+ e ENA+
J4 pino 2
PUL−
J4 pino 3
DIR−
J4 pino 4
ENA− (GP8 alto = motor energizado)

A placa não recebe nada de volta do DM556 (nem alarme, nem corrente): se o LED vermelho do driver acender, é falha. Neste modo o TMC fica desabilitado; no modo TMC, o DM556 fica solto (GP8 baixo).

Fins de curso

FIM1 agora: — FIM2 agora: —

Com "bloqueia", a chave acionada para o motor na hora e impede mover naquele sentido; o outro sentido continua livre. "Calibrar curso" (página Testes) configura isso sozinho.

NTC

Pull-up de 100k na placa (R3 no NTC1, R15 no NTC2, só na v18). Com o conector vazio aparece "desligado"; um valor fixo que não muda com a temperatura indica o pull-up aberto.

Testes e calibração

1. Curso pelos fins de curso

Descobre qual FIM fica em cada ponta, zera no lado − com aproximação lenta e mede até o lado +. No fim deixa os fins de curso bloqueando e o eixo no meio. Dá para simular dando curto nos fios da chave.

2. Perda de passo (qualquer driver e modo)

Zera no fim de curso do lado − (aproximação lenta), faz as idas e voltas e volta devagar até a chave: se ela acionar no mesmo passo do zero (dentro da tolerância), não perdeu passo. Mede perda real, então vale para spreadCycle e para o DM556. Precisa do curso calibrado e de uma chave acionada pelo eixo de verdade (não dá para simular com a mão).

3. Velocidade e aceleração pelo StallGuard (TMC)

Rápido e sem fim de curso, mas só em stealthChop: no spreadCycle os limites reais costumam ser maiores (use o teste 2 para medir). Alterna o sentido a cada degrau; use com o motor solto ou com curso sobrando.

4. Margem de torque (TMC)

Com a carga real acoplada, gira na rotação escolhida e baixa a corrente de 0,05 em 0,05 A até o StallGuard indicar travamento. Margem = corrente configurada ÷ corrente em que travou (2× = a carga usa metade do torque). No fim volta a corrente.


  

Firmware da placa

Na placa: — No site: carregando…

A revisão escolhida vai num placa.py (REV = "v18") e decide os pinos que o no.py usa; errar a revisão manda os passos para os pinos errados.

Solta o motor, para o firmware e grava main.py, no.py e placa.py pela USB (raw REPL, como o mpremote). Cada arquivo vai para um .tmp e só substitui o antigo depois de conferido (tamanho e SHA-256); se algo falhar no meio, a placa continua com o firmware anterior. Funciona também com a placa sem o firmware do painel, desde que tenha MicroPython.

Editar o firmware

  1. Baixe os arquivos da versão do site:
  2. Edite no seu editor (VS Code, Thonny…). Mudou o comportamento? Suba o FW = "painel 1.x" no topo do no.py para saber qual versão está na placa.
  3. Grave os arquivos editados:

    Escolha um ou mais .py (segure Ctrl). Só os escolhidos são trocados; se o placa.py não estiver entre eles, ele sai da revisão selecionada acima.

Deu errado? Gravar firmware do site volta para a versão publicada. Código e histórico no GitHub.

Registro