collapse

* Links de Robótica

* Posts Recentes

Medir Agua que está no Poço por filjoa
[Ontem às 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Palavras Cruzadas por Njay
[19 de Setembro de 2017, 02:24]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


Apresentação por TigPT
[17 de Setembro de 2017, 07:31]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]


Preparar bancada de testes por jm_araujo
[14 de Setembro de 2017, 10:24]

Autor Tópico: [Vídeo] Modificar um Motor Servo para Rotação Contínua  (Lida 20228 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 643
    • Guibot
[Vídeo] Modificar um Motor Servo para Rotação Contínua
« em: 22 de Julho de 2009, 21:29 »
Aqui fica um novo vídeo, em que o Njay nos demonstra outra maneira de modificar motores servos  :)

« Última modificação: 22 de Julho de 2009, 22:54 por metRo_ »

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.300
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #1 em: 22 de Julho de 2009, 21:48 »
certo.. tá bem explicado e tal.. só que, a meu ver, o problema começa kd se liga o servo ao arduino e o servo treme.. e kd o abres de novo e tentas acertar o potenciometro e nunca chegas ao ponto ideal em que o servo pára por completo.. k acho que era disso k o pessoal se queixa kd os modificam..

(já me aconteceu acertar à primeira e tb nunca conseguir acertar com o centro..)
« Última modificação: 22 de Julho de 2009, 23:02 por metRo_ »

Online TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.234
    • Tiago Rodrigues
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #2 em: 22 de Julho de 2009, 21:50 »
O vídeo está muito bom, parabéns!

Só acrescentaria a calibração. Com o servo aberto, ligar a um PWM de 50% e afinar o potenciómetro com uma chave até ele parar e ficar sem tremer. Nesta altura, é k se mete a cola e se fecha o servo.
« Última modificação: 22 de Julho de 2009, 23:02 por metRo_ »

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.086
    • Tróniquices
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #3 em: 22 de Julho de 2009, 21:51 »
Quando queres parar, desligas o pino do PWM e tá o problema resolvido.
Esse problema também pode acontecer com resistências, não é exclusivo de potenciómetros.
« Última modificação: 22 de Julho de 2009, 23:02 por metRo_ »

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 643
    • Guibot
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #4 em: 22 de Julho de 2009, 21:52 »
Nós modificámos 2, um deles ficou perfeito, nos 90º parava por completo.
O outro tivemos que subir mais um ou dois graus para faze-lo parar completamente.

Na biblioteca MegaServo há a possibilidade de fazer detach() do servo, nunca experimentei mas isto deve desligá-lo.
« Última modificação: 22 de Julho de 2009, 23:02 por metRo_ »

Online TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.234
    • Tiago Rodrigues
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #5 em: 22 de Julho de 2009, 21:54 »
Martelar código nunca foi boa prática, é bem melhor meter logo o hardware a 100% pois mais tarde ou mais cedo vai ser preciso fazer ajustes por software.
« Última modificação: 22 de Julho de 2009, 23:02 por metRo_ »

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.300
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #6 em: 22 de Julho de 2009, 21:55 »
hmm.. n sabia disso (de desligar o pwm)..

mas outra duvida: quando acontece ele n ficar calibrado ao centro, kd se pedem velocidades máximas pra um e pro outro lado, as velocidades serão as mesmas?
« Última modificação: 22 de Julho de 2009, 23:01 por metRo_ »

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 643
    • Guibot
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #7 em: 22 de Julho de 2009, 22:01 »
sim, mas nota que os motores dc "normais" nunca atingem a mesma velocidade em ambos os sentidos, são mesmo feitos para girarem com mais velocidade num dos sentidos.
« Última modificação: 22 de Julho de 2009, 23:01 por metRo_ »

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.300
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #8 em: 22 de Julho de 2009, 22:02 »
é possível.. nunca testei e n sabia disso.. :)
« Última modificação: 22 de Julho de 2009, 23:01 por metRo_ »

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.086
    • Tróniquices
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #9 em: 22 de Julho de 2009, 22:07 »
Martelar código nunca foi boa prática, é bem melhor meter logo o hardware a 100% pois mais tarde ou mais cedo vai ser preciso fazer ajustes por software.

Não é martelar código. O hardware não é perfeito, e o software tem flexibilidade para contornar as pequenas imperfeições do hardware (mundo real). Um dia ele leva uma pancada maior, ou fica esquecido num automóvel por onde passam 45ºC ou simplesmente está calor e o potênciómetro muda ligeiramente, mesmo estando colado. Aí vais ter à mesma que fazer um ajuste de software.

mas outra duvida: quando acontece ele n ficar calibrado ao centro, kd se pedem velocidades máximas pra um e pro outro lado, as velocidades serão as mesmas?

Parece-me que sim, que são exactamente iguais, até porque basta desviar um bocadinho o PWM do ponto em que ele está parado para ele atingir a velocidade máxima. Quanto a essa assimetria de que fala o guibot, nunca ouvi falar e não me parece que assim seja; se por acaso assim for, essa "limitação" não deve estar na mecânica. Para que iriamos querer um servo (normal) que rodasse para um lado mais depressa do que para o outro? Não faz sentido...

Actualização:
A velocidade do motor no servo depende de quão afastado ele está (ou pensa que está) do seu ponto de equilibrio. Só quando ele se aproxima muito do ponto de equilibrio é que começa a reduzir a velocidade, caso contrário anda à valocidade máxima.

Há motores DC que são fabricados para rodarem "melhor" para um dos lados, mas geralmente estamos a falar de motores "maiores" (industriais ou de veículos eléctricos), mas num servo isso não faz sentido...
« Última modificação: 22 de Julho de 2009, 23:01 por metRo_ »

Online TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.234
    • Tiago Rodrigues
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #10 em: 22 de Julho de 2009, 22:10 »
Só comentei pois quem o queria calibrar sem ser a olhometro fica com ele bom de origem. Cada um é livre de tomas as filosofias que quiser. pode ser boa prática parar o PWM, agora utilizar isso para não o calibrar, não me parece correcto!
« Última modificação: 22 de Julho de 2009, 23:01 por metRo_ »

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.086
    • Tróniquices
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #11 em: 22 de Julho de 2009, 22:18 »
Podes sempre efectuar mais 2 operações na modificação acima e ficas com um ponto de ajuste manual, que é

1) furar duma ponta à outra a engrenagem preta (broca de 2mm)
2) fazer um corte no veio do potenciómetro para que lá encaixe uma chave de fendas

Com isto tens o teu ponto de ajuste (calibração).

Não entendo o que queres dizer com parar o PWM não ser boa prática de calibração. Parar o PWM é só para garantir que quando é suposto ele estar parado, ele está mesmo parado e não a tremer. A calibração tens que a fazer à mesma, ou rodando o eixo do potênciómetro ou ajustando os valores no software; mexer no software é a minha versão favorita, pois quanto menos se mexer no hardware melhor (furar e cortar cria particulas que não dão saúde às engrenagens se não forem muito bem removidas, e além disso é mais trabalho).

Não sei bem como é que o analogWrite configura o periférico de PWM, mas no teu Smalluino provavelmente só deves precisar de trocar isto

analogWrite(motorXXX, 127);

por isto

analogWrite(motorXXX, 0);

para um servo deixar de ter o problema de ficar a tremer quando pára.
« Última modificação: 22 de Julho de 2009, 23:01 por metRo_ »

Online TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.234
    • Tiago Rodrigues
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #12 em: 22 de Julho de 2009, 22:33 »
Como eu disse anteriormente, as calibrações são sempre necessárias, mas se já tivermos um hardware bom à partida, os ajustes serão menores e por isso ficas com mais margem para ajustes.

Para além de tudo isso, dá para configurar o tempo máximo e mínimo dos pulsos e assim ajustar o meio para o sitio certo! Mas lá está, quanto mais software, mais pesado o micro vai ficar para fazer uma tarefa que devia de ser simples se o hardware estivesse bom!

Deixo um código meu de teste de servos onde faço esse ajuste:

Código: [Seleccione]
#include <Servo.h>

Servo myservo1;
Servo myservo2;
Servo myservo3;

int min = 544;
int max = 2600;

void setup()
{
  myservo1.attach(9, min, max) ;
  myservo2.attach(10, min, max);
  myservo3.attach(11, min, max);
}

void loop()
{
  myservo1.write(90);  
  myservo2.write(90);
  myservo3.write(90);
  delay(1000);
  
  myservo1.write(0);  
  myservo2.write(0);
  myservo3.write(0);
  delay(1000);
  
  myservo1.write(180);  
  myservo2.write(180);
  myservo3.write(180);
  delay(1000);
  
  
}
« Última modificação: 22 de Julho de 2009, 23:00 por metRo_ »

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.086
    • Tróniquices
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #13 em: 22 de Julho de 2009, 22:55 »
Como eu disse anteriormente, as calibrações são sempre necessárias, mas se já tivermos um hardware bom à partida, os ajustes serão menores e por isso ficas com mais margem para ajustes.

Para ajustes maiores ou menores, o software é o mesmo. Não tens menos software por teres ajustes menores...

Para além de tudo isso, dá para configurar o tempo máximo e mínimo dos pulsos e assim ajustar o meio para o sitio certo! Mas lá está, quanto mais software, mais pesado o micro vai ficar para fazer uma tarefa que devia de ser simples se o hardware

Não tanto quanto isso. Podes ter um sketch que faz a calibração e guarda o valor central em EEPROM para cada servo, e depois a tua aplicação vai lá ler. A leitura de um valor da EEPROM são meia dúzia de instruções. No teu Smalluino tens valores constantes para o PWM, só que também não tens a flexibilidade de ter um controle progressivo da velocidade; quando o quiseres fazer vais ter que substituir os valores constantes por variáveis e aí o único código que a calibração por software tem "a mais" é a 1/2 dúzia de instruções para ler da EEPROM. Se um dia precisares de re-calibrar, só tens que carregar o sketch de calibração, efectuá-la, e depois os novos valores ficam guardados em EEPROM, não sendo necessário sequer alterar e re-compilar o sketch do robot.

Online TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.234
    • Tiago Rodrigues
Re:[Vídeo] Modificar um Motor Servo para Rotação Contínua
« Responder #14 em: 22 de Julho de 2009, 23:04 »
Njay.. parece que não falamos a mesma língua... se não tiveres calibração o código é nenhum. É óbvio que para valores diferentes o custo vai ser igual sendo maior ou menor, mas como eu disse, quanto mais alterares por software, menos podes alterar no futuro se os erros forem acumulando!

Existem mil e uma alternativas, a ideia aqui é o keep it simple. Se um membro quer que o servo fique bom, quer algo simples. É como estares a dizer que para levar uma mala de viagem de carro de 100km, em vez de meter na bagageira, vais levar um atrelado pois se quiseres meter mais malas, é fácil.

Vamos lá a ser objectivos e em vez de discutir o sexo dos anjos, ajudar quem se está a iniciar, afinal era para isso que servia este post. Podemos abordar melhor esse assunto com outra finalidade noutro tópico ;)
« Última modificação: 22 de Julho de 2009, 23:11 por metRo_ »