Quantcast
Channel: LED'sWork
Viewing all 27 articles
Browse latest View live

LED-BASIC … die ultimative Programmiersprache für Beleuchtungsanwendungen

$
0
0

BASIC – eine phantastische Story…

Wikipedia schreibt hierzu:

„BASIC“ steht für „Beginner’s All-purpose Symbolic Instruction Code“, was so viel bedeutet wie „symbolische Allzweck-Programmiersprache für Anfänger“. Die Abkürzung als Wort gesehen bedeutet außerdem „grundlegend“. Dies zeigt das Design-Ziel klar: eine einfache, für Anfänger geeignete Programmiersprache zu erschaffen. Außer in manchen Produktnamen wird das Wort „BASIC“ grundsätzlich in Großbuchstaben geschrieben.

Was für eine nüchterne Betrachtungsweise für die Programmiersprache, die uns in den Achtzigern schier um den Verstand gebracht hat – mit einem mal war es möglich Transistorverstärkerstufen in Sekunden zu berechnen, nur einen Wert ändern und das Programm warf alle anderen Parameter aus – Stromverstärkung, alle Widerstände und den Rauschfaktor – was für eine Revolution! Man konnte es kaum fassen.

Heute sind wir da etwas ruhiger geworden, es gibt ja so viele höhere Programmiersprachen, Anwendungen für Dies und Das, objektorientiert und was weis der Geier…

…nur da muss man sich einarbeiten, jahrelang Erfahrung sammeln, studieren, verinnerlichen – begreifen! Wer hat dafür schon die Zeit und die Nerven?

BASIC ist da eine ganz andere Liga – einfach, schnell erlernbar, intuitiv und es sind ganz, ganz schnell positive Ergebnisse möglich.

BASIC hat man in Minuten begriffen, es ist einfach und dennoch mächtig. Will man nur mal ein kleines Projekt erledigen, dann ist es doch viel besser es in kurzer, überschaubarer Zeit hinzubekommen als es nie fertigzustellen. Der funktionierende Effekt ist der König – der schöne Stil ist der Bettler.

Genau hier haben wir aufgrund sehr, sehr vieler Anfragen überlegt, wie man diese vielen verschiedenen, individuellen Projekte erledigen kann. So tolle Ideen – von einer kleinen Beleuchtung für Aquarien über eine Karnevalstreppe, bis hin zur Kufenbeleuchtung einer Eiskunstlaufshow. Ohrringe – verrückte Blinkbrillen, Silvester-Hüte mit Lichtshow. Drohnen, die abheben und ein ganz eigenes Himmelslicht erzeugen – die Liste ist lang – wirklich lang.

Nun ist es da – LED-BASIC !!! Lauffähig auf einem eigenen LED-Player-Pentagon (Led-Player ist eine Erfindung von DIAMEX) dem LED-Player-BASIC.

Preiswerte Hardware, kinderleichte Installation, kinderleichte Programmierung – schnelle Effekte und gaaaanz schnelle Erfolge.

Die Hardware ist oppulent ausgestattet. Eine ARM Cortex M3 CPU (STM32F103) sorgt für richtig viel Rechenleistung. Es ist der am meisten eingesetzte M3 Controller der Welt.
Nichts gegen PICs oder AVRs (Arduino & C0), aber acht bittige Controller würden hier eher eine schwache Show liefern. Allein die Umsetzung des WS2812 Protokolls ist für einen AVR eine grenzwertige und zeitfüllende Aufgabe. Wir setzen daher auf hochmoderne 32bittige Controller, die eine enorme Leistungsreserve aufweisen und neben der kompletten Organisation der Datenausgabe auf LEDs auch noch 10.000 Zeilen Basic-Code pro Sekunde abarbeiten können.

LED-BASIC kann man mit mehreren unserer PLAYER und CONTROLLER anwenden.
Seine eigene Show bauen, tolle Effekte zaubern, infrarot fernsteuern, Steuerungen auslösen, Schaltvorgänge programmieren, Tasten abfragen, Helligkeits- und Temperatursensorik, Echtzeitanwendungen erledigen und so viel mehr…

LED-BASIC ist kostenlos, die Beispiele sind alle open-source.

LED-BASIC wird individuelle, außergewöhnliche Beleuchtungsideen auch von Laien umsetzbar machen lassen. Verrückte Ideen werden plötzlich Realität. Egal wo, egal was.

Werbung, Heimkino, Warnleuchte, Symbolik, Party, Ohrringe, Wisch-Blinker, Strobo, Modellbau, Uhren, Weihnachtsbaum, Halloween, Lauflichter,

Probiert es aus!

In Kürze hier

 

 


LED-BASIC-EDITOR ist nun verfügbar

$
0
0

Gute Neuigkeiten: Der LED-BASIC-EDITOR ist nun für den Download freigegeben. Im Installationspaket findet man auch ein PDF mit der Bedienanleitung und der Erklärung der speziellen LED-Ausgabebefehle. Die BLPs [BASIC-LED-Player] gibt es in mehreren Ausführungen, von BLP-Minis über Budget-Player bis zum Pentagon-Board. Das Pentagon-Board unterstützt eine Reihe von Sensoren, die auch gleich integriert sind. Temp-Sensor, RTC (Echtzeituhr), LDR (Lichtsensor), IR-Port & FB (optional) sowie drei I/Os auf dem Board schon als Tasten bestückt und drei Outputs. Der WS2812-Ausgang unterstützt bis zu 256 LEDs. Die Ansteuerung der DigiDots bzw. NeoPixel geschieht dabei komplett im Hintergrund, darum muss man sich nicht kümmern, als Programmierer. Die gleiche Funktionalität bringt der Budget-Player mit. Die Sensorik kann nach Bedarf bestückt werden. Hintergrund ist die Anwendung als programmierbarer Drohnen Illuminator oder in Bereichen wo es auf jedes Gramm ankommt. Die Platine ist nur 0,8mm dick, wiegt extrem wenig und ist dennoch so leistungsstark, dass man auch bis zu 256 LEDs ansteuern kann. Die geringe Größe macht auch hier den Einatz nicht nur im Flugmodellbau möglich. Braucht man nur maximal 64 LEDs, so wird der BASIC-BOOSTER interessant sein. Mit nur 6qcm Fläche unschlagbar klein. Auch dieser BLP ist dank 32bittigem ARM Cortex M0 sehr leistungsstark und flexibel zu programmieren. Beim BASIC-BOOSTER kommt zur Programmierung unser BASIC-Uploader zum Einsatz. Es ist quasi die fehlende USB-Schnittstelle, die zum programmieren benötigt wird. Alle unsere Minis (Booster, Party-Button und BASIC-Chips) können mit dem BASIC-Uploader programmiert werden. Insofern ist der kleine und billige Uploader nur einmal erforderlich. Dabei bieten die nur wenige Euro „billigen“ Minis auch Features der großen BLPs. Den Debug-Rückkanal (außer Party-Button 12) kann man zur Fehlersuche nutzen. Der Booster bietet auch einen einfach ankoppelbaren IR-Port. So ziemlich jeder TSOP aus der Bastelkiste eignet sich dafür.

Wenn die Leistungsfähigkeit der BLPs dann doch noch Lust auf ein viel größeres Projekt macht -> auch hier gute Neuigkeiten. Derzeit wird an einem BASIC-Player-M gearbeitet, mit einem CORTEX-M4 und erweiterter Sensorik onboard, daher wird man 1024 LEDs steuern können und nicht nur WS2812 sondern auch die APA102, die erheblich größere Frameraten erlauben. Planung drittes Quartal 2017.

Die BLPs sind in wenigen Tagen verfügbar, unsere Maschinen sind gerüstet und warten nur auf die Zustellung der letzten notwendigen Bauelemente…

Link zum Shop

Link zur LED-BASIC-Website

Bilder:       BLP-Pentagon       BLP-Budget     BLP-Mini       Uploader mit Zange

   

[BLP] Pentagon verfügbar

$
0
0

Das Pentagon-Board, BLP-Budget sowie der Basic-Uploader sind ab sofort in Stückzahlen verfügbar. Die Software ist frei downloadbar. CRONIXIE und CRONIOS-SEGMENTA sind ebenfalls ab sofort erhältlich. Alle Boards sind mit LED-BASIC programmierbar.

[BLP]  = BASIC-LED-Player

 

 

 

[BLP] BIG-PENTAGON erste Muster in Entwicklung

$
0
0

Der Countdowm läuft! Die ersten Hardwaremuster sind aufgebaut, nun wird an der Software mit Hochdruck gearbeitet. Eigentlich ist der „kleine“ Pentagon BLP schon ein ganzer Kraftzwerg und für die allermeisten Anwendung völlig ausreichend. Doch es gibt Anwendungen, da kommt es auf Vollausstattung, ultraschnelle Wiedergabegeschwindigkeit und brachiale Rechenleistung an. Auch die Grenze von 256 LEDs reißen wir mit dem BIG-PENTAGON gleich mal ein. Noch ist es nicht amtlich, aber die Hardware hat schon mal drei Kanäle, die ordentlich LEDs ansteuern können. 1024 LEDs sind als Ausbaustufe geplant, möglicherweise schafft der neue [BLP] deutlich mehr. Insbesondere die Option, APA102 ansteuern zu können ist für den Ausstattungs-Modellbau sehr interessant. Natürlich auch für andere Anwender, die mal so richtige LED Stückzahlen verbauen wollen. Hier Bilder im Vergleich zu den M3-Boards.

Eingesetzt wird ein kraftvoller M4-ARM-Cortex Controller. Sensorik/Outputs: Drehimpulsgeber, IR-Port, I/O-In-/Output, Beeper, LDR, Tempsensor, RTC Echtzeituhr mit CR2032 Stützbatterie on board, zwei Taster onboard. Zwei Platinenvarianten: Pentagon und slim-line (für Steckbrett optimiert). Zwei Ausgabemodis, WS2812 (drei Leitungen, Betriebsspannung + data) und APA102 (vier Leitungen, Betriebsspannung + clock & data), drei Kanäle (Anzahl der LEDs pro Kanal steht noch nicht fest). Micro-USB Anbindung.  M3 Befestigungsbohrungen für Montage.

In Kürze mehr…

 

 

 

 

Bluetooth Web App zur Steuerung eines Cronixie-Moduls

$
0
0

Im letzten Beitrag von mir ging es um die Kombination eines Bluetooth Moduls mit dem Digi-Dot-Booster. Jetzt geht es um die Möglichkeit den DD-Booster auch tatsächlich über Bluetooth zu steuern. Für das Beispiel habe ich ein Cronixie-Modul genommen, wie im letzten Beitrag mit dem WT51822-S4AT verdrahtet und die App zur Steuerung als Web App für den Chrome Browser umgesetzt.

Um für etwas Abwechslung bei den Beispielen zu sorgen, verzichte ich diesmal auf den obligatorischen Regenbogen und nehme ein Cronixie-Modul.

Die Schaltung eines Cronixie-Moduls, wenn die Platine unten bestückt ist, entspricht der eines Digi-Dot-Boosters mit 20 WS2812B LEDs. Jeweils 2 sind parallel geschaltet und beleuchten je eine Zahl – somit haben wir 10 tatsächlich adressierbare LEDs in Reihe. Bei einer unbestückten Version kann man entweder zusätzlich den DD-Booster auf die Unterseite packen oder das Ganze direkt allein vom WT51822-S4AT steuern lassen. Das bedeutet zusätzlichen Aufwand was die Versorgungsspannung und Verdrahtung angeht, kommt aber evtl. als extra Beitrag später. Die BLE Steuerung muss dann auch angepasst werden, da nicht mehr die DD-Booster Befehle 1:1 verschickt werden…

Das WT51822-S4AT Modul wurde mit der unveränderten Version der mbed BLE_DD-Booster firmware programmiert, daher entspricht die SPI Pinbelegung des Moduls der aus dem letzten Beitrag. Die Verdrahtung sieht man auf dem Bild. kann jedoch nach Neubelegung der SPI Pins „optimiert“ werden.

#define SPI_MOSI P0_3
#define SPI_SCK P0_4
#define SPI_CS P0_2

RESET Leitung wird in meinem Aufbau nicht verwendet. Mit Strom wird der Aufbau per seitlich angelöteter Buchse versorgt.

WT51822-S4AT an der Unterseite der Nixie Platine.

Damit wäre die Hardware einsatzbereit und es bedarf einer passenden Software für die Steuerung. Wer sofort loslegen möchte, öffnet die Seite mit der Web App und kann es testen, sofern ein Bluetooth 4.0 kompatibles Modul vorhanden ist und die aktuelle Plattform von Chrome unterstützt wird (Mac wurde erfolgreich getestet, Linux sollte auch funktionieren, Windows scheint noch außen vor zu sein – den aktuellen Status kann man hier abfragen). Hier geht es weiter mit einigen Informationen zu dem JavaScript Code der App und der Bluetooth Web Schnittstelle.

Bluetooth Web API ist relativ neu und wird aktuell nur von dem Chrome Browser unterstützt. Die Idee, den Zugriff auf Bluetooth Geräte zu vereinheitlichen und im Browser zur Verfügung zu stellen, bietet viel Potential und wird sicherlich weiterentwickelt und hoffentlich auch von anderen Browsern übernommen. Während der Entwicklung kann der Code für den Zugriff auf die Bluetooth Geräte vom lokalen Rechner geladen werden. Für den Zugriff aus dem Internet schreibt Google als Teil des Sicherheitskonzepts eine mit TLS/HTTPS abgesicherte Seite vor – in der Hinsicht sind dir Repository-Webseiten von Github sehr praktisch. Außerdem darf der initiale Zugriff auf die Bluetooth Schnittstelle nur nach der Aktion des Users erfolgen – einen Button-Klick zum Beispiel.

Bluetooth Web API macht Gebrauch von JavaScript Promises, sodass die API Aufrufe verkettet werden und eine tiefe Verschachtelung der Callback Funktionen vermieden wird. Der nachfolgende Code zeigt den Verbindungsaufbau zu dem BLE DD-Booster. Es wird dabei die Syntax der ES6 Arrow Functions verwendet.

const NUS_SERVICE_UUID = '6e400001-b5a3-f393-e0a9-e50e24dcca9e';
const NUS_RX_CHARACTERISTIC_UUID = '6e400002-b5a3-f393-e0a9-e50e24dcca9e';
const DEVICE_NAME = 'DD-Booster';

navigator.bluetooth.requestDevice({
    filters: [{
        services: [NUS_SERVICE_UUID]
    }, {
        name: DEVICE_NAME
    }]
}).then(device => {
    return device.gatt.connect();
}).then(server => {
    return server.getPrimaryService(NUS_SERVICE_UUID);
}).then(service => {
    return service.getCharacteristic(NUS_RX_CHARACTERISTIC_UUID);
}).then(characteristic => {
    this.characteristic = characteristic;
}).catch(error => {
  // Error handling
  console.log(error);
});

Es wird hier mit navigator.bluetooth.requestDevice eine Suche nach Bluetooth Geräten initiiert. Dabei wird ein Filter verwendet, damit der Browser nur nach Geräten mit dem Service Namen „DD-Booster“ sucht und nur solchen, die den Nordic UART Service anbieten. Die nachfolgenden Befehle haben anschießend den Zweck an die RX Charakteristik vom NUS dran zu kommen, um später Daten darauf schreiben zu können.

function send(data) {
    this.characteristic.writeValue(new Uint8Array(data))
        .catch(error => {
            // error handling
            console.log(error);
        });
}

Es liegt nun an der App selbst die richtigen Befehle zu senden, um etwas sinnvolles auf dem Cronixie anzuzeigen. Zunächst erfolgt nach dem erfolgreichen Verbindungsaufbau wie beim DD-Booster die Initialisierung: ble.send([0xB1, 10, 24]) legt 10 LEDs vom Typ WS2812 (24-bit) fest. Anschließend erfolgt die Steuerung selbst durch das Senden der Befehle zum Setzen aller LEDs auf „schwarz“, dann auf die aktuell ausgewählten Farbe in den Farbregister und setzen der LED zu der aktuell ausgewählten Zahl. Am Ende wird mit „show“ die Befehlsabfolge angewendet.

function sendValuesToDDB() {
    var clearAll = [0xA1, 0, 0, 0, 0xA5],
        setRGB = [0xA1, self.currentColor.r, self.currentColor.g, self.currentColor.b],
        setLED = [0xA4, LED_MAP[self.currentDigit]],
        show = [0xB2];

    ble.send(clearAll.concat(setRGB, setLED, show));
}

Dabei ist zu beachten, dass beim Cronixie-Modul die LEDs der einzelnen Zahlen von 0 bis 9 nicht linear angesteuert werden. D.h. dass z.B. zum Ausleuchten der Zahl 0 die LED mit Index 5 angesteuert werden muss. Die komplette Zuordnung ist wie folgt:

Zahl LED index
0 5
1 0
2 6
3 1
4 7
5 2
6 8
7 3
8 9
9 4

Für die einfache Zuordnung wird intern ein Array als Map verwendet, das mit der selektierten Zahl als Index, die dazu gehörende LED zurück gibt. var LED_MAP = [5, 0, 6, 1, 7, 2, 8, 3, 9, 4];

Richtig interessant wird das ganze auf einem geeigneten Android Smartphone oder Tablet. Mit dem Chrome Browser für Android ist es ebenfalls möglich, die Web Bluetooth Schnittstelle zu verwenden. Dazu öffnet man einfach die gleiche Webseite und legt gleich los.

 

 

 

 

 

 

 

Der komplette Code der App ist auf meinem github Account zu finden.

 

CRONIXIE Video

$
0
0

von KainkaLabs (Autor Roger Leifert) gibt es nun ein schön gemachtes englischsprachiges Video zur CRONIXIE:

Am 27.09.2017 veröffentlicht

A beautiful lasercut acrylic clock-kit with edge-lit (or side-lit) technology. If you wanna buy one, use „Cronixie“ as search-term in Ebay or Amazon. German shop:https: //www.led-genial.de/LED-Cronixie 3D-Files in thingiverse: https://www.thingiverse.com/thing:102… LED Basic-Compiler (only in German ATM): http://www.led-basic.de/Software/body… Other products/developments by LEDWORKS: http://www.ledswork.de/wp/ Jürgen Grau´s version in Hackaday: https://hackaday.com/2012/02/18/edge-… Jürgen Grau´s shop (items also available at Ebay): http://nixiekits.eu/ History of edge-lit display and early multimeters: http://www.hp9825.com/html/dvms.html https://hackaday.com/2017/03/23/befor… Teardowns of an edge-lit display: http://www.stevenjohnson.com/nls/481-… https://www.stuckey.co/edge-lit-displ… http://www.vintagecalculators.com/htm…

Fernsteuerung für CRONIXIE

$
0
0

Wer im Forum stöbert, der hat sie bereits gefunden, eine komplette Bauanleitung für eine Fernsteuerung des CRONIOS-Moduls. Alles von Ralf Lampe toll beschrieben und dokumentiert zur Projektseite.

Viewing all 27 articles
Browse latest View live