Schritt 4: Die Sprache der Partei: Codierung
Wow! Die Struktur der Trapez Hose sind abgeschlossen! Das ist genial! Du bist fast fertig zum Leuchten!
Die Ware:
(1) computer
2. USB-mini
3. alles, was Sie zu diesem Punkt zusammengestellt haben :)
Wichtige Hinweise zum Gemma:
Ich habe Arduino (http://www.arduino.cc/) als die Programmierplattform für meine Gemma.
Es gibt viele Warnungen über die Verwendung von Kondensatoren und Widerstände, wenn so viele Neopixels verwenden. Ich habe dies nicht. Wenn Sie die Menge der Neopixels ändern oder größere Vorsicht Batterien.
Gemmas verarbeiten nicht die Geschwindigkeit, an der die neuen Computer USB 3 Informationen exportieren. Wenn Sie ein USB-2 sind Sie in guter Form. Ansonsten kaufen Sie einen Konverter.
Tutorials für Gemma: https://learn.adafruit.com/introducing-gemma/introduction
Tutorials für Neopixels: https://learn.adafruit.com/adafruit-neopixel-uberguide/overview , https://learn.adafruit.com/adafruit-neopixel-uberguide/best-practices
Testen von Gemma und Neopixels:
a. schließen Sie Ihre Gemma über den Mini USB-Kabel mit Ihrem Computer. Um den Code hochladen müssen Sie den kleinen schwarzen Knopf an der Oberseite der Gemma schieben. Wenn es anfängt zu blinken, beginnen Sie hochladen.
Es wird keiner Code hochladen, wenn man die Taste nicht ***
Testen Sie b. das Gemma Test 'Blinken' der folgende Code hochladen. Das kleine rote Licht an der Gemma sollte blinken. Wenn Sie Probleme haben oder Fragen besuchen Sie die Gemma Tutorial Link oben.
CODE:
/*
Blinken
Schaltet auf eine LED für eine Sekunde, dann eine Sekunde lang wiederholt.
Dieser Beispielcode ist in der Public Domain.
Zum Hochladen auf Ihrem Gemma oder Schmuckstück:
(1) wählen Sie das richtige Board aus dem Tools-Menü >
(2) wählen Sie USBtinyISP aus dem Tools -> Programmierer
(3) schließen Sie die Gemma/Trinket, stellen Sie sicher, dass Sie sehen, die grüne LED leuchtet
(4) für Windows installieren Sie die USBtiny-Treiber
(5) Taste auf der Gemma/Trinket - überprüfen Sie, ob Sie sehen
die rote LED-Puls. Dies bedeutet, dass es bereit für den Datenempfang
(6) Klicken Sie auf den Upload-Button oben innerhalb von 10 Sekunden
*/
Int führte = 1; blinken Sie "digital" PIN1 - AKA die eingebaute rote LED
die Setup-Routine ausgeführt wird, wenn Sie Reset drücken:
void setup() {}
initialisieren Sie den digitalen Stift als Ausgang.
PinMode geleitete (Ausgabe);
}
die Schleife Routine läuft immer und immer wieder für immer:
void loop() {}
DigitalWrite (geführt, hoch);
Delay(1000);
DigitalWrite (geführt, niedrig);
Delay(1000);
}
Testen Sie c. die Neopixels indem Sie die "Neopixels-Strand-Test" Code unten hochladen. Wenn Sie irgendwelche Probleme die Neopixels Tutorial Link oben zu besuchen.
CODE:
#include
#define PIN
Parameter 1 = Anzahl der Pixel in Streifen
Parameter 2 = Arduino Pin-Nummer (die meisten sind gültig)
Parameter 3 = Pixeltyp Fahnen, addieren Sie je nach Bedarf:
NEO_KHZ800 800 KHz Bitstream (die meisten NeoPixel Produkte w/WS2812 LEDs)
NEO_KHZ400 400 KHz (Klassiker "v1" (nicht v2) FLORA Pixel, WS2811 Treiber)
NEO_GRB Pixel sind für GRB Bitstream (die meisten NeoPixel Produkte) verdrahtet.
NEO_RGB Pixel sind für RGB Bitstream verdrahtet (v1 FLORA Pixel, nicht v2)
Adafruit_NeoPixel Streifen = Adafruit_NeoPixel (60, PIN, NEO_GRB + NEO_KHZ800);
WICHTIG: Um NeoPixel Burnout zu vermeiden, fügen Sie 1000 uF Kondensator über
Pixel die Starkstromleitungen, hinzufügen 300-500 Ohm Widerstand auf erste Pixel Dateneingabe
und minimieren Sie Abstand zwischen Arduino und erste Pixel. Vermeiden Sie verbinden
auf einer live-Schaltung... wenn es sein muss, eine Verbindung GND zuerst.
void setup() {}
Strip.Begin();
Strip.Show(); Initialisieren Sie alle Pixel auf "off"
}
void loop() {}
Einige Beispielverfahren zeigt, wie die Pixel angezeigt:
ColorWipe (Streifen. Color(255, 0, 0), 50); Rot
ColorWipe (Streifen. Color(0, 255, 0), 50); Grün
ColorWipe (Streifen. Color(0, 0, 255), 50); Blau
Senden Sie eine Theater-Pixel-Jagd...
TheaterChase (Streifen. Color(127, 127, 127), 50); Weiß
TheaterChase (Streifen. Color(127, 0, 0), 50); Rot
TheaterChase (Streifen. Farbe (0, 0, 127), 50); Blau
Rainbow(20);
rainbowCycle(20);
theaterChaseRainbow(50);
}
Füllen Sie die Punkte eins nach dem anderen mit einer Farbe
void ColorWipe (uint32_t c, uint8_t warten) {}
für (uint16_t ich = 0; ich strip.setPixelColor (i, C);
Strip.Show();
Delay(Wait);
}
}
Regenbogen (uint8_t warten) {} void
uint16_t i, j;
für (j = 0; j < 256; j++) {}
für (ich = 0; ich strip.setPixelColor (i, Wheel((i+j) & 255));
}
Strip.Show();
Delay(Wait);
}
}
Etwas anders, dadurch wird den Regenbogen gleichmäßig verteilt
void RainbowCycle (uint8_t warten) {}
uint16_t i, j;
für (j = 0; j < 256 * 5; j++) {/ / 5 Zyklen in allen Farben auf Rad
für (ich = 0; ich < strip.numPixels(); i ++) {}
strip.setPixelColor (ich, Rad (((i * 256/strip.numPixels()) + j) & 255));
}
Strip.Show();
Delay(Wait);
}
}
Stuhlreihen kriechenden Lichter.
void TheaterChase (uint32_t c, uint8_t warten) {}
für (Int j = 0; j < 10; j++) {//do 10 Zyklen der Jagd
für (Int Q = 0; Q < 3 Q ++) {}
für (Int ich = 0; ich < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + Q, C); Schalten Sie jeden dritten pixel
}
Strip.Show();
Delay(Wait);
für (Int ich = 0; ich < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + Q, 0); jedes dritte Pixel ausschalten
}
}
}
}
Stuhlreihen kriechenden Lichter mit Regenbogen-Effekt
void TheaterChaseRainbow (uint8_t warten) {}
für (Int j = 0; j < 256; j++) {/ / Zyklus alle 256 Farben in das Rad
für (Int Q = 0; Q < 3 Q ++) {}
für (Int ich = 0; ich < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + Q, Rad ((i + j) % 255)); Schalten Sie jeden dritten pixel
}
Strip.Show();
Delay(Wait);
für (Int ich = 0; ich < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + Q, 0); jedes dritte Pixel ausschalten
}
}
}
}
Geben Sie einen Wert 0 bis 255 um einen Farbwert zu erhalten.
Die Farben sind ein Übergang R - g - b - zurück zu R.
uint32_t Rad (WheelPos Byte) {}
If(WheelPos < 85) {}
Streifen zurück. Farbe (WheelPos * 3, 255 - WheelPos * 3, 0);
} else if(WheelPos < 170) {}
WheelPos = 85;
Streifen zurück. Farbe (255 - WheelPos * 3, 0, WheelPos * 3);
} else {}
WheelPos = 170;
Streifen zurück. Farbe (0, WheelPos * 3, 255 - WheelPos * 3);
}
}
d. laden schließlich die "Debbies Hose" folgenden Code:
#include
const Int PIN = 1;
const Int ACCEL = 1;
const Int NUMBER_O_PIXELS = 13;
const Int Min_accel = 350;
const Int Max_accel = 650;
Int AccelRead = 0;
Parameter 1 = Anzahl der Pixel in Streifen
Parameter 2 = Arduino Pin-Nummer (die meisten sind gültig)
Parameter 3 = Pixeltyp Fahnen, addieren Sie je nach Bedarf:
NEO_KHZ800 800 KHz Bitstream (die meisten NeoPixel Produkte w/WS2812 LEDs)
NEO_KHZ400 400 KHz (Klassiker "v1" (nicht v2) FLORA Pixel, WS2811 Treiber)
NEO_GRB Pixel sind für GRB Bitstream (die meisten NeoPixel Produkte) verdrahtet.
NEO_RGB Pixel sind für RGB Bitstream verdrahtet (v1 FLORA Pixel, nicht v2)
Adafruit_NeoPixel Streifen = Adafruit_NeoPixel (NUMBER_O_PIXELS, PIN, NEO_GRB + NEO_KHZ800);
WICHTIG: Um NeoPixel Burnout zu vermeiden, fügen Sie 1000 uF Kondensator über
Pixel die Starkstromleitungen, hinzufügen 300-500 Ohm Widerstand auf erste Pixel Dateneingabe
und minimieren Sie Abstand zwischen Arduino und erste Pixel. Vermeiden Sie verbinden
auf einer live-Schaltung... wenn es sein muss, eine Verbindung GND zuerst.
void setup() {}
PinMode (PIN, OUTPUT);
PinMode (ACCEL, Eingabe);
Strip.Begin();
Strip.Show(); Initialisieren Sie alle Pixel auf "off"
}
void loop() {}
Einige Beispielverfahren zeigt, wie die Pixel angezeigt:
AccelRead = analogRead(ACCEL);
AccelRead = Karte (AccelRead, Min_accel, Max_accel, 0, 255);
AccelRead = (AccelRead, 0, 255) beschränken;
SetStripColor (AccelRead, (255-AccelRead), 0);
Delay(5);
}
void SetStripColor (Int Int blau in rot, grün, Int) {}
für (Int ich = 0; ich strip.setPixelColor (i, rot, grün, blau);
}
Strip.Show();
}
e. Sie können den Code um ändern, nach Ihren Wünschen :)