Como modificar servos motores: Duas Super Modificações

Servo-Motor
Font Size

Fala, makers! Aqui quem fala é o Davi Colares e hoje vou trazer para vocês duas super modificações que vocês podem fazer em seu servo motor. Curtiu? Então vem comigo!

Obs.: Irei começar o tutorial assumindo que você entende o funcionamento básico de um servo, você pode encontrar mais informações aqui.

Rotação Contínua no Servo Motor

Se você já teve a oportunidade de usar um servo motor deve saber bem da limitação de rotação, geralmente 180º, isso acontece, pois, os servos têm seu eixo conectado a um potenciômetro e são mecanicamente impedidos de passar da angulação em que foram fabricados.

Contudo, a praticidade dos servos, tamanho reduzido e poderosa caixa de redução, fez com que surgissem formas de burlar isso. A mais simples, é apenas esquecer a placa controladora que existe dentro do servo e conectar os cabos diretamente no motor. Por ser a mais simples é também a menos prática, pois você transformou seu servo em uma caixa de redução apenas.

Modificação Inteligente

Entendendo que o servo motor funciona ajustando seu ângulo a partir do feedback que sua placa controladora recebe do potenciômetro conectado ao eixo e o valor recebido através do sinal. Podemos modificá-lo de modo a preservar a ponte H da controladora e ainda termos o recurso de controlar a velocidade.

Servo Motor Aberto; Fonte: Hackaday.io

Isso soa maravilhoso, não? Transformar seu servo motor comum em um motor com controle de velocidade, caixa de redução e ponte H, de fato isso é incrível, e o melhor… É super simples!

Desse modo, tudo que você precisará fazer é conectar o seu servo a uma placa Arduino ou similar e upar um código que faça seu eixo parar na metade da angulação máxima.

<code>#include &lt;Servo.h&gt;

Servo myservo; // Nomeamos o nosso servo

void setup() {
  myservo.attach(3); // Conectamos o Signal no Pino 3
}

void loop() {
  myservo.write(90);    // Enviamos metade do ângulo máximo de rotação, no meu caso 90
  delay(50);            // Um pouco de time para não queirmarmos nosso amigo
}
</code>

Agora que você calibrou seu servo, desconecte-o da placa e desparafuse o invólucro plástico. Você irá notar que o servo é constituído de uma caixa central e uma tampa superior e inferior.

Esquema Servo Motor; Fonte: Autor

Desse modo, você encontrará na parte superior: a caixa de redução, não mexa nisso agora, e embaixo: a placa controladora, motor e o potenciômetro. Com muito cuidado retire o eixo do potenciômetro do orifício em que ele está encaixado, você pode confirmar se ele está na posição correta religando o servo na sua placa com cuidado. Se o motor se movimentar, tente mexer no eixo do potenciômetro até achar a posição em que ele para. Agora você pode passar cola no eixo do potenciômetro ou apenas deixa ele distante do orifício e fechar a caixa.

E pronto! Seu motor com velocidade variável está pronto, se você mandar valores maiores de 90 ele gira para um lado, menores para o outro e quanto mais distante de 90, maior a velocidade com que ele irá girar.

Servo Motor com Feedback

Agora irei te mostrar uma modificação mais simples, mas não por isso menos importante, muito pelo contrário! Com essa modificação você poderá receber no Arduino variações externas na rotação do Servo Motor, isso significa que você pode, por exemplo, gravar movimentos para que depois a placa repita. Legal, mas como diabos faz isso?

Esquema de Funcionamento do Servo; Fonte: Autor

Acima, você pode observar o funcionamento de um servo comum, a placa microcontroladora, Arduino, envia um sinal para o controlador interno do servo. Ele então ordena o servo para se movimentar até achar aquela posição e o que torna isso possível é o feedback que é enviado de volta para a placa interna. Simplificando, o motor irá girar até que o potenciômetro condiza com o valor especificado através do signal.

Sabendo disso, podemos soldar um fio diretamente no potenciômetro e assim teremos 4 fios saindo do Arduino, através do fio do potenciômetro poderemos saber o quanto o eixo do motor movimentou e avisar ao Arduino, o nosso programa poderá então replicar a mudança no servo.

Funcionamento do Servo Modificado para Feedback; Fonte: Autor
<code>//O objetivo desse código é mudar gradualmente o ângulo do nosso servo e
//printar no Monitor Serial
#include &lt;Servo.h&gt; 

int feedbackPin = A0;
int feedbackValue; // Valor que iremos receber de feecback
Servo myservo; // Nomeamos nosso Servo
 
void setup() 
{ 
  Serial.begin(9600); //Monitor Serial
  myservo.attach(3); 
  
  myservo.write(0); //Setamos o motor no zero
 
  for (int servoPos = 0; servoPos &lt;=180; servoPos = servoPos + 5){ // Aumenta de 5 em 5    
    myservo.write(servoPos); //Posição Servo Motor
    delay(1000); // Um pouco de tempo pra não queimar nosso amigo 
    
    feedbackValue = analogRead(feedbackPin); //Ler valor de Feecback (A magia acontece aqui) 
    Serial.print("Posição= "); // Escreve no monitor
    Serial.print(servoPos);
    Serial.print("\t");
    Serial.println(feedbackValue); 
  }
 
  myservo.write(0); //Setamos o motor no zero
  
  Serial.println("Finished!");   // Printamos o término
 
}  
void loop()
{
}</code>

Assim, tudo que você precisa fazer é soldar um cabo na perna central do potenciômetro e desgastar um pouco o invólucro do servo, criando uma saída para esse quarto fio.

A gente se despede por aqui, se você gostou e quer mais artigos como esse sobre modificações e hackings de eletrônicos, comenta aí embaixo e até a próxima!

Posts relacionados

Placar Eletrônico com Display OLED, Arduino e Buzzer!

por Marcos Pena
1 mês ago

Utilizando o sensor de presença com Arduino

por autocore
8 anos ago

O que todo maker deve ter em sua bancada.

por autocore
7 anos ago
Sair da versão mobile