Beispielaufbau RGB Pixel über Webbrowser steuern - die einfache Methode

  • Ziel der Übung: LED Pixel über einen Webbrowser (Handy, Ipad, Rechner etc) ansteuern


    Verwendet habe ich einfach zu bedienende hardware und eine programmiersprache die es wohl leichter kaum zu erlernen geht: c#
    Eine website ist meiner meinung nach dafür besonders geeignet, da sie platformunabhängig mit tausend verschiedenen geräten angezeigt werden kann.
    Aber eins nach dem anderen.
    Hier der versuchsaufbau:


    [Blockierte Grafik: https://dl.dropbox.com/u/14785513/LEDStyles/IMG_1718.JPG]


    Ich versuchs mal umgangsprachlich zu erklären.
    Ansteuern wollen wir die LED Pixel, welche mit den WS2801 chip, LED´s und noch paar erforderlichen bauteilen bestückt sind. Mehr Informationen bekommt ihr dazu auch hier im forum, ist aber nicht zwingend erforderlich wenn ihr diese fertig oder zum selbstlöten kauft. Dieser chip auf der platine kann über SPI leicht angesteuert weden und gibt 3 PWM Signale aus. In unsren falle ist das die rote, blaue und grüne farbe der LED´s. Ebenso könnte man aber auch 3 gleichfarbige LED´s, Servos, Lüfter etc ansteuern. Halt alles was mit PWM zum laufen grbracht werden kann. Der ws2801 chip befindet sich auch in diversen LEDstripes, welche wohl die einfachste variante darstellt; da schon fertig montiert.
    Den Saft bekommen die LED´s in diesem beispiel von einem 24V Steckernetzteil. Wenn ihr nur das netzteil anschließt wird nix passieren, denn die ws2801 chips machen gar nix ohne das man ihnen was sagt.


    Nun fehlt nur noch die steuerung. SPI ist ein kleines leichtes Protokoll, was aber der Microcontroller für euch übernehmen kann.


    Glücklicherweise bekommt man heutzutage genau die passenden plug & play boards vom hersteller http://www.ghielectronics.com, Alle boards von dem hersteller arbeiten mit 3,3V soweit ich das gesehen habe.
    Los gehts ab knapp 20€ für das kleinste board und das kommt sogar mit ordentlich speed daher. Da ich aber ein klein wenig experimentieren wollte habe ich mir das PANDA II als kit bestellt (hier einzeln ). Günstig zu haben ist das ganze bei mouser.com.
    Dabei hatte ich nach 2d meine controller & zubehör in der hand. Überrascht war ich dabei auch über die ganze dokumentation. Ich habs alles mit in das ZIP gepackt was es da gibt.
    Mehr Power und vor allem mehr speicherplatz bietet der Nachfolger des Panda Boards: Cerbuino
    Noch mehr spielzeug was ihr an die boards anschließen könnt gibts auf der selben seite, bitte beachtet das nicht alles mit jedem board kombinirbar ist. die sockel haben buchstaben und die module auch, recht nett gelöst.


    Der vorteil am .net framework ist, das ihr threads einfach erstellen könnt, euch keine sorgen um den speicher machen müsst, den kompletten microcontroller fertig im visual studio dargestellt bekommt etc. also man kann nicht wirklich viel falsch machen. Okay ein kleinen haken gibts dann doch, wenn ihr den speicher extrem zumüllt (was nur bei boards mit wenig speicher geht, z.b. das panda II) verreckt euch das board dann doch. aber wie gesagt, abeb den 168 MHz Processoren sollte das kein ding sein, die kommen von haus aus mit genug speicher daher.


    Fix ausgepackt und angeschlossen. Stromversorgung des boards erfolgt mittels mitgelieferten mini usb kabel. Gemeinsamen Gnd sowie SPI angesteckt und schon kanns los gehen.


    Aber wie geht das jetzt genau mit dem microcontroller?
    Als erstes ladet ihr euch das kostenlose Visual Studio Express von Microsoft
    Von haus aus hat das Visual Studio mit microcontrollern nix am hut, also ladet ihr euch noch die SDK von Microsoft dazu: Klick
    Und da wir ja ganz grün hinter den ohren sind und wir lieber dem Visual Studio die ganze arbeit für das Panda II überlassen wollen laden wir noch die passenden programmierwerkzeuge von dem hersteller


    Nun kanns aber los gehen.
    Wer bisher noch nie mit Visual Studio gearbeitet hat kann in dem ZIP file unter dokumentation das file "Beginners guide to NETMF" durchlesen, da wird alles von null auf erkärt (was sind datentypen, if abfragen, while schleifen, threads, wie lasse ich eine led blinken, wie geht das mit einem taster etc alles step by step mit beispielcode. geht alles auch im emulator im visual studio falls ihr es gerade gar nicht mehr erwarten könnt :P ; wenn ihr die Grundbegriffe beherrscht schaut euch das "FEZ_Internet_of_Things_Book" an, da wird anhand des Panda Boards II alls super erklärt, sogar wie man ein webserver baut.)
    Das Projekt was hier gezippt ist enthält den webserver mit einfachen funktionen um spi daten an die ws2801 chips zu schicken (oberfläche wie oben auf dem ipad zu sehen). ich habs versucht mit wenig, aber gut verständlichen code umzusetzen. ist nicht sehr performant, aber für einsteiger vielleicht ein wenig besser zu verstehen. Ihr werdet staunen wie wenig quellcode das am ende ist. In dem projekt könnt ihr noch die IP Adresse ändern, aber das seht ihr dann schon.


    So ich denke da kann man als anfänger schon erst mal schauen und sich ein wenig die zeit vertrallern.
    Das programmieren und debuggen geschieht btw direkt über das mini usb kabel, ihr braucht euch nur den controller zu kaufen und das wars. keine weiteren kosten. Microsoft stellt das VS Express kostenlos und auch das framework dazu. Den controller gibts ab 20€ was wollt ihr denn mehr ? :D


    So hab ich das ganze hier umgesetzt


    -Admi

  • Vielen Dank für die ausführliche Beschreibung und SW etc.! :thumbup:


    Eine Frage: Bei dieser Dropbox, wie lange bleiben denn da Dateien erhalten...? - auf Dauer..?


    weil wenn nicht, dann wäre es schon doof, wenn das z.B. nach nem Monat wieder weg ist... also das Bild und Deine SW


    Wichtig ist das der WS2801 mit 3,3V arbeiten will.

    Ne, der arbeitet mit 5 Volt, siehe Datenblatt... ;) - aber gut zu wissen, dass es auch mit 3,3 V geht, das war neulich mal hier die Frage...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!