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

[Dúvidas] Iniciação à robótica

Started by NelsonPRSousa, 17 de October de 2010, 13:57

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

NelsonPRSousa

Quote from: senso on 12 de December de 2010, 13:43
Basta irem ao site da polulu que são os criadores desse sensor e ler tudo o que lá tem...
Já os tenho ligados. Experimentei filmar e realmente noto o azul/arroxado que os sensores emitem quando estão ligados.

Agora o objectivo é programar de forma a conseguir seguir a linha preta. Vai doer, pois vai!  8)
Saudações robóticas a todos,
Nelson de Sousa

NelsonPRSousa

Olá pessoal.

Estou a tentar começar a programar com os sensores QTR-8RC.

Pelo que sei, primeiro tenho que determinar valores, os quais o sensor deverá ler. Estou certo? Alguém sabe como isso se faz?

Entretanto tenho o GND do sensor no GND do Arduino, e o VCC e o LedOn do sensor nos 5V do arduino.

Cada sensor está em cada Pin digital do Arduino, ou seja, 1,2,3,4,5,6,7,8.

Espero a vossa ajuda,
Obrigado!  ::)
Saudações robóticas a todos,
Nelson de Sousa

senso

Até tens uma biblioteca para o arduino e código de exemplo no site da polulu...
Avr fanboy

NelsonPRSousa

Então supostamente eu meto um código no Arduino que fará com que este receba certos valores dos sensores, certo?

Então depois onde vejo esses valores?

Será que é este o código?

   1. void loop() 
   2. { 
   3.   unsigned int sensors[3]; 
   4.   // get calibrated sensor values returned in the sensors array, along with the line position 
   5.   // position will range from 0 to 2000, with 1000 corresponding to the line over the middle sensor 
   6.   int position = qtr.readLine(sensors); 
   7.   
   8.   // if all three sensors see very low reflectance, take some appropriate action for this situation 
   9.   if (sensors[0] > 750 && sensors[1] > 750 && sensors[2] > 750) 
  10.   { 
  11.     // do something.  Maybe this means we're at the edge of a course or about to fall off a table, 
  12.     // in which case, we might want to stop moving, back up, and turn around. 
  13.     return; 
  14.   } 
  15.   
  16.   // compute our "error" from the line position.  We will make it so that the error is zero when 
  17.   // the middle sensor is over the line, because this is our goal.  Error will range from 
  18.   // -1000 to +1000.  If we have sensor 0 on the left and sensor 2 on the right,  a reading of -1000 
  19.   // means that we see the line on the left and a reading of +1000 means we see the line on 
  20.   // the right. 
  21.   int error = position - 1000; 
  22.   
  23.   int leftMotorSpeed = 100; 
  24.   int rightMotorSpeed = 100; 
  25.   if (error < -500)  // the line is on the left 
  26.     leftMotorSpeed = 0;  // turn left 
  27.   if (error > 500)  // the line is on the right 
  28.     rightMotorSpeed = 0;  // turn right 
  29.   
  30.   // set motor speeds using the two motor speed variables above 
  31. } 
Saudações robóticas a todos,
Nelson de Sousa

senso

Nada disso, esse código tem um return dentro do loop?!?! isso vai dar barraca, e pelo que percebo das variaveis espera que sejam sensores analógicos e não digitais.
http://www.pololu.com/catalog/product/961/resources
Vais ver o link chamado Arduino library for the polulu bla bla bla, tem um pdf e tudo.
Avr fanboy