Hi,I need to increase my robot’s speed.So,can you help me?
I added to your code time.After time is end,robot stopped.And now I want in order to robot in some point increase his speed.Can you help?
#include <ZumoReflectanceSensorArray.h>
#include <ZumoMotors.h>
#include <ZumoBuzzer.h>
#include <Time.h>
#include <Pushbutton.h>
ZumoBuzzer buzzer;
ZumoReflectanceSensorArray reflectanceSensors;
ZumoMotors motors;
Pushbutton button(ZUMO_BUTTON);
int lastError = 0;
const int MAX_SPEED = 600;
void setup()
{
buzzer.play(">g32>>c32");
reflectanceSensors.init();
button.waitForButton();
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
delay(1000);
int i;
for(i = 0; i < 80; i++)
{
if ((i > 10 && i <= 30) || (i > 50 && i <= 70))
motors.setSpeeds(-200, 200);
else
motors.setSpeeds(200, -200);
reflectanceSensors.calibrate();
delay(20);
}
motors.setSpeeds(0,0);
digitalWrite(13, LOW);
buzzer.play(">g32>>c32");
button.waitForButton();
buzzer.play("L16 cdegreg4");
while(buzzer.isPlaying());
}
time_t t = now();
void loop()
{
if(second(now() - t) >= 20.0) {
motors.setSpeeds(0, 0);
return;
}
unsigned int sensors[6];
int position = reflectanceSensors.readLine(sensors);
int error = position - 2500;
int speedDifference = error / 4 + 6 * (error - lastError);
lastError = error;
int m1Speed = MAX_SPEED + speedDifference;
int m2Speed = MAX_SPEED - speedDifference;
if (m1Speed < 0)
m1Speed = 0;
if (m2Speed < 0)
m2Speed = 0;
if (m1Speed > MAX_SPEED)
m1Speed = MAX_SPEED;
if (m2Speed > MAX_SPEED)
m2Speed = MAX_SPEED;
motors.setSpeeds(m1Speed, m2Speed);
}