Componente · Chassi
Kit de braço robótico de 4 DOF
Um kit de braço robótico de 4 DOF transforma quatro servomotores de iniciação em um manipulador de mesa com base, ombro, cotovelo e garra posicionável.
O que é
Um kit de braço robótico de 4 DOF é o esqueleto mecânico de um manipulador de mesa: um conjunto de suportes de acrílico ou alumínio cortados a laser, uma base giratória e encaixes para quatro servomotores. Sozinho, ele não faz nada—é a estrutura que transforma servomotores em uma máquina que alcança, posiciona e agarra. Instale os servomotores, acione-os com uma PCA9685 e o kit se tornará um braço que pode ser controlado para alcançar um ponto no espaço.
As quatro juntas
Cada grau de liberdade corresponde a um servomotor com uma função:
- Base — gira o braço inteiro para a esquerda e a direita (guinada), orientando o plano de trabalho.
- Ombro — levanta o elo superior; é a primeira das duas juntas que definem alcance e altura.
- Cotovelo — dobra o antebraço; junto com o ombro, posiciona a ferramenta em qualquer ponto de um plano vertical.
- Garra — abre e fecha as mandíbulas para segurar um objeto.
Ombro e cotovelo são o par que a cinemática inversa de dois elos resolve: dado um ponto-alvo no plano de trabalho do braço, eles calculam os dois ângulos de junta necessários para alcançá-lo. A base gira então esse plano para a direção do alvo, e a garra pega o objeto.
Quando usar
Use um kit de braço robótico de 4 DOF quando quiser aprender manipulação, e não mobilidade—pegar e colocar objetos, empilhar blocos, desenhar ou montar uma câmera em um suporte posicionável. É o equivalente de um chassi 2WD para braços: a estrutura compartilhada na qual uma classe inteira de projetos se encaixa. É deliberadamente de baixa carga; trate-o como uma plataforma de ensino, não como uma máquina de trabalho.
Para tarefas mais pesadas ou precisas, use servomotores com engrenagem metálica, uma estrutura mais rígida ou um braço de 5–6 DOF que acrescente um punho. Para robôs móveis, use o chassi.
Conexões e armadilhas
- Um servomotor por junta, um canal para cada uma. Numere os canais (0 = base, 1 = ombro, …) e mantenha o mapa no código para que um comando “mover o cotovelo” acione o servomotor correto.
- Alimente os servomotores separadamente. Quatro servomotores se movendo juntos geram picos de corrente; alimente-os pelo terminal V+ da PCA9685, nunca pela fonte de 5 V do Arduino.
- Defina a posição inicial antes da montagem. Coloque cada servomotor em um ângulo conhecido (por exemplo, 90°) antes de pressionar os chapeus, para que a posição zero do braço corresponda ao zero do código.
- Respeite o alcance. A ferramenta só alcança a região dentro de um anel definido pelos comprimentos dos elos; comandar um ponto fora dele é impossível, quaisquer que sejam os ângulos—veja o simulador de braço robótico.
- Cuidado com a alavanca. A carga útil cai rapidamente à medida que o braço se estende; se as cargas forem pesadas, os servomotores travarão e os dentes das engrenagens de náylon quebrarão.
As medidas necessárias antes de escrever qualquer código
A cinemática inversa é aritmética sobre comprimentos de elos. Se eles estiverem errados, o braço alcançará com confiança o lugar errado, sem nada no código para culpar.
| Medida | Onde medir | Valor típico |
|---|---|---|
L1 — elo superior |
Do eixo da junta do ombro ao eixo da junta do cotovelo | 90–105 mm |
L2 — antebraço |
Do eixo da junta do cotovelo ao ponto de pega da garra | 80–95 mm |
| Altura da base | Da mesa ao eixo da junta do ombro | 50–70 mm |
| Deslocamento da base | Do eixo de rotação da base ao eixo do ombro, horizontalmente | 0–15 mm |
Meça entre eixos de junta, não entre bordas dos suportes. O eixo é o centro do estriamento de saída do servomotor e muitas vezes fica 5–10 mm para dentro do suporte visível. Em um elo de 95 mm, um erro de 10 mm ultrapassa 10%—e se manifesta como um braço sistematicamente curto, que nenhuma quantidade de ajuste corrigirá.
Esses dois comprimentos determinam diretamente o espaço de trabalho:
maximum reach = L1 + L2
minimum reach = |L1 - L2|
Com L1 = 100 e L2 = 90, o braço alcança de 10 mm a 190 mm do ombro—um anel, não um
disco. Há um buraco no centro que ele não alcança fisicamente, e é uma surpresa genuína na primeira
vez que um alvo próximo da base é considerado inalcançável. Se os dois elos forem iguais, o buraco
desaparece e o braço pode se dobrar sobre si mesmo.
Torque do servomotor: por que o braço cede no alcance máximo
O servomotor do ombro sustenta tudo o que está além dele, e a demanda de torque aumenta conforme a massa se afasta da junta.
Para um braço totalmente estendido com L1 = L2 = 95 mm, segurando uma carga útil de 30 g, com elos
de aproximadamente 20 g cada:
Shoulder torque ~= (forearm+elbow mass x 0.095) + (payload x 0.190)
~= (0.05 kg x 9.5 cm) + (0.03 kg x 19 cm)
~= 0.48 + 0.57 = 1.05 kg.cm
O torque de travamento de um SG90 é de cerca de 1,8 kg·cm a 4,8 V. Segurar 1,05 kg·cm significa operar continuamente a 58% do travamento, bem além do ponto em que um servomotor de iniciação permanece preciso—ele cederá abaixo do ângulo comandado, zunirá e aquecerá.
| Configuração | Demanda no ombro | SG90 (1,8 kg·cm) | MG90S (2,2 kg·cm) |
|---|---|---|---|
| Dobrado, sem carga | ~0,2 kg·cm | Sem problemas | Sem problemas |
| Estendido, sem carga | ~0,5 kg·cm | Adequado | Adequado |
| Estendido, carga de 30 g | ~1,05 kg·cm | Cede visivelmente | No limite |
| Estendido, carga de 50 g | ~1,4 kg·cm | Trava | Cede |
Três consequências práticas. A precisão do braço é pior na extensão máxima, que é exatamente onde também existe uma singularidade; planeje trajetórias dentro do limite. Use servomotores MG90S com engrenagem metálica no ombro, mesmo que os demais sejam SG90—é a junta que falha primeiro, e os dentes das engrenagens de náylon quebram sob carga contínua. E use um contrapeso, se possível: uma faixa elástica do elo superior até a base retira do servomotor do ombro uma fração surpreendente da carga estática, sem custo.
Montando para que a matemática funcione
A ordem importa, e uma etapa em particular é quase impossível de desfazer.
1. Coloque cada servomotor no centro antes de instalar um chapeu. Alimente o servomotor, comande 90° e só então pressione o chapeu. O chapeu do servomotor é estriado—cerca de 20 ou 24 dentes—e só pode ser instalado em posições discretas; o ajuste mais fino disponível tem cerca de 15–18°. Se você montar o braço primeiro e calibrar depois, pode encontrar uma junta cuja faixa útil está deslocada em 40° e não pode ser corrigida mecanicamente.
2. Instale os chapeus na posição que você quer usar como zero. Para o ombro, isso normalmente significa o elo superior vertical. Para o cotovelo, o antebraço horizontal. Escolha a convenção, anote-a e construa de acordo com ela.
3. Verifique o curso completo de cada junta antes de apertar qualquer coisa. Comande 0° e 180° e confirme que nada colide com a estrutura. Uma junta que encontra o próprio suporte em 160° tem um limite efetivo de 160°, e seu código precisa saber disso.
4. Registre os deslocamentos e sinais por junta. Algumas juntas giram em sentido oposto à sua convenção matemática por causa do arranjo do mecanismo. Anote uma vez:
struct Joint {
uint8_t channel;
int offsetDeg; // servo angle when the joint is at its mathematical zero
int8_t sign; // +1 or -1
int minDeg, maxDeg; // mechanical limits, measured
};
const Joint BASE = {0, 90, +1, -85, 85};
const Joint SHOULDER = {1, 90, -1, -10, 120};
const Joint ELBOW = {2, 90, +1, -120, 10};
const Joint GRIPPER = {3, 20, +1, 0, 55};
int servoAngle(const Joint &j, float jointDeg) {
float clamped = constrain(jointDeg, j.minDeg, j.maxDeg);
return constrain((int)(j.offsetDeg + j.sign * clamped), 0, 180);
}
Essa estrutura faz a ponte entre a cinemática e o componente físico, e tê-la explícita é a diferença entre um braço que você consegue raciocinar e outro em que precisa continuar improvisando valores.
Alimentando quatro servomotores
Quatro microservomotores se movendo juntos estão muito além do que um microcontrolador pode fornecer, e o modo de falha do braço piora isso: quando o braço encontra a própria estrutura ou agarra algo sólido, todos os servomotores da cadeia travam ao mesmo tempo.
| Situação | Corrente |
|---|---|
| Ocioso, mantendo a posição | ~40 mA no total |
| Em movimento, sem carga | ~600 mA – 1 A |
| Todos os quatro travados | ~2,6 A |
Dimensione a fonte para o valor de travamento. Use uma fonte separada de 5–6 V no terminal V+ da PCA9685, com um capacitor de 470–1000 µF em paralelo, e as massas conectadas ao controlador. Passar qualquer uma dessas correntes pelo pino de 5 V do Arduino fará a placa sofrer uma queda de tensão—e, como isso só acontece quando o braço alcança uma posição específica, parece convincentemente um bug do programa.
Mova-o suavemente
Um servomotor comandado para um novo ângulo vai até lá na velocidade máxima. Em um robô móvel, isso é apenas brusco; em um braço, é um problema real: movimento violento, pico de corrente e choque mecânico transmitido às engrenagens de náilon, amplificado pela própria alavanca do braço.
// Interpolate every joint together so the tool moves in a straight-ish line
// and no single servo takes the whole load at once.
void moveTo(float base, float shoulder, float elbow, int steps, int stepMs) {
static float cur[3] = {0, 0, 0};
float target[3] = {base, shoulder, elbow};
for (int s = 1; s <= steps; s++) {
float t = (float)s / steps;
for (int j = 0; j < 3; j++) {
float a = cur[j] + (target[j] - cur[j]) * t;
pwm.setPWM(JOINTS[j].channel, 0, countsFor(JOINTS[j], a));
}
delay(stepMs);
}
memcpy(cur, target, sizeof(cur));
}
Interpolar todas as juntas simultaneamente importa tanto quanto a suavização. Mover as juntas uma de cada vez faz a ferramenta percorrer um caminho estranho pelo espaço de trabalho, o que é mais lento e muito mais propenso a colidir com algo durante o percurso.
Solução de problemas
| Sintoma | Causa provável | Solução |
|---|---|---|
| O braço alcança um ponto totalmente errado | Chapeu instalado em um ângulo arbitrário | Defina todos os servomotores a 90° antes de instalar os chapeus |
| A faixa de uma junta está deslocada em ~20° | O chapeu está um dente do estriamento fora | Remova e reinstale — isso não pode ser corrigido no programa |
| A placa reinicia quando o braço se move | Corrente dos servomotores passando pelo controlador | Fonte V+ separada, massa comum e capacitor grande |
| O braço cede na extensão máxima | Servomotor do ombro além do torque que ele suporta com folga | MG90S no ombro; use contrapeso; reduza a carga |
| Zune ao manter uma posição | Servomotor lutando contra uma carga no limite | Reduza a carga ou desative quando não precisar manter a posição |
| Não alcança perto da base | Alvo dentro do anel de alcance mínimo | Geometria esperada — |L1 − L2| é inalcançável |
| A cinemática inversa retorna NaN | Alvo além de L1 + L2 |
Teste a possibilidade de alcançar o alvo antes da trigonometria |
| Alcança de modo diferente conforme a direção | Folga na caixa de engrenagens, amplificada pelo comprimento do elo | Aproxime-se de cada alvo sempre pela mesma direção |
| Movimento violento com um novo comando | Servomotor indo na velocidade máxima | Interpole o movimento em etapas |
| A garra esmaga ou deixa cair objetos | Sem realimentação de força | Limite o ângulo de fechamento; acrescente espuma às mandíbulas |
Quando evoluir deste kit
Um kit de acrílico de 4 DOF é uma plataforma de ensino, e isso é explícito. Seus limites, na ordem em que você os encontrará:
Carga útil. Dezenas de gramas. Qualquer coisa mais pesada e o servomotor do ombro não conseguirá sustentar.
Repetibilidade. A folga nas caixas de engrenagem dos servomotores, somada à flexão dos elos de acrílico, faz com que o retorno à mesma posição comandada termine alguns milímetros fora dela. Quatro graus de folga no ombro, com alcance de 190 mm, resultam em mais de 13 mm na ferramenta.
Orientação do punho. Com quatro graus de liberdade, você pode posicionar a ferramenta em algum lugar, mas não escolher de forma independente o ângulo de aproximação. Um braço de 5 ou 6 DOF acrescenta um punho, o que torna possível “pegar isto pela lateral”.
| Atualização | O que proporciona |
|---|---|
| Servomotores MG90S em todas as juntas | Engrenagens metálicas — resistem a choques e têm menos folga |
| Elos de alumínio | Muito menos flexão, melhor repetibilidade |
| Servomotores MG996R + estrutura maior | Carga útil de verdade, centenas de gramas |
| Braço de 6 DOF | Orientação independente da ferramenta |
| Braço acionado por motor de passo ou BLDC | Repetibilidade medida em décimos de milímetro |
Nada disso altera a matemática. A cinemática de dois elos escrita para este kit usa o mesmo algoritmo que um braço melhor, e é exatamente por isso que vale construir primeiro sobre a estrutura barata.
Explore o grafo
Usado nestas montagens
Projetos, caminhos de aprendizagem e simuladores que incluem Kit de braço robótico de 4 DOF.
Perguntas
Perguntas frequentes sobre Kit de braço robótico de 4 DOF
O que é um braço robótico de 4 DOF?
Um braço robótico de 4 DOF (quatro graus de liberdade) tem quatro juntas controladas de forma independente—normalmente uma base giratória, um ombro, um cotovelo e uma garra. Esses quatro movimentos permitem que a ferramenta alcance uma faixa de posições sobre a mesa e pegue objetos. É o menor braço que ainda se parece com um manipulador de verdade, sem deixar de ser barato e fácil de controlar.
Quantos servomotores um braço robótico precisa?
Um por junta. Um braço de 4 DOF usa quatro servomotores—rotação da base, ombro, cotovelo e garra. Braços maiores acrescentam inclinação e rotação do punho para 5 ou 6 DOF. Como cada servomotor precisa de seu próprio canal PWM, os braços são o motivo clássico para adicionar um driver PCA9685 em vez de conectar os servomotores diretamente ao microcontrolador.
O que é o MeArm?
O MeArm é um popular kit de braço robótico de 4 DOF em acrílico cortado a laser, de código aberto e acionado por quatro microservomotores. É o arquétipo do braço robótico de mesa barato—muitos kits vendidos hoje são clones do MeArm ou variantes próximas. Todos são conectados e programados da mesma forma, portanto a cinemática e os conhecimentos sobre drivers são transferíveis entre eles.
Quanto um braço robótico de iniciação consegue levantar?
Pouco—dezenas de gramas na garra. O limite é o torque do servomotor multiplicado pela alavanca. O torque de travamento de ~1,8 kg·cm de um SG90 parece muito até ser repartido ao longo de um braço de 15 cm, onde a carga útil utilizável cai para algumas dezenas de gramas. Servomotores com engrenagem metálica e um braço mais curto ajudam; para levantar cargas de verdade, você precisa de um braço maior e com redução.
Preciso de uma PCA9685 para um braço robótico?
Não é obrigatório, mas é a ferramenta certa. Quatro servomotores funcionarão pelos pinos PWM de um Arduino se forem alimentados separadamente, mas uma PCA9685 libera os temporizadores do microcontrolador, comanda todas as juntas por dois pinos I²C e conduz a corrente dos servomotores por sua própria fonte—exatamente o que um braço multiarticulado precisa.
Leitura complementar