To, co mogę zaobserwować, to że taki czytnik "przemiata" promieniem lasera.
Dotyczy to nie tylko dużych czytników (stosowanych zwykle w hipermarketach,
przemiatających w kilku kierunkach, żeby niezależnie do tego, jaki jest kierunek
paska mógł być on odczytany), ale i małego czytnika ręcznego - tyle, że ten
przemiata tylko w jedną stronę, więc musi być odpowiednio przyłożony.
Ten promień się odbija, i trafa do fotodiody. Z tego układ odczytuje, czy miejsce,
gdzie trafił promień lasera, jest białe czy czarne, i rozpoznaje sekwencję pasków
(przemiatanie jest wzdłuż kodu, prostopadle do pasków - inaczej nie zadziała).
Jest ona dekodowana, i przesyłana jako ciąg cyfr (o ile zdekoduje się poprawnie).
Odczyt zauważa zmiany (czarne->białe, białe->czarne); miejsca zmian są tylko na
"działkach skali", i są jeszcze dodatkowe paski do synchronizacji - jeśli odczyt
zmiany wypadnie w złym miejscu, albo ilość zmian się nie zgodzi, to czytnik
stwierdza błąd (zwykle jest sygnalizacja akustyczna czy odczyt jest poprawny).
Nie pamiętam, jak wygląda kodowanie - to się chyba nazywa kod EAN-13.
Swoją drogą ten odczyt wymaga niezłej precyzji - ogniskowanie do około 0.1mm,
w sporym zakresie odległości, żeby dało się dobrze rozpoznać granice pasków.
I dość złożonego algorytmu przetwarzania - bezpośrednim wynikiem odczytu są
czasy przejścia promienia przez poszczególne paski, to musi być przetworzone
jakimś algorytmem synchronizującym i kwantyzującym, którego wynikiem są
szerokości pasków jako liczby całkowite (w jednostkach szerokości, chyba 1 do 4),
i dopiero to można w prosty sposób zamienić na ciąg cyfr wysyłany przez czytnik.