Passerelle.infini: la course du soleil : Différence entre versions
(→tfuytf) |
|||
(6 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | [[Fichier:Tasses-ombres-IMG 1581.png| | + | [[Fichier:Tasses-ombres-IMG 1581.png|100px]] |
==quoi== | ==quoi== | ||
− | [[Fichier:Ciel-passerelle-IMG 1585.png| | + | [[Fichier:Tasses-ombres-IMG 1581.png|300px]] [[Fichier:Ciel-passerelle-IMG 1585.png|300px]] |
==pourquoi== | ==pourquoi== | ||
+ | ==pour qui== | ||
+ | [[Fichier:Croquis-IMG 1587 2.png|300px]] | ||
− | [[Fichier: | + | [[Fichier:Passerelle.infiniSoleil.JPG|300px]] |
− | |||
− | |||
− | == | + | ==Code pour allumer un ruban de leds== |
<syntaxhighlight lang="C++"> | <syntaxhighlight lang="C++"> | ||
− | //////////////////////////////// | + | ///////////////////////////////// |
− | // | + | // La Course du soleil // |
− | // | + | ///////////////////////////////// |
− | // | + | // La Course du soleil est une installation qui mime la course du soleil dans dans le ciel, |
− | //////////////////////////////// | + | // générant des ombres d'objets sur un plateau. |
− | // | + | // Il a été réalisée dans le cadre du hackathon "Passerelle.infini" les 24 & 25 février 2022 |
+ | // Le hackathon "Passerelle.infini" est organisé par le Centre d'Art Passerelle, Les petits débrouillards | ||
+ | // Avec la participation de Tyfenn Leluc - designeuse et Thibault Beugin formateur | ||
+ | // basé sur le programme | ||
// NeoPixel Ring simple sketch (c) 2013 Shae Erisson | // NeoPixel Ring simple sketch (c) 2013 Shae Erisson | ||
// Released under the GPLv3 license to match the rest of the | // Released under the GPLv3 license to match the rest of the | ||
Ligne 36 : | Ligne 39 : | ||
| +---+ | | | +---+ | | ||
|_______|USB|_______| | |_______|USB|_______| | ||
− | + | Matériel : | |
- des fils dupont. | - des fils dupont. | ||
- un ruban de led | - un ruban de led | ||
Ligne 53 : | Ligne 56 : | ||
___|_ _| | ___|_ _| | ||
|___| |_| | |___| |_| | ||
− | Les petits | + | Les petits Débrouillards - Antony Le Goïc-Auffret décembre 2020 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/ |
*/ | */ | ||
#include <Adafruit_NeoPixel.h> | #include <Adafruit_NeoPixel.h> | ||
− | #define broche 5 // broche GPIO du D1 mini sur laquelle est | + | #define broche 5 // D1 c'est la broche GPIO 5 du Wemos D1 mini sur laquelle est connectée le ruban |
// Nombre de led du ruban ? | // Nombre de led du ruban ? | ||
#define nbpixels 20 | #define nbpixels 20 | ||
− | // Lors de la configuration de la | + | // Lors de la configuration de la bibliothèque NeoPixel, |
// nous lui indiquons combien de pixels, | // nous lui indiquons combien de pixels, | ||
// et quelle broche utiliser pour envoyer des signaux. | // et quelle broche utiliser pour envoyer des signaux. | ||
Ligne 69 : | Ligne 72 : | ||
// pour configurer le ruban : | // pour configurer le ruban : | ||
// nomDuRuban (nombreDePixels, NumeroDeLaBroche, typeDeRuban) | // nomDuRuban (nombreDePixels, NumeroDeLaBroche, typeDeRuban) | ||
− | // Les | + | // Les différents types de ruban : |
− | // NEO_KHZ800 800 KHz bitstream (la plupart des produits Neopixel ou | + | // NEO_KHZ800 800 KHz bitstream (la plupart des produits Neopixel ou références de LED w/WS2812) |
// NEO_KHZ400 400 KHz (classic 'v1' (pas v2) FLORA pixels, drivers WS2811) | // NEO_KHZ400 400 KHz (classic 'v1' (pas v2) FLORA pixels, drivers WS2811) | ||
− | // NEO_GRB Pixels | + | // NEO_GRB Pixels cablés pour GRB bitstream (la plupart des produits Neopixel) |
− | // NEO_RGB Pixels | + | // NEO_RGB Pixels cablés pour RGB bitstream (v1 FLORA pixels, pas les v2) |
− | // NEO_RGBW Pixels | + | // NEO_RGBW Pixels cablés pour RGBW bitstream (produits NeoPixel RGBW) |
− | #define delai 30 // | + | #define delai 30 // durée de la pause en millisecondes |
void setup() { | void setup() { | ||
− | pixels.begin(); // INITIALISE l' | + | pixels.begin(); // INITIALISE l'objet ruban NeoPixel |
− | pixels.show(); // | + | pixels.show(); // éteint tout les pixels aussi vite que possible. |
− | pixels.setBrightness(100); // met la | + | pixels.setBrightness(100); // met la luminosité à 1/5 (max = 255) |
} | } | ||
void loop() { | void loop() { | ||
− | for(int i=0; i<nbpixels; i++) { // Les pixels sont | + | for(int i=0; i<nbpixels; i++) { // Les pixels sont numérotés de 0 à ... |
− | pixels.setPixelColor(i, pixels.Color(255, 0, 0)); // on allume la couleur rouge | + | pixels.setPixelColor(i, pixels.Color(255, 0, 0)); // on allume la couleur rouge à fond de la 2ième led |
− | pixels.setPixelColor(i-1, pixels.Color(200, 0, 0)); // celle d' | + | pixels.setPixelColor(i-1, pixels.Color(200, 0, 0)); // celle d'après est moins allumée |
pixels.setPixelColor(i-2, pixels.Color(150, 0, 0)); // ainsi de suite | pixels.setPixelColor(i-2, pixels.Color(150, 0, 0)); // ainsi de suite | ||
pixels.setPixelColor(i-3, pixels.Color(100, 0, 0)); | pixels.setPixelColor(i-3, pixels.Color(100, 0, 0)); | ||
pixels.setPixelColor(i-4, pixels.Color(50, 0, 0)); | pixels.setPixelColor(i-4, pixels.Color(50, 0, 0)); | ||
pixels.setPixelColor(i-5, pixels.Color(0, 255, 150)); | pixels.setPixelColor(i-5, pixels.Color(0, 255, 150)); | ||
− | pixels.show(); // met | + | pixels.show(); // met à jour le ruban |
delay(delai); // Pause | delay(delai); // Pause | ||
} | } | ||
− | for(int i=nbpixels; i>-1; i--) { // Les pixels sont | + | for(int i=nbpixels; i>-1; i--) { // Les pixels sont numérotés de 0 à ... |
pixels.setPixelColor(i, pixels.Color(0, 0, 0)); | pixels.setPixelColor(i, pixels.Color(0, 0, 0)); | ||
pixels.setPixelColor(i-1, pixels.Color(50, 0, 0)); | pixels.setPixelColor(i-1, pixels.Color(50, 0, 0)); | ||
Ligne 103 : | Ligne 106 : | ||
pixels.setPixelColor(i-4, pixels.Color(200, 0, 0)); | pixels.setPixelColor(i-4, pixels.Color(200, 0, 0)); | ||
pixels.setPixelColor(i-5, pixels.Color(0, 255, 0)); | pixels.setPixelColor(i-5, pixels.Color(0, 255, 0)); | ||
− | // pour comprendre, quand i vaut 30, la led 25 est au max, la 26 un peu moins, jusque la | + | // pour comprendre, quand i vaut 30, la led 25 est au max, la 26 un peu moins, jusque la numéro 29 qui est éteinte |
− | // ce segment se | + | // ce segment se déplace jusque i=0. |
− | pixels.show(); // met | + | pixels.show(); // met à jour le ruban |
delay(delai); // Pause | delay(delai); // Pause | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | ==Catégories== | ||
+ | [[Catégorie:Passerelle.infini]] | ||
+ | [[Catégorie:led]][[Catégorie:ruban de led]][[Catégorie:WS1812B]] |
Version actuelle datée du 3 décembre 2023 à 11:21
quoi
pourquoi
pour qui
Code pour allumer un ruban de leds
/////////////////////////////////
// La Course du soleil //
/////////////////////////////////
// La Course du soleil est une installation qui mime la course du soleil dans dans le ciel,
// générant des ombres d'objets sur un plateau.
// Il a été réalisée dans le cadre du hackathon "Passerelle.infini" les 24 & 25 février 2022
// Le hackathon "Passerelle.infini" est organisé par le Centre d'Art Passerelle, Les petits débrouillards
// Avec la participation de Tyfenn Leluc - designeuse et Thibault Beugin formateur
// basé sur le programme
// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// Released under the GPLv3 license to match the rest of the
// Adafruit NeoPixel library
/*
BROCHAGE
_________________
/ D1 mini \
|[ ]RST TX[ ]|
|[ ]A0 -GPIO RX[ ]|
|[ ]D0-16 5-D1[X]| - data du ruban de led
|[ ]D5-14 4-D2[ ]|
|[ ]D6-12 0-D3[ ]|
|[ ]D7-13 2-D4[ ]| LED_BUILTIN
|[ ]D8-15 GND[X]| - masse du ruban
|[ ]3V3 . 5V[X]| - Alim du ruban
| +---+ |
|_______|USB|_______|
Matériel :
- des fils dupont.
- un ruban de led
- un D1 mini
- ...
Sous licence CC-By-Sa (http://creativecommons.org/licenses/by-nc-sa/3.0/)
*/
/*
___
/ ___ \
|_| | |
/_/
_ ___ _
|_| |___|_| |_
___|_ _|
|___| |_|
Les petits Débrouillards - Antony Le Goïc-Auffret décembre 2020 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
*/
#include <Adafruit_NeoPixel.h>
#define broche 5 // D1 c'est la broche GPIO 5 du Wemos D1 mini sur laquelle est connectée le ruban
// Nombre de led du ruban ?
#define nbpixels 20
// Lors de la configuration de la bibliothèque NeoPixel,
// nous lui indiquons combien de pixels,
// et quelle broche utiliser pour envoyer des signaux.
Adafruit_NeoPixel pixels(nbpixels, broche, NEO_GRB + NEO_KHZ800);
// pour configurer le ruban :
// nomDuRuban (nombreDePixels, NumeroDeLaBroche, typeDeRuban)
// Les différents types de ruban :
// NEO_KHZ800 800 KHz bitstream (la plupart des produits Neopixel ou références de LED w/WS2812)
// NEO_KHZ400 400 KHz (classic 'v1' (pas v2) FLORA pixels, drivers WS2811)
// NEO_GRB Pixels cablés pour GRB bitstream (la plupart des produits Neopixel)
// NEO_RGB Pixels cablés pour RGB bitstream (v1 FLORA pixels, pas les v2)
// NEO_RGBW Pixels cablés pour RGBW bitstream (produits NeoPixel RGBW)
#define delai 30 // durée de la pause en millisecondes
void setup() {
pixels.begin(); // INITIALISE l'objet ruban NeoPixel
pixels.show(); // éteint tout les pixels aussi vite que possible.
pixels.setBrightness(100); // met la luminosité à 1/5 (max = 255)
}
void loop() {
for(int i=0; i<nbpixels; i++) { // Les pixels sont numérotés de 0 à ...
pixels.setPixelColor(i, pixels.Color(255, 0, 0)); // on allume la couleur rouge à fond de la 2ième led
pixels.setPixelColor(i-1, pixels.Color(200, 0, 0)); // celle d'après est moins allumée
pixels.setPixelColor(i-2, pixels.Color(150, 0, 0)); // ainsi de suite
pixels.setPixelColor(i-3, pixels.Color(100, 0, 0));
pixels.setPixelColor(i-4, pixels.Color(50, 0, 0));
pixels.setPixelColor(i-5, pixels.Color(0, 255, 150));
pixels.show(); // met à jour le ruban
delay(delai); // Pause
}
for(int i=nbpixels; i>-1; i--) { // Les pixels sont numérotés de 0 à ...
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
pixels.setPixelColor(i-1, pixels.Color(50, 0, 0));
pixels.setPixelColor(i-2, pixels.Color(100, 0, 0));
pixels.setPixelColor(i-3, pixels.Color(150, 0, 0));
pixels.setPixelColor(i-4, pixels.Color(200, 0, 0));
pixels.setPixelColor(i-5, pixels.Color(0, 255, 0));
// pour comprendre, quand i vaut 30, la led 25 est au max, la 26 un peu moins, jusque la numéro 29 qui est éteinte
// ce segment se déplace jusque i=0.
pixels.show(); // met à jour le ruban
delay(delai); // Pause
}
}