цифровая электроника
вычислительная техника
встраиваемые системы

 

Сканер QR-кода на Raspberry Pi своими руками

Автор: Mike(admin) от 15-03-2020, 23:55

QR-коды (Quick-reference code) аналогичны штрих-кодам, поскольку они способны кодировать данные, представленные черными и белыми квадратами. Но вместо того, чтобы использовать лазер, камера различает пробелы и затем отправляет эту информацию для обработки. QR-коды состоят из нескольких больших квадратов, которые помогают выровнять и позиционировать края QR-кода, отформатировать столбцы, номер версии и, наконец, сами данные.


Сканер QR-кода на Raspberry Pi своими руками

Содержащиеся в них данные могут содержать различные типы информации, включая числа, символы и двоичные файлы, что позволяет использовать их в различных целях. Рекламодатели часто кодируют в них URL-адреса, которые перенаправляют пользователя на их веб-сайт. Другие компании могут разместить важную информацию о продукте в QR-коде, например, серийный номер, и прикрепить ее к компоненту. В этом проекте мы создадим простой сканер QR-кода с использованием Raspberry Pi и камеры.


Сканер QR-кода на Raspberry Pi своими руками

Существует пакет на Python под названием «qrcode», который позволяет пользователям быстро кодировать данные внутри QR-кода, а затем экспортировать их в виде изображения. Чтобы установить его, запустите


pip3 install qrcode[pil]

Затем вы можете импортировать его в скрипт и сгенерировать изображение PIL с помощью команды:



import qrcode
code = qrcode.make('Hello world!')

Затем изображение можно экспортировать в файл с помощью команды:


code.save(имя_файла.png)

Сканер QR-кода на Raspberry Pi своими руками

Сканер QR-кода на Raspberry Pi своими руками

Вы можете дополнительно настроить свои коды с помощью класса QRCode, который предоставляет такие параметры, как размер, величина исправления ошибок, версия и ширина границы.


Теперь, когда все ваши собственные QR-коды созданы, скомпилируйте их на одной странице и распечатайте.


Сканер QR-кода на Raspberry Pi своими руками

В данном проекте мы используем миникомпьютер Raspberry Pi 4 из-за его мощности, которая может дать приложению небольшой прирост скорости при чтении изображений.


Сканер QR-кода на Raspberry Pi своими руками

В нашем случае установлен Raspbian,. К Raspberry Pi можно подключиться через SSH и установить OpenCV.



sudo apt-get update

sudo apt-get install python3-opencv

sudo apt-get install libqt4-test python3-sip python3-pyqt5 libqtgui4 libjasper-dev libatlas-base-dev -y

pip3 install opencv-contrib-python==4.1.0.25

sudo modprobe bcm2835-v4l2

Последняя команда позволяет вам использовать Picamera с OpenCV VideoCapture.


Сканер QR-кода на Raspberry Pi своими руками

Если установка прошла успешно:



python3
import cv2

Код работает следующим образом. Сначала настраивается камера и детектор QR-кода. Затем читается в новом кадре и извлекается QR-код. Если есть код, рисуется рамкв вокруг него и отображвются его данные выше. Если клавиша выхода «q» не была нажата, возврат ко второму шагу. Программа также показывает обновленный кадр с наложенной графикой при каждом обновлении.




import cv2

cap = cv2.VideoCapture(0)

detector = cv2.QRCodeDetector()

while True:
    _, img = cap.read()
    data, bbox, _ = detector.detectAndDecode(img)
    
    if(bbox is not None):
        for i in range(len(bbox)):
            cv2.line(img, tuple(bbox[i][0]), tuple(bbox[(i+1) % len(bbox)][0]), color=(255,
                     0, 255), thickness=2)
        cv2.putText(img, data, (int(bbox[0][0][0]), int(bbox[0][0][1]) - 10), cv2.FONT_HERSHEY_SIMPLEX,
                    0.5, (0, 255, 0), 2)
        if data:
            print("data found: ", data)
    cv2.imshow("code detector", img)
    if(cv2.waitKey(1) == ord("q")):
        break
cap.release()
cv2.destroyAllWindows()



© digitrode.ru


Теги: Raspberry Pi, QR-код




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий