code.py
1 # SPDX-FileCopyrightText: Copyright (c) 2022 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 import struct 11 import board 12 import esp32_camera 13 import qrio 14 15 print("Initializing camera") 16 cam = esp32_camera.Camera( 17 data_pins=board.CAMERA_DATA, 18 external_clock_pin=board.CAMERA_XCLK, 19 pixel_clock_pin=board.CAMERA_PCLK, 20 vsync_pin=board.CAMERA_VSYNC, 21 href_pin=board.CAMERA_HREF, 22 pixel_format=esp32_camera.PixelFormat.RGB565, 23 frame_size=esp32_camera.FrameSize.R240X240, 24 i2c=board.I2C(), 25 external_clock_frequency=20_000_000, 26 framebuffer_count=2) 27 cam.vflip = True 28 cam.hmirror = True 29 30 board.DISPLAY.auto_refresh = False 31 display_bus = board.DISPLAY.bus 32 33 print(cam.width, cam.height) 34 qrdecoder = qrio.QRDecoder(cam.width, cam.height) 35 36 print(qrdecoder.width, qrdecoder.height) 37 #raise SystemExit 38 39 ow = (board.DISPLAY.width - cam.width) // 2 40 oh = (board.DISPLAY.height - cam.height) // 2 41 display_bus.send(42, struct.pack(">hh", ow, cam.width + ow - 1)) 42 display_bus.send(43, struct.pack(">hh", oh, cam.height + ow - 1)) 43 44 while True: 45 frame = cam.take(1) 46 display_bus.send(44, frame) 47 for row in qrdecoder.decode(frame, qrio.PixelPolicy.RGB565_SWAPPED): 48 payload = row.payload 49 try: 50 payload = payload.decode("utf-8") 51 except UnicodeError: 52 payload = str(payload) 53 print(payload) 54 print(end=".")