ausser störlich sollte da nicht viel sein... decke die led mal zu, kommen trotdem noch fehler? hängen die beiden irgendwie zusammen am prozessor?
so, jetzt habe ich meinen asuro seit 12 uhr gequält. "flash & change", habe jetzt eine ausgabe mit mitteln die meinem "niveau" entsprechen ...
Im wesentlichen habe ich festegestellt, dass die sonderzeichen dann kommen, wenn die angabe über die textlänge nicht so ist wie sie eben jetzt ist. Eine gesetzmäsigkeit zu finden ist mir nicht gelungen...
Habe den ablauf auch etwas verlangsamt damit ich die veränderungen auch mitlesen kann.
Ein problem habe ich mit dem code immer noch. Wenn ich die zwei zeilen mit dem aufleuchten der StatusLED freigebe, fängt die ausgabe wieder an zu spinnen. Wieder werden die zahlen und buchstaben durch wilde sonderzeichen bzw. weisse rechtecke überschrieben.
Frage: Was hat die ausgabe über SerWrite mit der StatusLED zu tun???Code:#include "asuro.h" int main(void) { unsigned int data[2]; Init(); SerWrite("\r\n --- georgs line-sensor test ---",35); Msleep(1000); StatusLED(OFF); FrontLED(ON); do { LineData(data); SerWrite("\r\n phototransistorwerte li/re: ",30); Msleep(500); PrintInt(data[0]); //StatusLED(RED); SerWrite("-",1); PrintInt(data[1]); //StatusLED(GREEN); } while(1); return 0; }
gruß inka
ausser störlich sollte da nicht viel sein... decke die led mal zu, kommen trotdem noch fehler? hängen die beiden irgendwie zusammen am prozessor?
jetzt habe ich es noch einmal probiert, der rechner und asuro waren inzwischen abgeschaltet - jetzt gings auch mit der rot/grün blinkenden statusLED. Ich verstehe es nicht...
Muss ich vielleicht HT immer wieder beenden und neu starten?
gruß inka
sollte eigentlich nicht das problem sein... ht gibt nur aus was emfangen wird. während dem flashen muss es aus sein, sonst eigentlich nicht.
hab mal ne frage ob dasauch mit nem "stinknormalen" Asuro geht weil irgendwie machen mich die beiträge hier unsicher.
Ud wie geht das mit dem Thereshold?
Hallo,
meiner Meinung nach ist Thereshold zum Testen, ob der Asuro noch auf der Linie ist. Und wie ich das verstanden habe, brauchst du ausser der erweiterten Lib. nichts zum standard-Asuro
hi
wo ist die pdf datei zum downlaoder
Hallo
Das PDF der RN-Linientestarena?
Bild hier
Wenn du das meinst, das kann man hier runterladen:
https://www.roboternetz.de/phpBB2/vi...=276576#276576
(Direkter Link zum PDF)
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!
vielen dank das habe ich gesucht
ich bin neu hier, und nenne seit ein paar Tagen ebenfalls einen ASURO mein Eigen
Als erstes Programm für den Flitzer habe ich einen Ansatz gewählt, der ziemlich dem von Hermann entspricht. Allerdings habe ich das mit dem "threshold" etwas anders gelöst:
Ich muss den Asuro auf einer schwarzen Linie aufstellen, und er ermittelt selbst was für ihn schwarz ist. um eventuellen Unterschieden der beiden Sensorwerte entgegen zu wirken addiere ich "werte[0] und [1]" jeweils zu meinem gemessenen Wert. Zu guterletzt habe ich noch zwei Stoßtaster so programmiert, dass ich einen Toleranzwert, den ich zu meiner Summe addiere (Standardmäßig auf 300 bei Geschwindigkeit 0xff) um 10 pro Betätigung verändern kann. Die anfänglichen 5 Messungen kommen daher, dass ich festgestellt habe, dass der ASURO kurz nach dem Einschalten gelegentlich etwas schwankende Werte aufwies.Code:// Front-Led einschalten, Werte prüfen und ausgeben // Zum Definieren einer Linie muß der Asuro auf dieser aufgestellt werden. // Es werden 5 Messungen gemacht, und aus dem Durchschnittswert wird ein Differenzwert // Für den schwächeren Sensor gebildet, um Vergleiche einfacher zu machen. // Alle Werte werden über IR an den Empfänger geschickt und zum Schluss werden die // addierten Mittelwerte zurückgegeben. unsigned int LinieInit(unsigned int *werte) { unsigned char ausgabewert[7]; unsigned int speicher[2]; int i; FrontLED(ON); for (i=0;i<5;i++) { Sleep(30); LineData(werte); IntZuString(werte[0], ausgabewert); SerWrite("\nMesswert links: ", 17); SerWrite(ausgabewert, 6); IntZuString(werte[1],ausgabewert); SerWrite("\tMesswert rechts: ", 18); SerWrite(ausgabewert,6); speicher[0] = speicher[0] + werte[0]; speicher[1] = speicher[1] + werte[1]; } speicher[0]=speicher[0]/5; speicher[1]=speicher[1]/5; IntZuString(speicher[0], ausgabewert); SerWrite("\n===== Messwert schnitt links: ", 31); SerWrite(ausgabewert, 6); IntZuString(speicher[1],ausgabewert); SerWrite("\n===== Messwert schnitt rechts: ", 32); SerWrite(ausgabewert,6); if(speicher[0] >= speicher[1]) { werte[1] = speicher[0] - speicher[1]; werte[0] = 0; } if(speicher[1] > speicher[0]) { werte[0] = speicher[1] - speicher[0]; werte[1] = 0; } return(speicher[0] + speicher[1]); } //Macht aus einer Integer-Zahl einen String void IntZuString(int quelle, unsigned char *ziel) { sprintf(ziel, " %+5i", quelle); }
Lesezeichen