LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: pedrocas98 em 19 de Dezembro de 2013, 01:53
-
Boas, eu sou iniciante nisto da programação do arduino e precisava de ajuda de alguém que percebesse do assunto.
Eu estou a realizar um projeto simples que vi aqui http://www.instructables.com/id/Line-following-Robot-with-Arduino/ (http://www.instructables.com/id/Line-following-Robot-with-Arduino/) que é basicamente um robô que segue uma linha preta.
Mas na introdução do código no arduino obtenho este erro:
In file included from QTRRC_Line_Follow.pde:2:
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/engine.h:5:22: error: WProgram.h: No such file or directory
In file included from QTRRC_Line_Follow.pde:2:
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/engine.h: In function 'void engineSetup()':
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/engine.h:23: error: 'OUTPUT' was not declared in this scope
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/engine.h:23: error: 'pinMode' was not declared in this scope
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/engine.h: In function 'void motor(int, int)':
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/engine.h:33: error: 'HIGH' was not declared in this scope
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/engine.h:41: error: 'LOW' was not declared in this scope
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/engine.h:45: error: 'analogWrite' was not declared in this scope
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/engine.h:46: error: 'digitalWrite' was not declared in this scope
In file included from QTRRC_Line_Follow.pde:4:
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/navigation.h: In function 'void calibrate(PololuQTRSensorsRC*)':
C:\Users\Me\Documents\Arduino\libraries\PololuQTRSensors/navigation.h:21: error: 'delay' was not declared in this scope
gostaria que me ajudassem a resolver isso.
[color=red]link da library[/color] »» [url=https://www.box.com/s/c26rsnfenj1ifd2gtyvg]https://www.box.com/s/c26rsnfenj1ifd2gtyvg[/url]
[color=red]*Visualizar o link do projeto para se obter uma ideia do que estou a falar*[/color]
[color=red]código do arduino:[/color]
#include "config.h"
#include "engine.h"
#include "PololuQTRSensors.h"
#include "navigation.h"
PololuQTRSensorsRC qtr((unsigned char[]) {2,4,5,6,7,8,9,10}, NUM_OF_SENSORS);
void setup(){
#ifdef DEBUG
Serial.begin(9600);
#endif
engineSetup();
calibrate(&qtr);
delay(2000);
motor(MotorA,FORWARD_MAX);
motor(MotorB,FORWARD_MAX);
}
void loop(){
int pos = readLine(&qtr);
if (pos != LINE_LOST){
if (pos == EDGE_RIGHT){
motor(MotorA,REVERSE_MAX);
motor(MotorB,FORWARD_MAX);
}else if (pos == EDGE_LEFT){
motor(MotorA,FORWARD_MAX);
motor(MotorB,REVERSE_MAX);
}else{
int error = pos - MIDDLE_POS;
int m1Speed = FORWARD_MAX;
int m2Speed = FORWARD_MAX;
if (error < 0)
m1Speed = map(error,-MIDDLE_POS,0,REVERSE_MAX,FORWARD_MAX);
else
m2Speed = map(error,0,MIDDLE_POS,FORWARD_MAX,REVERSE_MAX);
#ifdef DEBUG
Serial.print(error); Serial.print(" ");
Serial.print(m1Speed); Serial.print(" "); Serial.println(m2Speed);
#endif
motor(MotorA,m1Speed);
motor(MotorB,m2Speed);
}
}
}
obrigado, espero acabar isto rapidamente. ;D
-
Acho que tens duas soluções: usas uma versão mais antiga do arduino, abaixo da 1.0 (por exemplo a 0023), ou então vais às bibliotecas do projecto que descarregaste, procuras em todas pela linha #include "WProgram.h" que estará no inicio das bibliotecas e onde a encontrares substituis por #include "Arduino.h" como indicado aqui (http://forum.arduino.cc/index.php/topic,97455.0.html).