Chatoyante jupe Caméléon (smart) ~ (1 / 7 étapes)

Etape 1: Le code

#include < Wire.h > #include < Adafruit_TCS34725.h > #include < Adafruit_LSM303.h > #include < Adafruit_NeoPixel.h > / / paramètre 1 = nombre de pixels dans la bande de / / paramètre 2 = Numéro d’identification (la plupart sont valide) / / paramètre 3 = type de pixel drapeaux, s’additionnent selon les besoins: / / NEO_RGB Pixels sont câblés pour RGB bitstream / / NEO_GRB Pixels sont câblés pour GRB bitstream / / bitstream NEO_KHZ400 400 KHz (par exemple les pixels de FLORA) / / bitstream NEO_KHZ800 800 KHz (par exemple bande de LED de haute densité) #define NUM_PIXELS 4 Bande de Adafruit_NeoPixel = Adafruit_NeoPixel (NUM_PIXELS, 6, NEO_GRB + NEO_KHZ800) ; Adafruit_TCS34725 color_sensor = Adafruit_TCS34725 (TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X) ; Adafruit_LSM303 accel ; #define STILL_LIGHT / / define si lumière doit être activé lorsque aucun mouvement. Sinon dark / / nos RGB -> oeil-reconnu gamma couleur octets gammatable [256] ; int g_red, g_green, g_blue ; couleurs globales lus par couleur capteur int j ; plaisante pas avec ce nombre d’ajuster TWINklitude:) / / basse nombre = plus sensible #define MOVE_THRESHOLD 45 #define FADE_RATE 5 int conduit = 7 ; double newVector ; void flash (int fois) {pour (int j’ai = 0; j’ai < fois; i ++) {digitalWrite (led, HIGH); / / allumer la LED (HIGH est le niveau de tension) delay(150); / / attendre un deuxième digitalWrite (led, faible); / / éteindre la LED en rendant les delay(150) basse tension;}} float r, g, b ; double storedVector ; void setup() {pinMode (led, sortie); / / Try initialiser et avertir si nous ne pouvions pas détecter la puce si (! accel.begin()) {Serial.println ("Oops... impossible d’initialiser le LSM303. Vérifiez votre câblage!") ; while (1) {flash(4) ; delay(1000);} ; } strip.begin() ; Strip.Show() ; Initialiser tous les pixels sur « arrêt » si (! color_sensor.begin()) {Serial.println ("TCS34725 non trouvé... Vérifiez vos connexions"); while (1) {flash(3) ; delay(1000);};} / / Merci PhilB pour cette table gamma ! Il permet de convertir les couleurs RVB à ce que les humains voient pour (int j’ai = 0; j’ai < 256; i ++) {float x = i; x / = 255; x = pow (x, 2, 5); x * = 255 ; gammatable [i] = x;} //this séquence clignote le premier pixel trois fois / / comme un compte à rebours pour la lecture de la couleur. pour (int i = 0; j’ai < 3; i ++) {/ / blanc, mais le variateur--255 pour toutes les trois valeurs rend aveugle
! strip.setPixelColor (0, bande. Couleur (188, 188, 188)) ; Strip.Show() ; Delay(1000) ; strip.setPixelColor (0, bande. Couleur (0, 0, 0)) ; Strip.Show() ; Delay(500) ; } uint16_t clair, rouge, vert, bleu ; color_sensor.setInterrupt(false) ; allumer la LED delay(60) ; prend 50ms à lire color_sensor.getRawData (rouge, vert & bleu & claire) ; color_sensor.setInterrupt(true) ; désactiver les LED / / comprendre certains code hexadécimal de base pour la somme de visualisation uint32_t = rouge ; somme += vert ; somme += bleu ; somme = effacer ; r = rouge ; r / = somme ; g = vert ; g / = somme ; b = bleu ; b / = somme ; r * = 256 ; g * = 256 ; b * = 256 ; g_red = gammatable [(int) r] ; g_green = gammatable [(int) g] ; g_blue = gammatable [(int) b] ; Obtenir la grandeur (longueur) du vecteur 3 axes / / http://en.wikipedia.org/wiki/Euclidean_vector#Length accel.read() ; storedVector = accel.accelData.x*accel.accelData.x ; storedVector += accel.accelData.y*accel.accelData.y ; storedVector += accel.accelData.z*accel.accelData.z ; storedVector = sqrt(storedVector) ; } void loop() {/ / obtenir de nouvelles données accel.read() ; double newVector = accel.accelData.x*accel.accelData.x ; newVector += accel.accelData.y*accel.accelData.y ; newVector += accel.accelData.z*accel.accelData.z newVector = sqrt(newVector); / / nous dirigeons-nous si (abs (newVector - storedVector) > MOVE_THRESHOLD) {colorWipe (bande. Color(0, 0, 0), 0) ; flashRandom (10, 25) ; nombre premier est retard 'attendre', / / plus court num == twinkle plus court / / second numéro est combien neopixels à / / allument simultanément} #ifdef STILL_LIGHT else {colorWipe (bande. Couleur (gammatable [(int) r], gammatable [(int) g], gammatable[(int)b]), 0) ; storedVector = newVector ; } #endif} void flashRandom (int wait, uint8_t howmany) {pour (uint16_t j’ai = 0; i < howmany; i ++) {pour (int simul_pixels = 0; simul_pixels < 8; simul_pixels ++) {/ / obtenir un pixel aléatoire de la liste j = random(strip.numPixels()) ; strip.setPixelColor (j, strip. Couleur (g_red, g_green, g_blue)) ; } strip.show() ; Delay(Wait) ; colorWipe (bande. Color(0, 0, 0), 0) ; maintenant, on va « fade » il FADE_RATE les étapes pour (int x = 0; x < FADE_RATE; x ++) {int r = g_red * (x + 1); r / = FADE_RATE ; int g = g_green * (x + 1); g / = FADE_RATE ; int b = g_blue * (x + 1); b / = FADE_RATE ; strip.setPixelColor (j, strip. Couleur (r, g, b)) ; Strip.Show() ; Delay(Wait) ; } / / & fondu pour (int x = FADE_RATE; x > = 0; x--) {int r = g_red * x; r / = FADE_RATE ; int g = g_green * x; g / = FADE_RATE ; int b = g_blue * x; b / = FADE_RATE ; strip.setPixelColor (j, strip. Couleur (r, g, b)) ; Strip.Show() ; Delay(Wait) ; colorWipe}} #ifdef STILL_LIGHT (bande. Couleur (gammatable [(int) r], gammatable [(int) g], gammatable[(int)b]), 0) ; #endif} / / remplir les points un après l’autre avec une colorWipe Sub de couleur (uint32_t c, uint8_t attente) {pour (uint16_t j’ai = 0; i < strip.numPixels(); i ++) {strip.setPixelColor (i, c); strip.show() ; delay(wait);}}

Articles Liés

Capture plein corps numérise en couleur

Capture plein corps numérise en couleur

Ce tutoriel va vous apprendre comment capturer plein corps entier de personnes à l'aide de photogrammétrie et de les préparer pour l'impression 3D. En utilisant quelques reflex numériques, les lumières, un tourne-disque, un bon pc, quelques logiciels
Modification de fonctionnement et de la batterie Polariod 350

Modification de fonctionnement et de la batterie Polariod 350

Cette instructable vous montre fonctionnement de base, nettoyage et une modification simple pile sur un appareil photo polaroid 350 terre.Étape 1: matériauxNETTOYAGE1. Q tips2. serviettes en papierOPÉRATION3. film (pour 350 j'ai utilisé fp3000b de Fu
Intel Edison Smart caméra déclencheur pour pixhawk basé drones

Intel Edison Smart caméra déclencheur pour pixhawk basé drones

L'Edison Intel est un ordinateur très petit et puissant. Il a la taille parfaite pour être utilisé comme un ordinateur de compagnon pour Pixhawk base de drones. Capable de fonctionnant sous linux et de faire un traitement d'image. Il peut être utilis
DIY Smart suivez-moi Drone avec caméra (Arduino basé)

DIY Smart suivez-moi Drone avec caméra (Arduino basé)

Drones sont des outils et des jouets très populaires ces jours-ci. Vous pouvez trouver des professionnels et même les drones débutant et gadgets volants dans le marché. J'ai quatre drones (quadcopters et hexcopters), parce que j'aime tout ce qui vole
Quadrupède avec caméra

Quadrupède avec caméra

Il s'agit de mon premier robot quadrupède avec un cadre prédéfini, mais un logiciel personnalisé. Le robot utiliser une raspberrypi cérébrale et avait la capacité de flux vidéo en direct. Ce tutoriel est spécialement pour les personnes qui veulent sa
Caméra intelligente 10 $ avec Raspberry Pi

Caméra intelligente 10 $ avec Raspberry Pi

Démo LIVE dans la salle des serveurs à Jérôme.La plupart d'entre nous ont un ou deux webcams USB inutilisés qui traînent dans nos maisons. Mais ces caméras sont souvent collecte de la poussière comme leur ancien et ont des capacités limitées.Certaine
Smart Motion anneau v2.0

Smart Motion anneau v2.0

Bonjour les gars...Je suis rafrafi, vous devez avoir vu ma bague intelligente (version précédente)Et vous devez ont aimé, dans ce instructable j'ai écrit que je vais mettre une vidéo de lui, mais je n'ai pas mis il encore Désolé pour cela.Dans ce ins
Un Get Smart Style cône de Silence

Un Get Smart Style cône de Silence

Maxwell smart a toujours insisté sur l'utilisation du cône du Silence, à la douleur perpétuelle de chef d'état-major.Il s'agit d'une autre dans ma série les accessoires Get Smart, qui comprend également deux différents téléphones de chaussure travail
Petit budget temps écoulé caméra avec DigiSpark

Petit budget temps écoulé caméra avec DigiSpark

PORTE-CLÉ CAMÉRAEste proyecto tambien esta disponible en Español haciendo clic aquiCette caméras mini diminute ont été construits dans plusieurs formulaires comme porte-clés, pack gomme, stylo, briquet, etc. Tous les gros ont un capteur d'image CMOS,
Journée à la jupe de la veilleuse INDIGLO®

Journée à la jupe de la veilleuse INDIGLO®

Une des choses plus étonnantes sur les LEDs est qu'ils vous donnent des options sans fin quand il s'agit de la couleur et des effets de lumière. Ajout de lumières pour une pièce ordinaire de vêtements prête ce vêtement transformatrice, caméléon des p
Low s’allume jupe

Low s’allume jupe

Ce tutoriel va sur comment faire votre propre modèle de jupe plissée boîte avec des couleurs de LED à l'intérieur des plis. Il suppose que le lecteur sait déjà comment construire une jupe avec plis.Il est technologique et élégant ! C' est techlegant
Let's make voiture Bluetooth 4.0 LE Smart

Let's make voiture Bluetooth 4.0 LE Smart

Cette voiture smart BLE a complété son issu de notre dernière conception bluetooth 4.0 chiped-BLEDuino, L298 flasque arrière, carrosserie de la voiture intelligente. La production de la voiture smart est simple, comme les amateurs de bricolage peuven
Caméra et ouvre-porte de garage

Caméra et ouvre-porte de garage

Mon projet utilise Arduino Mega 2560, capteur de distance collision avoidance, capteur de distance d'echo, relais commute, horloge RTC et connexion filaire à la porte de garage. Je peux surveiller l'état de la porte de garage, Découvre la caméra vidé
Système de fréquentation (Intel Edison à l’intérieur) Smart

Système de fréquentation (Intel Edison à l’intérieur) Smart

Système intelligent de fréquentation a développé basé sur Intel Edison Conseil et RFID pour l'application de gestion des présences pour les écoles, bureaux et instituts. Ce système est très facile à utiliser, étudiant ou employé transportera un RFID