RGB-Rebel über LAN+Browser steuern (256 Stufen inteliPWM)
Moderator: T.Hoffmann
Hallo Zusammen,
ich möchte hier mal mein Projekt vorstellen. Bin schon lange hier passiver Mitleser im Forum. Aber nun habe ich etwas fabriziert, dass sich denke doch lohnt mal hier vorzustellen.
Es handelt sich hier um ein Master-Client RGB-LED-Control System, das durch ein Webinterface, und somit auch mit Mobilen Endgeräten wie dem iPhone, bedient werden kann.
Die Ausführung ist insgesamt sehr einfach gehalten, sprich Bascom und Lochrasterplatinen, so kann jeder der will es auch mit einfachsten Mitteln und geringen Kosten nachbauen.
Hier gibt es ein Video der ganzen Sache:
http://www.youtube.com/watch?v=RLTSHFPR8XE
Spezifikationen
- Master/Client System, Bedienung über Webinterface
- bis zu 254 Clients über RS485 Bussystem mit MPCM
- 8 Bit LED-PWM-Dimmer mit intelligentem Ansatz (intelliPWM)
- 3 Software RGB-PWM-Kanäle
- integrierte HSV to RGB Umrechnung im Client
- 4 Speicherplätze im EEPROM für vordefinierte Szenen (dynamisch speicherbar)
- Aufbau komplett mit Lochrasterplatine und THT-Technik (für jeden machbar)
- geringe Gesamtkosten durch Standardbauteile
- einfache zu verstehende Programmierung (BASCOM, HTML, JavaScript)
- Darstellung der aktuellen Einstellungen der Clients im Webinterface beim Aufrufen der Detailseite
- sehr einfache Erweiterbarkeit
Und weil es einfach am praktischsten ist hab ich die Beschreibung des Systems in ein .pdf geschrieben. Außerdem: die zugehörigen Dateien (Software, Eagle, SD-Karteninhalt etc.) Update1: BASCOM-Dateien aktualisiert
Update2: BASCOM-Dateien vervollständigt
Hier eine Grafik des Aufbaus: Ich hoffe auf interessante Rückmeldungen von euch.
Gruß
Johannes
ich möchte hier mal mein Projekt vorstellen. Bin schon lange hier passiver Mitleser im Forum. Aber nun habe ich etwas fabriziert, dass sich denke doch lohnt mal hier vorzustellen.
Es handelt sich hier um ein Master-Client RGB-LED-Control System, das durch ein Webinterface, und somit auch mit Mobilen Endgeräten wie dem iPhone, bedient werden kann.
Die Ausführung ist insgesamt sehr einfach gehalten, sprich Bascom und Lochrasterplatinen, so kann jeder der will es auch mit einfachsten Mitteln und geringen Kosten nachbauen.
Hier gibt es ein Video der ganzen Sache:
http://www.youtube.com/watch?v=RLTSHFPR8XE
Spezifikationen
- Master/Client System, Bedienung über Webinterface
- bis zu 254 Clients über RS485 Bussystem mit MPCM
- 8 Bit LED-PWM-Dimmer mit intelligentem Ansatz (intelliPWM)
- 3 Software RGB-PWM-Kanäle
- integrierte HSV to RGB Umrechnung im Client
- 4 Speicherplätze im EEPROM für vordefinierte Szenen (dynamisch speicherbar)
- Aufbau komplett mit Lochrasterplatine und THT-Technik (für jeden machbar)
- geringe Gesamtkosten durch Standardbauteile
- einfache zu verstehende Programmierung (BASCOM, HTML, JavaScript)
- Darstellung der aktuellen Einstellungen der Clients im Webinterface beim Aufrufen der Detailseite
- sehr einfache Erweiterbarkeit
Und weil es einfach am praktischsten ist hab ich die Beschreibung des Systems in ein .pdf geschrieben. Außerdem: die zugehörigen Dateien (Software, Eagle, SD-Karteninhalt etc.) Update1: BASCOM-Dateien aktualisiert
Update2: BASCOM-Dateien vervollständigt
Hier eine Grafik des Aufbaus: Ich hoffe auf interessante Rückmeldungen von euch.
Gruß
Johannes
Zuletzt geändert von J0sch am Di, 17.02.09, 22:26, insgesamt 3-mal geändert.
Hallo,
freut mich dass es euch so gefällt, die Einfachheit liegt wohl an meinen relativ geringen selbstbeigebrachten Elektronik-Kenntnissen. Von dem her kauf ich lieber ein LAN-Modul für 60 Euro anstatt mortz was kompliziertes zu programmieren.
Einzige Hürde für den Nachbau ist eventuell, dass man eine Lizenz für BASCOM braucht. Der Client hat 70% Belegung des Mega8, die Freeware Version von BASCOM kann nur bis 50% kompilieren. Allerdings hat allein schon mein intelliPWM 50% Speicherbelegung.
Gruß
Johannes
PS. Kennt jemand eine Bezugsquelle für Bistabile 5V-Relais, am besten mit zwei Spulen? Sind vielleicht in Zeitschaltuhren oder dergleichen solche verbaut?
freut mich dass es euch so gefällt, die Einfachheit liegt wohl an meinen relativ geringen selbstbeigebrachten Elektronik-Kenntnissen. Von dem her kauf ich lieber ein LAN-Modul für 60 Euro anstatt mortz was kompliziertes zu programmieren.
Einzige Hürde für den Nachbau ist eventuell, dass man eine Lizenz für BASCOM braucht. Der Client hat 70% Belegung des Mega8, die Freeware Version von BASCOM kann nur bis 50% kompilieren. Allerdings hat allein schon mein intelliPWM 50% Speicherbelegung.
Gruß
Johannes
PS. Kennt jemand eine Bezugsquelle für Bistabile 5V-Relais, am besten mit zwei Spulen? Sind vielleicht in Zeitschaltuhren oder dergleichen solche verbaut?
wow ich bin beeindruckt!!! wie bist du auf die idee gekommen so etwas zu bauen? ich fange jetzt grade erst an zu programmieren - und man ... dann kommst du mit einem so hammer projekt
(bin ja froh wenn ich pwm hinbekomme
)
super geile sache! besonders gefällt mir die idee mit dem iphone
beim kompilieren der textdokumente in bascom (vollversion) gab es aber probleme. ich wollte die entsprechenden .hex datein eigentlich hier hochladen aber beim kompilieren gab es problem beim master mit dem enable int1 befehl. leider kenne ich mit interrupts kaum aus. es kann gut sein das der fehler nur auf einen copy/paste fehler von bascom in das txt dokument zurückzuführen ist.

leider gabs beim kompilieren der hex für den mega 8 auch probleme - wie im bild zu sehen.

oder sind die fehler nicht auf den code sondern auf mich zurückzuführen? richtiger chip war eingestellt.
wie bekomme ich die doppelten bilder unter dieser zeile weg?
einfach nicht berücksichtigen das sind die beiden nocheinmal
super geile sache! besonders gefällt mir die idee mit dem iphone
beim kompilieren der textdokumente in bascom (vollversion) gab es aber probleme. ich wollte die entsprechenden .hex datein eigentlich hier hochladen aber beim kompilieren gab es problem beim master mit dem enable int1 befehl. leider kenne ich mit interrupts kaum aus. es kann gut sein das der fehler nur auf einen copy/paste fehler von bascom in das txt dokument zurückzuführen ist.
leider gabs beim kompilieren der hex für den mega 8 auch probleme - wie im bild zu sehen.
oder sind die fehler nicht auf den code sondern auf mich zurückzuführen? richtiger chip war eingestellt.
wie bekomme ich die doppelten bilder unter dieser zeile weg?
Tja, die Motivation ist ja schon etwas in dem .pdf beschrieben.
Angefangen hab ich mit der Version 1 einer Steuerung, allerdings ist das locker 5-6 Jahre her. Da habe ich gerade erst angefangen mit Elektronik. Die Steuerung war fürs Erste viel zu komplex (Features: LCD, 4-Tastenbedienung, 16 Kanäle), hat mehrere AT-Megas verschlungen
, deswegen hab ichs irgendwann aufgegeben. Hat also nie funktioniert.
Version 2 war dann also wesentlich einfacher: 8 Kanäle, RC5-Steuerung, Fading von Ein nach Aus. Die Steuerung ist heute noch bei meiner Schwester im Einsatz.
Version 3 wurde dann wiederum etwas größer: 16 Kanäle, RC5-Steuerung, LCD, Fading von Ein nach Aus. Die Steuerung war soweit ich weis gar nicht, bzw. wenn dann nur eine kurze Zeit im Einsatz, warum weis ich jetzt gar nicht mehr.
Version 4 war ähnlich der Vorgängerversion, aber noch etwas größer: 24 Kanäle, LCD, Zwei-Prozessoren die über UART komunizieren, Fading von Ein nach Aus. Die Steuerung war bis vor ca. einem halben Jahr im Einsatz.
Gründe für die Ablösung war eben die zentrale Verkabelung und dass damit verbundene Kabelchaos --> Bus-System
Bedienung über RC5 war sehr unkomfortabel und hat nicht immer funktioniert --> besseres User-Interface
Hier die einzelnen Steuerungen: (von links nach rechts: Version1, Version3, Version4) Aus den Nachteilen wachsen dann die Anforderungen an die neue Steuerung. Durch Recherche und lesen von diversen Internetseiten (LED-Hilfe.de, Mikrocontroller.net, Roboter-Netz.de) finden sich dann Möglichkeiten die Anforderungen umzusetzen.
Dann folgt der Aufbau der Hardware auf einem Breadboard, funktioniert dass dann einigermaßen kann die Schaltung gelötet werden.
Als Bus-System wollte ich Anfangs I2C/TWI verwenden, allerdings hatte ich dann Bedenken dass die Reichweite ausreicht. Deshalb also dann RS485, und da man sich da selbst ein Protokoll überlegen kann, wurde dann auch gleich MPCM integriert.
Dimmbar sollte das alles dann auch sein, und diesmal dann nicht mehr blos Ein und Aus, sondern mehrere Stufen, ideal für die RGB-LEDs um alle möglichen Farben einzustellen. Irgendwie bin ich dann auf das intelliPWM gestoßen, das Konzept hat mir dann sehr gut gefallen, also hab ich es umgesetzt in BASCOM. Das war der erste große Schritt dieses Projektes. Diese Umsetzung hat mich echt viel Zeit gekostet, hab mehrere Wochenenden lang programmiert und probiert. Irgendwann hat es dann zum Glück funktioniert.
Zweiter Schritt war dann die Bedieneroberfläche. Auf das myEthernet bin ich über das mySmartUSB gekommen, ich hab eben einen Programmieradapter für USB gesucht. Das Konzept hat mir dann sehr gut gefallen, denn so konnte ich einfach die Seiten auf eine SD-Karte speichern. Anstatt ein Webmodul wie z.B. von Ulrich-Radig zu verwenden entschied ich mich also dann für eine Kauf-Lösung. Anfangs gab es beim myEthernet kein SharedRAM, es gab nur die Möglichkeit ein ganzes Byte auf einmal auszugeben, deshalb auch noch die Parallelschnittstelle im Master. Mit dieser Lösung dauerte der Datenaustausch aber sehr lange, war eigentlich nicht akzeptabel. Mit der Herausgabe der neuen Firmware 1.08, Anfang des Monats, wurde dann eigentlich die ganze Lösung erst so wirklich möglich. Nun konnte also dann die ganze HTML/Javascript Geschichte programmiert werden.
Nächster Schritt war dann die Komunikation über RS485. Hier habe ich keine wirklich passenden Routinen für den Empfang und Senden gefunden, weshalb ich dass auch selbst entwickeln musste. Dann war da noch das Protokoll, und der Ablauf der Verarbeitung in den Clients.
Und dass wars dann eigentlich auch schon. Hört sich relativ wenig an, aber zwischendrin sind immer wieder diverse Fehlfunktionen aufgetreten, und diese dann zu beseitigen hat auch immer wieder recht lang gedauert. Wie gesagt da läuft halt bei mir dann meistens alles über Try and Error.
Alles in allem möchte ich glaub ich gar nicht wissen wie viele Stunden (und Nerven) ich dafür gebraucht habe.
Es hat sich also mal wieder bewahrheitet, dass man große Aufgaben in kleine Teile/Schritte zerlegen muss.
Zu deinem Problem: Kann ich mir auch nicht so richtig erklären. Könnte mir aber vorstellen dass die Konfigurationsdateien m8def.dat und m32def.dat nicht in dem Ordner, in dem die .bas Files liegen, sind? Ansonsten hab ich mal das .zip im ersten Beitrag aktualisiert und die .def und .cfg Dateien mit angehängt.
Hier noch ein Bild einer LED im Einsatz, die Triple-Rebel eignen sich hervorragend für so eine Ausleuchtung:
Angefangen hab ich mit der Version 1 einer Steuerung, allerdings ist das locker 5-6 Jahre her. Da habe ich gerade erst angefangen mit Elektronik. Die Steuerung war fürs Erste viel zu komplex (Features: LCD, 4-Tastenbedienung, 16 Kanäle), hat mehrere AT-Megas verschlungen
Version 2 war dann also wesentlich einfacher: 8 Kanäle, RC5-Steuerung, Fading von Ein nach Aus. Die Steuerung ist heute noch bei meiner Schwester im Einsatz.
Version 3 wurde dann wiederum etwas größer: 16 Kanäle, RC5-Steuerung, LCD, Fading von Ein nach Aus. Die Steuerung war soweit ich weis gar nicht, bzw. wenn dann nur eine kurze Zeit im Einsatz, warum weis ich jetzt gar nicht mehr.
Version 4 war ähnlich der Vorgängerversion, aber noch etwas größer: 24 Kanäle, LCD, Zwei-Prozessoren die über UART komunizieren, Fading von Ein nach Aus. Die Steuerung war bis vor ca. einem halben Jahr im Einsatz.
Gründe für die Ablösung war eben die zentrale Verkabelung und dass damit verbundene Kabelchaos --> Bus-System
Bedienung über RC5 war sehr unkomfortabel und hat nicht immer funktioniert --> besseres User-Interface
Hier die einzelnen Steuerungen: (von links nach rechts: Version1, Version3, Version4) Aus den Nachteilen wachsen dann die Anforderungen an die neue Steuerung. Durch Recherche und lesen von diversen Internetseiten (LED-Hilfe.de, Mikrocontroller.net, Roboter-Netz.de) finden sich dann Möglichkeiten die Anforderungen umzusetzen.
Dann folgt der Aufbau der Hardware auf einem Breadboard, funktioniert dass dann einigermaßen kann die Schaltung gelötet werden.
Als Bus-System wollte ich Anfangs I2C/TWI verwenden, allerdings hatte ich dann Bedenken dass die Reichweite ausreicht. Deshalb also dann RS485, und da man sich da selbst ein Protokoll überlegen kann, wurde dann auch gleich MPCM integriert.
Dimmbar sollte das alles dann auch sein, und diesmal dann nicht mehr blos Ein und Aus, sondern mehrere Stufen, ideal für die RGB-LEDs um alle möglichen Farben einzustellen. Irgendwie bin ich dann auf das intelliPWM gestoßen, das Konzept hat mir dann sehr gut gefallen, also hab ich es umgesetzt in BASCOM. Das war der erste große Schritt dieses Projektes. Diese Umsetzung hat mich echt viel Zeit gekostet, hab mehrere Wochenenden lang programmiert und probiert. Irgendwann hat es dann zum Glück funktioniert.
Zweiter Schritt war dann die Bedieneroberfläche. Auf das myEthernet bin ich über das mySmartUSB gekommen, ich hab eben einen Programmieradapter für USB gesucht. Das Konzept hat mir dann sehr gut gefallen, denn so konnte ich einfach die Seiten auf eine SD-Karte speichern. Anstatt ein Webmodul wie z.B. von Ulrich-Radig zu verwenden entschied ich mich also dann für eine Kauf-Lösung. Anfangs gab es beim myEthernet kein SharedRAM, es gab nur die Möglichkeit ein ganzes Byte auf einmal auszugeben, deshalb auch noch die Parallelschnittstelle im Master. Mit dieser Lösung dauerte der Datenaustausch aber sehr lange, war eigentlich nicht akzeptabel. Mit der Herausgabe der neuen Firmware 1.08, Anfang des Monats, wurde dann eigentlich die ganze Lösung erst so wirklich möglich. Nun konnte also dann die ganze HTML/Javascript Geschichte programmiert werden.
Nächster Schritt war dann die Komunikation über RS485. Hier habe ich keine wirklich passenden Routinen für den Empfang und Senden gefunden, weshalb ich dass auch selbst entwickeln musste. Dann war da noch das Protokoll, und der Ablauf der Verarbeitung in den Clients.
Und dass wars dann eigentlich auch schon. Hört sich relativ wenig an, aber zwischendrin sind immer wieder diverse Fehlfunktionen aufgetreten, und diese dann zu beseitigen hat auch immer wieder recht lang gedauert. Wie gesagt da läuft halt bei mir dann meistens alles über Try and Error.
Alles in allem möchte ich glaub ich gar nicht wissen wie viele Stunden (und Nerven) ich dafür gebraucht habe.
Es hat sich also mal wieder bewahrheitet, dass man große Aufgaben in kleine Teile/Schritte zerlegen muss.
Zu deinem Problem: Kann ich mir auch nicht so richtig erklären. Könnte mir aber vorstellen dass die Konfigurationsdateien m8def.dat und m32def.dat nicht in dem Ordner, in dem die .bas Files liegen, sind? Ansonsten hab ich mal das .zip im ersten Beitrag aktualisiert und die .def und .cfg Dateien mit angehängt.
Hier noch ein Bild einer LED im Einsatz, die Triple-Rebel eignen sich hervorragend für so eine Ausleuchtung:
Zuletzt geändert von J0sch am So, 15.02.09, 14:00, insgesamt 1-mal geändert.
Interessant mal zu sehen wie sich sowas entwickelt
Ich dachte im ersten Moment bei Version 2 und 3 "wofür sind denn da die Rippekühlkörper", bis mir aufgefallen ist, dass das alles Transisotren sind
Danke für das Bild der Farbmischung, die Rebels sind da wirklich sehr überzeugend.
Es stellt sich doch immer wieder raus:
Bottom-Up Programming, ftw!
Danke für das Bild der Farbmischung, die Rebels sind da wirklich sehr überzeugend.
Es stellt sich doch immer wieder raus:
Bottom-Up Programming, ftw!
Kann dein Problem leider nicht nachvollziehen. Hab jetzt nochmal die Dateien als dem letzten .zip genommen und mal compiliert. Die gesamten Daten finden sich wiederum in dem .zip aus dem ersten Beitrag. Wenns immer noch nicht geht mal Bascom neu installieren, bzw. vllt auf einem anderen Computer probieren?exelero hat geschrieben:komisch - selbst mit den updates lassen sich die programme nicht kompilieren -> gleiche fehlermeldungen wie oben schon beschrieben. hat noch jemand das problem mit dem fehlern beim kompilieren?
Gruß
Johannes
Nur zur Info: Ich kann den Code auch problemlos compilieren.
@J0sch
Sehr schönes Projekt! Ist mir persönlich zwar zu 'groß' (ich kann für mich bisher keinen Grund sehen, warum ich eine komplette Lichtsteuerung über ein Web-Interface steuern sollte - mir reichen simple Lichtschalter auch), aber die inteliPWM ist durchaus auch für andere (kleinere) Projekte interessant.
Ein günstiges bistabiles Relais mit 3V gibt es bei Pollin:
http://www.pollin.de/shop/detail.php?pg ... OTk4&ts=20
Mit zwei Spulen und 5V beim C: http://www.conrad.de/goto.php?artikel=502880
@J0sch
Sehr schönes Projekt! Ist mir persönlich zwar zu 'groß' (ich kann für mich bisher keinen Grund sehen, warum ich eine komplette Lichtsteuerung über ein Web-Interface steuern sollte - mir reichen simple Lichtschalter auch), aber die inteliPWM ist durchaus auch für andere (kleinere) Projekte interessant.
Ein günstiges bistabiles Relais mit 3V gibt es bei Pollin:
http://www.pollin.de/shop/detail.php?pg ... OTk4&ts=20
Mit zwei Spulen und 5V beim C: http://www.conrad.de/goto.php?artikel=502880
Muss dir grundsätzlich Recht geben, mir wäre es auch zu Blöd jedes mal wenn man das Licht ausmachen oder anmachen will irgendeine Seite aufzurufen. Deswegen hängt die ganze Sache bei mir auch noch an einer geschaltenen Steckdose, die ich einfach über die Lichtschalter im Raum betätigen kann. Für die Detaileinstellungen denke ich aber doch dass die Web-Interface-Geschichte einer einfachen Bedienung z.B. über LCD und Taster überlegen ist.Borax hat geschrieben: Sehr schönes Projekt! Ist mir persönlich zwar zu 'groß' (ich kann für mich bisher keinen Grund sehen, warum ich eine komplette Lichtsteuerung über ein Web-Interface steuern sollte - mir reichen simple Lichtschalter auch), aber die inteliPWM ist durchaus auch für andere (kleinere) Projekte interessant.
Danke! hab ich bis jetzt noch nicht gefunden gehabt. Hab mich für die von Pollin entschieden.Borax hat geschrieben: Ein günstiges bistabiles Relais mit 3V gibt es bei Pollin:
http://www.pollin.de/shop/detail.php?pg ... OTk4&ts=20
Mit zwei Spulen und 5V beim C: http://www.conrad.de/goto.php?artikel=502880
Gruß
Johannes
Ich glaube, da musst Du in der Schule fragen. Es gibt zwar die Möglichkeit Bascom online upzudaten, aber dafür brauchst Du eine Registrierung bei MCS. Diese wirst Du mit einer Schul-Lizenz vmtl. nicht bekommen.
Update-Anleitung: http://www.display3000.com/downloads/bascom_update.pdf
Update-Anleitung: http://www.display3000.com/downloads/bascom_update.pdf





