Maximatic
19.01.2005, 17:43
Hallo zusammen,
ich bin gerade dabei meinem Asuro das Folgen von Linien beizubringen. Auf dem Level der Programmierbeispiele funktioniert schon alles wie es soll.
Den Code finde ich aber noch verbesserungswürdig( soll ja schließlich auch nur Beispiel seien, mehr nicht).
Mein Ansatz:
- Wenn [0]==[1] fährt er gerade aus. Weil der Untergrund aber nie wirklich == wiedergibt fährt er immer nach rechts.. vielleicht ist die rechte Fotozelle einfach bischen anders gebogen o.ä.
Ich möchte also eine Art Toleranz einbauen, die z.B. mit einer Schneise von +-200 als == interpretiert.
-Um eben diese Werte "einstellen" zu können, würde ich gerne die Werte der FZellen per IR an das Hyperterminal schicken.
Leider bin ich in C noch nicht so gut, um zu wissen, wie das genau geht.
Kann mir viellecht jemand einen Tip gehen? - Das mit dem Wert versenden wäre fast das wichtigere, weil ich dann wenigstens sehe, wie stark der Papkarton(untergrund) "unterschiedlich" ist.
mein bisheriger Code:
#include "asuro.h"
int main(void)
{
unsigned int data[2];
Init();
FrontLED(ON);
while(1){
LineData(data);
if(data[0] > data[1]){
MotorDir(FWD,FREE);
MotorSpeed(180,180);
StatusLED(RED);
BackLED(OFF,ON);
}
if(data[0] < data[1]){
MotorDir(FREE,FWD);
MotorSpeed(180,180);
StatusLED(YELLOW);
BackLED(ON,OFF);
}
if(data[0] == data[1]){
MotorDir(FWD,FWD);
MotorSpeed(180,180);
StatusLED(GREEN);
BackLED(ON,ON);
}
else;
}
return 0;
}
mfg und fröhliches Asuro Gassi-gehen
Maximatic
ich bin gerade dabei meinem Asuro das Folgen von Linien beizubringen. Auf dem Level der Programmierbeispiele funktioniert schon alles wie es soll.
Den Code finde ich aber noch verbesserungswürdig( soll ja schließlich auch nur Beispiel seien, mehr nicht).
Mein Ansatz:
- Wenn [0]==[1] fährt er gerade aus. Weil der Untergrund aber nie wirklich == wiedergibt fährt er immer nach rechts.. vielleicht ist die rechte Fotozelle einfach bischen anders gebogen o.ä.
Ich möchte also eine Art Toleranz einbauen, die z.B. mit einer Schneise von +-200 als == interpretiert.
-Um eben diese Werte "einstellen" zu können, würde ich gerne die Werte der FZellen per IR an das Hyperterminal schicken.
Leider bin ich in C noch nicht so gut, um zu wissen, wie das genau geht.
Kann mir viellecht jemand einen Tip gehen? - Das mit dem Wert versenden wäre fast das wichtigere, weil ich dann wenigstens sehe, wie stark der Papkarton(untergrund) "unterschiedlich" ist.
mein bisheriger Code:
#include "asuro.h"
int main(void)
{
unsigned int data[2];
Init();
FrontLED(ON);
while(1){
LineData(data);
if(data[0] > data[1]){
MotorDir(FWD,FREE);
MotorSpeed(180,180);
StatusLED(RED);
BackLED(OFF,ON);
}
if(data[0] < data[1]){
MotorDir(FREE,FWD);
MotorSpeed(180,180);
StatusLED(YELLOW);
BackLED(ON,OFF);
}
if(data[0] == data[1]){
MotorDir(FWD,FWD);
MotorSpeed(180,180);
StatusLED(GREEN);
BackLED(ON,ON);
}
else;
}
return 0;
}
mfg und fröhliches Asuro Gassi-gehen
Maximatic