Este tutorial le enseñará cómo escanear códigos QR usando el módulo Raspberry Pi y la cámara oficial Raspberry Pi. Para conectar la cámara a la Raspberry pi, utilizamos un encabezado dedicado disponible a bordo. También puedes utilizar una cámara USB con Raspberry Pi. La desventaja es que la interfaz USB es lenta. Además, la versión del puerto USB de Raspberry Pi es 2.0, que es lenta en comparación con la 3.0. También se requiere alguna configuración y configuración adicional para indicarle a Raspberry que hay una cámara USB conectada a su puerto USB. La cámara oficial es fácil de usar y todos los archivos de soporte ya están instalados.
Antes de comenzar, supongo que ya has conectado la cámara al Pi.
En primer lugar debemos habilitar la cámara en el archivo de configuración de Raspberry. La forma más sencilla es hacerlo gráficamente. Vaya al menú principal>Preferencias>Configuración de Raspberry Pi en la siguiente ventana y vaya a las interfaces de la cámara, seleccione el botón habilitar.
Ahora es el momento de actualizar e instalar los paquetes de cámara necesarios para activar la cámara. Picamera es un paquete liviano. Ofrece muchas funciones y, sobre todo, es fácil de jugar. Instalé este paquete. Abra el símbolo del sistema de Raspberry pi y escriba los siguientes comandos.
$ sudo apt-obtener actualización
$ sudo apt-get install python-picamera python3-picamera
Nota : Ambas versiones de los paquetes Python 2 y 3 se instalarán al mismo tiempo con el comando anterior. Depende de usted con qué versión de Python esté trabajando. Estoy trabajando con Python 3 .
Otro paquete requerido es zbarlight. Este paquete decodifica el código QR presente en la imagen. Para instalar zbarlight, escriba los siguientes comandos en el símbolo del sistema.
$ apt-get instalar libzbar0 libzbar-dev
$ pip3 instalar zbarlight
El paquete de procesamiento de imágenes llamado PIL está preinstalado en la Raspberry pi. Si no está presente, puede instalarlo con
instalación de pip –no-index -f -U PIL
En el código, primero importé los paquetes en la parte superior.
- Paquete de cámara Pi para trabajar con la cámara Raspberry Pi
- Hora > dormir Por retraso
- PIL para procesamiento de imágenes
- Zbarlight para decodificar y encontrar el código QR presente en la imagen procesada.
A continuación, se crea una instancia de PiCamera llamada cámara. Camera.start_preview abre la transmisión de la cámara y puede ver la vista de la cámara en una pantalla LCD a la que está conectada la Raspberry pi. Sleep(5) el control permanece suspendido durante 5 segundos. Podrás ver la imagen de la cámara en estos 5 segundos. Camera.captura captura la imagen y la almacena en la ubicación especificada en los argumentos de la función. Camera.stop_preview finalizar la alimentación de la cámara significa que no se mostrará ninguna cámara en la pantalla.
Ahora comienza la parte de decodificación de imágenes y extracción del código QR. Una variable denominada ruta de archivo ruta asignada a la imagen. Con la declaración abierta se abre la imagen como un archivo de imagen. ' rb ' significa que el archivo bajo consideración no es un archivo de texto. La imagen variable contiene el archivo, que se abre mediante la biblioteca de procesamiento de imágenes PIL(Imagem.open(image_file)) . Image.load carga la imagen. Los vectores de imagen ahora están presentes en la variable de imagen . Luego, los vectores se pasan a zbarlight para extraer el código QR de los vectores. El código QR extraído se almacena en la variable códigos y al final imprimir declaración imprime el texto extraído en la consola.
Prueba
Generé un código QR usando un sitio web en línea en mi teléfono celular. El texto de entrada QR está en el lado izquierdo y la imagen QR codificada está en el lado derecho.
Ejecuté el código en la Raspberry pi y coloqué el celular frente a la cámara ( Puedes ver el video en el siguiente enlace)
El mensaje decodificado es
Utilicé el ide estándar de Python de Thonny en la Raspberry Pi. Puede ejecutar el archivo Python desde el símbolo del sistema. Sugiero usar cualquier idea de Python. Ide le informará de cualquier error y escribirá si surge algún error.
Hagamos este proyecto de bricolaje: ¿Dónde comprar piezas?
Raspberry Pi (Electrónica de Mouser)
Cámara Raspberry pPi (Electrónica Mouser)