-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
71 lines (56 loc) · 2.06 KB
/
main.py
File metadata and controls
71 lines (56 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
"""
TinyOLED Desktop — Giriş Noktası
Raspberry Pi 3B+ + 0.96" SSD1306 OLED
Çalıştırma:
sudo python3 main.py
Bağımlılıklar:
sudo apt install python3-smbus2
pip3 install RPi.GPIO
"""
import sys
import json
import logging
from pathlib import Path
# ── Loglama ────────────────────────────────────────────────────
logging.basicConfig(
level = logging.INFO,
format = "[%(levelname)s] %(name)s: %(message)s",
handlers = [
logging.StreamHandler(sys.stdout),
logging.FileHandler("/tmp/tinyoled.log"),
]
)
log = logging.getLogger("main")
# ── Yapılandırma ───────────────────────────────────────────────
CONFIG_PATH = Path(__file__).parent / "config" / "config.json"
def load_config() -> dict:
try:
return json.loads(CONFIG_PATH.read_text())
except Exception as e:
log.warning(f"config.json okunamadı ({e}), varsayılanlar kullanılıyor")
return {}
def main():
log.info("TinyOLED Desktop başlatılıyor...")
config = load_config()
# I2C ekran bağlantısı
try:
from core.display import SSD1306
bus = config.get("i2c_bus", 1)
addr = int(config.get("i2c_address", "0x3C"), 16)
display = SSD1306(bus=bus, address=addr)
log.info(f"SSD1306 bağlandı (bus={bus}, addr=0x{addr:02X})")
except Exception as e:
log.error(f"SSD1306 bağlantı hatası: {e}")
log.error("I2C etkin mi? sudo raspi-config → Interface Options → I2C")
sys.exit(1)
# Parlaklık ayarla
brightness = config.get("brightness", 200)
display.brightness(brightness)
# Masaüstü kabuğunu başlat
from desktop.shell import Desktop
desktop = Desktop(display)
log.info("Masaüstü hazır — Ctrl+C ile çıkın")
desktop.run()
log.info("TinyOLED Desktop kapatıldı.")
if __name__ == "__main__":
main()