<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://wiki.lesfabriquesduponant.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AntoineLF</id>
		<title>Les Fabriques du Ponant - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.lesfabriquesduponant.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AntoineLF"/>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Sp%C3%A9cial:Contributions/AntoineLF"/>
		<updated>2026-05-14T16:56:09Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Diaporama_lightpainting2019.pdf&amp;diff=11875</id>
		<title>Fichier:Diaporama lightpainting2019.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Diaporama_lightpainting2019.pdf&amp;diff=11875"/>
				<updated>2019-06-22T08:00:42Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11874</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11874"/>
				<updated>2019-06-22T07:59:45Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Diaporama */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain).&lt;br /&gt;
 &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
=== le résultat ===&lt;br /&gt;
Voici la première image faite avec un appareil photo reflex (durée de prise 10s et mise au point manuelle).&lt;br /&gt;
&lt;br /&gt;
une photo de l'écran de l'appareil photo :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel - hackaton.jpg]]&lt;br /&gt;
&lt;br /&gt;
et la photo de l'arc en ciel réalisé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel - hackatonOK.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel - hackatonOK1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sur certains téléphones, la fonction ligtpainting est installée par défaut dans l'appareil photo. Pour les autres, il existe des applications téléchargeables sur les plateformes google play ou encore app store...&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Arc_en_ciel_-_hackatonOK1.jpg&amp;diff=11859</id>
		<title>Fichier:Arc en ciel - hackatonOK1.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Arc_en_ciel_-_hackatonOK1.jpg&amp;diff=11859"/>
				<updated>2019-06-21T13:39:47Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11858</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11858"/>
				<updated>2019-06-21T13:39:21Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* le résultat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain).&lt;br /&gt;
 &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
=== le résultat ===&lt;br /&gt;
Voici la première image faite avec un appareil photo reflex (durée de prise 10s et mise au point manuelle).&lt;br /&gt;
&lt;br /&gt;
une photo de l'écran de l'appareil photo :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel - hackaton.jpg]]&lt;br /&gt;
&lt;br /&gt;
et la photo de l'arc en ciel réalisé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel - hackatonOK.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel - hackatonOK1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sur certains téléphones, la fonction ligtpainting est installée par défaut dans l'appareil photo. Pour les autres, il existe des applications téléchargeables sur les plateformes google play ou encore app store...&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11857</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11857"/>
				<updated>2019-06-21T13:33:55Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* le résultat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain).&lt;br /&gt;
 &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
=== le résultat ===&lt;br /&gt;
Voici la première image faite avec un appareil photo reflex (durée de prise 10s et mise au point manuelle).&lt;br /&gt;
&lt;br /&gt;
une photo de l'écran de l'appareil photo :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel - hackaton.jpg]]&lt;br /&gt;
&lt;br /&gt;
et la photo de l'arc en ciel réalisé :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel - hackatonOK.jpg]]&lt;br /&gt;
&lt;br /&gt;
Sur certains téléphones, la fonction ligtpainting est installée par défaut dans l'appareil photo. Pour les autres, il existe des applications téléchargeables sur les plateformes google play ou encore app store...&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Arc_en_ciel_-_hackatonOK.jpg&amp;diff=11856</id>
		<title>Fichier:Arc en ciel - hackatonOK.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Arc_en_ciel_-_hackatonOK.jpg&amp;diff=11856"/>
				<updated>2019-06-21T13:31:48Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11855</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11855"/>
				<updated>2019-06-21T13:31:26Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* le résultat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain).&lt;br /&gt;
 &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
=== le résultat ===&lt;br /&gt;
Voici la première image faite avec un appareil photo reflex (durée de prise 10s et mise au point manuelle).&lt;br /&gt;
&lt;br /&gt;
une photo de l'écran de l'appareil photo :&lt;br /&gt;
[[Fichier:arc en ciel - hackaton.jpg]]&lt;br /&gt;
&lt;br /&gt;
et la photo de l'arc en ciel réalisé :&lt;br /&gt;
[[Fichier:arc en ciel - hackatonOK.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Arc_en_ciel_-_hackaton.jpg&amp;diff=11854</id>
		<title>Fichier:Arc en ciel - hackaton.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Arc_en_ciel_-_hackaton.jpg&amp;diff=11854"/>
				<updated>2019-06-21T13:25:33Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11853</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11853"/>
				<updated>2019-06-21T13:24:56Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* le résultat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain).&lt;br /&gt;
 &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
=== le résultat ===&lt;br /&gt;
Voici la première image faite avec un appareil photo reflex (durée de prise 10s et mise au point manuelle).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel - hackaton.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11852</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11852"/>
				<updated>2019-06-21T13:24:26Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* le résultat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain).&lt;br /&gt;
 &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
=== le résultat ===&lt;br /&gt;
Voici la première image faite avec un appareil photo reflex (durée de prise 10s et mise au point manuelle).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:arc en ciel.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11851</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11851"/>
				<updated>2019-06-21T13:22:55Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* le résultat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain).&lt;br /&gt;
 &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
=== le résultat ===&lt;br /&gt;
Voici la première image faite avec un appareil photo reflex (durée de prise 10s et mise au point manuelle).&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11849</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11849"/>
				<updated>2019-06-21T13:19:56Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Conseils etc... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain).&lt;br /&gt;
 &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
=== le résultat ===&lt;br /&gt;
Voici la première image faite avec un appareil photo reflex&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11842</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11842"/>
				<updated>2019-06-21T13:13:02Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Comment le fabriquer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain).&lt;br /&gt;
 &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11841</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11841"/>
				<updated>2019-06-21T13:12:25Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Réalisation technique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Découverte du lightpainting ==&lt;br /&gt;
Le light painting (peinture de lumière) en français, est une technique de prise de vue photographique. Elle consiste à utiliser un temps d'exposition long dans un environnement sombre et en y déplaçant une source de lumière.&lt;br /&gt;
Nous souhaitons fabriquer un bâton lumineux à l'aide d'un ruban LED pour créer des peintures lumineuses. &lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
fabriquer le bâton lumineux&lt;br /&gt;
&lt;br /&gt;
choix technique :&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone et une application de light painting pour faire des photographies en pause longue.&lt;br /&gt;
Débutons par la création d'un arc en ciel.&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11833</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11833"/>
				<updated>2019-06-21T13:05:20Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Cadre pédagogique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino).&lt;br /&gt;
Une fois le sabre led réalisé, nous irons dans une salle sombre afin de faire des photos (avec un mode light painting). Ce projet a pour objectif de comprendre une image, découvrir une technique photographique en faisant soi-même des créations lumineuses.&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11831</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11831"/>
				<updated>2019-06-21T13:01:08Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Comment le fabriquer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
Nous avons creusé le morceau de bois pur y insérer le ruban led. Le ruban led a été fixé avec des colsons (dans un premier temps / prototype :-) )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11830</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11830"/>
				<updated>2019-06-21T12:56:29Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Conseils etc... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan : https://www.tinkercad.com/things/aHpPU93ZTAd&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11823</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11823"/>
				<updated>2019-06-21T12:47:06Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Conseils etc... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan :&lt;br /&gt;
[[Fichier:poignee sabre.stl]]&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11821</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11821"/>
				<updated>2019-06-21T12:45:15Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Conseils etc... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
* pour la poignée, nous avons fait un dessin sur le logiciel Thinkercad:&lt;br /&gt;
voici le plan :&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11816</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11816"/>
				<updated>2019-06-21T12:40:46Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Liens vers des ressources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires&lt;br /&gt;
bibliothèque adafruit disponible sur GITHUB : https://github.com/adafruit/Adafruit_NeoPixel&lt;br /&gt;
&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11812</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11812"/>
				<updated>2019-06-21T12:38:43Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Conseils etc... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit : &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino (copie du code ci-dessus / avec les modifications en lien avec notre montage)&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11792</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11792"/>
				<updated>2019-06-21T12:25:20Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Comment fabriquer notre prototype ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
le ruban LED est branché sur la broche 6 de l'arduino (PIN 6)&lt;br /&gt;
&lt;br /&gt;
voici le code utilisé :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#ifdef __AVR__&lt;br /&gt;
  #include &amp;lt;avr/power.h&amp;gt;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#define PIN 6&lt;br /&gt;
&lt;br /&gt;
#define NUM_LEDS 40&lt;br /&gt;
&lt;br /&gt;
#define BRIGHTNESS 50&lt;br /&gt;
&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
&lt;br /&gt;
byte neopix_gamma[] = {&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,&lt;br /&gt;
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,&lt;br /&gt;
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,&lt;br /&gt;
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,&lt;br /&gt;
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,&lt;br /&gt;
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,&lt;br /&gt;
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,&lt;br /&gt;
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,&lt;br /&gt;
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,&lt;br /&gt;
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,&lt;br /&gt;
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,&lt;br /&gt;
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,&lt;br /&gt;
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,&lt;br /&gt;
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,&lt;br /&gt;
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,&lt;br /&gt;
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket&lt;br /&gt;
  #if defined (__AVR_ATtiny85__)&lt;br /&gt;
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);&lt;br /&gt;
  #endif&lt;br /&gt;
  // End of trinket special code&lt;br /&gt;
  strip.setBrightness(BRIGHTNESS);&lt;br /&gt;
  strip.begin();&lt;br /&gt;
  strip.show(); // Initialize all pixels to 'off'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Some example procedures showing how to display to the pixels:&lt;br /&gt;
  colorWipe(strip.Color(255, 0, 0), 50); // Red&lt;br /&gt;
  colorWipe(strip.Color(0, 255, 0), 50); // Green&lt;br /&gt;
  colorWipe(strip.Color(0, 0, 255), 50); // Blue&lt;br /&gt;
  colorWipe(strip.Color(255, 255, 255), 50); // White&lt;br /&gt;
&lt;br /&gt;
  whiteOverRainbow(20,75,5);  &lt;br /&gt;
&lt;br /&gt;
  pulseWhite(5); &lt;br /&gt;
&lt;br /&gt;
  // fullWhite();&lt;br /&gt;
  // delay(2000);&lt;br /&gt;
&lt;br /&gt;
  rainbowFade2White(3,3,1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fill the dots one after the other with a color&lt;br /&gt;
void colorWipe(uint32_t c, uint8_t wait) {&lt;br /&gt;
  for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
    strip.setPixelColor(i, c);&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pulseWhite(uint8_t wait) {&lt;br /&gt;
  for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
        }&lt;br /&gt;
        delay(wait);&lt;br /&gt;
        strip.show();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {&lt;br /&gt;
  float fadeMax = 100.0;&lt;br /&gt;
  int fadeVal = 0;&lt;br /&gt;
  uint32_t wheelVal;&lt;br /&gt;
  int redVal, greenVal, blueVal;&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; rainbowLoops ; k ++){&lt;br /&gt;
    &lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
&lt;br /&gt;
      for(int i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
&lt;br /&gt;
        wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255);&lt;br /&gt;
&lt;br /&gt;
        redVal = red(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        greenVal = green(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
        blueVal = blue(wheelVal) * float(fadeVal/fadeMax);&lt;br /&gt;
&lt;br /&gt;
        strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //First loop, fade in!&lt;br /&gt;
      if(k == 0 &amp;amp;&amp;amp; fadeVal &amp;lt; fadeMax-1) {&lt;br /&gt;
          fadeVal++;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      //Last loop, fade out!&lt;br /&gt;
      else if(k == rainbowLoops - 1 &amp;amp;&amp;amp; j &amp;gt; 255 - fadeMax ){&lt;br /&gt;
          fadeVal--;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  for(int k = 0 ; k &amp;lt; whiteLoops ; k ++){&lt;br /&gt;
&lt;br /&gt;
    for(int j = 0; j &amp;lt; 256 ; j++){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        delay(2000);&lt;br /&gt;
    for(int j = 255; j &amp;gt;= 0 ; j--){&lt;br /&gt;
&lt;br /&gt;
        for(uint16_t i=0; i &amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
            strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );&lt;br /&gt;
          }&lt;br /&gt;
          strip.show();&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {&lt;br /&gt;
  &lt;br /&gt;
  if(whiteLength &amp;gt;= strip.numPixels()) whiteLength = strip.numPixels() - 1;&lt;br /&gt;
&lt;br /&gt;
  int head = whiteLength - 1;&lt;br /&gt;
  int tail = 0;&lt;br /&gt;
&lt;br /&gt;
  int loops = 3;&lt;br /&gt;
  int loopNum = 0;&lt;br /&gt;
&lt;br /&gt;
  static unsigned long lastTime = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(true){&lt;br /&gt;
    for(int j=0; j&amp;lt;256; j++) {&lt;br /&gt;
      for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        if((i &amp;gt;= tail &amp;amp;&amp;amp; i &amp;lt;= head) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;gt;= tail) || (tail &amp;gt; head &amp;amp;&amp;amp; i &amp;lt;= head) ){&lt;br /&gt;
          strip.setPixelColor(i, strip.Color(255,255,255 ) );&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(millis() - lastTime &amp;gt; whiteSpeed) {&lt;br /&gt;
        head++;&lt;br /&gt;
        tail++;&lt;br /&gt;
        if(head == strip.numPixels()){&lt;br /&gt;
          loopNum++;&lt;br /&gt;
        }&lt;br /&gt;
        lastTime = millis();&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if(loopNum == loops) return;&lt;br /&gt;
    &lt;br /&gt;
      head%=strip.numPixels();&lt;br /&gt;
      tail%=strip.numPixels();&lt;br /&gt;
        strip.show();&lt;br /&gt;
        delay(wait);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
void fullWhite() {&lt;br /&gt;
  &lt;br /&gt;
    for(uint16_t i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
        strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );&lt;br /&gt;
    }&lt;br /&gt;
      strip.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Slightly different, this makes the rainbow equally distributed throughout&lt;br /&gt;
void rainbowCycle(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256 * 5; j++) { // 5 cycles of all colors on wheel&lt;br /&gt;
    for(i=0; i&amp;lt; strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rainbow(uint8_t wait) {&lt;br /&gt;
  uint16_t i, j;&lt;br /&gt;
&lt;br /&gt;
  for(j=0; j&amp;lt;256; j++) {&lt;br /&gt;
    for(i=0; i&amp;lt;strip.numPixels(); i++) {&lt;br /&gt;
      strip.setPixelColor(i, Wheel((i+j) &amp;amp; 255));&lt;br /&gt;
    }&lt;br /&gt;
    strip.show();&lt;br /&gt;
    delay(wait);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Input a value 0 to 255 to get a color value.&lt;br /&gt;
// The colours are a transition r - g - b - back to r.&lt;br /&gt;
uint32_t Wheel(byte WheelPos) {&lt;br /&gt;
  WheelPos = 255 - WheelPos;&lt;br /&gt;
  if(WheelPos &amp;lt; 85) {&lt;br /&gt;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  if(WheelPos &amp;lt; 170) {&lt;br /&gt;
    WheelPos -= 85;&lt;br /&gt;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);&lt;br /&gt;
  }&lt;br /&gt;
  WheelPos -= 170;&lt;br /&gt;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t red(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 16);&lt;br /&gt;
}&lt;br /&gt;
uint8_t green(uint32_t c) {&lt;br /&gt;
  return (c &amp;gt;&amp;gt; 8);&lt;br /&gt;
}&lt;br /&gt;
uint8_t blue(uint32_t c) {&lt;br /&gt;
  return (c);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11791</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11791"/>
				<updated>2019-06-21T12:17:53Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Conseils etc... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* le ruban led a un sens (le sens est indiqué par des petites flèches imprimées sur le ruban)&lt;br /&gt;
* télécharger la bibliothèque Adafruit&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Montage_vue2.jpg&amp;diff=11790</id>
		<title>Fichier:Montage vue2.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Montage_vue2.jpg&amp;diff=11790"/>
				<updated>2019-06-21T12:15:57Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Montage_vue1.jpg&amp;diff=11788</id>
		<title>Fichier:Montage vue1.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Montage_vue1.jpg&amp;diff=11788"/>
				<updated>2019-06-21T12:15:31Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11787</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11787"/>
				<updated>2019-06-21T12:15:13Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Comment le fabriquer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
[[Fichier:montage vue1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montage vue2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* télécharger la bibliothèque Adafruit&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11784</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11784"/>
				<updated>2019-06-21T12:12:21Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Liste du matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro et son câble de connexion&lt;br /&gt;
Ruban led (RGB)&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main et une lampe &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
un baton &lt;br /&gt;
une imprimante 3D pour imprimer une poignée (disponible sur thingiverse)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* télécharger la bibliothèque Adafruit&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Soudure_cables_ruban_LED.jpg&amp;diff=11770</id>
		<title>Fichier:Soudure cables ruban LED.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Soudure_cables_ruban_LED.jpg&amp;diff=11770"/>
				<updated>2019-06-21T10:26:11Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11769</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11769"/>
				<updated>2019-06-21T10:25:50Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Comment fabriquer notre prototype ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro&lt;br /&gt;
Ruban led&lt;br /&gt;
des Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main &lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code (PC avec l'IDE arduino installé)&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
[[Fichier:soudure cables ruban LED.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* télécharger la bibliothèque Adafruit&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11761</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11761"/>
				<updated>2019-06-21T10:20:31Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Comment fabriquer notre prototype ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
Arduino micro&lt;br /&gt;
Ruban led&lt;br /&gt;
Câbles&lt;br /&gt;
Fer à souder, étain, 3eme main&lt;br /&gt;
Condensateur 100µF&lt;br /&gt;
Une breadboard (qui sera ensuite remplacée par une plaque de prototypage)&lt;br /&gt;
Un PC pour écrire le code&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
Dans un premier temps nous avons préparé le matériel. Nous avons soudé des câbles au ruban LED, et sur le support de batterie. Les extrémités des câbles ont été étamés (dépôt d'une pellicule fine d'étain) &lt;br /&gt;
Nous avons relié le circuit avec une breadbord.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* voici une photo du montage :&lt;br /&gt;
&lt;br /&gt;
[&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* Faire attention à la polarité du condensateur (le pôle - a une bande blanche sur le coté)&lt;br /&gt;
* télécharger la bibliothèque Adafruit&lt;br /&gt;
* ouvrir l'exemple dans l'IDE arduino&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Diaporama_lightpainting2019.odp&amp;diff=11710</id>
		<title>Fichier:Diaporama lightpainting2019.odp</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Diaporama_lightpainting2019.odp&amp;diff=11710"/>
				<updated>2019-06-20T15:00:36Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11709</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11709"/>
				<updated>2019-06-20T15:00:06Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
== Diaporama==&lt;br /&gt;
[[Fichier:Diaporama_lightpainting2019.odp]]&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
* lien vers des objets 3D (ex : https://www.thingiverse.com/ )&lt;br /&gt;
* liste du matériel (raspberry pi, bois, ...).&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
* plans,&lt;br /&gt;
* étapes,...&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* ce qui marche&lt;br /&gt;
* Ce qui ne marche pas&lt;br /&gt;
* ce qu'on peut améliorer&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11707</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11707"/>
				<updated>2019-06-20T14:57:01Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Réalisation technique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
* lien vers des objets 3D (ex : https://www.thingiverse.com/ )&lt;br /&gt;
* liste du matériel (raspberry pi, bois, ...).&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
* plans,&lt;br /&gt;
* étapes,...&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* ce qui marche&lt;br /&gt;
* Ce qui ne marche pas&lt;br /&gt;
* ce qu'on peut améliorer&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11704</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11704"/>
				<updated>2019-06-20T14:54:26Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Réalisation technique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
* lien vers des objets 3D (ex : https://www.thingiverse.com/ )&lt;br /&gt;
* liste du matériel (raspberry pi, bois, ...).&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
* plans,&lt;br /&gt;
* étapes,...&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* ce qui marche&lt;br /&gt;
* Ce qui ne marche pas&lt;br /&gt;
* ce qu'on peut améliorer&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11699</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11699"/>
				<updated>2019-06-20T14:49:58Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Comment fabriquer notre prototype ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet s'adresse à tous les publics.&lt;br /&gt;
Il a pour objectif d'éduquer aux notions suivantes : comprendre une photo, découvrir une pratique artistique à partir d'un jeu de lumière&lt;br /&gt;
Découverte de la LED RGB, utilisation d'un ruban LED, &lt;br /&gt;
Découverte de l'arduino et du code (utilisation de l'IDE arduino)&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
* lien vers des objets 3D (ex : https://www.thingiverse.com/ )&lt;br /&gt;
* liste du matériel (raspberry pi, bois, ...).&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
* plans,&lt;br /&gt;
* étapes,...&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* ce qui marche&lt;br /&gt;
* Ce qui ne marche pas&lt;br /&gt;
* ce qu'on peut améliorer&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11698</id>
		<title>HP19 : Roger, Gérard, Bernard</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=HP19_:_Roger,_G%C3%A9rard,_Bernard&amp;diff=11698"/>
				<updated>2019-06-20T14:46:03Z</updated>
		
		<summary type="html">&lt;p&gt;AntoineLF : /* Réalisation technique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:LogoHP19.png|200px]][[Fichier:BC2017.png|link=http://wiki.a-brest.net/index.php/Portail:BC_2017|80px]]&lt;br /&gt;
&lt;br /&gt;
==Réalisation technique==&lt;br /&gt;
un bâton pour faire du ligthpainting&lt;br /&gt;
&lt;br /&gt;
L'idée est de découvrir une technique photographique : le lightpainting&lt;br /&gt;
Nous allons fabriquer un &amp;quot;bâton&amp;quot; lumineux à l'aide d'un ruban led et d'un arduino. Nous utiliserons un smartphone en utilisant une application &amp;quot;light painting&amp;quot; permettant de faire des photographies en pause longue&lt;br /&gt;
Nous débuterons par la création d'un arc en ciel&lt;br /&gt;
&lt;br /&gt;
==Cadre pédagogique==&lt;br /&gt;
Quelle sera l'utilisation de notre prototype ?&lt;br /&gt;
&lt;br /&gt;
Quelle partage des savoirs, des connaissances ? Quelle utilisation pédagogique ? pour quel public ?&lt;br /&gt;
&lt;br /&gt;
==Comment fabriquer notre prototype ?==&lt;br /&gt;
===Liste du matériel===&lt;br /&gt;
* lien vers des objets 3D (ex : https://www.thingiverse.com/ )&lt;br /&gt;
* liste du matériel (raspberry pi, bois, ...).&lt;br /&gt;
&lt;br /&gt;
===Comment le fabriquer===&lt;br /&gt;
* plans,&lt;br /&gt;
* étapes,...&lt;br /&gt;
===Conseils etc...===&lt;br /&gt;
* ce qui marche&lt;br /&gt;
* Ce qui ne marche pas&lt;br /&gt;
* ce qu'on peut améliorer&lt;br /&gt;
&lt;br /&gt;
==Liens vers des ressources==&lt;br /&gt;
* des sites web documentaires.&lt;br /&gt;
* sites ressources&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; src=&amp;quot;https://www.youtube.com/embed/Cxnwvp_BdA0&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:HP19]]&lt;/div&gt;</summary>
		<author><name>AntoineLF</name></author>	</entry>

	</feed>