PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro gradeausfahren lassen



naibaf
15.06.2012, 10:21
Hallo.
Wie kann ich einen Asuroroboter gradeaus fahren lassen? Problem ist das wir dem Asuro vorher sagen sollen welche strecke er zurück legen soll ! (er automatisch stoppen!)????
Kann mir jemand helfen?

radbruch
15.06.2012, 12:41
Hallo

Geradeausfahren ist nicht einfach. Drehzahl und Weg müssen gemessen und verarbeitet werden. Vielleicht hilft dir dieser Einstieg weiter:
https://www.roboternetz.de/community/threads/17897-Regelung-fürs-Geradeausfahren?
(Henk und waste sollten hier für die Qualität des Threads bürgen)

Und mein bescheidener Beitrag zu diesem Thema:
https://www.roboternetz.de/community/threads/28575-Konstante-Geschwindigkeit-macht-mich-verrückt?

Gruß

mic

naibaf
16.06.2012, 12:12
Eigentlich reicht es mir erstmal, wenn ihm sagen welche strecke der Asuro zurücklegen soll.
Das heißt er soll zb. 90 cm fahren. und dann anhalten und auf eine neue eingabe warten! Wie geht das?

radbruch
16.06.2012, 13:06
Tja, wer ungenau fragt wird von den Antworten erschlagen. :)

Passt dieser Einstieg besser:
https://www.roboternetz.de/community/threads/44202-odometrie-verständniss-problem?

Richtig los geht es bei "Die Odometrie des asuro liefert keine Impulse." im dritten Beitrag des Threads von oberallgeier:
https://www.roboternetz.de/community/threads/44202-odometrie-verst%C3%A4ndniss-problem?p=422978&viewfull=1#post422978

Gruß

mic

naibaf
16.06.2012, 16:32
hast du vielleicht ein programm bespiel? Ich weiß nicht wie ich das hinbekommen soll !!!
erstmal ohne odometrie! nur eine bestimmte strecke fahren. mehr nicht! zb. 90 cm.

radbruch
16.06.2012, 16:47
Wie soll der asuro ohne Odometrie erkennen wann 90cm vorbei sind? Das einfachste wäre wohl eine Zeitsteuerung:


#include "asuro.h"

int millisek; // Fahrzeit in Millisekunden

int main(void)
{
Init(); // sollte man nie vergessen
millisek=2000; // 2 Sekunden fahren
MotorSpeed(200,200);

do
{
Sleep(72); // eine Millisekunde warten
millisek=millisek-1;
}while(millisek > 0);

MotorSpeed(0,0);
StatusLED(RED); // fertig

while(1); // Programm darf nie beendet werden
return 0;
}(ungetestet)

Gruß

mic

naibaf
22.06.2012, 09:30
Hallo.
Erstmal danke für die Hilfe.

Aber ich komme hier nicht mit weiter. Aufgabenstellung ist, die strecke, die der Asuro fahren soll, soll über die odometrie errechnet werden.
Der Asuro soll gradeaus fahren und eine bestimmte strecke zurücklegen, welche wir im vorher sagen müssen.

Über die zeit haben wir hinbekommen. aber das war leider nicht die Aufgabe.

Ich hoffe es kann mir wer helfen.