Arduino-RGB-Steuerung

Aus Deutsches DMXC-Wiki

RGB-Steuerung mit Arduino

Einleitung

Im Rahmen der Google Developer Days 2011 in Berlin fand am 20.11.2011 in der c-base auch ein Hackathon statt. Es waren ca. 120 Teilnehmer anwesend, die sich in ca 12 Teams organisiert haben um diverse Anwendungen, z.B. zu Google TV, NFC und Arduino zu implementieren. Ich habe mich einer Arduino-Gruppe angeschlossen, da es hier auch um eine RGB-Steuerung ging (aber nicht per DMX).


Das Konzept

Da das ganze auch unter dem Motto "home automatisation" stand, hat Peter (der das Team-Thema vorgeschlagen hat) von vorherein vom Andriod-ADK /API für Arduino Abstand genommen, denn wer will schon sein Smartphone per USB-Kabel an eine Lampe anschliessen müssen, um diese zu steuern?

Peter hat daher ein WLAN-Router mitgebracht, mit dem das Android-Phone kommunizieren soll. Es handelt sich dabei um ein TP-Link (TL-WR1043ND), welches mit der Software von OpenWRT.org geflasht wurde. Damit steht auch ein Webserver auf dem Router zur Verfügung.

Arduino Konzeptarbeit 20111120sm.jpg Arduino Konzept 20111120sm.jpg

Später kam Jasek dazu, der seine RGB-Lampe mitbrachte. Daher haben wir das Konzept noch schnell von einem einfachen Switch (Relais) auf pwm-Steuerung für RGB erweitert.

Arduino Bausteine 20111120sm.jpg

Uns standen u.a. folgende Bausteine zur Verfügung:

  • das Arduino Board (MEGA ADK),it einem ATmega2560 und USB host Interface
  • diverse shields (hier eins um diverse Pins per Kabel abzugreifen
  • Relais shields (in einfacher und 4 facher Ausführung)

Arduino TeamArbeit2 20111120sm.jpg

Das Team hat sich entsprechend dem Konzept in drei Gruppen aufgeteilt:

  • Android App (Nutzung eines Color-Pickers) zur Farbwahl und Switch Button für die "normale" Lampe
  • Web-Server Programm (auf dem Router)
  • Arduino-Programmierung (mit dem sketch_nov20 SDK für Arduino von arduino.cc)

Arduino Teamarbeit1 20111120sm.jpg

Hier sieht man, welche Pins für die RGB-Steuerung verwendet wurden:

ArduinoBoard 20111120sm.jpg

Die Spezifikation der Schnittstelle fand auf einem Blatt Platz:

Arduino Schnittstelle 20111120sm.jpg

Die Grundidee ist, dass die App http-Kommandos an den Webserver sendet. Dieser setzt das Kommando in eine Ausgabe für den Arduino um.


Das Ergebnis

Arduino RGBLampe 20111120sm.jpg

Und tatsächlich - es funktioniert!

Arduino LampeBrennt 20111120sm.jpg

Arduino Gruppen 20111120sm.jpg

Insgesamt konnten wir also drei Lampen steuern:

  • RGB-Lampe (direkt über Ausgabe Pins)
  • 12Volt-LED-Lampe über Relais
  • 220Volt Baustrahler über 2. Relais

Unser Team hat zwar keinen Preis gewonnen - wahrscheinlich weil die Arbeit nicht soooo spektakulär war - aber wir waren dennoch stolz auf das, was wir in weniger als 6 Stunden geschafft haben.

Links, Nachbemerkungen und Sourcen

Sourcen

http://github.com/jaseg/arduino-mega-pwm16

(bisher nur Arduino Code)

Weitere Fotos und Infos zum GDD/Hackthon

https://plus.google.com/104005370658696101293/posts/fp1uRtfH54p

Mail von Andreas:

auch ein Dank von mir an alle. Irgenwie bin ich jetzt auf den Geschmack gekommen, werde mir das Arduino APK Kit besorgen. Und bald wieder an einem Hackathon teilnehmen: http://apps-dev-tour.appspot.com/agenda.html#Zurich

Viele Grüße vom Bodensee, Andreas

Mail von Peter:

Mir ist noch eingefallen, dass ich einigen den Link zu dem Arduino-Lieferanten in China geben wollte, damit Ihr dem Christkind den entsprechenden Tipp geben könnt ;-)

DFrobot http://www.dfrobot.com/

Wichtig: oben rechts auf EUR umschalten, sonst seht ihr Preise in USD.

Die sind recht günstig und haben auch Software- und Pin-kompatible Arduino-Nachbauten (open-source hardware machts möglich), z.B.:

  • DFRduino UNO SMD (Arduino Compatible) EUR 17.32
  • Ethernet Shield For Arudino EUR 18.42
  • USB Host Shield for Arduino (Support Google ADK) EUR 22.07
  • Relay Shield for Arduino EUR 10.69

Nett zur Home-Automatisierung ist auch:

  • Ethernet Controlled 8 Channel Relay 16A EUR 61.16

Damit könnt Ihr ohne einen Arduino und ohne Arduino-SW-Entwicklung acht 230V Stromkreise an- und ausschalten, direkt via HTTP, ähnlich wie wir das mit unserem HTTP-API im Hackathon gemacht haben.

Ich hab vor gut einem Monat eine Bestellung gemacht, die nach ca 5-6 Tagen hier in der Schweiz war. Allerdings waren die Versandkosten recht hoch (EUR 44.21), was aber vielleicht an der Menge und dem Gewicht der von mir bestellten Sachen gelegen hat (unter anderem recht schwere Akkus).

Grüsse, Peter