PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gerade Fahrt mit GoTurn funktioniert nicht



robrunner
31.12.2008, 13:41
Hi @ all!

Ich hab zu Weihnachten einen Asuro bekommen und es hat bisher auch alles funktioniert.

Mein Problem ist, dass ich es mit der GoTurn Funktion nicht schaffe, dass er gerade aus fährt. So müsste es doch gehen:

GoTurn(20,0,150);
Er fährt aber nur Rechtskurven

Hier der komplette Code:

#include "asuro.h"

int main()
{
Init();
while(1)
{
GoTurn(20,0,150);
}
return 0;
}

Was mache ich falsch?

Sternthaler
31.12.2008, 18:05
Hallo robrunner,

die Funktion GoTurn(), bzw. die beiden Macros Go() und Turn(), nutzen aus der Asuro-LIB die Interruptfunktion zum lesen der Odometrie-Daten.
Um hier vernünftige Werte zu erhalten müssen einige Defines in der Datei myasuro.h an deinen Asuro angepasst werden.

Am einfachsten geht es mit dem Programm hier (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=31073). (Der Link zum downloaden geht nun auch wieder.)

Frohes Neues Jahr wünscht
Sternthaler

m.a.r.v.i.n
31.12.2008, 18:44
Hallo robrunner,

der Aufruf von EncoderInit() fehlt.

robrunner
31.12.2008, 22:08
OK danke so gehts

Tolles Prog Sternthaler!

Auch ein frohes neues jahr meinerseits!

Sternthaler
01.01.2009, 02:28
Oh Mist, oh Mist, oh Mist,

m.a.r.v.i.n hat natürlich wieder einmal Recht mit dem EncoderInit().
Ob ich da ein tolles Programm gemacht habe, wird sich erst noch herrausstellen, wenn du robrunner mal postest wie groß die Unterschiede der Defines aus der Lib und den Werten aus dem Porgramm sind. Möglicherweise würde es schon ohne Anpassungen gehen.

Und? Schon alle Knaller explodiert und nun weiter am Asuro?
Ich leere gerade noch die Reste mit den wieder eintrudelnden 'Kindern' und bin dann auf dem Weg in die Heia.

Auf das neue Jahr
Sternthaler

robrunner
01.01.2009, 12:04
Man braucht beides:

Ohne deine Werte, Sternthaler, trotz EncoderInit(), fährt er immer noch genauso im Kreis, wie vorher.
Mit deinen Werten, aber ohne EncoderInit() fährt er nur noch leicht schief.
Mit deinen Werten und EncoderInit() fährt er fast perfekt gerade.

Eine Frage hätte ich noch:
In asuro.h steht als Kommentar beim Funktionsprototypen für GoTurn:

\param distance travalling distance in cm.
Ich muss aber für 20cm Fahrt nicht 20 als Parameter eingeben, sondern 200.
An sich ist das natürlich kein Problem, ich wollte bloß wissen, ob das normal ist.


Und? Schon alle Knaller explodiert und nun weiter am Asuro?
Sicher doch O:)

Asuron
01.01.2009, 16:35
Hast du schon die Odometrie Modofikation aus dem Wiki gemacht? Sprich keine Häuschen aus schwarzem Fotokarton über die Sensoren gebaut? Mit denen funktioniert es hier super.
Bilder zu den Häuschen findest du im Wiki.

robrunner
01.01.2009, 21:53
OK werd ich dann morgen machen.