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 displeje | Pin Raspberry Pi | Funkce |
|---|---|---|
| VCC | Pin 1 (3.3V) | Napájení |
| GND | Pin 6 (GND) | zem |
| SDA | Pin 3 (GPIO2)(SDA) | data |
| SCL | Pin 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 upgradesudo 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 i2cfrom luma.oled.device import ssd1306from 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.
