El projecte Luma.OLED és una llibreria de Python que permet controlar pantalles OLED (Organic Light-Emitting Diode) mitjançant Raspberry Pi, Orange Pi, o altres dispositius que suportin Python i control d’I2C/SPI. La llibreria forma part de l’ecosistema Luma.Display, que inclou també suport per a pantalles LCD i LED segmentats.
📌 Què és exactament Luma.OLED?
Luma.OLED és una llibreria open source que facilita la creació de interfícies gràfiques simples en pantalles OLED com ara les basades en controladors SSD1306, SSD1322, SH1106, etc. Està escrita en Python i fa servir mètodes molt intuïtius per dibuixar text, formes, imatges i fins i tot animacions.
🧩 Components principals del projecte
- luma.core – Base comuna per a totes les llibreries Luma; gestiona la comunicació amb els dispositius, la gestió de búfers i l’actualització del display.
- luma.oled – Llibreria específica per a pantalles OLED.
- Dispositius suportats:
- SSD1306
- SH1106
- SSD1322
- SSD1331
- WS0010 (OLEDs tipus caràcter)
🔧 Com funciona?
La llibreria fa servir una estructura de programació object-oriented (orientada a objectes). Exemple bàsic de codi:
from luma.core.interface.serial import i2c
from luma.oled.device import ssd1306
from PIL import ImageDraw, ImageFont, Image
# Inicialitza el dispositiu
serial = i2c(port=1, address=0x3C)
device = ssd1306(serial)
# Dibuixa text
from luma.core.render import canvas
with canvas(device) as draw:
draw.text((10, 10), "Hola món!", fill="white")
Aquest exemple envia text a una pantalla OLED basada en SSD1306 connectada via I2C.
🧠 Altres característiques
- Compatible amb Pillow (PIL) per a tractament d’imatges.
- Suport per a framebuffer per poder generar animacions o gràfics dinàmics.
- Possibilitat de crear interfícies personalitzades per a projectes com ara:
- Rellotges
- Panells d’informació
- Estadístiques en temps real (temperatura, CPU, etc.)
📦 Instal·lació
Per instal·lar Luma.OLED en una Raspberry Pi:
pip install luma.oled
sudo apt-get install python3-dev python3-pip libjpeg-dev libfreetype6-dev libopenjp2-7 libtiff5
🔗 Repositoris relacionats
- GitHub oficial: https://github.com/rm-hull/luma.oled
- Wiki i exemples: https://luma-oled.readthedocs.io/