Skip to content

Commit 71e3653

Browse files
committed
add a qr-scanning ap
1 parent adb0443 commit 71e3653

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

examples/qrio/code.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2021 Jeff Epler for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: Unlicense
4+
5+
"""
6+
This demo is designed for the Kaluga development kit version 1.3 with the
7+
ILI9341 display.
8+
"""
9+
10+
from terminalio import FONT
11+
import board
12+
import busio
13+
import displayio
14+
import qrio
15+
import time
16+
import bitmaptools
17+
import espcamera
18+
from adafruit_display_text.bitmap_label import Label
19+
from adafruit_pycamera import PyCamera
20+
21+
zoomed = displayio.Bitmap(240, 176, 65535)
22+
pycam = PyCamera()
23+
pycam.camera.reconfigure(
24+
pixel_format=espcamera.PixelFormat.RGB565,
25+
frame_size=espcamera.FrameSize.VGA,
26+
)
27+
pycam._mode_label.text = "QR SCAN"
28+
pycam._res_label.text = ""
29+
pycam.effect = 0
30+
pycam.display.refresh()
31+
qrdecoder = qrio.QRDecoder(zoomed.width, zoomed.height)
32+
33+
old_payload = None
34+
while True:
35+
new_frame = pycam.continuous_capture()
36+
if new_frame is None:
37+
continue
38+
bitmaptools.blit(zoomed, new_frame, 0, 0, x1=(640-240)//2, y1=(480-176)//2)
39+
pycam.blit(zoomed)
40+
for row in qrdecoder.decode(zoomed, qrio.PixelPolicy.RGB565_SWAPPED):
41+
payload = row.payload
42+
try:
43+
payload = payload.decode("utf-8")
44+
except UnicodeError:
45+
payload = str(payload)
46+
if payload != old_payload:
47+
pycam.tone(200, 0.1)
48+
print(payload)
49+
pycam.display_message(payload, color=0xffffff, scale=1)
50+
time.sleep(1)
51+
old_payload = payload

0 commit comments

Comments
 (0)