SMHRambo
03.06.2009, 23:49
Hi,
nachdem ich nun mein Abi geschafft habe, wage ich mich wieder an den asuro.
Ich möchte ein Programm schreiben das den asuro dazu bewegt seine Position zu senden, wenn er auf ein Hindernis stößt.
Eine Funktion zur Bestimmung der Position habe ich, dir Berechnung findet mit Hilfe der ODOMETRIE Daten statt. Nun muss ich mir vom asuro nur noch jeweils von den beiden Rädern die zurückgelegte Strecke ausgeben lassen. Hier ist das Programm mit dem ich mir die Daten ausgeben lasse.
Quellcode:
#include "asuro.h"
int main(void)
{
Init();
SerPrint ("Hauptinitialisiert: Erfolgreich");
SerPrint ("\n\r");
SerPrint ("Encoder wird initialisiert");
SerPrint ("\n\r");
EncoderInit();
SerPrint ("Encoder initialisierung: Erfolgreich");
SerPrint ("\n\r");
SerPrint ("Motoren werden gestartet");
SerPrint ("\n\r");
MotorDir (FWD, FWD);
MotorSpeed (90, 90);
SerPrint ("Motoren wurden erfolgreich gestarter");
SerPrint ("\n\r");
while (1)
{
PrintInt (encoder [0]);
SerPrint (" ");
PrintInt (encoder [1]);
SerPrint ("\n\r");
Msleep (100);
}
return 0;
}
Nur bekomme ich dabei die Daten des rechten Sensors, aber nicht die des linken Sensors. Der Wert für links bleibt bei 1. Ich habe in der asurolib schon nachgesehen und habe da die Code Zeile entdeckt nach der nur das linke Rad ausgelesen werden soll (vertauschte Seiten). Hängt das damit zusammen, muss ich irgendetwas in der lib verändern damit ich auch den linken Wert bekomme.
mfg
SMHRambo ](*,) ](*,)
nachdem ich nun mein Abi geschafft habe, wage ich mich wieder an den asuro.
Ich möchte ein Programm schreiben das den asuro dazu bewegt seine Position zu senden, wenn er auf ein Hindernis stößt.
Eine Funktion zur Bestimmung der Position habe ich, dir Berechnung findet mit Hilfe der ODOMETRIE Daten statt. Nun muss ich mir vom asuro nur noch jeweils von den beiden Rädern die zurückgelegte Strecke ausgeben lassen. Hier ist das Programm mit dem ich mir die Daten ausgeben lasse.
Quellcode:
#include "asuro.h"
int main(void)
{
Init();
SerPrint ("Hauptinitialisiert: Erfolgreich");
SerPrint ("\n\r");
SerPrint ("Encoder wird initialisiert");
SerPrint ("\n\r");
EncoderInit();
SerPrint ("Encoder initialisierung: Erfolgreich");
SerPrint ("\n\r");
SerPrint ("Motoren werden gestartet");
SerPrint ("\n\r");
MotorDir (FWD, FWD);
MotorSpeed (90, 90);
SerPrint ("Motoren wurden erfolgreich gestarter");
SerPrint ("\n\r");
while (1)
{
PrintInt (encoder [0]);
SerPrint (" ");
PrintInt (encoder [1]);
SerPrint ("\n\r");
Msleep (100);
}
return 0;
}
Nur bekomme ich dabei die Daten des rechten Sensors, aber nicht die des linken Sensors. Der Wert für links bleibt bei 1. Ich habe in der asurolib schon nachgesehen und habe da die Code Zeile entdeckt nach der nur das linke Rad ausgelesen werden soll (vertauschte Seiten). Hängt das damit zusammen, muss ich irgendetwas in der lib verändern damit ich auch den linken Wert bekomme.
mfg
SMHRambo ](*,) ](*,)