-
Go(); und Turn();
als ich heut mal wieder mein Asuro rausgezogen hab versuchte ich ein einfaches prog zu schreiben indem er 1m fähr 90° dreht ..... bis er am ausgangspunkt angekommen ist.
die erste strecke funktioniert wunderbar aber irgendwann dreht er sich einfach obwohl er geradeaus fahren sollte. und die 90° sind auch nicht immer 90° manchmal auch 180. ](*,)
wie kann ich das verbessern?
bzw. woran liegt dass? :-k
-
vielleicht zeigst du uns deinen code...
-
oh sry... wollt ich eig machen
hier is er:
Code:
#include "asuro.h"
int main(void)
{
Init();
Encoder_Init();
Go(500);
Turn(90);
Go(500);
Turn(90);
Go(500);
Turn(90);
Go(500);
Turn(90);
while(1)
{
BackLED(ON,OFF);
Msleep(300);
BackLED(OFF,ON);
Msleep(300);
}
return 0;
}
-
tu mal hinter EncoderInit folgendes:
Encoder_Set(0,0);
und am besten auch vorjedes go und turn... damit wird der encoderzähler zurückgesetzt.
-
ich hatte gedacht des is da schon dabei.... ok damit dürfte sich s ja geklärt habe... danke
-
denkste.... hat nix gebracht :(
wenn er anfängt zu fahren macht er erst mal ne 90° kurfe?????
und die winkel sind immer unterschiedlich so zwischen 90° und 180°:'(
liegt das vllt an der niedrigen "auflösung"???
michi
-
das könnte sein... hast du die anderen odometrie scheiben mal getestet
-
nein....
es gibt ja 4 möglichkeiten...
4 schwarz 4 weis auf 2. zahnrad
6 schwarz 6 weis auf 2. zahnrad
4 schwarz 4 weis auf antriebswellen und die odometrie umlöden
6 " 6 "
was is das beste?^^
kommt der asuro überhaupt nach wenn ich das auf die antriebswelle kleb?
-
Wenn nur die falschen Codescheiben eingesetzt würden, müsste der Fehler bei jeder Fahrt gleich sein.
-
naja....
es funktioniert auch aber er fährt eher ein dreieck als ein viereck.
genau an der selben stelle wird man wohl nie hinkriegen aber 60 cm abstand zum ausgangspunkt is n bisschen sehr viel.