PI – OLED ssd1306 display

Pro CanSat projekt je velmi praktické mít malý displej, na kterém lze zobrazovat důležité informace/ animace. například teplotu/ výšku/ stav baterie/ telemetrická data/ nebo jednoduché animace. Velmi oblíbenou volbou je OLED displej s řadičem SSD1306, nejčastěji ve variantě 128×64 px nebo menší 128×32 px.

Proč zvolit OLED?

Na rozdíl od klasických LCD displejů OLED nepotřebuje podsvícení. Každý pixel svítí samostatně, což přináší několik zásadních výhod:

  • Velmi nízká spotřeba energie – ideální při napájení z baterie v CanSatu.
  • Vysoký kontrast – text zůstává dobře čitelný i na přímém slunci.
  • Kompaktní rozměry – displej se bez problémů vejde do omezeného prostoru konstrukce.

Co budete potřebovat

  • Raspberry Pi
  • OLED displej SSD1306 s I2C
  • 4× propojovací vodiče female–female

Zapojení displeje (I2C)

Sběrnice I2C využívá pouze dva datové vodiče – SDA(data) a SCL(clock) – což výrazně zjednodušuje zapojení.

Pin displejePin Raspberry PiFunkce
VCCPin 1 (3.3V)Napájení
GNDPin 6 (GND)zem
SDAPin 3 (GPIO2)(SDA)data
SCLPin 5 (GPIO3)(SCL)Clock signál

Aktivace I2C na Raspberry Pi

Rozhraní I2C je standardně vypnuté. Zapnete jej pomocí:

sudo raspi-config

Zvolte:

Interface Options → I2C → Enable

Poté zařízení restartujte:

sudo reboot

Instalace potřebných balíčků

Nejprve aktualizujte systém a nainstalujte potřebné nástroje:

sudo apt update && sudo apt upgrade
sudo apt install -y i2c-tools python3-pip

Ověřte, že Raspberry Pi displej detekuje:

i2cdetect -y 1

V tabulce by se měla objevit adresa 3C. Pokud se nezobrazí, zkontrolujte zapojení vodičů.

Instalace knihoven Adafruit

Použijeme knihovny od Adafruit, které běží přes vrstvu Blinka:

pip3 install adafruit-circuitpython-ssd1306 adafruit-blinka

Testovací skript

Vytvořte soubor:

nano oled_test.py

Vložte následující kód:

from luma.core.interface.serial import i2c
from luma.oled.device import ssd1306
from luma.core.render import canvas
# nastavení komunikace (stejné jako v tvém velkém kódu)
serial = i2c(port=1, address=0x3C)
device = ssd1306(serial, width=128, height=32)
# místo Image.new a display.show() se vše děje tady:
with canvas(device) as draw:
# vykreslí text na souřadnice 10 (zleva) a 20 (shora)
draw.text((10, 20), "hello world!", fill="white")
# jakmile kód vyskočí z 'with' bloku, obraz se sám objeví na oled displeji
Ctrl+o ; Enter ; Ctrl+x

Uložte a spusťte:

python3 oled_test.py

Na displeji by se měl objevit text „Hello World!“.

Praktické využití displeje v CanSat

OLED displej může sloužit jako důležitý diagnostický nástroj:

  • Před startem – zobrazení hlášek jako „GPS FIX OK“ nebo „SD CARD READY“.
  • Během testování – okamžitý přehled o teplotě a tlaku bez nutnosti připojení k počítači.
  • Stav baterie – jednoduchý grafický indikátor (např. pomocí draw.rectangle).
  • Animace běhu systému – například blikající ikona při zpracování dat.
  • Ladění chyb – výpis poslední chybové hlášky při pádu programu.

Kategorie