Go Down

Topic: Robo nao consegue virar as rodas (Read 977 times) previous topic - next topic

larocca

Fala galera, estou tentando fazer um robo mudar de direçao quando encontra um obstaculo, para isso, estou usando o IR Sharp.
Estou usando este chassi: http://produto.mercadolivre.com.br/MLB-219932176-kit-chassi-plataforma-p-robotica-basica-c-4-rodas-4x4-_JM
Ele possui dois motores, um controla as duas rodas do lado direito e o outro controla as duas do lado esquerdo.
Para controlar os motores, estou usando este shield: http://www.ladyada.net/make/mshield/index.html

Acontece que, quando ele detecta um obstaculo, ele muda a direcao do motor da esquerda, porem o mesmo nao esta funcionando, pois o robo parece nao ter força para fazer o movimento, as rodas param de girar e o robo fica parado.(Se eu seguro ele no ar, elas funcionam perfeitamente). Estou usando uma bateria de 9v ligada diretamente no arduino. Se o problema for alimentacao, o que voces me aconselham?

Segue abaixo o codigo que usei para faze-lo funcionar.
Code: [Select]

#include <AFMotor.h>

AF_DCMotor motorEsq(2, MOTOR12_64KHZ);
AF_DCMotor motorDir(1, MOTOR12_64KHZ);

int IRpin = 1;

void setup() {
  Serial.begin(9600);         
  Serial.println("Motor test!");
}

void loop() {
  motorDir.setSpeed(150);   
  motorEsq.setSpeed(150);
  float volts = analogRead(IRpin)*0.0048828125;
  float distance = 65*pow(volts, -1.10);         
  Serial.println(distance);                       
 
  if (distance > 30){
    motorDir.run(FORWARD);     
    motorEsq.run(FORWARD);
  }

  if (distance <= 30){
    motorDir.setSpeed(255);   
    motorEsq.setSpeed(255);   
    Serial.println("Obstaculo encontrado, virando a esquerda");
    motorDir.run(RELEASE);
    motorEsq.run(RELEASE);
    motorDir.run(FORWARD);
    motorEsq.run(BACKWARD);
    delay(1000);
  }
  delay(500);
}

bubulindo

Baterias de 9V para fornecer corrente para motores não é grande ideia... talvez umas 5 ou isso em paralelo conseguissem fornecer a corrente que precisas.

Experimenta outro tipo de pilhas (AA em paralelo e série), vê o tipo de motor que tens... e a tensão de alimentacão que ele precisa para ter um comportamento decente e faz um conjunto de pilhas que consiga fornecer isso.

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

larocca


Baterias de 9V para fornecer corrente para motores não é grande ideia... talvez umas 5 ou isso em paralelo conseguissem fornecer a corrente que precisas.

Experimenta outro tipo de pilhas (AA em paralelo e série), vê o tipo de motor que tens... e a tensão de alimentacão que ele precisa para ter um comportamento decente e faz um conjunto de pilhas que consiga fornecer isso.




Brigadão pelas dicas. Junto com o Chassi veio um alimentador AA em série para 3 pilhas. Coloquei 3 Eneloop 1.2v recarregáveis, mas mesmo assim não suportou, acredito que eu precise por mais pilhas em série, porém, vou sacrificar o peso, o que pode fazer com que ele continue sem força para girar.
Vou testar outra coisa hoje, se observares em meu programa, eu não faço um delay quando paro os motores(no momento que ele identifica um obstáculo), creio que eu esteja exigindo demais dos motores, pois ele encontra o obstaculo, pára, e sem delay nenhum já inverte a corrente. Acredito que eu precise por um delay antes de inverter a posição das rodas, de repente dar uma ré antes disso ainda. Vou testar hoje em casa e depois posto aqui o resultado.

Abraço

bubulindo

3 pilhas dessas fazem 3,6 Volt. O motor é para ser usado com quantos Volt? Já viste isso nos dados do motor?
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

larocca


3 pilhas dessas fazem 3,6 Volt. O motor é para ser usado com quantos Volt? Já viste isso nos dados do motor?


Sim, estas são as especificações dos motores:
* Tensão de até 6 v dc
* Corrente : de 160 a 390 mA

larocca

Mudei o programa utilizando o delay logo após ele ter parado os motores, ele agora se comporta como deveria, mas continua sem força para virar as rodas. Vou tentar agora colocar 6v direto no shield dos motores(basta tirar um jumper para que ele entenda que deve pegar a força externa e não a do arduino). Assim que comprar as pilhas e testar, volto a postar.

Abraço

Osias Neto

Amigo, tenta medir a tensão sobre o motor de alguma forma... Se quando você trava as rodas a tensão cai muito (mais de 0,5V), então o problema é alimentação realmente,
Se a tensão continua normal, infelizmente seu motor é muito fraco.
Se for o segundo caso você pode tentar aumentar o torque através de um caixa de redução ou uma relação com correias e pollias (ou substituí-lo).

Se precisar posso desenhar um circuitozinho aqui pra você medir a tensão sob o motor, mas não é nada complicado.

ATENÇÃO! No caso de "travar" o motor para verificar se há queda de tensão, não recomendo fazer isso por tempos muito longos, você pode queimar todo o seu circuito :s

larocca


Amigo, tenta medir a tensão sobre o motor de alguma forma... Se quando você trava as rodas a tensão cai muito (mais de 0,5V), então o problema é alimentação realmente,
Se a tensão continua normal, infelizmente seu motor é muito fraco.
Se for o segundo caso você pode tentar aumentar o torque através de um caixa de redução ou uma relação com correias e pollias (ou substituí-lo).

Se precisar posso desenhar um circuitozinho aqui pra você medir a tensão sob o motor, mas não é nada complicado.

ATENÇÃO! No caso de "travar" o motor para verificar se há queda de tensão, não recomendo fazer isso por tempos muito longos, você pode queimar todo o seu circuito :s


Pois é Osias, eu medi a tensão dos motores com um multimetro e tive um retorno de 3v máximo... média de 1.6v, usando a bateria de 9v que alimena o arduino.
Por isso vou testar passando 6v(que é o aceito pelos motores, segundo especificação do fabricante) diretamente para o shield dos motores(deixando a bateria de 9v apenas para o arduino).
Ae vou ter certeza se o problema é alimentação, ou se são os motores. Pode tb ser o peso do chassi(o que seria uma tremenda sacanagem, pois ele só tem o arduino + shield + 2 motores e a bateria 9v.

larocca

Problema resolvido, era realmente alimentacao. Comprei 4 pilhas duracell 1.5v e agora ele ta girando que eh uma beleza.

Obrigado a todos, graças a ajuda de voces consegui criar meu primeiro robo. Segue abaixo o link para o youtube. Ele ainda precisa de uns ajustes, principalmente quanto a desviar os obstaculos, mas ja da pra brincar um pouco.

Abraço a todos

http://youtu.be/TX2bdNsoNsg

Go Up