Étape 4: La langue de la partie : codage
Wow ! La structure de votre pantalon de trapèze sont terminées ! C’est génial ! Vous êtes presque prêt à s’allumer !
MARCHANDISES :
1. ordinateur
2. mini USB
3. tout ce que vous avez assemblé à ce point:)
Remarques importantes concernant Gemma :
J’ai utilisé Arduino (http://www.arduino.cc/) comme la plateforme de programmation pour mon Gemmas.
Il y a de nombreux avertissements sur l’utilisation de condensateurs et résistances lorsque vous utilisez ce nombre neopixels. Je n’ai pas cela. Si vous modifier le montant de neopixels ou à l’aide de plus, faites attention aux piles.
Gemma ne peut pas gérer la vitesse à laquelle les nouveaux ordinateurs USB 3 exporter les informations. Si vous avez un USB 2 vous êtes en bonne forme. Dans le cas contraire, vous procurer un convertisseur.
Tutoriaux pour Gemma : https://learn.adafruit.com/introducing-gemma/introduction
Tutoriels pour Neopixels : https://learn.adafruit.com/adafruit-neopixel-uberguide/overview , https://learn.adafruit.com/adafruit-neopixel-uberguide/best-practices
Tests de Gemma et Neopixels :
a. Connectez votre Gemma sur votre ordinateur avec le câble mini USB. Pour télécharger le code, vous devez pousser le petit bouton noir sur le dessus le Gemma. Quand il commence à clignoter, commencer à télécharger.
Il ne sera pas télécharger n’importe quel code si vous ne poussez pas le bouton ***
b. tester le Gemma en téléchargeant le code "Blink" test ci-dessous. La petite lumière rouge sur le Gemma devrait clignoter. Si vous avez des problèmes ou visiter le lien de tutoriel de Gemma ci-dessus.
CODE :
/*
Cligner des yeux
S’éteigne sur une LED sur une seconde, puis une seconde, à plusieurs reprises.
Cet exemple de code est dans le domaine public.
Pour télécharger sur votre Gemma ou bijou :
1) sélectionnez le Conseil approprié des outils -> Menu Board
2) USBtinyISP sélectionner des outils -> programmateur
3) brancher le Gemma/bijou, assurez-vous que vous voyez la LED verte allumée
4) pour windows, installez les pilotes de USBtiny
5) Appuyez sur le bouton sur le Gemma/bijou - vérifier que vous voir
le pouls LED rouge. Cela signifie qu’il est prêt à recevoir des données
6) cliquez sur le bouton de téléchargement ci-dessus dans les 10 secondes
*/
int mené = 1 ; cligner des yeux « digital » broche 1 - AKA la LED rouge intégrée
la routine d’installation s’exécute une fois que lorsque vous appuyez sur reset :
void setup() {}
initialiser la broche numérique en tant que sortie.
pinMode (led, sortie) ;
}
la routine de la boucle s’exécute maintes et maintes fois pour toujours :
void loop() {}
digitalWrite (conduit, en haut) ;
Delay(1000) ;
digitalWrite (led, faible) ;
Delay(1000) ;
}
c. vérifier le neopixels en téléchargeant le code 'Test sur une mèche Neopixels' ci-dessous. Si vous avez des difficultés à visiter le lien tutoriel Neopixels ci-dessus.
CODE :
#include
#define PIN
Paramètre 1 = nombre de pixels dans la bande de
Paramètre 2 = nombre de goupille de Arduino (la plupart sont valide)
Paramètre 3 = type de pixel drapeaux, additionner au besoin :
NEO_KHZ800 800 KHz bitstream (la plupart NeoPixel produits w/WS2812 LEDs)
NEO_KHZ400 400 KHz (classique « v1 » (pas v2) pixels de flore, WS2811 pilotes)
NEO_GRB Pixels sont câblés pour GRB bitstream (la plupart des produits NeoPixel)
NEO_RGB Pixels sont câblés pour RGB bitstream (v1 pixels de flore, pas v2)
Bande de Adafruit_NeoPixel = Adafruit_NeoPixel (60, PIN, NEO_GRB + NEO_KHZ800) ;
IMPORTANT : Afin de réduire le risque d’épuisement professionnel NeoPixel, ajouter 1000 uF condensateur à travers
câbles d’alimentation pixel, ajouter résistance 300-500 ohms sur la saisie des données du premier pixel
et de minimiser la distance entre Arduino et premier pixel. Eviter de brancher
sur un circuit sous tension... Si vous devez brancher GND.
void setup() {}
Strip.Begin() ;
Strip.Show() ; Initialiser tous les pixels sur « arrêt »
}
void loop() {}
Certaines procédures d’exemple montrant comment afficher les pixels :
colorWipe (bande. Color(255, 0, 0), 50) ; Rouge
colorWipe (bande. Color(0, 255, 0), 50) ; Vert
colorWipe (bande. Color(0, 0, 255), 50) ; Bleu
Envoyer une poursuite de pixel de théâtre en...
theaterChase (bande. Color(127, 127, 127), 50) ; Blanc
theaterChase (bande. Color(127, 0, 0), 50) ; Rouge
theaterChase (bande. Couleur (0, 0, 127), 50) ; Bleu
Rainbow(20) ;
rainbowCycle(20) ;
theaterChaseRainbow(50) ;
}
Remplir les points un après l’autre avec une couleur
void colorWipe (uint32_t c, uint8_t attente) {}
pour (uint16_t i = 0; i strip.setPixelColor i, c ;
Strip.Show() ;
Delay(Wait) ;
}
}
Sub arc-en-ciel (attente uint8_t) {}
uint16_t i, j ;
pour (j = 0; j < 256; j ++) {}
pour (i = 0; i strip.setPixelColor (i, Wheel((i+j) & 255)) ;
}
Strip.Show() ;
Delay(Wait) ;
}
}
Légèrement différent, ce qui rend également réparti tout au long de l’arc en ciel
void rainbowCycle (attente uint8_t) {}
uint16_t i, j ;
pour (j = 0; j < 256 * 5; j ++) {/ / 5 cycles de toutes les couleurs sur la roue
pour (i = 0; i < strip.numPixels(); i ++) {}
strip.setPixelColor (je, roue (((i * 256/strip.numPixels()) + j) & 255)) ;
}
Strip.Show() ;
Delay(Wait) ;
}
}
Lumières de ramper en style théâtre.
void theaterChase (uint32_t c, uint8_t attente) {}
pour (int j = 0; j < 10; j ++) {//do 10 cycles de chasse
pour (q int = 0; q < 3; q ++) {}
pour (int i = 0; j’ai < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, c) ; allumer chaque troisième pixel
}
Strip.Show() ;
Delay(Wait) ;
pour (int i = 0; j’ai < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, 0) ; Couper chaque troisième pixel
}
}
}
}
Lumières rampants amphithéâtre avec effet arc en ciel
void theaterChaseRainbow (attente uint8_t) {}
pour (int j = 0; j < 256; j ++) {/ / cycle tous les 256 couleurs dans la roue
pour (q int = 0; q < 3; q ++) {}
pour (int i = 0; j’ai < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, roue ((i + j) % 255)) ; allumer chaque troisième pixel
}
Strip.Show() ;
Delay(Wait) ;
pour (int i = 0; j’ai < strip.numPixels(); i = i + 3) {}
strip.setPixelColor (i + q, 0) ; Couper chaque troisième pixel
}
}
}
}
Entrer une valeur de 0 à 255 pour obtenir une valeur de couleur.
Les couleurs sont un transition r - g - b - retour à r.
uint32_t roue (WheelPos octets) {}
if(WheelPos < 85) {}
retourner la bande. Couleur (WheelPos * 3, 255 - WheelPos * 3, 0) ;
} else if(WheelPos < 170) {}
WheelPos-= 85 ;
retourner la bande. Couleur (255 - WheelPos * 3, 0, WheelPos * 3) ;
} else {}
WheelPos-= 170 ;
retourner la bande. Couleur (0, WheelPos * 3, 255 - WheelPos * 3) ;
}
}
d. Enfin, Télécharger le "pantalon de Debbie' Code ci-dessous :
#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 ;
Paramètre 1 = nombre de pixels dans la bande de
Paramètre 2 = nombre de goupille de Arduino (la plupart sont valide)
Paramètre 3 = type de pixel drapeaux, additionner au besoin :
NEO_KHZ800 800 KHz bitstream (la plupart NeoPixel produits w/WS2812 LEDs)
NEO_KHZ400 400 KHz (classique « v1 » (pas v2) pixels de flore, WS2811 pilotes)
NEO_GRB Pixels sont câblés pour GRB bitstream (la plupart des produits NeoPixel)
NEO_RGB Pixels sont câblés pour RGB bitstream (v1 pixels de flore, pas v2)
Bande de Adafruit_NeoPixel = Adafruit_NeoPixel (NUMBER_O_PIXELS, PIN, NEO_GRB + NEO_KHZ800) ;
IMPORTANT : Afin de réduire le risque d’épuisement professionnel NeoPixel, ajouter 1000 uF condensateur à travers
câbles d’alimentation pixel, ajouter résistance 300-500 ohms sur la saisie des données du premier pixel
et de minimiser la distance entre Arduino et premier pixel. Eviter de brancher
sur un circuit sous tension... Si vous devez brancher GND.
void setup() {}
pinMode (PIN, sortie) ;
pinMode (entrée, ACCEL) ;
Strip.Begin() ;
Strip.Show() ; Initialiser tous les pixels sur « arrêt »
}
void loop() {}
Certaines procédures d’exemple montrant comment afficher les pixels :
accelRead = analogRead(ACCEL) ;
accelRead = carte (accelRead, min_accel, max_accel, 0, 255) ;
accelRead = contraindre (accelRead, 0, 255) ;
setStripColor (accelRead, (255-accelRead), 0) ;
Delay(5) ;
}
void setStripColor (int rouge, int vert, int bleu) {}
pour (int i = 0; i strip.setPixelColor (i, rouge, vert, bleu) ;
}
Strip.Show() ;
}
e. vous pouvez modifier le code entier à votre convenance:)