Hallo
Genau das sagte ich einen thread vorher
Gruß Thund3r
Vielleicht kann das Abhilfe schaffen.
http://www.asurowiki.de/pmwiki/uploa...n/mod_odo2.jpg
Hallo
Genau das sagte ich einen thread vorher
Gruß Thund3r
Habe alles ausprobiert. Das Programm mehrmals geflasht. jetzt driftet er in die andere richtung ab.
Hab gelesen das eines der Programme was ins EPROM speichert.Hats vieleicht damit was zu tun.
gibs vieleicht ein einfaches programm um die Odometrie zu testen?
Gruß Frank
Hallo
Nein, das Programm speichert nichts im EEProm, nach dem Einschalten startet der asuro jedesmal jungfräulich.
Abhängig vom Codescheibensegment schwanken die eingelesenen Odometriewerte zwischen einem max- und einem minimalen Wert. Der Mittelwert sollte etwa TRIGGERLEVEL sein. Wenn nun der eingelesene Wert über den TRIGGERLEVEL steigt, wird dies in status[] gespeichert und der Zähler verändert. Anschliessend wird auf ein Unterschreiten des TRIGGERLEVEL gewartet, dieses wird wieder in status[] gespeichert, Zähler verändert usw.
Die ODO-Werte sind umso kleiner, je heller die Sensoren beleuchtet werden! Deshalb könnte es sein, dass der TRIGGERLEVEL für deinen asuro zu hoch gewählt ist. Versuche mal kleinere Werte wie 550, 500, 450...Code:// Helligkeitswerte der Lichtschranken auslesen OdometrieData(data); // Wechsel linker Sensor von niedrig auf hoch? if ((status[0]==LOW) && (data[0]>TRIGGERLEVEL+HYSTERESIS)) { status[0]=HIGH; difference++; } // Wechsel linker Sensor von hoch auf niedrig? if ((status[0]==HIGH) && (data[0]<TRIGGERLEVEL-HYSTERESIS)) { status[0]=LOW; difference++; }
Ein einfacher Test wäre z.B:
...und die Räder vom Hand drehen;)Code:while(1) } OdometrieData(data); if(data[0]<500) StatusLED(RED); else StatusLED(GREEN); if(data[1]<400) FrontLED(ON); else FrontLED(OFF); Sleep(255); }
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hi Leute, muß mich wohl bei Euch entschuldigen. Hab mir den kleinen mal genau vorgenommen, und festgestellt das die Achsen sich nicht gleich leicht drehen. Etwas gebogen, zwei kleine Unterlegscheiben und etwas Fett. Die Motoren neu justiert und verklebt. Siehe da er läuft schnurgerade.
Obwohl der Unterschied zwischen den Achsen ja nicht so schlimm war macht´s so virl aus. Hatte ich nicht gedacht. Ohne Odometrie lief er ja gleichmäßig(Fast). Komisch. Trotzdem vieleb Dank für Eure Bemühungen.
Programmieren mit Odometrie verstehe ich trotzdem noch nicht.
Viele Grüße Frank
Hallo Frank,
Ja, gibt es. Stammt von Sternthaler : hier, runterscrollen, ASSensorenV205.zip. Der hat auch gleich eine *hex-Datei mitgeliefert, dann braucht man sich mit der dort verwendeten Library nicht zu befassen. Einfach flashen, testen, freuen.Zitat von frank1210
Die verschiedenen, möglichen Werte siehst Du in diesem und dem folgenden Posting.
................Bild hier
Bei Sternthaler schwank(t)en die Odometriewerte zwischen 500 und 800, bei mir zwischen 10 und 170. Die zugehörigen Threads könnten lesenswert sein.
UUUps - den vorigen Beitrag hatte ich beim Posten nicht gesehen. Entweder schreibe ich so langsam (viel rumsuchen) oder mein DSL läuft streckenweise mit Rauchzeichen.
Ciao sagt der JoeamBerg
Hallo Frank1210.
Das kann eigentlich nicht sein. Bei der Überarbeitung mußt du ungewollt noch was anderes verändert haben, wenn der Bot doch VOR der Achsbegradigung und Schmierung OHNE Odometrie schon geradeaus lief ...
Ich tippe auf eine Veränderung bei den Reflexsensoren; dann kann es sein, daß die Odometrie bzw. Drehzahlregelung den Gleichlauf gegenüber der ungeregelten Variante bisher verschlimmbessert hat, weil fehlende Pulse den Regler in die Irre geleitet haben.
Gruß
Christian.
Hallo
Ich kann dem nur beipflichten. Überprüf nochmal die Odometriesensoren auf Wackelkontakt richtige Ausrichtung o.ä. und führe die Odo.Modifikation durch (s.o.).
Gruß Thund3r
Lesezeichen