새기능 #9
진행중[튜토리얼] oled 디스플레이 제어
100%
설명
라즈베리파이 4에서 0.96인치 OLED (I2C) 제어하기
라즈베리파이에서 0.96인치 OLED 디스플레이를 I2C 방식으로 제어하는 것은 매우 일반적인 작업입니다. 이 디스플레이는 보통 SSD1306 컨트롤러 칩을 사용하며, 라이브러리를 활용하면 파이썬으로 쉽게 제어할 수 있습니다.
- 하드웨어 연결 (I2C)
0.96인치 OLED는 일반적으로 4개의 핀을 가지고 있습니다: VCC, GND, SCL, SDA.
VCC: 라즈베리파이의 3.3V 핀 (물리적 핀 1 또는 17)
GND: 라즈베리파이의 GND 핀 (물리적 핀 6, 9, 14, 20, 25, 30, 34, 39 등)
SCL (Serial Clock Line): 라즈베리파이의 GPIO 3 (물리적 핀 5)
SDA (Serial Data Line): 라즈베리파이의 GPIO 2 (물리적 핀 3)
- 라즈베리파이 설정 (I2C 활성화)
OLED를 제어하기 위해서는 라즈베리파이에서 I2C 통신 기능을 활성화해야 합니다.
터미널을 열고 다음 명령어를 입력하여 라즈베리파이 설정을 엽니다:
Bash
sudo raspi-config
메뉴에서 3 Interface Options -> I2C -> Yes를 선택하여 I2C 기능을 활성화합니다.
Finish를 선택하고 재부팅 메시지가 나오면 Yes를 선택하여 재부팅합니다.
- 필수 라이브러리 설치
OLED를 제어하기 위한 파이썬 라이브러리와 필요한 도구를 설치해야 합니다.
I2C 도구 설치:
sudo apt-get update
sudo apt-get install -y i2c-tools python3-dev python3-pip libjpeg-dev zlib1g-dev
i2c-tools: I2C 장치를 찾고 디버깅하는 데 유용합니다.
python3-dev, python3-pip: 파이썬 개발 환경 및 패키지 관리 도구입니다.
libjpeg-dev, zlib1g-dev: 이미지 처리 라이브러리인 Pillow를 설치하는 데 필요합니다.
OLED 라이브러리 설치:
가장 널리 사용되는 라이브러리는 Adafruit의 CircuitPython 라이브러리를 기반으로 하는 luma.oled 또는 Adafruit_CircuitPython_SSD1306 입니다. luma.oled가 더 범용적이고 사용하기 편리합니다.
Bash
pip3 install luma.oled
pip3 install Pillow # 이미지 처리를 위해 필요
또는, Adafruit 라이브러리를 직접 사용하려면:
pip3 install adafruit-circuitpython-ssd1306
pip3 install adafruit-blinka # CircuitPython을 위한 계층
이 가이드에서는 luma.oled를 기준으로 설명합니다.
- OLED 주소 확인 (선택 사항)
OLED 모듈의 I2C 주소를 확인하는 것은 좋은 습관입니다. 대부분의 SSD1306 OLED는 0x3C 또는 0x3D 주소를 가집니다.
i2cdetect -y 1
이 명령어를 실행하면 I2C 버스 1에 연결된 장치들의 주소가 표시됩니다. UU 또는 특정 숫자로 표시된 것이 OLED의 주소입니다. 예를 들어, 3c 또는 3d가 보일 것입니다.