Benutzer:Owagner
Inhaltsverzeichnis
Kinosteuerung
Ein AVR NET-IO mit Atmega644, Ethersex, ein paar Relais und IR-Sender/Empfänger steuert im Verbindung mit Homematic-Komponenten und einem zentralen Hausserver ein Heimkino.
- Lüftung
- Maske
- Temperatur
- Licht (via PIR) im Technikraum
- IR-Empfänger und Sender
- Statusanzeige auf 16x4-LCD
Allgemeiner Aufbau
Das Heimkino besteht aus zwei Räumen; dem "Saal" und dem Technikraum, in dem sich Verstärker, Projektor, HTPC und nun auch diese Steuerung befinden. Die Steuerung hat hierbei schon mehrere Evolutionsstufen hinter sich. Die NET-IO-Box als neuste Variante ersetzt hierbei einen Mischmsch aus Homematic-Aktoren, einen IR-Empfänger an einem als reinen Switch mißbrauchten WL500gP-Router mit DD-WRT und Steuerungslogik auf dem Hauptserver.
Das Netzteil ist aus Pollins Resterampe (Bestellnummer 350 686, 1.95€). Leistungsmäßig zwar überdimensioniert, liefert aber 3.3V, 5V und 12V und macht daher die ineffiziente Linearreagler-Stromversorgung auf dem NET-IO überflüssig. Die 12V werden für den PIR benötigt.
Die Relais werden durch einen ULN2003 ohne zusätzliche Beschaltung angesteuert.
Der standardmäßige Atmega 32 wurde durch einen Atmega 644 ersetzt, primär, um den Ethersex-Bootloader nutzen zu können.
Die Taster sind alle direkt mit Eingängen des Atmega verbunden, es wird keine Matrix o.ä. verwendet.
Das ganze ist in einem Bopla RCP 2000 Reglo-Card-Gehäuse untergebracht.
Die Implementierung der Software ist teils control6, teils direkter C-Code.
Lüftung
Zweistufige Lüftung mit Zeitschaltung. Realisiert durch zwei Relais in Entweder/Oder-Schaltung. Aktivierung durch ECMD oder über Taster am Gehäuse. Im Display wird der jeweilige Status und die Restlaufzeit angezeigt.
Maske
Die Leinwand im Kino ist eine fixe Rahmenleinwand im Format 16:9. Eine Maskierung auf breitere Formate wird dadurch realisiert, dass eine Abdeckplatte von unten ins Bild gefahren wird. Diese hängt einfach an einem Rolladenmotor. Im Rohbau kann man das hier [1] sehen.
Der Rolladenmotor wird über zwei Relais mit dem Atmega gesteuert. Es können direkt die Standardpositionen 16:9, 1.85:1 und 2.35:1 angefahren werden, und kleine Schritte nach Oben/Unten zur Anpassung von falsch kodierten Medien oder außergewöhnlichen Bildformaten sind ebenfalls möglich. Das Programm merkt sich hierbei intelligent die aktuelle Position und optimiert den Fahrtweg so, dass die neue Position möglichst schnell erreicht wird.
Die Position der Maske (per Balken) und die aktuelle Laufrichtung wird im Display visualisiert.
Temperatur
Per Onewire-Bus, an dem einige DS1820 hängen, werden die Temperatur von Lüftungsvorlauf- und Rücklauf sowie von einigen Geräten gemessen, angezeigt und per ECMD (zum Graphing via Cacti) zur Verfügung gestellt. Es ist geplant, evt. später intelligent auf Temperaturen zu reagieren (z.B. im Sommer -> hohe Innentemperatur -> Lüftung auf volle Geschwindigkeit)
Licht
Ein alter Passiv-IR-Melder aus einer stillgelegten Alarmanlage im Haus dient dazu, Licht im Technikraum automatisch einzuschalten. Alternativ kann das Licht über ECMD aktiviert werden; dies dient dazu, das Licht mittels Homematic-Tastern (über die CCU) zu steuern. Auch hier ist eine Zeitsteuerung implementiert, die Restlaufzeit wird im Display angezeigt.
IR
Da die gesamte Enduser-Steuerung des Kinos über eine Logitech Harmony 900 IR-Fernbedienug erfolgt, kam die IRMP-Unterstützung in ethersex sehr gelegen. Zum einen können Funktionen (z.B. Maske) direkt angesteuert werden, zum anderen werden aber die FB-Codes auch per UDP an den Hauptserver geschickt, der dann verschiedene komplexe Abläufe steuert. Unter anderem dient die IR-Sende-Funktion auch dazu, die fehlende Makrofunktionalität der Harmony durch servergesteuerte Abläufe zu kompensieren.
IR-Sender und Empfänger sind jeweils exakt nach IRMP-Beispielschaltungen aufgebaut.
LCD
Das Display ist ein Powertip 1604 16x4-Display, welches im HD47780-Modus angesteuert wird. Die Zeilenadressen sind
#define LCD_LINE_1_ADR 0x00 #define LCD_LINE_2_ADR 0x40 #define LCD_LINE_3_ADR 0x10 #define LCD_LINE_4_ADR 0x50
Das Display benötigt, anders als in der Spezifikation angegeben, eine negative Kontrastspannung. Diese wird auf dem NET-IO vom MAX232 bezogen.