Stap 4: De taal van de partij: codering
Wow! De structuur van je broek trapeze zijn compleet! Dit is ontzagwekkend! Je bent bijna klaar om te oplichten!
Goederen:
1. computer
2. USB-mini
3. alles wat u hebben verzameld op dit punt :)
Belangrijke opmerkingen over Gemma:
Ik gebruikte een Arduino (http://www.arduino.cc/) als het programmeringsplatform voor mijn Gemmas.
Er zijn vele waarschuwingen over het gebruik van condensatoren en weerstanden bij het gebruik van dit vele neopixels. Ik deed dit niet doen. Als u het bedrag van neopixels wijzigen of gebruikt groter oppassen batterijen.
Gemma van kan niet overweg met de snelheid waarmee de nieuwe computers USB 3's gegevens exporteren. Als u een USB-2 bent u in goede vorm. Anders kopen een converter.
Tutorials voor Gemma: https://learn.adafruit.com/introducing-gemma/introduction
Tutorials voor Neopixels: https://learn.adafruit.com/adafruit-neopixel-uberguide/overview , https://learn.adafruit.com/adafruit-neopixel-uberguide/best-practices
Gemma en Neopixels testen:
a. uw Gemma verbinden met uw computer via de USB-mini kabel. Om te uploaden van de code moet je de kleine zwarte knoop op de bovenkant van de Gemma duwen. Wanneer het begint te knipperen, moet u eerst uploaden.
Het zal niet alle code uploaden als u niet de knop duwen ***
b. examen de Gemma door het uploaden van de test 'Blink' code hieronder. Het kleine rode lampje op de Gemma moet knipperen. Hebt u bezoek problemen of problemen de Gemma tutorial link hierboven.
CODE:
/*
Knipperen
Wordt op een LED op voor een tweede, vervolgens uitgeschakeld gedurende één seconde, herhaaldelijk.
Deze voorbeeldcode is in het publieke domein.
Om te uploaden naar uw Gemma of Trinket:
1) Selecteer de juiste Raad van bestuur van de Tools -> Pension Menu
2) Selecteer USBtinyISP uit het Tools -> programmeur
3) Sluit de Gemma/Trinket, zorg ervoor dat u de groene LED verlicht
4) voor windows, installeren naar de wagenmenner USBtiny
5) druk op de knop op de Gemma/Trinket - Controleer of dat u zien
de rode LED pulse. Dit betekent dat het klaar is om gegevens te ontvangen
6) Klik op de upload knop boven binnen 10 seconden
*/
int geleid = 1; 'digital' pin 1 - AKA de ingebouwde rode LED knipperen
de setup-routine wordt uitgevoerd zodra wanneer u drukt op reset:
VOID Setup {}
Initialiseer de digitale pin als uitgang.
pinMode led (, uitvoer);
}
de routine van de lus wordt uitgevoerd over en weer forever:
void loop {}
digitalWrite (led, hoog);
delay(1000);
digitalWrite (led, laag);
delay(1000);
}
c. Test de neopixels door het uploaden van de onderstaande 'Neopixels strengtest'-code. Als u problemen bezoek de Neopixels tutorial link hierboven ondervindt.
CODE:
#include
#define PIN
Parameter 1 = aantal pixels in strip
Parameter 2 = Arduino pin nummer (de meeste zijn geldig)
Parameter 3 = pixel type vlaggen, wens samen toevoegen:
NEO_KHZ800 800 KHz bitstream (de meeste NeoPixel producten w/WS2812 LEDs)
NEO_KHZ400 400 KHz (klassieke 'v1' (niet v2) FLORA pixels, WS2811 drivers)
NEO_GRB Pixels zijn bedraad voor GRB bitstream (de meeste NeoPixel produkten)
NEO_RGB Pixels zijn bedraad voor RGB bitstream (v1 FLORA pixels, niet v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel (60, PIN, NEO_GRB + NEO_KHZ800);
BELANGRIJK: Om NeoPixel burn-out risico, toevoegen 1000 uF condensator over
pixel macht leidt, het toevoegen van 300-500 Ohm weerstand op de invoer van de gegevens van de eerste pixel
en de afstand tussen de Arduino en eerste pixel te minimaliseren. Vermijd aansluiten
op een live circuit... Als u moet eerst verbinding maakt met GND.
VOID Setup {}
strip.begin();
strip.show(); Initialiseren van alle pixels op 'off'
}
void loop {}
Sommige voorbeeld procedures laten zien hoe om weer te geven op de pixels:
colorWipe (strip. Color(255, 0, 0), 50); Rood
colorWipe (strip. Color(0, 255, 0), 50); Groen
colorWipe (strip. Color(0, 0, 255), 50); Blauw
Stuur een theater pixel achtervolging...
theaterChase (strip. Color(127, 127, 127), 50); Wit
theaterChase (strip. Color(127, 0, 0), 50); Rood
theaterChase (strip. Kleur (0, 0, 127), 50); Blauw
Rainbow(20);
rainbowCycle(20);
theaterChaseRainbow(50);
}
De puntjes een na de andere te vullen met een kleur
VOID colorWipe (uint32_t c, uint8_t wachten) {}
voor (uint16_t i = 0; ik strip.setPixelColor (i, c);
strip.show();
delay(wait);
}
}
VOID regenboog (uint8_t wachten) {}
uint16_t i, j;
voor (j = 0; j < 256; j ++) {}
voor (ik = 0; ik strip.setPixelColor (i, Wheel((i+j) & 255));
}
strip.show();
delay(wait);
}
}
Iets anders, dit maakt de regenboog gelijkmatig verdeeld in de gehele
VOID rainbowCycle (uint8_t wachten) {}
uint16_t i, j;
voor (j = 0; j < 256 * 5; j ++) {/ / 5 cycli van alle kleuren op wiel
voor (ik = 0; ik < strip.numPixels(); i ++) {}
strip.setPixelColor (ik, wiel (((i * 256/strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}
Theatre-style kruipende lichten.
VOID theaterChase (uint32_t c, uint8_t wachten) {}
for (int j = 0; j < 10; j ++) {//do 10 cycli van jagen
voor (int q = 0; q < 3; q ++) {}
voor (int i = 0; ik < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, c); elke derde pixel inschakelen
}
strip.show();
delay(wait);
voor (int i = 0; ik < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, 0); elke derde pixel uitschakelen
}
}
}
}
Theatre-style kruipende lichten met regenboogeffect
VOID theaterChaseRainbow (uint8_t wachten) {}
for (int j = 0; j < 256; j ++) {/ / cyclus van alle 256 kleuren in het wiel
voor (int q = 0; q < 3; q ++) {}
voor (int i = 0; ik < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, wiel ((i + j) % 255)); elke derde pixel inschakelen
}
strip.show();
delay(wait);
voor (int i = 0; ik < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, 0); elke derde pixel uitschakelen
}
}
}
}
Invoergegevens naar een waarde van 0 tot 255 om een kleurwaarde.
De kleuren zijn een overgang r - g - b - terug naar r.
uint32_t wiel (byte WheelPos) {}
if(WheelPos < 85) {}
strip retourneren Kleur (WheelPos * 3, 255 - WheelPos * 3, 0);
} else if(WheelPos < 170) {}
WheelPos-= 85;
strip retourneren Kleur (255 - WheelPos * 3, 0, WheelPos * 3);
} else {}
WheelPos-= 170;
strip retourneren Kleur (0, WheelPos * 3, 255 - WheelPos * 3);
}
}
d. tenslotte, Upload de 'Debbie van broek' Code hieronder:
#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 = aantal pixels in strip
Parameter 2 = Arduino pin nummer (de meeste zijn geldig)
Parameter 3 = pixel type vlaggen, wens samen toevoegen:
NEO_KHZ800 800 KHz bitstream (de meeste NeoPixel producten w/WS2812 LEDs)
NEO_KHZ400 400 KHz (klassieke 'v1' (niet v2) FLORA pixels, WS2811 drivers)
NEO_GRB Pixels zijn bedraad voor GRB bitstream (de meeste NeoPixel produkten)
NEO_RGB Pixels zijn bedraad voor RGB bitstream (v1 FLORA pixels, niet v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMBER_O_PIXELS, PIN, NEO_GRB + NEO_KHZ800);
BELANGRIJK: Om NeoPixel burn-out risico, toevoegen 1000 uF condensator over
pixel macht leidt, het toevoegen van 300-500 Ohm weerstand op de invoer van de gegevens van de eerste pixel
en de afstand tussen de Arduino en eerste pixel te minimaliseren. Vermijd aansluiten
op een live circuit... Als u moet eerst verbinding maakt met GND.
VOID Setup {}
pinMode (PIN, uitvoer);
pinMode (ACCEL, INPUT);
strip.begin();
strip.show(); Initialiseren van alle pixels op 'off'
}
void loop {}
Sommige voorbeeld procedures laten zien hoe om weer te geven op de pixels:
accelRead = analogRead(ACCEL);
accelRead = kaart (accelRead, min_accel, max_accel, 0, 255);
accelRead = beperken (accelRead, 0, 255);
setStripColor (accelRead, (255-accelRead), 0);
delay(5);
}
VOID setStripColor (int rood, int GREEN, int blauw) {}
for (int i = 0; ik strip.setPixelColor (i, rood, groen, blauw);
}
strip.show();
}
e. kunt u de code rond naar wens :)