Projekt :: Room-Control
1. Vorwort
Zuletzt aktualisiert: 04.06.2015

Da das RGB-LED-Roomlight-Projekt so gut wie abgeschlossen ist und ich seit meinem Industriepraktikum im September-Oktober letzten Jahres viel mit den 32-Bit Mikrocontrollern von Texas Instruments beschäftigt habe, wollte ich ein neues Projekt beginnen.

Name des Projektes lautet Room-Control.

An der Bezeichnung ist leicht abzuleiten, dass es sich hierbei hauptsächlich um eine komplette Zimmersteuerung handeln soll. Neben der Kontrolle der LED-Lampen soll dieser Controller per CAN-BUS (für den ich mich entschied, weil ich darüber viel im Praktikum gelernt habe und er sich meiner Meinung nach für mein Vorhaben am besten eignet) mit einigen Peripheriegeräten kommunizieren können. Das erste Gerät wird dabei mein 8-Kanal Stromschaltkasten sein, welcher im Verlauf des Projekts ebenfalls um eine CAN-Schnittstelle erweitert wird.

Als zusätzliches Feature möchte ich auf dem Board einen Webserver nutzen, für den ein RJ45-Ethernetport sowie ein Slot für handelsübliche SD(HC)-Karten zur Auslagerung der Web-Daten vorgesehen ist.

Da ich außer dem DMX-Protokoll noch ein ziemlicher Anfänger bin, wird das Board erst einmal als Entwickler- bzw. Testboard genutzt, bis ich sämtliche Funktionen genügend ausprobiert und optimal implementiert habe.

Programmiert wird über eine 6-polige JTAG-Schnittstelle, die ich mit dem Board von Luminary Micro (EK-LM3S1968), welches ich von einem Arbeitskollegen beim Praktikum bekam, verbinde. Dieses besitzt nämlich die Möglichkeit, neben dem eigenen Mikrocontroller auch andere Stellaris-Prozessoren zu programmieren/debuggen.
Aus Platzmangel habe ich mich für eine nicht normgerechte JTAG-Schnittstelle entschieden, welche über Adapter aber mit jedem anderen Debugger kompatibel gemacht werden kann.

Das Design der Platine für den Controller ist ziemlich kompliziert geworden, da der Mikrocontroller alleine ein LQFP100-Gehäuse hat, welches 100 Beinchen hat die so eng zusammenstehen, dass man die Platine per Toner-Transfer- oder anderem Heimverfahren nicht selbst ätzen kann.
Nach langer Suche entschied ich mich also, die Platine bei einem professionellen Fertiger machen zu lassen. Am Ende übernahm das die Firma >> Beta Layout. Nach ca. 7 Arbeitstagen wurde das fertige PCB einem Versandunternehmen übergeben, sodass ich es morgen (Do, 03.05.12) oder übermorgen erhalten werde.

Da ich am Wochenende in Konstanz bin, kann ich mit dem Bestücken allerdings erst nächste Woche beginnen. Dann wird es auch direkt ein Projekt-Update geben.
2. Bestücken der Platine
Zuletzt aktualisiert: 04.06.2015

Direkt nach dem Bodensee-Wochenende vom 2. - 5. Mai 2012 erhielt ich zwei Pakete von Reichelt und Segor. Diese enthielten sämtliche Bauteile für meinen Room-Controller.

Bild Nr. 1

Die Platine war auch bereits da. Auf den ersten Blick eine beeindruckende Leistung von Beta-Layout. Alle leitungen sowie Textaufdrucke waren scharf und makellos. Überraschenderweise waren neben den Vias auch alle Print-Löcher durchkontaktiert. Somit machte das Testen der Leitungen auf Kurzschlüsse viel spaß und war schnell abgeschlossen.



Als erstes wollte ich den Spannungswandler (von 5V auf 3,3V für die ICs) auflöten, da er das "QFN"-Package hat und daher keine Beinchen, sondern Lötstellen direkt unter dem Gehäuse. Diese Typen müssen eigentlich schon per "Reflow" aufgebracht werden. Da ich keinen professionellen Reflow-Ofen habe, nahm ich dafür einen handelsüblichen Heißluftfön. Der Chip ließ sich dadurch leicht verlöten, allerdings habe ich die Platine wohl ein wenig zu lange erhitzt, denn an einer Stelle (beim Port für den Drehgeber) hat sich das Zinn schon etwas verfärbt.



Laut Durchgangsprüfer sitzen alle Lötstellen richtig und es gibt keine Kurzschlüsse. Also konnte der µC aufgelötet werden. Mit der altbewährten Methode ging dies locker von der Hand.



Dann habe ich den 5V-Anschluss (Hohlstecker 2,5mm) und die Kontroll-LEDs für 5- und 3,3V angebracht und einen ersten Test durchgeführt. Beide LEDs leuchteten sofort hell, was bedeutet, dass sowohl 5V als auch 3,3V funktionieren.



Anschließend noch die Kleinteile (Widerstände, Kondensatoren, ...) und zum Schluß die Anschlüsse und den SD-Kartenslot, dann war die Platine schon fertig bestückt. Außerdem musste noch ein kleiner Designfehler beseitigt werden (ich hatte versehentlich die Leitungen für Senden und Empfangen vom µC zum USB-UART-Chip vertauscht), was mich noch einiges an Zeit gekostet hat.



Zum Programmieren musste noch das JTAG-Adapterkabel gebastelt werden. Sieht zwar auf den ersten Blick nicht so schön aus, funktioniert aber 1A. Und das ist ja wichtig. Theoretisch kann man mit dem Kabel einen Bootloader auf den Controller laden, mit dem ich dann alles weitere über die USB-Schnittstelle programmieren könnte. Aber für den Anfang tuts das JTAG-Kabel allemal.

Bild Nr. 23
3. DMX, LCD, Drehregler
Zuletzt aktualisiert: 04.06.2015

Bevor es an CAN-BUS oder gar Ethernet gehen kann, sollten ersteinmal die Geräte laufen, die ich bereits am EK-LM3S1968-Board ausprobiert habe, sprich alles, was das DMX-Controllerboard auch schon konnte.
Es handelt sich dabei um folgendes:
- DMX-Schnittstelle (Ansteuerung der Lampen)
- LCD-Display (DOGS102-6)
- Drehgeber (für Menüführung)
- Schiebepotis (manuelle Einstellung der Farben)

Weitere Info's über die oben genannten Geräte sind im Projekt LED RGB Roomlight.

Nach einiger Friemelei und kleinen Änderungen am Frontpanel sowie den Potis lief aber letztendlich alles einwandfrei. Sogar besser als mit dem alten AtMega64.
Das LCD-Menü und die LED-Funktionen (Moodlight, weißes Licht faden, Sunrise) habe ich mal unverändert gelassen.

Als nächstes geht es dann an den CAN-BUS.
4. Der CAN-Bus
Zuletzt aktualisiert: 04.06.2015

Der CAN-BUS ist 1983 von der Firma Bosch ursprünglich für Automobilelektronik entwickelt worden. Nach und nach wurde er aber auch in der Industrie für Automatisierungsaufgaben wichtig.
Es ist ein bidirektionaler BUS, der asynchron laufen kann und bei dem alle Teilnehmer gleichberechtigt sind, also alle als "Master" fungieren können. Die Kollision wird durch "Arbitrierung" verhindert.

Weiteres dazu z.B. im Artikel bei Wikipedia.

Der LM3S8938 hat ein eigenes CAN-Interface. Allerdings ist es, wie ich herausfinden musste, nicht ganz einfach, diesen zur Funktion zu bewegen.

Auf der anderen Seite befindet sich ein CAN-BUS-Controller-Chip von Mikrochip, welcher über SPI-Schnittstelle mit dem AtMega64 verbunden ist. Durch die USB-Schnittstelle kann ich den Status des Controllers auslesen. Er wird fehlerfrei initialisiert, sendet Nachrichten an den BUS und wartet auf Nachrichten vom BUS.

Das CAN-Interface vom TI-Chip lässt sich auch initialisieren. BEim Versuch, eine Nachricht zu senden hängt sich das ganze aber auf.

Das heißt, ich muss noch viel recherchieren und probieren, bis das ganze lauffähig ist. Ich bin aber schon nah dran.
5. Gehäuse
Zuletzt aktualisiert: 04.06.2015

Nach langer Zeit mal wieder ein Update !

Ich habe vor einiger Zeit mal ein Prototypen-Gehäuse für den Controller gebaut. Ist zwar nicht so super schön geworden (mangels Erfahrung im Gehäusebau und beim Umgang mit dem Dremel ;) ), aber es erfüllt seinen Zweck recht gut.

Ich habe außerdem begonnen, meine Projekte in Bewegtbild-Form zu bringen und einige Videos auf Youtube hochgeladen. Es werden in Zukunft noch weitere Projektvideos folgen !

Neuestes Video zum Thema:
>> Alle Videos