Light Control System V2.0

Dies hier ist "Light Control System V2" - eine Weiterentwicklung von LCS V1. Es soll wieder alles deutlich komfortabler und intuitiver werden. Da es aber fast einer Runderneuerung gleicht, ist dies nicht nur ein Update sondern ein ganzes eigenständiges Projekt.

Einige Beispiele, welche mir an der alten Steuerung nicht gefallen:

  • Nur um z.B. die RGB Farbe zu ändern, musste man ans Steuergerät gehen und sich mit den Cursortasten durchs Menü hangeln. Zudem lässt sich kein Fadingmodus einstellen.
  • Das Display an der jetzigen Box ist außerdem schwer lesbar, denn es ist hinter einer Filterscheibe, welches eigentlich für VFD’s (Vakuum-Fluoreszenzanzeige) ist.
  • Man konnte zwar die Innentemperatur ablesen, aber auch nur nachdem man sich durch das Menü geklickt hat. Die Möglichkeit die Außentemperatur zu erfahren, ist gänzlich nicht vorhanden.

Diese „Probleme“ sollen behoben werden und auch neue Funktionen sind geplant.

Um erst einmal einen Überblick zu bekommen, wie ich das Ganze zu realisieren versuche habe ich einen Schaltplan erstellt: (zum Vergrößern: Rechtsklick - Grafik anzeigen)

Schaltplan Light Control System V2


Das erste Grafik-Display ist 240 x 128 Pixel groß und soll die Funktionen der Box anzeigen. Auf dem Homescreen wird die Uhrzeit in digitaler und analoger Form dargestellt, die Temperaturwerte von Innen und Außen angezeigt und da die Uhr eine Alarmfunktion besitzen wird, die entsprechenden Werte. Ein Menü lässt sich auf dem großen Display auch übersichtlicher gestalten. Zudem soll ein Drehimpulsgeber die Navigation erleichtern.

Das zweite ebenfalls 240 x 128 Pixel große Display soll per USB an den Computer angeschlossen werden können und PC spezifische Informationen wie Prozessorleitung, Temperaturen etc. Darstellen.

Das dritte Display, welches auch ein VF-Display ist, wird in der Box integriert sein und nur ein paar Statusinformationen anzeigen. Das VFD, die Fronttasten und der IR Empfang werden vom auf dem Display sitzenden Controller ausgewertet und dann per UART an den Hauptprozessor (wieder ein Atmega 1280) gesendet.

Per Lichtsensor lassen sich alle drei Displays automatisch in der Helligkeit regeln und blenden somit nicht, wenn es im Raum dunkler wird.

Dieses mal werden 2 komplette RGB Ausgänge mit an Bord sein. Gesteuert werden diese nicht vom Hauptprozessor selber, sondern über kleine Co-Prozessoren, welche dann auch Fadinganimationen zulassen. Angebunden sind diese per I²C bzw. TWI.

Der Hauptprozessor sollte leicht für Updates programmierbar sein – ohne die Box öffnen zu müssen und Programmieradapter bereit zu halten. Per USB sollen Updates schnell und komfortabel eingespielt werden können.

Zuletzt dürfte der Netzwerkanschluss zu nennen sein. Wobei ich mir da noch unsicher bin ich wie ich das umsetzen werde. Daher auch nur die Bezeichnung „Netzwerkcontroller“.

Soviel vorerst zum Vorhaben. Das es umgesetzt wird steht fest, aber es ist Sommer – also nicht gerade die Zeit zum Basteln. Man ist ja dann doch eher im Freibad als allein daheim sich mit nicht funktionierenden Programmcodes herumzuschlagen. Es wird daher wahrscheinlich nur schleppend vorrangehen. Als erstes werde ich wohl ein paar Sachen bestellen müssen. Aber wenns ums Kaufen geht bin ich sehr schnell… ;)

PS: Da ich in der Vergangenheit immer wieder angeschrieben worden bin zu den Sourcecodes der Projekte, werde ich diese ab sofort immer mit Veröffentlichen.


Update 07.06.12

Der erste Schritt zum Projekt ist getan. Letzte Woche habe ich alle benötigten Artikel bei den einschlägigen Elektronikversendern und auch eBay bestellt.

Wie immer ein bisschen Elektronikkleinkram

Light Control System V2 - Elektronikkleinkram


Damit die Entwicklung schneller geht, habe ich ein Steckboard geholt. Das fehlte eigentlich schon lange

Light Control System V2 - Steckboard


Das schon fast wichtigste der Bestellung: Ein Drehimpulsgeber. Damit wird sich komfortabler durchs Menü scrollen lassen:

Light Control System V2 - Drehimpulsgeber


Bei eBay habe ich dann das USB Display ersteigert. Auf dem Bild sieht man es nicht so gut, da der größere Rahmen des linken Displays eine optische Täuschung hervorruft – alle beiden Displays sind sowohl von der Pixelzahl (240x160) wie auch von der sichtbaren Bildschirmfläche gleich groß.

Light Control System V2 - 240x128 DisplaysLight Control System V2 - USB Grafikdisplay

Light Control System V2 - USB Grafikdisplay


Ein Arduino 2560 Klon habe ich ebenfalls auf eBay ersteigert. Zwar „nur“ mit einem Atmega 1280 aber so viel Speicherplatz werde ich wahrscheinlich nicht benötigen:

Light Control System V2 - Arduino KlonLight Control System V2 - Arduino Klon


Jetzt fehlt nur noch das Display des X301T Receivers, da ich das Originale bei meiner Box bei einem älteren PC-Moddingprojekt zerstört habe. Gebote auf entsprechende (gebrauchte) X301T Geräte werden schon fleißig abgegeben…


Update 17.06.12

Der bzw. die ersteigerten X301T Geräte sind inzwischen auch angekommen. Eigentlich sollte es nur einer werden aber da ich dachte, dass die Geräte teurer sind und ich das Gerät schnell gebraucht habe, bot ich einfach mal auf 6 Stück 30 EUR. In der Hoffnung, dass ich (in der Annahme, dass die Geräte wahrscheinlich über 30 EUR weggehen) zumindest eines günstig bekomme. Letztendlich sind alle für durchschnittlich 25 EUR verkauft worden. So ein Mist aber auch. Jetzt habe ich halt sechs dieser Geräte. Ein Einsatzzweck für die restlichen 5 die ich bei diesem Projekt nicht benötige wird sich hoffentlich finden…


An einem X301T habe ich schon versucht, das Display anzusteuern.


Die Firmware für den Atmega88 auf der Displayplatine habe ich aber nicht selber geschrieben. Ich verwende die Firmware vom T-Hack.com Forum. (http://www.t-hack.com/forum/index.php?topic=511.0). Da der Entwickler nur die Hex-Datei verteilt, ich aber die Sourcedatei benötige, habe ich ihn mit ein bisschen Barem „bestochen“ .

Wenn das Projekt fertig ist, werde ich die Datei auch im Hex-Format veröffentlichen müssen. Da muss ich den Entwickler noch einmal fragen…

In der Zwischenzeit habe ich außerdem eine provisorische Halterung für das Display gebaut und die Pinbelegung für den Atmega 1280 erstellt. Erfahrungsgemäß wird sich diese während des Programmierens noch ändern.



Ansonsten habe ich ein paar Bauteile auf dem Entwicklungsboard verteilt und auch schon angeschlossen. Jetzt können erst einmal die einzelnen Komponenten getestet werden – dazu nächstes Mal mehr…


Update 07.08.12

Lang ist‘s her, dass es das letzte Update zu diesem Projekt gab. Wird also mal wieder Zeit.

Es hat sich doch recht viel getan, auch wenn man das Meiste auf den ersten Blick nicht sieht.
Das Experimentierboard ist ein bisschen voller geworden. Zudem musste ich während dem Testen ein paar Komponenten, welche anfangs angedacht waren, verändern. Dazu mehr unter „Hardware“


Softwaremäßig: Das Grundgerüst des Menüs steht und auch der Mainscreen füllt sich so langsam nach meinen Vorstellungen.

Der Mainscreen mit Analoguhr, Digitaluhr, Datum- und Temperaturanzeige:


Mag alles noch ein bisschen leer aussehen, aber für den Mainscreen allein habe ich etliche Stunden gebraucht.

Das wohl Aufwändigste war die Analoguhr auf das GLCD zu bringen. Sieht zudem nur primitiv aus, doch der Programmieraufwand ist recht groß. Schließlich muss jede einzelne Linie der Zeiger berechnet werden.
Die Digitalanzeige der Uhr ist da kein Thema mehr. Nur wollte ich diese in großen Zahlen anzeigen lassen. Die bascominternen Routinen zur Einbindung und Benutzung von unterschiedlichen Fonts (Schriftarten) funktionierte bei meinem Display nicht, da es einen T6963 Controller enthält. Dieser Controller hat im Gegensatz zum z.B. KS108 schon einen integrierten Fontgenerator an Bord.
Das hat den Vorteil, dass man Zeichen direkt vom Controller aus per ASCII senden kann. Es geht schnell und spart Speicherplatz auf dem µC. Schließlich müssen keine Fonts eingebunden werden.
Der Nachteil ist allerdings, das man eben an diese eine Fontgröße im T6963 gebunden ist (hier 6x8px groß)
BASCOM verweigert bei verwenden eines T6963 Displays partout das Benutzen von eigenen Fonts. Ich habe es eigentlich schon aufgegeben und wollte ein anderes Display kaufen mit KS108 Controller. In Foren liest man überall, mit einem T6963 Controller sei dies unmöglich. Bis ich dann nach langem Googeln auf dieser Seite landete: http://evertdekker.com/Joomla/index.php?option=com_content&task=view&id=49&Itemid=86
Wunderbar – genau das richtige für mein Problem. Jetzt kann ich sogar die internen Fonts des Displaycontroller (schnellerer Seitenaufbau) und eigene Fonts verwenden.


Das Menü habe ich von meinem letzten Projekt übernommen. Nur daraufhin angepasst, dass nun der Cursor durch die Menüpunkte wandert und nicht die Menüpunkte zum Cursor hin wandern. Bei längeren Menüs werden jetzt auch Pfeile an der rechten Seite angezeigt, ob es noch Menüpunkte außerhalb des sichtbaren Bereichs gibt (ob unten, oben oder in beide Richtungen).


Zur einfachen Bedienung des Menüs ist nun auch der Drehencoderknopf „Multifunktional“. Mit einem einfachen Klick gelangt man einen Menüpunkt vorwärts, mit einem langen Klick (auf dem Encoder draufbleiben) kommt man wieder einen Menüpunkt zurück. Und egal wo man gerade im Menü ist – mit einem Doppelklick ist man schnell wieder im Hauptmenü. Per Fernbedienung kann das Menü selbstverständlich auch bedient werden.

Die Zeichen zur Steuerung sind eigentlich selbsterklärend:

 

Ein kleines Video zur Menüsteuerung:

{youtube}jufB4gXMVEc{/youtube}


Hardware:

Temperatursensoren

Beim Testen ist mir aufgefallen, dass in Verbindung mit der Abfrage des Drehencoders per Timer die 1Wire Kommunikation mit den Temperatursensoren nicht mehr funktioniert. Das Problem liegt in der softwarebasierten Kommunikation zwischen µC und 1Wire.
Der Drehencoder wird jede Millisekunde auf Zustandsänderung abgefragt. Schließlich soll keine Rasterung verloren gehen und das auch bei schnellem Drehen nicht. Dies geschieht per Interrupt, der das laufende Programm alle 1ms unterbricht und in eine Subroutine zum Abfragen des Drehencoders springt. Nach der Abfrage setzt das Programm an der Stelle, wo der Interrupt unterbrochen hat, weiter. Prinzipiell kein Problem für das Hauptprogramm. Setzt der Interrupt allerdings genau dann ein, wenn Daten per 1Wire „erzeugt“ werden, dann gerät das ziemlich zeitkritische Timing der 1Wire Kommunikation aus den Fugen und die Temperatursensoren werden nicht richtig abgefragt. Mit anderen Übertragungsarten wie I2C passiert das nicht, da diese als Hardwaremodul ausgeführt sind und sozusagen parallel zum Programmablauf Daten selbstständig verarbeiten können.

Also habe ich den Temperatursensoren einen eigenen Atmega8 spendiert, der nichts anderes macht, als die Temperatursensoren abzufragen. Den Atmega8 frage ich dann vom Hauptcontroller per I2C ab.

RGB Beleuchtung

Für RGB ist inzwischen ein einzelner Atmega88 zuständig. Dieser besitzt 6 PWM Ports und daher perfekt für 2 voneinander unabhängige RGB Steuerungen. Angesteuert wird dieser ebenfalls mit I2C.

So das war’s mal wieder mit den News. Aber da ich inzwischen Urlaub habe, sollte es hier auch sehr bald weitergehen ;)


Update 06.12.12

Und weiter geht’s im Projekt…

Was ist seit dem letzten Update passiert?

Unter anderem wurde die externe Anschlussbox, an die später die Beleuchtungsmittel angeschlossen werden, fertiggestellt. Extern ist diese deshalb, da ich sehr viele Anschlüsse benötige und die Rückseite des X301T Receivers nicht so viel Platz bietet, alle erforderlichen Anschlüsse unterzubringen.

Die Box nach der Bearbeitung:


Und hier mit Innenleben:


Insgesamt bietet die Box 17 Anschlüsse in Form von 5,5/2,1mm Hohlbuchsen. Davon sind zwei Input (12 Volt Einspeisung), eine Output mit ständig anliegender Spannung und 14 durch MOSFETs gesteuerte Outputs. Von diesen 14 gesteuerten Buchsen sind sechs für 2 unabhängige RGB Kanäle zuständig. Den Schaltplan gibt es dann zusammen mit den anderen Schaltungen am Ende des Projektes.

Die Rückseite des X301T wurde auch schon für den Einbau der Anschlüsse vorbereitet:


Der innenliegende Teil wird herausgeschnitten. Anschließend wird ein Aluminiumblech, auf dessen die Anschlüsse montiert sind, auf die Rückseite des X301T geschraubt.

Die Platine habe ich schon mal am Computer erstellt. Es müssen etliche D-Sub Buchsen untergebracht werden. Da wären RS232, RS485, Anschluss für die externe Anschlussbox, Anschluss für die Pinnwand, I2C und auch In- und Outputs für die Spannungsversorgung in Form von Hohlbuchsen. (zum Vergrößern: Rechtsklick - Grafik anzeigen)


Passend zur Blende habe ich auch eine Platine erstellt, auf der die nicht per Schrauben zu befestigenden Buchsen montiert sind. Die gesamte Platine wird dann anschließend an die Blende geschraubt.


Untergebracht sind hier von links nach rechts – Netzwerk, USB, DCF77 Funkempfänger, 1Wire Output und Anschluss für die Bedienkonsole mit dem Drehimpulsgeber.

Auch die Steckdosenleisten wurden für das Projekt umgebaut. Diese bekommen jeweils zwei D-Sub Buchsen, einen µC und Relais zum Schalten der Steckdosen. Eine D-Sub Buchse ist für RS485 Input und eine für RS485 Output, an dessen man dann weitere Geräte/Module etc. anschließen kann. Das System ist also recht modular und Erweiterungen können leicht hinzugefügt werden.

Als Ausgangsbasis dient eine Brennenstuhl 10 Fach Steckerleiste, von der jeweils die Steckdosenreihen geschalten werden können. Die Steckerleiste kann auf mehreren Modi arbeiten. Entweder gibt das LCS Hauptgerät den Befehl zum Ein- bzw. Ausschalten (Manuell, Zeitgesteuert… alles ist denkbar) oder durch einen zusätzlichen USB Anschluss direkt an der Steckerleiste (Hier bloß als Hohlbuchse, da bloß die Spannung an USB gemessen werden muss), im Master-Slave Betrieb für den PC.


Für Einzelgeräte, die man mit dem LCS schalten möchte (etwa eine Stehlampe etc.), gibt es das System auch als Zwischenstecker-Variante.

Als Gehäuse dient diesmal ein Überspannungszwischenstecker.


Auf den ersten Blick recht wenig Platz um zwei 9pol D-Sub Buchsen, einen µC und ein Relais unterzubringen:


Aber „ausgehöhlt“ sieht die Sache schon etwas besser aus:


Die Elektronik wird dort dann im Sandwich-Aufbau untergebracht. Auf der untersten Ebene ist das Relais und darüber der µC. Hat auch den Vorteil, dass der Lastteil und die Steuerelektronik voneinander getrennt sind. Das wird auch bei der Steckerleiste der Fall sein.

Kommen wir nun wieder zum Steuergerät zurück.
Zwischenzeitlich konnte der Schaltplan fertiggestellt werden und die Platine wurde ebenfalls schon gelayoutet – Fertig um die Platine herstellen zu lassen. Da ich aber immer wieder Verbesserungen vornehme, wird die Platine vorerst nicht gefertigt werden.

Hauptplatine: (zum Vergrößern: Rechtsklick - Grafik anzeigen)


Stromversorgungsplatine: (zum Vergrößern: Rechtsklick - Grafik anzeigen)


Update 18.02.13

Seit dem letzten Update ist mal wieder einige Zeit vergangen. Viel ist zwar nicht passiert aber trotzdem ist ein großer Schritt unternommen worden.

Die Platinen habe ich zusammen mit anderen Platinen für weitere Projekte fertigen lassen. Darum hat es so lange gedauert, ehe ich die Platinen für dieses Projekt fertigen lassen konnte. Bestellt habe ich bei Fischer-Leiterplatten, denn dort habe ich eine einfache Preisstaffelung gefunden und der Preis trotzdem noch als „günstig“ zu bezeichnen ist (im Vergleich zu anderen Herstellern). Einfache Preisstaffelung heißt, dass im beworbenen Preis, den man sich auf der Website anhand der Leiterplattengröße ausrechnen lassen kann, schon alles inklusive ist. Also unbegrenzte Bohrungen, unbegrenzte Durchkontaktierungen, Fräsarbeiten, e-test, Lötstoplack etc. Einzig der Bestückungsdruck wird separat berechnet. Die Multinutzenplatine (322x232mm) hat mich insgesamt inkl. Versand etwas mehr als 170 EUR gekostet. Zudem habe ich die Überlieferung kostenlos mitbekommen - Also zwei Platinen erhalten. Hier ein Bild vom Multinutzen:


Die ausgesägten Platinen für das Projekt:


Von links nach rechts sind das Strommessplatine, Hauptplatine und die Platine, welche an der Pinnwand befestigt wird und ein Anschlussterminal bereitstellt.


Nach dem Aussägen konnten die Bauteile montiert werden. Hier wird am besten mit dem schwierigsten Teil begonnen - den SMD Bauteilen. Den Prozessor (Atmega 2560) und der USB zu UART Umsetzer (FT232RL) gibt es schließlich nur in SMD Bauweise.

So ohne spezielles SMD Equipment kann sich das Auflöten ganz schön schwierig herausstellen. Einen einzelnen Pin anzulöten erweist sich bei 0.5mm Pinabstand als unmöglich. Meine Taktik: Zuerst alle Pins mit Lötzinn „einschmieren“ und anschließend mit der Entlötsaugpumpe das überschüssige Lot entfernen:


Das Gleiche funktioniert auch mit dem FT232RL Baustein.

Einen Nachmittag sollte man für die Platinen schon einplanen. Aber das Ergebnis kann sich sehen lassen:


Mehr ist noch nicht passiert. Als nächstes muss die Software angepasst und die komplette Hardware in das vorgesehen Gehäuse montiert werden. Dazu schon einmal Probestellen:


Passt wie angegossen.

Des Weiteren müssen die Displays in meine Pinnwand integriert werden. Dazu habe ich eine Halterung aus Plexiglas erstellt. Diese muss ich nur noch Lasern lassen (hier muss ich, wie bei den Platinen, auf ein anderes Projekt warten, sonst lohnt sich das Lasern nicht).


Im nächsten Update dann den Einbau der Hardware...


Update 18.03.13

Die Plexiglasplatten sind die Tage über gekommen und es kann hier wie versprochen mit dem Einbau der Hardware weitergehen.

Die Montageplatten, auf denen Platine und Netzteile montiert werden:


Und die Montage- und Abdeckplatte für die Displays:


Jetzt müssen nur noch die vorgelaserten Löcher aufgebohrt und mit Gewinde versehen werden.
Die Frontplatte (auf dem Foto rechts) wird noch auf der Rückseite lackiert (mit Aussparungen für die Displays) ähnlich wie bei einem meiner anderen Projekte:

(http://www.hering-projects.de/pc-modding/htpc/plexiglas-mini-itx-htpc-gehaeuse?showall=&start=1)

Im nächsten Update gibt’s darüber dann mehr.

Ich mache hier weiter mit dem Einbau der Netzteile, Platinen und Anschlüsse ins Gehäuse.
Als erstes muss die Aluminiumblende Zugeschnitten und die Aussparungen und Befestigungsbohrungen markiert und dann selbige ausgesägt bzw. gebohrt werden.


Ebenso der Durchbruch an der Rückseite des Gehäuses:


Im Boden befinden sich Erhebungen, auf denen die Werksseitigen Platinen montiert wurden. Da das 27V Netzteil in der Höhe den gesamten Platz benötigt, müssen diese auch noch weg:


Jetzt werden allen Buchsen und Steckern Leitungen mit den passenden Steckern für die Hauptplatine versehen. Gleiches gilt für das Anschlusspanel mit den USB, Netzwerk- und Mini-Din Anschlüssen. Das alles wird dann an der Blende befestigt und die komplette Blende wiederum am Gehäuse:


Wäre das erledigt, muss das Netzteil des Receivers präpariert werden.
Urzustand:


Die Netzteilbuchse und der Schalter müssen entfernt werden. Der Schalter wird dann mit Draht überbrückt und an den Anschlüssen der Netzteilbuchse werden Leitungen angelötet:


Auch unnötige Anschlüsse wie die Molexbuchse werden entfernt und die Leitungen zum Mainboard (rechts neben dem Molexbuchsenanschluss) werden durch Längere ersetzt und am Ende mit einer passenden Steckerbuchse für das Powerboard versehen.


Ist das geschafft, kann die so vorgefertigte Hardware eingebaut und verdrahtet werden:



Etwas eng, aber alles hat noch ausreichend Platz. Ich bin selber gespannt, wie die Wärmeentwicklung bei den 3 Netzteilen unter Volllast in dem kleinen Gehäuse ohne Lüfter sein wird. Dazu werden später kleine Temperatursensoren an den Netzteilen angebracht.

Ein Problem gibt es dann doch – die Steckverbindungen des Powerboards sind zu hoch und die Kabel werden durch das darüber liegende Mainboard gequetscht. Größere Abstandshalter verwenden geht nicht, da sonst die Anschlüsse des Mainboards mit dem Deckel des Gehäuses zusammen kommen.


Abhilfe schafft das kürzen der Stecker um 2mm. Die Kontaktstifte ragen dabei noch nicht aus der Buchse heraus, aber die Leitungen werden nun nicht mehr so gequetscht:


Des Weiteren müssen Verbindungskabel für die externe Peripherie hergestellt werden. Also Hohlsteckerverbindungsleitungen für die Stromversorgung der externen Anschlussbox, Leitungen mit Mini-Din Steckern für die 1Wire Komponenten, den DCF 77 Funkempfänger und der Bedienkonsole und auch das Kabel für die Pinnwand:


Die „Bedienkonsole“ besteht aus einem Drehimpulsgeber und 4 Tastern. In einer kleinen Kunststoffbox findet alles Platz. Dazu wird eine Lochrasterplatine eingepasst, auf der die Komponenten verlötet werden. Passend dazu müssen Löcher in den Deckel gebohrt werden:


Zusammengebaut sieht das dann so aus:


Als nächstes muss die Frontblende lackiert werden. Dazu habe ich schon einmal die Frontblende bis auf den Kern entkernt.


Schleifen, Grundierung und anschließendes Lackieren mache ich dann nächstes Mal.


Update 08.04.13

Weiter geht’s mit dem Lackieren der Frontblende und dem Herstellen weiterer externer Peripherie.

Als erstes muss bei der Frontblende die schon vorhandene Lackierung bis auf den grauen Kunststoff abgeschliffen werden. Mit einem Schleifpapier mit 400er Körnung geht das relativ schnell.


Nach gründlichem säubern kann anschließend lackiert werden. Dazu sind drei Komponenten nötig: Grundierung, eigentlicher Lack und Klarlack


Die Grundierung wird als erstes aufgetragen. Dann trocknen lassen und den Lack auftragen. Mehrere dünne Schichten, statt einer dicken sind besser, da der Lack dann nicht verläuft und keine „Nasen“ bildet. Zum Schluss wird mit einer Schicht Klarlack der Lack geschützt. Am Ende ist die Blende komplett schwarz:


Kommen wir nun zum präparieren des Displays.

Dazu muss ein Transistor in der Nähe des Mikrocontrollers auf der Platine entfernt werden und ein paar Leitungen durchtrennt und gebrückt werden

Auf dem Bild markiert ist der Transistor, welcher entfernt werden muss:


Anschließend müssen die Leitungen am Konnektor J1 durchtrennt werden: (Alle bis auf die Pins 1 und 11)



Dann werden die Kontakte von J3 an J1 gebrückt.

J3 J1
1 2
2 3
3 4
4 5
5 6
7 7
11 9
12 10




Dieses Brücken der Kontakte ist eigentlich nicht nötig, da man auch direkt an J3 das Verbindungskabel zum Mainboard anlöten kann aber so ist es möglich den originalen Steckverbinder weiterzuverwenden (Welcher durch die Aussparung am Gehäuse passt).

Danach noch das originale Verbindungskabel mit einer Flachleitung verlängern, an deren Ende eine 10-polige Pfostenbuchse montiert ist.

Belegung:

J1 10pol Pfostenbuchse
1 6
2 1
3 2
4 3
5 4
6 5
7 7
9 9
10 10
11 8



Ist das Erledigt wird das Display wieder in die Frontabdeckung geschraubt und ans Gehäuse geklippst.

v


Jetzt widmen wir uns dem Anschluss des Displays an der Pinnwand.

Die Platine für die Pinnwand wird laut Plan bestückt


An die noch freie Leiste in der Mitte wird das Anschlusskabel des Displays angelötet.
Die Belegung ist identisch der Belegung, des Wannensteckers „PW“ auf der Hauptplatine (Ersichtlich im Schaltplan) SV1 Pin 1-13 ist eben Pin 1-13 und SV2 Pin 1-13 dann 14 – 26.

Die Displaybeleuchtung wird separat an der oberen Pinleiste angeschlossen. Zudem sollte man das Poti für die Kontrastregelung am Display anschließen. Zur besseren Einstellmöglichkeit habe ich dieses nicht direkt mit auf die Platine montiert, sondern an einem langen Kabel angelötet.

Nun kann das Display provisorisch angeschlossen werden und das Mainboard mit dem Powerboard verbunden werden. Dazu ist die Stromversorgung nötig und die Verbindung zwischen den beiden „PK“ Pfostensteckern muss hergestellt werden.

Zudem müssen die Widerstände laut Plan auf dem Powerboard eingesteckt werden. Man nimmt hier am besten Präzisionswiderstände mit 0,1 % Herstellungstoleranz.

Der ersten Inbetriebnahme mit Kalibrierung der Strommesssensoren steht nun nichts mehr im Wege. Bis auf Fehler im Platinenlayout…

Bei den Kalibrierungsversuchen ist mir aufgefallen, dass bei größer werdendem Strom die Spannung, welche der ALC712 Hallsensor ausgibt, kleiner wird -> Die Sensoren wurden Eingangsseitig schlichtweg verpolt und messen nun in die falsche Richtung.

Ich musste schließlich alle auslöten und auf separaten Platinen unterbringen.

Bei der Kalibrierung ist es unerlässlich ein regelbares Netzgerät zu besitzen, bei dem der Strom eingestellt werden kann.

Um die Sensoren zu kalibrieren habe ich ein kleines Programm erstellt, welches auf den Hauptcontroller aufgespielt wird. Bei 0A - also keinem Strom, der die Sensoren durchfließt – wird das Abgleichpoti so eingestellt, dass beim ADC ein Wert von 0-60 herauskommt (die niedrigste mögliche Einstellung durch Drehen des Potis herausfinden). 0 ist bei diesem Schaltungslayout nicht möglich, da dazu die Operationsverstärker eine negative Spannung benötigen. Der eingestellte Wert (abhängig von den Bauteiltoleranzen) ist dann der Korrekturfaktor, welchen wir in das Programm eintragen können. (Ui_korrektur)
Jetzt stellen wir das Netzgerät auf einen Strom von 1A ein und schauen uns den ADC Wert erneut an. Diesen multiplizieren wir mit der Referenzspannung des Controllers (muss gemessen werden - bei mir 4,97 V) und dividieren ihn durch 1024. Dieser Wert wird dann bei Faktor eingetragen. (Ui_faktor)
Das Ganze mit jedem einzelnen Sensor durchführen, schon hat man diese kalibriert.

Die Spannungsteiler werden etwas anders kalibriert. Hier nimmt man die Nennspannung, welche später anliegen soll z.B. 12V und teilt diese durch den errechneten Spannungswert, welcher am Spannungsteiler am 10KOhm Widerstand anliegen sollte. Dies ist dann der Wert, den man bei Ui_faktor einträgt.

Hier ein Foto des LCDs mit dem Kalibrierungsprogramm:


Ist alles kalibriert kann das Mainboard mit Abstandshaltern über das Powerboard geschraubt werden. Nun alle Anschlüsse mit dem Mainboard verbinden.


Jetzt ist schon alles getan, was an Hardware in das Gehäuse eingebaut werden muss.
Extern muss noch der DCF77 Empfänger untergebracht werden. Eine kleine Plastikbox ist dafür ideal


Auf eine Lochrasterplatine wird die DCF77 Platine aufgelötet und mit dem Verbindungskabel verbunden. Das Ganze dann wiederum in das Gehäuse schrauben.


Damit man die Box leicht dort Aufhängen kann, wo man guten Empfang hat sollte auf der Rückseite des Gehäuses ein Durchbruch in Form eines Schlüsselloches hergestellt werden. Das Loch ist dabei etwas größer als der Schraubenkopf selber und der Hals ist etwas breiter als der Schraubendurchmesser. So kann man die Box einfach auf die Schraube in der Wand aufschieben.


Im nächsten Update dann der Einbau der Displays in die Pinnwand…


Update 16.06.13

Wie im letzten Update angekündigt nun der Einbau der Displays in die Pinnwand und die Inbetriebnahme.

Mit einem CAD Programm habe ich schon vor einer Weile eine Konstruktion erstellt, welche die Displays ohne Kleben und halbwegs Elegant an der Pinnwand hält. Noch einmal die virtuelle Konstruktion:


Die Frontscheibe besteht hier aus klarem Plexiglas und damit man nur die LCD-Screens sieht, muss alles andere abgedeckt werden. Das mache ich hier mit Acrylfarbe für die Airbrush, weil diese das Plexiglas nicht angreift. Diese wird auf die Rückseite des Plexiglases aufgebracht. Zuerst klebt man die Stellen ab, an denen die Displays sein werden. Dazu sind zwei Schritte nötig – horizontales und vertikales Abkleben


Anschließend lackieren und nochmal abkleben und nochmal lackieren


Die Kanten beim Lackieren übrigens auch abdecken. Dann bleiben diese auch klar


Während die Farbe trocknet können wir uns um die Pinnwand kümmern. Dazu nimmt man die Montageplatte und zeichnet die Umrisse in die Mitte der Pinnwand, welche dann anschließend mit einem scharfen Cutter ausgeschnitten wird.
Ausversehen habe ich hier leider zu hoch angezeichnet:


Das USB-Display muss vor dem Einbau noch mit Verbindungsleitungen für USB, für den Ausgang der Hintergrundbeleuchtung und für die Hintergrundbeleuchtung selber versehen werden.

Anschließend können die Displays auf der Montageplatte montiert werden


Darüber wird dann die Frontplatte mit Abstandshaltern befestigt


Dann kann die komplette Konstruktion von vorne durch die Aussparung in der Pinnwand gesteckt werden. Von hinten werden dann Querstreben angeschraubt. Diese klemmen die Frontscheibe gegen die Plexiglasplatte und halten so die Displays auf der Pinnwand.


Nachdem dieser letzte Montageschritt erfolgt ist, kann die Software auf die einzelnen Controller aufgespielt werden. Dank ISP Anschlüsse auf der Platine für jeden einzelnen Controller ist dies auch schnell erledigt. Insgesamt müssen 4 ICs geflasht werden. Den Atmega 88 für die RGB Ausgabe, den Atmega 8 für die Temperaturauswertung, den Atmega 88 auf dem Frontdisplay und der Hauptcontroller Atmega 2560. Die Box kann danach mit dem Deckel verschlossen werden.


Anschließend die komplette Peripherie anschließen (DCF77 Empfänger, Drehencoder, externe Verteilerbox, RS485 Geräte, Stromversorgung etc.) Dann kann das System auch schon eingeschalten werden. Nach dem Einschalten sehen wir den Hauptscreen und ein paar Minuten später hat sich auch die Uhr nach DCF77 gestellt.


Ab jetzt ist das System voll funktionstüchtig und kann für die alltäglichen „Beleuchtungsaufgaben“ verwendet werden und das Leben auf der Erde mal wieder ein bisschen einfacher machen.

Die meisten Funktionen habe ich in einem kleinen Video erklärt.

Hier eine Liste der im Moment lauffähigen Funktionen:

  • Temperaturanzeige für innen und außen
  • Uhrzeitanzeige analog und digital (DCF77 gesteuert)
  • Datumsanzeige
  • Bedienung des Systems über Drehencoder oder Fernbedienung
  • Steuerung über Smartphone
  • Steuerung von 2 unabhängigen RGB Kanälen
  • Fadingprogramme der RGB Kanäle
  • Steuerung von 6 PWM Ausgängen
  • Steuerung von entfernten Geräten über Bussystem z.B. Deckenlampe
  • Einstellen von Beleuchtungszeiten (Zeitgesteuertes Ein- und Ausschalten)
  • Versch. Zeitfunktionen (Alarmzeiten, Timer, Stoppuhr)
  • Energiesparmanagement (Netzteile bei Nichtgebrauch automatisch abschalten)
  • Update der Systemsoftware über USB


Der verwendete Atmega 2560 ist zur Zeit mit 30% belegt. Und das ohne Codeoptimierung. Mit Optimierung käme man sicherlich auf 25%. Also noch genügend Platz für viele weitere Zusatzfunktionen. Ein paar Dinge, die ich eigentlich noch integrieren wollte, aber aus Zeitmangel und „keine Lust mehr haben“ nicht integriert worden sind:

  • Funkkommunikation mit den einzelnen Geräten (wie die Deckenlampe) statt einem Bussystem
  • Integration der Netzwerkfunktionalität in den Hauptprozessor, satt ein NET-IO zu verwenden
  • Steuerung von Rollläden
  • Regelung von Heizkörpern
  • Kleines Webinterface, mit dem man aus der Ferne Rollläden und Heizung steuern kann
  • Sicherung der eingegeben Alarmzeiten, Schaltzeitpunkte etc. im EEPROM
  • List to be continued….


Dann müsste ich aber das System bald umbenennen, weil es in Richtung komplette Haussteuerung geht, die nicht mehr nur das Licht regelt.

Hier das Video zu den einzelnen Funktionen:



Das System im Einsatz:


PS: Die Dateien zum Projekt werde ich nicht mehr hochladen, da eine neue Version erstellt wurde - Home Control System

Kommentare   

#1 Tobias L. 2012-06-17 21:55
Mir ist sowas bei Ebay auch schon mal passiert. :-* Ab jetzt biete ich nur noch auf maximal eine Sache. Mal schauen wie es weiter geht.
#2 Dominic 2012-08-03 19:23
Hey, ich w?rd dir gerne so ein Geh?use abkaufen, wenn du nicht alle Ben?tigst, Schreib mich doch einfach mal an :)
MfG
Dominic Laggerbauer
+1 #3 RSS Feed 2012-08-08 21:56
Gibt's zu deinem Blog auch einen RSS Feed? W?re praktisch dann m?ssten man nicht immer nachschauen ob's was neues gibt. So bekommt man sofort Bescheid. ;)
#4 Florian Hering 2012-08-30 13:55
Hm leider nicht. Da m?sste ich erst ein Zusatzmodul installieren, weil mein System das nicht von Haus aus mitbringt. Sollte ich mal einrichten, wenn ich wieder mal etwas Zeit daf?r habe... ;-)
#5 espri128 2013-06-17 14:01
Hallo Forian,

l?sst Du Dein Plexi bei Dienstleister lasern? (formulor?).
#6 Florian Hering 2013-06-17 15:50
Hi,

das Plexi lasse ich z.b. hier Lasern: www.tabrizi.de
+2 #7 Renovatio 2013-11-12 18:28
K?nntest du bitte die Datein vom Projekt hochladen, damit ich mir ein paar Sachen an gucken kann? Danke schon mal im Voraus.

Kommentar schreiben


Sicherheitscode
Aktualisieren