Zitat Zitat von Sternthaler
Ich bin jetzt aber dafür, dass harry3 bald mal funktionierenden Code postet
Ja ne ist klar, mach ich doch sofort! Sonst noch irgendwelche Code Wünsche?

Auch bei mir ist die Ferienzeit leider um, ich komme also vorerst mal nicht so viel zum Asuro Programmieren. Aber sollte ich das Barcode Problem einmal lösen können so werde ich es natürlich hier posten.

Ich hab zuletzt für die Abgrunderkennung die Linienfolger Transis verwendet und hatte selbst bei so einer einfachen Aufgabe wie der simplen Abgrunderkennung mit der starker Welligkeit des Signals zu kämpfen. Das führte letztendlich dazu dass ich die dynamische(welche die Änderung des Signawertes analysiert) Lösung gegen eine statische austauschte(welche einfach nur den Anfangssignalwert kontinuierlich mit dem aktuellen Wert vergleicht).

Am besten wäre es wohl den Asuro vor jedem Mal Barcodelesen zu kalibrieren, also dass er über eine Schwarz-Weiß Schwelle fährt und sich daraus den Grenzwert errechnet.
Ich würde den Asuro dann einfach vor den Strichcode stellen und ihn dann einschalten. Dann würde ich es so machen dass er einfach eine bestimmte vorgegebene Zeit über den Strichcode fährt(in der er den kompletten Code überfährt), und so ca. alle 10ms(muss man einen Mittelweg finden aus kleiner Speichermenge und genügend hoch aufgelösten Daten) eine Helligkeitsmessung durchführt und in ein Array abspeichert. Ins Array speichert man entweder eine 1(Helligkeits-Grenzwert überschritten) oder eine 0(HG unterschritten) ...das spart Speicherplatz(man braucht nur char statt int).
Der Barcode ist auf einem weißen Blatt Papier aufgedruckt, also ist der Anfangs und Endcode jeweils ein schwarzer Strich. Aus Anfangs und Endposition kann man die Datenmenge(also von welchem bis zu welchem Arrayindex der Barcode ansich liegt) der abgespeicherten Daten ausrechnen. Das ist nun der Teiler.
Dann rechnet man aus wielange jeweils die 0-er und 1-er Ketten(entsprechen den Strichen) im Array sind, und teilt sie durch den zuvor ausgerechneten Teiler mal einem Faktor. Da man dank des Teilers auf die tatsächliche Länge schließen kann, kann man recht einfach abfragen ob es sich um einen breiten oder schmalen Strich handelt.
Die analysierten Striche speichert man in ein weiteres Array welches man dann endgültig auswerten kann.

Sollte ich mal Zeit haben werde ich es so in der Art probieren. Das Hauptproblem ist die Ungenauigkeit von Asuro. Man kann nicht sagen ob die Geschwindigkeit gleichmäßig ist, man weiß nicht ob die Lichtsensoren genaue Daten liefern, usw...
Prinzipiell wäre es aber machbar.
Ich würde mich aber mit der Basisversion zufrieden geben: Barcode lesen und per IR Schnittstelle ausgeben. Fertig.


Grüße,
Harri