Forum: Mikrocontroller und Digitale Elektronik (Dieser Beitrag wurde geloescht)


von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von Ralph (Gast)


Lesenswert?

Hallo

1. Mach dir ein Array mit der Anzahl an Feldern gleich der maximalen 
Anzahl an Flanken im Datensignal.
2. Lass den CAPCOM Timer durchlaufen und speicher bei jeder Flanke den 
Timerwert hardwaregetriggert in das Array.
3. Sind alle Flanken erkannt, dann rechne aus den gespeicherten 
Timerwerten die Zeitabstände zwischen den Flanken aus.
4. Diese Zeitabstände kannst du dann darauf analysieren welcher 
Zeitabstand einer bestimmten Bitfolge entspricht.

Gruß
Ralph

von Ale (Gast)


Lesenswert?

Mit ein lineare CCD, Barcode decodierung ist nicht schwer.

Eingang signal:

Du darfst 2 Tabelle machen, eine für Weiße Balken und eine für Schwarze 
Balken.

Du kannst sagen, daß alle Balken mit gleiche breite geben gleige Wert 
(Zeit zwischen flanken), weil du ein linear CCD hast !!! (Ganz wichtig).

Jetzt, du darfst rechnen die Kleinste breite, für Code 39, glaube ich 
gibt 2 Breiten.

Brete 1 = Wert 1, Breite 2 (2 oder 3 mal Breite 1). (usw, wenn gibt noch 
mehr).

Jetzt du kannst eine Neue Tabelle machen mit den Breite von Balken. 
(Eine Schwarz eine Weiß, nochmal S, nochmal W usw.)

Mit den neue Tabelle du kannst es decodieren (39 haißt 3 Breite 2 von 9 
ingesamt Balken. Und 9 Balken haben ein Bedeutung, Simbol oder Zahl oder 
Buchstabe).

Fertig :-)

Ich habe viel mit Barcodes gearbeitet, und habe die dekodierung gemacht, 
aber ohne linear CCD, so die Werte waren nicht gleich :-)

Ich hoffe es hilft.







von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von Andreas Haimberger (Gast)


Lesenswert?

> ich habe einige Barcode Scanner bekommen die aber leider nur EAN können.

Bist du dir da sicher? Alle Scanner, mit denen ich bis jetzt zu tun 
hatte, kann man mittels spezieller Programmier-Barcodes auf andere 
Barcodes umstellen. Diese Strichcodes findet man entweder in der 
Betriebsanleitung oder im Servicemanual. Meistens kann man auch noch 
andere Parameter mit solchen Codes programmieren, z.B. ob nach der 
gesendeten Zahlen-oder Buchstabenfolge auch noch ein Zeilenvorschub 
nachkommen soll.

Wenn du keine Betriebsanleitung/Servicemanual hast, schau mal beim 
Hersteller auf die Homepage. Bei den größeren Scanner-Herstellern kann 
man sich sowas runterladen.

Grüsse, Andy

von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von Ale (Gast)


Lesenswert?

@Guido:

"Meine Frage hierzu: gibt es eine bessere Alternative um herauszufinden,
ob ein Pegel lang oder kurz anliegt? Gibt es dazu vielleicht ein
Stichwort das mich auf die richtige Literatur hierzu leitet?"

Eine Balke ist lang oder kurz und so gibt ein lange oder kurze Puls. 
Gibts nicht mehr, Was ist dein Problem ?

Was für ein Barcode hast du gelesen in deine Beispiel ? (Gibt 3 Grösse 
!)

von Severino R. (severino)


Lesenswert?

Ale wrote:
> @Guido:
>

> Eine Balke ist lang oder kurz und so gibt ein lange oder kurze Puls.
> Gibts nicht mehr, Was ist dein Problem ?

Die Balkenlänge ist kein Informationsträger, nur die Balkenbreite und 
bei bestimmten Codes auch die Breite des Zwischenraums zwischen den 
Balken.
>
> Was für ein Barcode hast du gelesen in deine Beispiel ? (Gibt 3 Grösse
> !)

Es gibt viel mehr als drei Grössen für Barcodes. Die meisten können +/- 
beliebig skaliert werden.

@ Guido Fischer
Poste doch mal ein paar Fotos von Deinem Scanner, vielleicht kann man 
das Modell erkennen.

Wichtig:
Es wäre zu unterscheiden: Willst Du die Scanner produktiv einsetzen und 
Geld sparen, weil du sie ja schon hast, oder geht es Dir um den 
Lerneffekt.

Severino

von Markus (Gast)


Lesenswert?

Wie wäre es, wenn Du einfach einen (beliebigen) Balken als Referenz 
nimmst und dann die anderen relativ dazu beurteilst? Also Du nimmst z.B. 
den ersten Balken (= 100%) und wenn der 2. Balken 50% Breite hat, dann 
war der erste Balken ein langer Balken, hat der 2. Balken aber 200% 
Breite, dann war das erste ein kurzer Balken. Ist er gleich lang, dann 
schaust Du beim 3. Balken.

Man könnte die Breite eines Balkens auch relativ zur Gesamtbreite des 
gesamten Barcodes betrachten.

Markus

von Obelix (Gast)


Lesenswert?

>Man könnte die Breite eines Balkens auch relativ zur Gesamtbreite des
>gesamten Barcodes betrachten.

Das funktioniert eher nicht, da im Barcode unterschiedlich viele Zeichen 
kodiert sein können.

von Markus (Gast)


Lesenswert?

Noch 'ne Idee:
"Each Code 39 bar code is framed by a start/stop character"

Ich habe auf die schnelle keine Details gefunden, aber das dürften wohl 
die dünnen Linien sein?!

von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von Andreas L. (andi84)


Lesenswert?

Sind das nicht die Dinger von Ebay "je 5 LCD Display, EAN Barcodereader 
und Miniverstärker"? Wäre durchaus interessiert an deinem Code, weil ich 
mir da auch welche ersteigert habe.

von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von Sergey (Gast)


Lesenswert?

Warum nimmst du nicht einfach einen billigen PS/2 CCD Scanner,
der Code128, Code39, Code93, EAN8, EAN13, ... kann
und schreibst eine PS/2 Emulation die Scancodes auswertet?

Ansonsten ist das generieren von Barcodes in C am PC nicht schwer,
(auch ohne Librarys!) dekodiert habe ich sie aber noch nicht auf einem 
MCU.

von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.