Teste do servomotor Feetech STS3215: folga, repetibilidade e torque
Em setembro, passamos a uma etapa mais detalhada de teste dos servomotores antes de iniciar a programação do controlador. Começamos a testar o Feetech STS3215 C018 (relação de redução 1:345, 12V, torque de bloqueio de 30 kg·cm), um servomotor popular amplamente utilizado em projetos robóticos de código aberto, como SO-ARM100 e o Robonine parallel gripper. Este artigo vai se concentrar principalmente em seu desempenho. Para começar, vou analisar os dados fornecidos pelo fabricante. Esses valores servirão de referência para nossos testes de verificação. Algumas das imagens mostram o Waveshare STS3215, que é tecnicamente muito semelhante — chegando a usar a mesma versão de firmware.
Encoder magnético de 12 bits
O Feetech STS3215 conta com um encoder magnético de 12 bits que oferece 4096 passos por rotação de 360° (0,088° por passo). Esse projeto magnetorresistivo elimina o desgaste por atrito, ao contrário dos encoders baseados em potenciômetro com contatos deslizantes, que se degradam com o tempo. A ausência de superfícies de contato móveis garante um controle confiável em malha fechada e um desempenho consistente a longo prazo, sem degradação do encoder.
Feetech STS-3215: parte traseira e engrenagens
O servo conta com uma caixa de engrenagens metálica de vários estágios, projetada para entregar alto torque em um conjunto acessível. Segundo o the datasheet, a especificação da caixa de engrenagens indica uma folga ≤ 0,5°, o que é típico para essa classe de servo. São usadas engrenagens metálicas em vez de plásticas para suportar cargas prolongadas e ciclos repetitivos de movimento. O encoder é integrado antes do estágio de redução para fornecer feedback direto do motor. A caixa de engrenagens utiliza uma relação de 1:345, permitindo que o servo converta a velocidade do motor em alto torque de saída, adequado para aplicações robóticas. A alta relação de redução e o projeto da caixa de engrenagens metálica tornam esse servo inadequado para aplicações de acionamento reverso, pois forças externas podem facilmente girar as engrenagens no sentido inverso, causando movimento descontrolado e possíveis danos ao motor.
O gráfico de envelope de desempenho exibe official datasheet os valores de potência de saída, velocidade de rotação, eficiência e consumo de corrente em cargas de torque de 0 a 30 kg·cm. A velocidade diminui de forma linear conforme a carga aumenta, enquanto a potência de saída atinge o pico em torno de 15 kg·cm antes de cair em cargas mais pesadas. A eficiência atinge o máximo (cerca de 26%) na faixa de 6–9 kg·cm, o que é típico para motores servo acessíveis. O consumo de corrente cresce de forma linear com a demanda de torque em toda a faixa de operação. Essas especificações de catálogo demonstram que, apesar dos valores modestos de eficiência inerentes aos projetos de baixo custo, o servo oferece um gerenciamento de energia confiável, adequado para aplicações robóticas e de automação com orçamento limitado.
Teste de desempenho de velocidade e precisão
O servo Feetech STS-3215 foi testado a 100% e 50% de sua velocidade nominal. As medições mostraram uma velocidade máxima de aproximadamente 46 RPM, com precisão de ±2% e flutuações de cerca de 7%. Embora pequenas oscilações tenham sido observadas em velocidades mais baixas, o movimento geral permaneceu estável e de acordo com as especificações do fabricante.
Esses resultados confirmam que a velocidade nominal sem carga do servo, de 0,22 s/60°, está bem alinhada com os valores do datasheet, oferecendo velocidade e capacidade de resposta adequadas para aplicações de robótica e de controle de movimento.
Ajuste de 100% da velocidade. Média medida de 45,6 RPM com desvio típico de 0,48 RPM.
Ajuste de 50% da velocidade. Média medida de 21,9 RPM com desvio típico de 0,34 RPM.
Ajuste de 5% da velocidade. Média medida de 2,3 RPM com variação observada de cerca de 0,25 RPM.
Medição da folga
Uma das principais características que nos fez repensar o projeto do nosso manipulador é a folga. Usando um relógio comparador, medimos primeiro um deslocamento linear de 1,3 mm na ponta de um braço de alavanca de 86 mm. A partir disso, calculamos uma folga angular de 0,0151 radianos (≈ 0,87°) — visivelmente maior que o limite de 0,5° especificado no datasheet. Esse desvio é bastante significativo, pois mesmo pequenos erros angulares na junta se traduzem em desvios da ordem de milímetros na ponta do braço.
A montagem de teste utilizou um elástico aplicando cerca de 30 g de tensão para garantir um carregamento consistente, enquanto um relógio comparador media o deslocamento resultante. Esse método forneceu leituras estáveis, sem força excessiva ou dependência do torque.
Além disso, parte dessa folga parece ser induzida por software: existe uma zona morta integrada de 10 contagens do encoder, ou seja, o motor ignora pequenos comandos dentro dessa faixa. A folga também se manifesta como tremor ou oscilação quando o braço está estendido — o servo tem dificuldade de retornar com precisão à posição-alvo, resultando em vibração visível.
Teste de repetibilidade
Outro parâmetro importante é a repetibilidade. O teste de repetibilidade do servo Feetech STS3215 foi realizado usando uma alavanca vertical de 10 cm, com incrementos de 20 passos, três ciclos em cada direção e três iterações completas. Os resultados indicam um desempenho estável sob condições controladas.
Parâmetros e resultados do teste:
- Configuração da alavanca: braço vertical de 10 cm
- Método de teste: incrementos de 20 passos; 3 ciclos em cada direção; 3 iterações completas
- Desvio medido na ponta: ±0.3 mm
- Repetibilidade angular equivalente: ≈ 0.17° (≈10 arcmin)
- Resolução do encoder: 12-bit = 0.088°
- Equivalente linear de uma contagem do encoder (a um raio de 10 cm): ≈ 0.153 mm
- Desvio observado: ≈ 2 encoder counts
- Notes: a ponta de prova com mola compensa a folga mecânica; o teste poderia ser refinado ou repetido sob carga para melhorar a precisão
O desvio médio absoluto de posição medido é de cerca de 2 passos do encoder, ou 0,17 grau
Isso indica que, embora a repetibilidade medida fique dentro de alguns passos do encoder, o servo STS3215 mantém um comportamento de posicionamento consistente, e um refinamento adicional poderia validar seu desempenho sob condições de carga operacional.
Teste de torque
Também realizamos um teste de torque dinâmico do servo Feetech STS-3215 usando cargas variadas para avaliar seu desempenho real em movimento.
Configuração do teste:
- braço de alavanca de 10 cm
- Cargas de teste: 1 kg, 1,5 kg e 2 kg
Resultados do teste:
- Com carga de 1,5 kg: o servo manteve operação estável, com aumento de temperatura de aproximadamente 15 °C após 10 minutos de movimento contínuo
- Com carga de 2 kg: o servo entrou em proteção contra sobrecarga após vários ciclos de operação, limitando temporariamente o torque de saída para evitar danos
- O desempenho permaneceu consistente até cerca de 15 kg·cm, alinhando-se de perto com o torque nominal especificado no datasheet
O teste de torque dinâmico com carga de 10 kg·cm mostra que o consumo de corrente permanece bem abaixo de 1 A, enquanto a estimativa interna de carga ultrapassa ligeiramente 50%
No teste dinâmico com carga de 10 kg·cm, o desvio médio absoluto de posição medido foi de 22,5 passos do encoder, correspondendo a aproximadamente 2 graus
Com carga de 15 kg·cm no teste dinâmico, a estimativa interna de carga indica uma pequena margem restante, enquanto o consumo de corrente permanece dentro da faixa esperada
Com carga de 15 kg·cm no teste dinâmico, o desvio médio absoluto de posição medido é de 30 passos do encoder, ou cerca de 2,6 graus.
Esse teste demonstra a capacidade de torque dinâmico do servo e a eficácia de seus mecanismos de proteção térmica e contra sobrecarga. A operação contínua no torque nominal máximo pode acelerar o desgaste mecânico ao longo de períodos prolongados.
Em seguida, examinamos o torque de bloqueio — o torque máximo que o motor consegue manter em uma posição estática, sem movimento.
Configuração do teste:
- braço de alavanca de 10 cm posicionado a um ângulo de 45°
- Carga estática: aproximadamente 3,5 kg (≈ 35 kg·cm de torque)
Resultados do teste: Sob carga pesada prolongada, o servo entrava ocasionalmente em modo de proteção contra sobrecarga, reduzindo o torque de saída para cerca de 20% da capacidade nominal. Tanto o tempo limite da proteção quanto o limite seguro de torque são configuráveis pelos registradores do controlador, permitindo ajustar com precisão o comportamento da proteção para aplicações específicas. O torque de bloqueio medido superou ligeiramente o valor de 30 kg·cm do datasheet, confirmando que o STS-3215 tem desempenho acima de sua especificação nominal quando devidamente configurado.
Temperatura sob carga constante
Test 1: Verificação de superaquecimento durante a retenção de carga estática.
Teste de superaquecimento sob carga estática. Feetech STS3215
O braço com um haltere foi posicionado de lado, sustentando um peso de 1 kg em um braço de alavanca de 15 cm, resultando em um torque de 15 kg·cm. Ao longo de 10 minutos, a temperatura subiu para 48°C e permaneceu estável por uma hora, sem aumento adicional.
Teste 2: Oscilação em uma faixa de ±90 graus. Medição de temperatura
Oscilação em uma faixa de ±90 graus. Teste de temperatura. Feetech STS3215
Partindo de 48°C, a temperatura chegou a 60°C após 50 minutos. Nos 20 minutos seguintes, a temperatura não aumentou. Em seguida, a velocidade de oscilação foi reduzida para acelerar o aquecimento (veja a nota abaixo). Foram necessários mais 40 minutos para alcançar 71°C, momento em que o motor superaqueceu.
- Limiar crítico de temperatura: a 71°C, o motor apresenta problemas, conforme observado em experimentos realizados ontem e hoje (dois casos). Aparentemente não há proteção térmica integrada, portanto será necessário um desligamento manual quando essa temperatura for atingida.
- Efeito da aceleração no aquecimento: reduzir a aceleração aumentou a taxa de elevação da temperatura. Inicialmente, com uma aceleração de 5, a temperatura chegou a 60°C. Baixar a aceleração para 2 resultou em superaquecimento após um tempo adicional. Amanhã, em novos testes, mediremos o tempo necessário para superaquecer com uma aceleração de 5, já que uma aceleração de 2 é lenta demais para a nossa aplicação.
Experimento de compensação de folga
Um experimento adicional, conduzido pelo nosso engenheiro de software Boris, focou na compensação de folga usando uma montagem de pré-tensão com dois servos. Nesse teste, dois servos Feetech STS-3215 foram montados com braços de alavanca de PETG impressos em 3D, conectados por uma corda tensionada. Cada servo aplicava uma pequena pré-carga, eliminando efetivamente a folga mecânica do conjunto.
A montagem é simples, mas extremamente eficaz para demonstrar como a pré-tensão pode eliminar a folga na prática. Quando ambos os servos aplicaram tensões opostas, os braços permaneceram completamente imóveis, confirmando que a folga mecânica foi totalmente compensada. Esse método melhora significativamente a estabilidade e a precisão de posicionamento, tornando-o especialmente útil para juntas robóticas, sistemas de controle de movimento e projetos de automação DIY.
Pontos principais:
- Dois servos STS-3215 com braços de alavanca de PETG
- Acoplamento por corda sob pré-tensão controlada
- Demonstra a eliminação da folga mecânica por meio da compensação por pré-carga
Resumo das especificações e dos resultados dos testes
| Parâmetro / método de teste / condição | Resultado medido | Especificação / valor do datasheet | Observações / comentários |
|---|---|---|---|
| Tensão de operação | 12 V | 12 V | Faixa de operação: 4–14 V |
| Torque estático (de bloqueio) Braço de alavanca de 10 cm a 45° sobre a balança | ~3.5 kg (35 kg·cm) | 30 kg·cm | Ligeiramente acima do nominal; entra em proteção sob carga prolongada |
| Torque dinâmico Levantando 1,5 kg em alavanca de 10 cm | Sustenta a carga com aumento de +15 °C | — | A temperatura aumentou +15 °C após 10 min; sobrecarga acionada com carga de 2 kg |
| Velocidade sem carga (RPM) Medida a 100% e 50% da velocidade | Máx. ~46 RPM; precisão de ±2%; flutuação de ~7% | 45 RPM (0.22 s/60°) | Configurações padrão; operação um pouco menos suave, mas aceitável |
| Resolução do encoder Leitura de registrador por UART | 4096 passos por volta (12 bits) | encoder magnético de 12 bits (4096) | 0,088° por passo |
| Folga da caixa de engrenagens (jogo livre) Medição por rotação livre com a mão (método do relógio comparador) | ~ 0,87° | ≤ 0.5° | — |
| Erro de posição sob carga Carga de 1,5 kg, alavanca de 10 cm, ângulo de 45° | 20–30 valores do encoder (1,8–2,6°) | — | O erro aumenta significativamente sob carga |
| Repetibilidade (relógio comparador) Alavanca vertical de 10 cm; incrementos de 20 passos; 3 ciclos em cada direção; 3 iterações | Desvio de ±0,3 mm nos pontos de medição | — | A ponta de prova com mola compensa a folga mecânica; o teste poderia ser refinado ou realizado sob carga |
| Aumento de temperatura (teste de carga estática) — carga de 1 kg em braço de alavanca de 15 cm (≈15 kg·cm de torque); braço posicionado de lado | A temperatura subiu para 48 °C após 10 min e permaneceu estável por >1 h, sem aumento adicional | Faixa de temperatura de operação: –10 °C – 60 °C | Comportamento térmico estável sob carga estática; bem dentro dos limites nominais de operação |
| Aumento de temperatura (teste de oscilação) — faixa de ±90°; movimento contínuo; temperatura inicial de 48 °C | Atingiu 60 °C após 50 min, estabilizou por 20 min e depois subiu para 71 °C após ~110 min, resultando em superaquecimento | Limiar de proteção contra superaquecimento: 70 °C | Nenhum desligamento térmico ativo observado — corte manual necessário perto de 70 °C. Reduzir a aceleração aumentou a taxa de aquecimento (accel = 2 → superaquecimento; accel = 5 → estável ~60 °C). |
| Interface de comunicação | UART TTL, half-duplex | Funcional | 38400 bps – 1 Mbps (padrão 1 Mbps); conexão encadeável de vários servos |
| Controle em malha fechada | O feedback de posição e velocidade funciona de forma confiável | — | Suporta manutenção de posição e controle de velocidade |
| Telemetria / feedback | Leitura por UART: posição, velocidade, corrente, tensão, carga, temperatura | — | Telemetria completa disponível |
| Sistemas de proteção | Sobrecarga, sobrecorrente, sobretensão, subtensão, sobretemperatura | Funcional | Tempo limite e limites seguros configuráveis pelos registradores |
| Zona morta do firmware | Comando de entrada < 10 passos do encoder | Nenhum movimento observado | Banda morta integrada de 10 contagens |
| Preço / acessórios | — | ~$15 (servo) + ~$5 (adaptador UART) | Excelente relação custo-benefício |
Conclusão
O Feetech STS3215 demonstra um bom desempenho de torque e uma comunicação UART estável, adequado para aplicações robóticas e de automação de nível intermediário. No entanto, a folga mecânica e uma zona morta definida pelo firmware (10 contagens do encoder) reduzem a precisão de posicionamento para tarefas de movimento fino.
Principais vantagens
- Compacto e leve
- Controle em malha fechada integrado (posição e velocidade)
- Recursos integrados de telemetria e proteção
- Ajuste fácil de parâmetros e protocolo UART
- Suporta conexão em cadeia de vários servos
- Precisão adequada do encoder (4096 passos)
- Pode ser controlado diretamente por PC ou microcontrolador
Principais limitações
- Folga da caixa de engrenagens maior que a especificada
- Firmware não atualizável pelo usuário
- Requer testes de duração sob carga para avaliar o desgaste a longo prazo
- Ruído mecânico audível
achei o gráfico de histerese um pouco confuso, mas a metodologia em si ta muito clara. parabens pelo trabalho
salvei pra ler com calma depois, conteudo denso mas otimo
usei o sts3215 no meu projeto e a repetibilidade me surpreendeu pra ser honesto, achei que ia ser pior
fiquei na duvida de uma coisa: o teste foi a 12v ou 7.4v? o torque muda demais entre os dois
Todos os testes de torque foram a 12 V. O STS3215 opera de 4 a 14 V, então a 7,4 V ele funciona normalmente, mas com torque e velocidade menores, por isso sempre vale especificar a tensão.
Entendi, obrigado pela resposta.
MUITO BOM o artigo, finalmente alguem testando isso de forma séria!!!
vcs mediram a corrente em stall? to com medo de queimar o meu
Sim, a corrente de stall fica em torno de 2,7 A a 12 V, conforme a folha de dados. Recomendamos um limite de corrente no driver para evitar dano térmico em stall prolongado.
Entendi, obrigado pela resposta.
isso aqui me poupou semanas de teste sério MUITO obrigado pelo material
Resultados consistentes com a folha de dados do fabricante. Bom trabalho na documentação da incerteza de medição.
no meu ele tem um zumbido feio quando segura posição, alguem mais notou isso?
Esse zumbido vem do loop de controle de posição corrigindo constantemente. Reduzir o ganho proporcional ou aumentar levemente a zona morta costuma diminuir bastante o ruído.
Obrigado, agora entendi!
Vocês chegaram a verificar se o backlash aumenta depois de algumas centenas de milhares de ciclos? Pergunto porque na minha aplicação o desgaste da engrenagem plástica acabou virando o gargalo e gostaria de saber se vocês têm dados de longo prazo.
Ainda não fizemos um teste de ciclagem completo, mas é exatamente o próximo passo do nosso roadmap. Pretendemos publicar os dados de desgaste de longo prazo em um artigo separado.
comprei 6 pra montar um braço e esse artigo me deixou bem mais confiante na escolha, valeu mesmo
interessante mas senti falta de comparar com o dynamixel da mesma faixa
Excelente bancada de testes. Os números de repetibilidade batem com o que eu medi aqui no meu setup.
Trabalho impecável. A seção sobre a metodologia de calibração do encoder magnético foi particularmente esclarecedora e me ajudou a entender uma deriva que eu via no meu próprio servo.
Gostaria de saber qual firmware vocês usaram durante os testes, porque a versão mais nova mudou bastante a curva de controle de torque e isso pode explicar diferenças entre bancadas.
Rodamos o firmware de fábrica que veio na unidade, sem atualização. Concordo que a versão mais recente altera a curva de torque, vale a pena testar as duas e comparar.
qual carga vcs usaram pra medir o torque de pico? queria comparar com o meu teste
Usamos um braço de alavanca com peso calibrado, medindo a corrente até o servo entrar em proteção. O torque de stall de referência do STS3215 é de cerca de 30 kg·cm a 12 V, e os detalhes do método estão na seção de torque.
backlash de 1 grau ja era esperado pra essa faixa de preço sinceramente
vocês têm o arquivo bruto dos dados pra download? adoraria plotar de outra forma e analisar a dispersão
Ainda não disponibilizamos o CSV bruto, mas é uma ótima sugestão. Vou ver com a equipe de publicar os dados brutos junto com o próximo artigo.
concerteza um dos melhores servos custo beneficio do mercado hoje
qnd vcs falam de repetibilidade de 0.1 grau isso é com carga ou sem? faz muita diferença
Esse número é sem carga. Sob carga a repetibilidade degrada um pouco por causa do backlash e da flexão da engrenagem, e detalhamos isso na seção seguinte.
Análise muito bem fundamentada. A clareza com que vocês separaram backlash mecânico de erro de quantização do encoder elevou o nível da discussão e raramente vejo esse cuidado em reviews de servo.
torque nominal de 30kg.cm é meio otimista né, na pratica rende bem menos
esse servo tem aquele problema de aquecer quando fica segurando posição muito tempo?
Sim, sob carga estática contínua ele aquece, e a proteção térmica reduz o torque por volta de 70 °C. Recomendamos limitar o torque de holding via firmware ou adicionar dissipação se for ficar parado segurando peso por longos períodos.
Agora está claro, obrigado.
uso uns 12 desses num hexápode e o aquecimento em coordenação de movimento é real, bom ver dados confirmando
metodologia top, mas acho que faltou controlar melhor a temperatura ambiente durante as medições
repetibilidade ok. torque fraco. nada que surpreenda.
a parte da repetibilidade bidirecional foi o que mais me ajudou, ninguem testa isso direito por aí