Escáner de códigos de barras Raspberry Pi: conecta módulos de escáneres de códigos de barras OEM con Raspberry Pi

Si utilizas el microcontrolador / ordenador monoplaca Raspberry Pi para desarrollar tu sistema y necesitas al mismo tiempo un módulo lector de códigos de barras 1d/ 2d OEM, este artículo te resultará útil: aquí te presentamos cómo conectar el microcontrolador Raspberry Pi 3 Modelo B+ con los módulos lectores de códigos de barras RTscan OEM y cómo hacer que funcionen entre sí.

Cuando intentamos integrar un escáner de código de barras OEM con la placa microcontroladora Raspberry Pi, nos encontramos con estos problemas:

  1. El módulo lector de código de barras OEM tiene una interfaz TTL de 12 patillas, pero la placa Raspberry Pi no tiene este tipo de conector, ¿cómo podemos conectarlos?
  2. Sea cual sea el módulo de escáner de código de barras OEM que elijamos, ¿cómo podemos hacer que el escáner de código de barras funcione con Raspberry Pi y también cargar los datos descodificados en el sistema Raspberry Pi?

Lee a continuación y descubre cómo RTscan ofrece soluciones a las preguntas anteriores.

Parte I: Introducción a la Raspberry Pi 3 Modelo B+ y a los escáneres de códigos de barras RTscan OEM

Raspberry Pi 3B+:

Raspberry Pi 3 Modelo B es la última iteración del ordenador monoplaca más popular. Ofrece una CPU ARM Cortex-A53 de 64 bits y cuatro núcleos que funciona a 1,2 GHz, cuatro puertos USB 2.0, conexión de red por cable e inalámbrica, salida HDMI y de vídeo compuesto, y un conector GPIO de 40 patillas para proyectos de interfaz física.

Conexiones Raspberry Pi 3

Y para que nuestra aplicación se conecte con el módulo lector de código de barras OEM, necesitamos el pin de alimentación de 3,3 V (o el de 5,0 V), y los pines GND, RXD, TXD.

Y también, haremos una demostración de cómo conectar nuestro escáner de código de barras OEM con Raspberry Pi a través de la interfaz USB.

Lectores de códigos de barras RTscan OEM:

Todos ellos con conector de 12 patillas y señal TTL-232, y utilizan cable FFC y conector como éste :

Y si utilizamos una placa EVK, pueden salir con una interfaz USB:

En este artículo, elegimos el RT214 como ejemplo para realizar la conexión e integración.

Parte II: Soluciones de conexión:

RTscan ofrece dos tipos de soluciones:

Solución1: Interfaz Dupont

RTscan proporciona el siguiente kit EVK de interfaz DuPont (con botón de disparo y zumbador) para conectar el módulo de escáner de código de barras OEM con Raspberry Pi:

Es una solución sencilla, sólo tienes que conectar la fuente de alimentación de 5,0 V (el EVK necesita una fuente de alimentación de 5,0 V), GND, los pines RX y TX.

RT214-12pines Pinout

PIN Nombre de la señal E/S Estado Función
1 NC
2 VDD Entrada de alimentación de 3,3 V
3 GND Masa de la fuente de alimentación
4 RXD I Nivel TTL 232 recibe datos
5 TXD O Nivel TTL 232 transmite datos
6 USB_D- Señal USB_D-
7 USB_D+ Señal USB_D+
8 NC
9 BUZ O Salida de avisador acústico
10 LED O Salida LED de buena lectura
11 nRST I Entrada de señal de reinicio
12 nTRIG I Entrada de señal de disparo

Después de conectarlo con la placa EVK, salen 6 clavijas:

Conexión PIN:

PIN Nombre de la señal E/S Estado Función
1 GND Tierra Masa de la fuente de alimentación
2 RXD E/S Nivel TTL 232 recepción
3 TXD E/S Nivel TTL 232 transmite
4 USB_D+ E/S Señal USB_D+
5 USB_D- E/S Señal USB_D-
6 VBUS Alimentación 5V

Conexión PIN:

Placa RT203/RT206/RT207/RT208/RT211/RT214/ RT830B+EVK 6pins out Raspberry Pi 3B+
Pin6 Vin 5V(Pin2)
Pin1 GND GND(Pin6)
Pin2 RX Tx(Pin8)
Pin3 TX Rx(Pin10)

♠ Módulos de escáner OEM compatibles con esta solución:

RT203 RT206 RT207 RT208 RT212 RT211 RT214

∗Por favor, haz clic en el número de modelo para ver la página completa de presentación del producto.

24 de enero de 2022

Solución 2: Conectar mediante interfaz USB

Para Raspberry Pi, si prefieres conectar el módulo escáner de código de barras OEM a través de la interfaz USB, también está bien, configura el escáner de código de barras RTscan en modo HID (funciona directamente) o en modo USB CDC/Virtual Com (sigue la Parte III/Comunicación USB CDC).

♠ Módulos de escáner de códigos de barras compatibles con esta solución:

Todos los escáneres de códigos de barras que tengan una interfaz USB. Todos los módulos de escáner OEM, todos los tipos de montaje fijo, todos los tipos de mano.

Parte III: Haz que el módulo escáner de código de barras OEM funcione con el sistema Raspberry Pi/ Código de ejemplo Python:

Hemos desarrollado un código de muestra en Python para que funcione con nuestros escáneres, de modo que puedas copiar nuestros códigos fuente y programar tu sistema muy rápidamente sin necesidad de escribir todo el código uno por uno; ¡ahorra tiempo y acelera tu trabajo de integración!

En este artículo, elegimos el RT214 como ejemplo para hacer la programación. A continuación mostramos cómo funcionan juntos cuando se conectan mediante TTL-232, USB-CDC y USB-HID.

1. Comunicación TTL-232& Código de ejemplo Python

Paso 1: Conexión del hardware

Conecta la patilla de alimentación de 5,0v, y las patillas GND, RXD, TXD mediante el cable Dupont. Consulta la imagen de la“Solución1: Interfaz Dupont”.

Placa RT214+EVK 6pins out Raspberry Pi 3B+
Pin6 Vin 5V(Pin2)
Pin1 GND GND(Pin6)
Pin2 RX Tx(Pin8)
Pin3 TX Rx(Pin10)

Paso 2: Ajustes del RT214

El escáner RT214 debe estar configurado en modo TTL-232, escanea el siguiente código de barras:

Para más códigos de ajuste, consulta “RT214_Guía_del_usuario”.

Paso 3: Configuración de la Raspberry Pi

(Ignóralo si ya lo has hecho).

(1).Activar puerto serie ttyS0

Abre el puerto serie/dev/ttyS0
A través de la ventana de comandos, introduce:
sudo rasp-config

Abre la interfaz de configuración del sistema como se muestra a continuación, selecciona Opciones de interfaz

A continuación, selecciona serie:

Selecciona No:

Entonces, sí:

Finalmente elige guardar y salir.

En este momento, introduce el siguiente comando para ver el puerto serie ttyS0:
ls -la /dev/
Pero si sigue sin poder utilizarse, compruébalo de nuevo y vuelve a configurarlo.

(2). Cierra la Consola

En el terminal, introduce:

sudo systemctl detener serial-getty@ttyS0.service
sudo systemctl desactivar serial-getty@ttyS0.service

Después, reinicia.

Y luego introduce:

sudo systemctl mask serial-getty@ttyS0.service

Entonces, ¡funciona!

(3). Modificar la frecuencia de la CPU de la Raspberry Pi (opcional)

Después de los pasos 1 y 2 anteriores, los ajustes están teóricamente completados, pero algunas veces:

(1)Tras enviar una cadena por el puerto serie, en la mayoría de los casos el receptor muestra datos confusos.

(2)Cuando el puerto serie recibe datos, aparecen datos como **\xe8 \xe9**.

Esto estaría causado por una frecuencia de trabajo incorrecta de la Raspberry Pi, enlace de información:
Raspberry Pi 3 login via UART on GPIO Baud Rates broken

El método de modificación se describe a continuación:

sudo vim /boot/config.txt

Averigua si la sentencia core_freq=250 está activada. Si no es así, elimina el número # delante de esta sentencia, o añade core_freq=250 en el boot/config.txt, hecho.

Paso 4: Ejecuta el código de ejemplo de Python

Ejecutar: RT214_TTL_RS232.py

[python]
#!/usr/bin/python
# -*- codificación: utf-8 -*-

# RT214 scaner python test demo
#
# by RTSCAN 20200901

import sys
import serie
import tiempo

tel
web
# raspberry pi usb cdc
# dispositivo usb por defecto /dev/ttyACM0 115200 8n1
# ser = serial.Serial(“/dev/ttyACM0”, 115200, timeout=0.5)

# raspberry pi ttl
ser = serial.Serial(“/dev/ttyS0”, 115200, timeout=0.5)

#windows
# ser = serial.Serial(“COM45”, 115200, timeout=0.5)

print(“prueba de serie iniciada…”)
if ser != None:
print(“serie preparada…”)
else:
print(“serie no preparada”)
sys.exit()

ser.timerout = 1 # tiempo de espera de lectura
ser.writeTimeout = 0.5 # tiempo de espera de escritura.

def printHex(_str):
for i in _str:
print(“%02x” % i, end=“”)
print(“”)

# Sintaxis del comando
#
# Prefijo Almacenamiento Etiqueta SubEtiqueta {Data} [, Subetiqueta {Data}] [; Etiqueta SubEtiqueta {Data}] […] ;
# Sufijo Entre los cuales, {data} significa integrante, mientras que [datos] significa datos opcionales.
#
# Prefijo: “~0000” (HEX: 7E 01 30 30 30), 6 caracteres.
# StorageType:
# “@” o “#”,1 carácter.
# “@” significa ajuste permanente que no se perderá al quitar la alimentación del escáner o reiniciarlo;
# “#” significa ajuste temporal que se perderá al quitar la alimentación del escáner o reiniciarlo.
# Etiqueta:
# Campo de 3 caracteres que identifica el grupo de comandos deseado.
# Por ejemplo, la Etiqueta para el Código de Activación 11 es C11 (ver Ejemplo 1 del Capítulo 1).
# SubEtiqueta:
# Campo de 3 caracteres que identifica el parámetro deseado dentro del grupo de etiquetas.
# Por ejemplo, la Subetiqueta del Código de Activación 11 es ENA (ver Ejemplo 1 del Capítulo 1).
# Datos:
# El valor de una característica o ajuste de parámetro, identificado por la Etiqueta y la SubEtiqueta.
# Por ejemplo, los Datos del Código de Activación 11 son 1 (ver Ejemplo 1 del Capítulo 1).
# Sufijo:
# “;” (HEX: 3B 03), 2 caracteres.

def send_cmd(StorageType_Tag):
Prefijo = bytes(“\x7E\x01\x30\x30\x30\x30”, encoding=“utf-8”)
Sufijo = bytes(“\x3B\x03”, encoding=“utf-8”)

cmd = Prefijo + bytes(StorageType_Tag, encoding=“utf-8”) + Sufijo

print(“Enviando:”)
printHex(cmd)

ser.write(cmd)

time.sleep(0.1)
recv = ser.read(ser.en_espera)
print(“Respuesta:”)
printHex(recv)

def iniciar_escaneo():
print(“iniciar escaneo”)
send_cmd(“#SCNTRG1”)
return

def parar_escaneo():
print(“parar escaneo”)
send_cmd(“#SCNTRG0”)
return

Ponte en contacto con nosotros para obtener los códigos de muestra completos
[/python]

Salida:El RT214 detecta y lee automáticamente el código de barras.

2. Comunicación USB CDC

Si queremos utilizar el puerto USB y hacerlo funcionar como un puerto serie virtual, configura el RT214 en modo de emulación de puerto USB Com. Y el escáner RT214 será detectado como un dispositivo COM en Raspberry Pi.

Paso 1: Conexión del hardware

Conecta la placa RT214 + Kit USB al puerto USB de la Raspberry Pi:

Paso 2: Ajustes del RT214

RT214 en modo USB CDC, escanea el siguiente código de barras de configuración

Introducir configuración

Ajustar a USB-CDC modo

Salir de la configuración

Paso 3: Configuración de la Raspberry Pi

El modo USB CDC del RT214 es el modo de emulación del puerto USB Com, el nombre del dispositivo suele ser:

/dev/ttyACM*

Paso 4: Ejecuta el código de ejemplo de Python

Ejecuta: python RT214_USB_CDC.py

[python]
import sys
import serie
import tiempo

# raspberry pi usb cdc
# dispositivo usb por defecto /dev/ttyACM0 115200 8n1
ser = serial.Serial(“/dev/ttyACM0”, 115200, timeout=0.5)

# raspberry pi ttl
# ser = serial.Serial(“/dev/ttyS0”, 115200, timeout=0.5)

#windows
# ser = serial.Serial(“COM45”, 115200, timeout=0.5)

print(“prueba de serie iniciada…”)
if ser != None:
print(“serie preparada…”)
else:
print(“serie no preparada”)
sys.exit()

ser.timerout = 1 # tiempo de espera de lectura
ser.writeTimeout = 0.5 # tiempo de espera de escritura.

def printHex(_str):
for i in _str:
print(“%02x” % i, end=“”)
print(“”)

# Sintaxis del comando
#
# Prefijo Almacenamiento Etiqueta SubEtiqueta {Data} [, Subetiqueta {Data}] [; Etiqueta SubEtiqueta {Data}] […] ;
# Sufijo Entre los cuales, {data} significa integrante, mientras que [datos] significa datos opcionales.
#
# Prefijo: “~0000” (HEX: 7E 01 30 30 30), 6 caracteres.
# StorageType:
# “@” o “#”,1 carácter.
# “@” significa ajuste permanente que no se perderá al quitar la alimentación del escáner o reiniciarlo;
# “#” significa ajuste temporal que se perderá al quitar la alimentación del escáner o reiniciarlo.
# Etiqueta:
# Campo de 3 caracteres que identifica el grupo de comandos deseado.
# Por ejemplo, la Etiqueta para el Código de Activación 11 es C11 (ver Ejemplo 1 del Capítulo 1).
# SubEtiqueta:
# Campo de 3 caracteres que identifica el parámetro deseado dentro del grupo de etiquetas.
# Por ejemplo, la Subetiqueta del Código de Activación 11 es ENA (ver Ejemplo 1 del Capítulo 1).
# Datos:
# El valor de una característica o ajuste de parámetro, identificado por la Etiqueta y la SubEtiqueta.
# Por ejemplo, los Datos del Código de Activación 11 son 1 (ver Ejemplo 1 del Capítulo 1).
# Sufijo:
# “;” (HEX: 3B 03), 2 caracteres.

def send_cmd(StorageType_Tag):
Prefijo = bytes(“\x7E\x01\x30\x30\x30\x30”, encoding=“utf-8”)
Sufijo = bytes(“\x3B\x03”, encoding=“utf-8”)

cmd = Prefijo + bytes(StorageType_Tag, encoding=“utf-8”) + Sufijo

print(“Enviando:”)
printHex(cmd)

ser.write(cmd)

time.sleep(0.1)
recv = ser.read(ser.en_espera)
print(“Respuesta:”)
printHex(recv)

def iniciar_escaneo():
print(“iniciar escaneo”)
send_cmd(“#SCNTRG1”)
return

def parar_escaneo():
print(“parar escaneo”)
send_cmd(“#SCNTRG0”)
return

Ponte en contacto con nosotros para obtener códigos de ejemplo completos: sales@rtscan.net
[/python]

Salida:

3. USB-HID

Si prefieres conectar el módulo lector de código de barras OEM mediante simulación de teclado USBtambién está bien, configura el escáner de código de barras de RTscan en modo HID,

A continuación, abre el “Editor de texto” del software Raspberry Pi, ejecuta el escaneado del código de barras, los datos descodificados aparecerán directamente.

El código python de ejemplo anterior puede utilizarse para la mayoría de nuestros escáneres de códigos de barras OEM, incluido el RT206 RT207 RT208 RT209 RT214, si quieres saber más sobre ellos, consulta el siguiente enlace:

https://www.rtscan.net/barcode-readers/oem-barcode-scanners/

Parte VI: Demostración en vídeo

También puedes consultar el siguiente vídeo de demostración para ver cómo funciona el escáner de código de barras OEM con Raspberry Pi:

Si necesitas un módulo lector de códigos de barras para el microcontrolador Arduino, lee:

Escáner de código de barras Arduino

Si necesitas un lector de códigos de barras tipo 2d y QR embebido para Arduino, lee:

Escáner de código QR integrado para Arduino

Si necesitas un escáner de código de barras embebido para Raspberry Pi, lee:

Escáner de código de barras integrado para Raspberry Pi

¡Pida una muestra para probar ahora!