Zum Hauptinhalt springen

Barcodes mit der Trigger-Taste lesen

Was dieses Beispiel zeigt​

Der Scanner bleibt im Standard-Manuellmodus: Drücken Sie die Trigger-Taste am Board, und der gelesene Code wird in der Shell ausgegeben. Das Beispiel fragt nur readBarcode() ab; die Taste startet jeden Scan.

Verbinden Sie Pin 5 (TX) des Controllers mit RX des Scanners und Pin 4 (RX) mit TX des Scanners, dazu 3V3 und GND, oder passen Sie tx und rx an Ihre Verdrahtung an. Schalten Sie den Scanner zuerst auf UART um, indem Sie den Konfigurations-Barcode POR232 scannen.

Der Beispielcode​

from machine import UART
from de2120 import DE2120
import time

# Adjust tx and rx to match the pins you have wired on your board.
scanner = DE2120(tx=5, rx=4)

if not scanner.begin():
print("DE2120 not detected. Check wiring.")
raise SystemExit

print("DE2120 ready. Press the button on the scanner to read a barcode.")

while True:
barcode = scanner.readBarcode()
if barcode:
print("Scanned:", barcode)
time.sleep_ms(20)

🔗Vollständiges Beispiel öffnen

Examples/de2120-readBarcode.py im Commit 848e03e

→

Erwartetes Ergebnis:

ShellMicroPython
DE2120 ready. Press the button on the scanner to read a barcode.

Jeder Code, den Sie scannen, wird danach als Scanned: gefolgt vom Inhalt des Codes ausgegeben. Antwortet der Scanner nicht, gibt das Beispiel DE2120 not detected. Check wiring. aus und hält an.

Verwendete Funktionen​

DE2120(uart=None, tx=None, rx=None, uart_id=1)returns DE2120

Erstellt das Scanner-Objekt. Übergeben Sie einen selbst erstellten UART als uart, oder übergeben Sie die Pin-Nummern tx und rx, dann erstellt das Modul UART(uart_id) mit 9600 Baud auf diesen Pins. Wird keines von beiden übergeben, löst es einen ValueError aus.

ReturnsDas Scanner-Objekt.

Parameter

TypNameBeschreibung
UARTuartEin fertiges machine.UART-Objekt. Optional.
inttxDer sendende Pin des Controllers, verbunden mit RX des Scanners. Das Beispiel verwendet 5.
intrxDer empfangende Pin des Controllers, verbunden mit TX des Scanners. Das Beispiel verwendet 4.
intuart_idWelcher UART erstellt wird, wenn Sie tx und rx übergeben. Standardmäßig 1.
scanner.begin()returns bool

Prüft, ob der Scanner antwortet. Die Funktion setzt den UART auf 9600 Baud und fragt die Firmware-Version ab. Bleibt die Antwort aus, versucht sie es erneut mit 115200 Baud, weist den Scanner an, auf 9600 Baud umzuschalten, und fragt erneut ab. Bei Erfolg leert sie den Empfangspuffer.

ReturnsTrue, wenn der Scanner geantwortet hat, False, wenn nicht.

scanner.readBarcode()returns str or None

Sammelt die vom Scanner wartenden Bytes. Ein Scan endet mit einem Wagenrücklauf (Carriage Return); sobald einer eintrifft, gibt die Funktion den Code ohne ihn zurück. Rufen Sie sie wiederholt in einer Schleife auf. Ein einzelner Code umfasst höchstens 256 Bytes.

ReturnsDer gescannte Code oder None, wenn noch kein vollständiger Scan eingetroffen ist.

Zusammenfassung​

DE2120(tx=5, rx=4) richtet den UART ein, und begin() stellt sicher, dass der Scanner vorhanden ist und mit 9600 Baud läuft. Die Schleife ruft dann alle 20 ms readBarcode() auf. Die Funktion gibt None zurück, bis ein vollständiger Code eingetroffen ist, sodass die Prüfung if barcode: jeden Code nur einmal ausgibt.

Um ohne Tastendruck zu lesen, siehe Barcodes kontinuierlich lesen.