int motorControl(double error_signal)
{
  printf(" error signal: %f\n",error_signal);
  int SPEED = 80;
  double modSpeed;
    //if too far left
    if(error_signal < 0){
      modSpeed = speedCheck(0, SPEED, SPEED-error_signal);
      set_motor(2,SPEED);//right motor
      set_motor(1,SPEED/2);//left motor
      printf("Too far left!\n");
      printf("Left motor: %d Right motor %d\n",SPEED, modSpeed);
    }
    //if too far right
    else if(error_signal > 0){
      modSpeed = speedCheck(0, SPEED, SPEED-error_signal);
      set_motor(2,SPEED/2);
      set_motor(1,SPEED);
      printf("Too far right!\n");
      printf("Left motor: %d Right motor %d\n", modSpeed, SPEED);
    }
    //if centered
    else{
      set_motor(1,SPEED);
      set_motor(2,SPEED);
      printf("Going straight\n");
    }
    return 0;
}
Beispiel #2
0
DownloadItem::DownloadItem(Video *video, QUrl url, QString filename, QObject *parent)
    : QObject(parent)
    , m_bytesReceived(0)
    , m_startedSaving(false)
    , m_finishedDownloading(false)
    , m_url(url)
    , m_file(filename)
    , m_reply(0)
    , video(video)
    , m_status(Idle)
{
    speedCheckTimer = new QTimer(this);
    speedCheckTimer->setInterval(2000);
    speedCheckTimer->setSingleShot(true);
    connect(speedCheckTimer, SIGNAL(timeout()), SLOT(speedCheck()));
}