• Welcome to LusoRobótica - Robótica em Português.
 

Mais um membro da lusorobótica

Started by miguelwind, 10 de April de 2009, 12:37

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TigPT

Quote from: PDI on 18 de July de 2009, 13:36
Já agora qual a finalidade do pino "Vin"
Vin disponibiliza-te uma ligação directa à alimentação k entra no arduino pelo jacket preto (Voltage INput). Se o alimentares por USB esse fio não tem nada ligado. Se alimentares por exemplo com bateria de 6V consegues tirar 6V de VIN para alimentares os servos.

Quote from: miguelwind on 18 de July de 2009, 13:43
Eu estou a usar só um servo.
Mesmo assim, o servo pode ser muito potente e as pilhas estarem fracas, o que causaria o reset. Os lides piscarem é mesmo de o arduino estar a inicializar-se. O que aconteceu quando alimentaste com 5V e utilizaste apenas porta usb?

miguelwind

Nota pessoal: utilizar sempre pilhas novas e não confiar na mãe.  :-X ;D

Epá desculpem lá. Era mesmo das pilhas. Já arranjei um multimetro e pilhas recarregaveis. Obrigado a todos, são 5 estrelas. Continuem a ajudar  :).

Abraço

TigPT

Ainda bem que está tudo resolvido ;) ao menos aprendeste como se despista erros e quais os possíveis erros que podem acontecer :P

miguelwind


miguelwind

-Smalluino?
-confere!  ;D

Pois é, hoje terminei aquele que é o meu 1º robot não autónomo com o arduino, o smalluino. Aconselho a todos que estejam a começar, tal como eu, a construírem um porque para além de muito acessível, aprendemos muita coisa.

Próximo passo: brincar com os LDR e tentar com que o smalluino já seja um pouco autónomo.

Amanhã ponho fotos.

E já agora, alguém tem uns IR sharp a mais?  :D

amando96

faz aqueles do tutorial do três, com receptores IR duma tele, e uma led IR, eu fiz, funcionam 5* e custam uns 2€ para fazer...

miguelwind

Boa dica, muito obrigado. Tinha para aqui um robot que tinha umas coisas dessas, a ver se encontro.

miguelwind

Boa tarde.
Aqui vão os progressos e as duvidas de hoje:
Já liguei um LDR ao arduino e fiz um led piscar, variando de frequência consoante a luminosidade. Feito isto, fiz o mesmo, mas com o adruino a enviar os sinais para o pc, de forma a ver no serial monitor.

Depois tentei ligar 2 LDR ao arduino e tentar variar a velocidade dos servos consoante a luz, para andar por onde houver luz. Por exemplo: o LDR da esquerda apanha mais luz do que o da direita, o servo da esquerda mantém a velocidade, mas o da direita diminui, de forma a que vá para o local com mais luz, até que quando a luminosidade for a mesma os dois servos começam a andar à mesma velocidade. É nesta fase que estou e foi aqui que começaram as minhas duvidas.
Confesso já que ainda não li muito sobre programação e tudo o que sei até agora aprendi a ler os outros códigos e recorrendo à lógica. Ora o código que eu estou a utilizar de momento (criado por mim, com base noutros códigos e por isso deve ter muiiitos erros) é o seguinte:
int LDR1 = 0;
int LDR2 = 1;

int LDRVal1 = 0;
int LDRVal2 = 0;

int motorEsq = 11;
int motorDrt = 10;

void setup() {
pinMode(motorEsq, OUTPUT);
pinMode(motorDrt, OUTPUT);
Serial.begin(9600); }

void loop() {
   

    LDRVal1 = analogRead(LDR1); 
    LDRVal2 = analogRead(LDR2);

       
    Serial.println(LDRVal1);
    Serial.println(LDRVal2);
    delay(100);
 
      if (LDRVal1 > LDRVal2) {
         analogWrite(motorEsq, 152);
         analogWrite(motorDrt, 127);
    } else if (LDRVal1 < LDRVal2) {
          analogWrite(motorEsq, 127);
          analogWrite(motorDrt, 152);
    } else if (LDRVal1 == LDRVal2) {
          analogWrite(motorEsq, 152);
          analogWrite(motorDrt, 152);
    }}


Se me puderem dizer o que está mal agradecia.
Problemas principias:
Os servos por vezes rodam em sentido contrario.
Parece que um dos LDR não está a enviar sinal para o arduino.

Os LDR estão ligados da seguinte forma (tambem n tenho a certeza se está completamente correcto):



Duvidas:
Quais são as unidades da velocidade dos motores?

Obrigado.
Agora já não dá para por fotos, porque está demontado, mas assim que montar tiro.

TigPT

Antes de mais, parabéns pela documentação do problema, facilitas-nos muito a vida, e não só fica gravado para mais tarde consultares, como pode servir para outros!

Antes de mais, dei uma olhadela na diagonal no código e vi logo um erro, quando isto acontece, o melhor é esquecer tudo o resto e primeiro resolvermos esta dificuldade.

Quando tu colocas os servos no robot, eles ficam de "costas" um para o outro, ambas as rodas ficam viradas para a parte de fora do robot. Assim sendo, eles estão posicionados de forma que para o robot andar em frente, um tem que rodar num sentido, e o outro para acompanhar esse sentido, tem que rodar no sentido contrário. Espero me ter feito entender, caso não percebas, mete os dois servos a andar com o mesmo valor e vais ver que o robot vai rodar sobre ele próprio.

Assim, os valores são 127 =  parado
127 + x = frente, então no segundo motor terás que meter 127 - x para ele também andar em frente.

Dito isto, acho que já podes ir te divertir mais um bocado e aprender mais umas coisas! :P

miguelwind

ahhhh
Pois, muito obrigado. Vou já alterar isso. E o circuito está bem?

TigPT


miguelwind

E já agora, li que quando se tira o potenciometro de um servo devem-se colocar 2 resistências de 2.5K para substitui-lo. De 2.2K também funciona? E o servo funciona como se tivesse sempre com o potenciometro centrado? É que o potenciometro dos meus servos anda sempre a fugir...

TigPT

Sim, no fundo é isso.

Eu prefiro medir o valor máximo do potenciómetro do servo, e depois substituir por duas resistências de metade desse valor. Assim tenho a garantia de que fica tudo ok.

miguelwind


TigPT

Com um Ohmímetro ou Multímetro (que também faz de Ohmímetro). É um equipamento que mede a resistência entre dois pontos.