Helligkeitsregelung (LDR -> Stufe/Prozent) ergaenzt

- brightness.py: BrightnessController + CLI, portiert aus DoDimmen_V/main.h
  (gleitender Mittelwert, Hysterese). Schwellen 300/2500 aus altem Code,
  Prozente 5/15/50/100
- verallgemeinert auf 4 Stufen: 100% jetzt erreichbar (alter Code max 50%);
  neue obere Grenze HELL_MAX=3500 (anpassbar), Rest wie im Original
- run_display: --ldr bindet die Regelung in die Hauptschleife ein
  (sendet nur bei Stufenwechsel)
- test_brightness.py: Schwellen, Hysterese, Mittelung
- README dokumentiert die Regelung; .gitignore: Hardware/

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-18 09:13:02 +02:00
parent 4acec81657
commit 4cb8ea32d5
5 changed files with 242 additions and 3 deletions
+16
View File
@@ -18,6 +18,7 @@ import time
import config
import coords
import migra
from brightness import BrightnessController
from display import open_display
from mount_client import MountClient, MountError
@@ -40,6 +41,8 @@ def main(argv=None):
help="nur mit --mock: RA laeuft mit der Zeit")
p.add_argument("--dry-run", action="store_true",
help="Anzeige nur als Hex mitschreiben (keine serielle Hardware)")
p.add_argument("--ldr", type=int, default=None,
help="LDR-Rohwert fuer die Helligkeitsregelung (spaeter vom ADC)")
args = p.parse_args(argv)
host, port = args.host, args.port
@@ -55,11 +58,24 @@ def main(argv=None):
client = MountClient(host, port, timeout=config.MOUNT_TIMEOUT)
last_shown = None
# Helligkeitsregelung: derzeit ein fester LDR-Wert von der Kommandozeile;
# spaeter (ESP32) wird hier pro Durchlauf der ADC gelesen.
dimmer = BrightnessController() if args.ldr is not None else None
try:
while True:
try:
if not client.connected:
client.connect()
# Helligkeit nachfuehren (nur senden, wenn sich die Stufe aendert)
if dimmer is not None:
level, percent, changed = dimmer.update(args.ldr)
if changed:
d.set_brightness(percent)
print("LDR %d -> Helligkeit Stufe %d = %d %%"
% (args.ldr, level, percent))
ra_raw, dec_raw = client.get_coordinates()
ra_line, dec_line = _format(ra_raw, dec_raw)