Beaverhead
04.05.2006, 19:46
Hallo Leute, wir haben in der Schule einen Asuro gebaut und wolln jetzt, das er vernünftig geradeaus fährt. Kann man die Motoren nicht irgendwie auf einander abstimmen.
Und wenn ihr schon dabei seit wie kann ich bei mir einbauen, das er einem Licht oder einer Linie folgt?
#include "asuro.h"
int main(void){
Init();
int zeit;
while(1) {
MotorDir(FWD,FWD); // Beiden Motoren auf Vorwärts
MotorSpeed(120,150); // Die Motoren arbeiten ungleichmäßig stark, so gehts geradeaus
StatusLED(GREEN); // Status-Leuchtdiode auf grün schalten
while (PollSwitch()==0) { // Kollisionskontakte prüfen und solange keine Kollision erfolgt...
SerWrite("Los gehts!\n",9); // ...weiterfahren
}
MotorSpeed(0,0); // Kollision! sofort anhalten!
StatusLED(RED); // Status-Leuchtdiode auf rot schalten
for(zeit=0;zeit<1000;zeit++){ // Ne pause von 1000 millisekunden
Sleep(72);}
BackLED(ON,ON); // Rückleuchten anschalten
MotorDir(RWD,RWD); // Rückwärtsgang einlegen
MotorSpeed(120,150); // losfahren
SerWrite("Wech hier!\n",10); // "Wech hier!" schicken
for(zeit=0;zeit<1000;zeit++){ // wieder Pause
Sleep(72);}
MotorSpeed(0,0); // Motoren ausschalten
SerWrite("Uff! Das war knapp.\n",16);
StatusLED(GREEN); // StatusLED wieder grün schalten
BackLED(OFF,OFF); // und Rückleuchten wieder aus
for(zeit=0;zeit<1000;zeit++){ // schon wieder Pause
Sleep(72);}
MotorDir(FWD,RWD); // Den linken Motor vorwärts und den rechten Rückwärts schalten,
StatusLED(YELLOW); // StatusLED gelb schalten,
MotorSpeed(100,129); // Beide Motoren einschalten
SerWrite("Drehn! Drehn! Drehn!\n",18); // und sich drehen
for(zeit=0;zeit<1000;zeit++){ // wieder kurz warten...
Sleep(72);}
MotorSpeed(0,0);
for(zeit=0;zeit<1000;zeit++){
Sleep(72);} // ...und dann alles von vorne
}
}
Und wenn ihr schon dabei seit wie kann ich bei mir einbauen, das er einem Licht oder einer Linie folgt?
#include "asuro.h"
int main(void){
Init();
int zeit;
while(1) {
MotorDir(FWD,FWD); // Beiden Motoren auf Vorwärts
MotorSpeed(120,150); // Die Motoren arbeiten ungleichmäßig stark, so gehts geradeaus
StatusLED(GREEN); // Status-Leuchtdiode auf grün schalten
while (PollSwitch()==0) { // Kollisionskontakte prüfen und solange keine Kollision erfolgt...
SerWrite("Los gehts!\n",9); // ...weiterfahren
}
MotorSpeed(0,0); // Kollision! sofort anhalten!
StatusLED(RED); // Status-Leuchtdiode auf rot schalten
for(zeit=0;zeit<1000;zeit++){ // Ne pause von 1000 millisekunden
Sleep(72);}
BackLED(ON,ON); // Rückleuchten anschalten
MotorDir(RWD,RWD); // Rückwärtsgang einlegen
MotorSpeed(120,150); // losfahren
SerWrite("Wech hier!\n",10); // "Wech hier!" schicken
for(zeit=0;zeit<1000;zeit++){ // wieder Pause
Sleep(72);}
MotorSpeed(0,0); // Motoren ausschalten
SerWrite("Uff! Das war knapp.\n",16);
StatusLED(GREEN); // StatusLED wieder grün schalten
BackLED(OFF,OFF); // und Rückleuchten wieder aus
for(zeit=0;zeit<1000;zeit++){ // schon wieder Pause
Sleep(72);}
MotorDir(FWD,RWD); // Den linken Motor vorwärts und den rechten Rückwärts schalten,
StatusLED(YELLOW); // StatusLED gelb schalten,
MotorSpeed(100,129); // Beide Motoren einschalten
SerWrite("Drehn! Drehn! Drehn!\n",18); // und sich drehen
for(zeit=0;zeit<1000;zeit++){ // wieder kurz warten...
Sleep(72);}
MotorSpeed(0,0);
for(zeit=0;zeit<1000;zeit++){
Sleep(72);} // ...und dann alles von vorne
}
}