1. Adafruit 라이브러리 설치.
보드에 설치한 Circuitpython 버전에 맞는 라이브러리를 다운로드 받는다.
나는 현재 9.2.0 버전을 설치했기 때문에 내가 내려받은 파일은 adafruit-circuitpython-bundle-9.x-mpy-20241103.zip이다.
그 아래 Source Bundle를 내려받아 설치하는 것은 나중에 해볼 생각이며,
Example Bundle도 내려받아 예제를 공부해도 좋을거같다.
https://circuitpython.org/libraries
CircuitPython - Libraries
The easiest way to program microcontrollers
circuitpython.org
2. 회로 구성.
3. 프로그램 작성.
이 프로그램을 실행하려면 font5x8.bin 파일이 필요하다.
https://github.com/adafruit/Adafruit_CircuitPython_framebuf/blob/main/examples/font5x8.bin
Adafruit_CircuitPython_framebuf/examples/font5x8.bin at main · adafruit/Adafruit_CircuitPython_framebuf
CircuitPython framebuf module, based on the Python framebuf module - adafruit/Adafruit_CircuitPython_framebuf
github.com
이 파일을 내려받아 CircuitPython 장치에 복사해 넣는다.
import board
import busio
import displayio
import adafruit_displayio_ssd1306
from adafruit_display_text import label
import terminalio
import time
WIDTH = 128
HEIGHT = 64
# SCL(SCK)과 SDA가 연결된 보드의 GP1과 GP0 핀 번호 설정
i2c = busio.I2C(scl=board.GP1, sda=board.GP0)
display_bus = displayio.I2CDisplay(
i2c,
device_address=0x3C,
)
display = adafruit_displayio_ssd1306.SSD1306(display_bus, width=WIDTH, height=HEIGHT)
# Make the display context
splash = displayio.Group()
display.root_group = splash
color_bitmap = displayio.Bitmap(display.width, display.height, 1)
color_palette = displayio.Palette(1)
color_palette[0] = 0x000000
bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0)
splash.append(bg_sprite)
# Draw a smaller inner rectangle
inner_bitmap = displayio.Bitmap(
display.width - BORDER * 2, display.height - BORDER * 2, 1
)
inner_palette = displayio.Palette(1)
inner_palette[0] = 0xFFFFFF
inner_sprite = displayio.TileGrid(
inner_bitmap, pixel_shader=inner_palette, x=BORDER, y=BORDER
)
splash.append(inner_sprite)
# Draw a label
text = "Hello PROGATE!"
text_area = label.Label(terminalio.FONT, text=text, color=0x000000)
text_width = text_area.bounding_box[2] * FONTSCALE
text_group = displayio.Group(
scale=FONTSCALE,
x=display.width // 2 - text_width // 2,
y=display.height // 2,
)
text_group.append(text_area) # Subgroup for text scaling
splash.append(text_group)
time.sleep(1)
displayio.release_displays()
4. 테스트
'raspberrypi > pico rp2040' 카테고리의 다른 글
CircuitPython을 위한 editor 설치하기(thonny) (0) | 2024.11.03 |
---|---|
CircuitPython 설치 (1) | 2024.11.02 |
RP2040 16M (0) | 2024.11.02 |