Im folgenden Beispiel Repository finden sich zu jedem Gerät ausführliche Codebeispiele, die als Referenz (und natürlich zum herum spielen) heran gezogen werden können. https://github.com/methodpark/creative-coding
Wenn ihr Lust habt könnt ihr mit eurem Projekt einen Pull Request stellen, dann haben wir im Anschluss eine kleine Sammlung spannender Beiträge die wir im Anschluss vorstellen können!
- node.js (z.B. version 10, download unter https://nodejs.org/en/download/), ab node v12 gibt es momentan scheinbar Probleme
- eine Buildumgebung (z.B. MSVS, abhängig von eurem Betriebssystem)
- Python 2.7
Eine Detailanleitung zur Installation findet ihr unter: https://github.com/nodejs/node-gyp
Natürlich könnt ihr auch jede andere Programmierumgebung nutzen! Dieses Cheatsheet bezieht sich allerdings nur auf Node.js / JavaScript.
git clone [email protected]:methodpark/creative-coding.git
cd creative-coding
npm install
const lunchpad = require('lunchpad');
const Color = lunchpad.Color;
lunchpad.initialize().then(launchpad => {
// your code here
});
getSquare(x, y)
: fragt die Farbe eines Feldes ab
setSqare(x, y, color)
: setzt die Farbe eiens Feldes
getFunctionX(x)
: fragt die Farbe eines horizontalen Funktionsbuttons ab
setFunctionX(x, y, color)
: setzt die Farbe eines horizontalen Funktionsbuttons
getFunctionY(x, y)
: fragt die Farbe eines vertikalen Funktionsbuttons ab
setFunctionY(x, y, color)
: setzt die Farbe eines horizontalen Funktionsbuttons
clearSquares()
: setzt alle Felder zurück
clearAll()
: setzt alle Buttons zurück
launchpad.on('input', (x, y) => ...)
Button Event mit den Koordinaten des Buttons
launchpad.on('functionX', x => ...)
Button Event für die horizontalen Funktions Buttons
launchpad.on('functionY', y => ...)
Button Event für die vertikalen Funktions Buttons
Launchpad unterstützt drei Farben:
Color.RED
, Color.Amber
und Color.Green
Für jeder Farbe existieren drei Helligkeitsstufen:
const myRed = Color.RED;
const lighterRed = myRed.lighter();
const Fixture = require('./lib/Fixture');
const getUniverse = require('./lib/getUniverse');
// erzeugt ein universe für das usbPro interface
getUniverse('usbPro').then(universe => {
const fixture = new Fixture(1, universe);
fixture.brightness(1);
fixture.color('fuchsia');
});
Alternativ kann auch der Debug Treiber verwendet werden:
getUniverse('debug').then(universe => {
// ...
});
Die Fixture Klasse abstrahiert das Setzen von Farbwerten und der Helligkeit eines Lichtelementes.
const fixture = new Fixture(basePort, universe);
fixture.brightness(1); // ein Wert zwischen 0 und 1
fixture.color('fuchsia'); // ein benannter Farbwert oder Hexvalue (#f00)