Solve the errors in the codes #include //Adafruit Motor Shield Library.First you must download and install AFMotor
Question:
Solve the errors in the codes
#include //Adafruit Motor Shield Library.First you must download and install AFMotor library
#include //Pololu QTR Sensor Library. Firstyou must download and install QTRSensors library
AF_DCMotor motor1(1, MOTOR12_1KHZ ); //create motor #1 using M1output on Motor Drive Shield, set to 1kHz PWM frequency
AF_DCMotor motor2(2, MOTOR12_1KHZ ); //create motor #2 using M2output on Motor Drive Shield, set to 1kHz PWM frequency
#define KP 2 //experiment to determine this, start by somethingsmall that just makes your bot follow the line at a slowspeed
#define KD 5 //experiment to determine this, slowly increase thespeeds and adjust this value. ( Note: Kp < Kd)
#define M1_minumum_speed 150 //minimum speed of the Motor1
#define M2_minumum_speed 150 //minimum speed of the Motor2
#define M1_maksimum_speed 250 //max. speed of the Motor1
#define M2_maksimum_speed 250 //max. speed of the Motor2
#define MIDDLE_SENSOR 4 //number of middle sensor used
#define NUM_SENSORS 5 //number of sensors used
#define TIMEOUT 2500 //waits for 2500 us for sensor outputs to golow
#define EMITTER_PIN 2 //emitterPin is the Arduino digital pin thatcontrols whether the IR LEDs are on or off. Emitter is controlledby digital pin 2
#define DEBUG 0
#define sensors
//sensors 0 through 5 are connected to analog inputs 0 through 5,respectively
QTRSensorsRC = ((unsigned char[]) { A4,A3,A2,A1,A0} ,NUM_SENSORS,TIMEOUT, EMITTER_PIN);
unsigned int sensorValues[NUM_SENSORS];
void setup()
{
delay(1500);
manual_calibration();
set_motors(0,0);
}
int lastError = 0;
int last_proportional = 0;
int integral = 0;
void loop()
{
unsigned int sensors[5];
int position = sensor.readLine(sensors); //get calibrated readingsalong with the line position, refer to the QTR Sensors ArduinoLibrary for more details on line position.
int error = position - 2000;
int motorSpeed = KP * error + KD * (error - lastError);
lastError = error;
int leftMotorSpeed = M1_minumum_speed + motorSpeed;
int rightMotorSpeed = M2_minumum_speed - motorSpeed;
// set motor speeds using the two motor speed variables above
set_motors(leftMotorSpeed, rightMotorSpeed);
}
void set_motors(int motor1speed, int motor2speed)
{
if (motor1speed > M1_maksimum_speed ) motor1speed =M1_maksimum_speed;
if (motor2speed > M2_maksimum_speed ) motor2speed =M2_maksimum_speed;
if (motor1speed < 0) motor1speed = 0;
if (motor2speed < 0) motor2speed = 0;
motor1.setSpeed(motor1speed);
motor2.setSpeed(motor2speed);
motor1.run(FORWARD);
motor2.run(FORWARD);
}
//calibrate for sometime by sliding the sensors across the line,or you may use auto-calibration instead
void manual_calibration() {
int i;
int qtrrc;
for (i = 0; i < 250; i++)
{
qtrrc.calibrate(QTR_EMITTERS_ON);
delay(20);
}
if (DEBUG) {
Serial.begin(9600);
for (int i = 0; i < NUM_SENSORS; i++)
{
Serial.print(qtrrc.calibratedMinimumOn[i]);
Serial.print(' ');
}
Serial.println();
for (int i = 0; i < NUM_SENSORS; i++)
{
Serial.print(qtrrc.calibratedMaximumOn[i]);
Serial.print(' ');
}
Serial.println();
Serial.println();
}
}
I am getting errors in this code for the arduino version 1.8.16.Can I please get assistance with solving the error codes ? This isa line following code for a aoutonomous smart car using a PololuQTR-8RC sensor, Arduino mega 2560, and a L293D DC Motor DriveShield Stepper Motor Drive Shield Expansion Board for Arduino.
Project management the managerial process
ISBN: 978-0073403342
5th edition
Authors: Eric W Larson, Clifford F. Gray