Greek
05.03.2010, 20:20
Hallo,
ich bin noch recht unerfahren mit dem Asuro und brauche daher eure Hilfe.
Ich habe ein Programm geschrieben, sodass der Asuro wenn er ein belieges IR-Signal empfängt, zunächst beschleunigt und dann eine Linie verfolgt (Linienverfolgung ganz simpel).
Jetzt will ich noch erreichen, dass wenn man am PC die Taste "s" drückt, der Asuro sich um 180° dreht ein Stückchen vor fährt und sich selbst auf unbestimmte Zeit im Kreis dreht.
Leider bekomm ich das nicht so hin wie ich es will.
Der Code sieht folgendermaßen aus:
#include "asuro.h"
#include "myasuro.h"
int main (void)
{
Init();
unsigned char daten;
unsigned char v;
unsigned int data [2];
StatusLED(OFF);
SerRead(daten,1,0); //Bei Empfang eines beliebigen IR-Signals
int i;
v=80;
for (i=0; i<120 ; i++)
{
MotorSpeed(v,v);
v++;
Msleep(1); //Beschleunigungsvorgang
}
while(1)
{
EncoderInit();
FrontLED (ON);
LineData (data);
if(data[0] > data[1])
{
MotorSpeed(140,40);
}
else
{
MotorSpeed(40,140); //Linienverfolgung
}
unsigned char daten[1];
SerRead (&daten,1,0);
if(daten[0] == 's')
{
Turn (180,120);
Go(100,100);
MotorDir(FWD,FWD);
MotorSpeed(255,0);
}
}
return 0;
}
ich bin noch recht unerfahren mit dem Asuro und brauche daher eure Hilfe.
Ich habe ein Programm geschrieben, sodass der Asuro wenn er ein belieges IR-Signal empfängt, zunächst beschleunigt und dann eine Linie verfolgt (Linienverfolgung ganz simpel).
Jetzt will ich noch erreichen, dass wenn man am PC die Taste "s" drückt, der Asuro sich um 180° dreht ein Stückchen vor fährt und sich selbst auf unbestimmte Zeit im Kreis dreht.
Leider bekomm ich das nicht so hin wie ich es will.
Der Code sieht folgendermaßen aus:
#include "asuro.h"
#include "myasuro.h"
int main (void)
{
Init();
unsigned char daten;
unsigned char v;
unsigned int data [2];
StatusLED(OFF);
SerRead(daten,1,0); //Bei Empfang eines beliebigen IR-Signals
int i;
v=80;
for (i=0; i<120 ; i++)
{
MotorSpeed(v,v);
v++;
Msleep(1); //Beschleunigungsvorgang
}
while(1)
{
EncoderInit();
FrontLED (ON);
LineData (data);
if(data[0] > data[1])
{
MotorSpeed(140,40);
}
else
{
MotorSpeed(40,140); //Linienverfolgung
}
unsigned char daten[1];
SerRead (&daten,1,0);
if(daten[0] == 's')
{
Turn (180,120);
Go(100,100);
MotorDir(FWD,FWD);
MotorSpeed(255,0);
}
}
return 0;
}