Hi friends,
I am trying to make a line-follower robot using Baby Orangutan and Pololu QTR 8RC. I am using Arduino UNO to program the Baby Orangutan. I typed the code below but I couldnt manage to work. I got errors saying “undefined reference to ‘qtr_rc_init’, undefined reference to ‘qtr_calibrate’, undefined reference to ‘qtr_read_line’”. Could you help me solve the problem?
Code:
#include <orangutan.h>
int Kp = 50;
int Kd = 2500;
int M1 = 160;
int M2 = 160;
int main()
{
int lastError = 0;
unsigned char qtr_rc_pins[]={IO_D7, IO_C5, IO_C4, IO_C3, IO_C2, IO_C1, IO_C0, IO_D4};
qtr_rc_init(qtr_rc_pins,8,2000,255);
int i;
for (i = 0; i < 250; i++) // make the calibration take about 5 seconds
{
qtr_calibrate(QTR_EMITTERS_ON);
delay(20);
}
while(1)
{
unsigned int sensors[8];
//int position = qtr_read_line_white(sensors, QTR_EMITTERS_ON);
int position = qtr_read_line(sensors, QTR_EMITTERS_ON);
int error = position - 1000;
int motorSpeed = Kp * error + Kd * (error - lastError);
lastError = error;
int m1Speed = M1 + motorSpeed;
int m2Speed = M2 - motorSpeed;
if (m1Speed < 0)
m1Speed = 0;
if (m2Speed < 0)
m2Speed = 0;
// set motor speeds using the two motor speed variables above
M1_forward(m1Speed);
M2_forward(m2Speed);
}
return 0;
}