“The Unnecessary Bubble”

Me revoilà aujourd’hui avec une création totalement inutile, d’où ce titre “The Unnecessary Bubble”.

The Unnecessary Bubble

Le matériel nécessaire: Une carte arduino, 3 résistances 150 ohms, 1 led RGB, 1 capteur de proximité SHARP G2D120 ou équivalent, une balle de ping-pong.

La led RGB est branchée sur la masse (GND), et sur les ports 9, 10, 11 de l’arduino au travers des résistances de 150 ohms. La balle de ping-pong percée d’un trou de 5mm sert de diffuseur à la led.

Le capteur SHARP est branché sur l’entrée analogique 0, VCC (5v) et la masse (GND).

Sur le principe l’arduino change de couleur toutes les 100 ms ( ce qui permet de faire varier les tons de couleurs assez rapidement). Si vous approchez un objet ou votre main de la boite, le capteur évalue la distance, plus celle-ci et faible et plus le cycle des couleurs est rapide. Si vous vous éloignez, le cycle de couleur reprend sa vitesse normale.

The Unnecessary Bubble The Unnecessary Bubble The Unnecessary Bubble The Unnecessary Bubble The Unnecessary Bubble

Voilà le code source:

#define PIN_RED           10
#define PIN_GREEN        9
#define PIN_BLUE          11
#define PIN_SHARP       0
#define WAIT              100

int waiting = WAIT;

void color(int r, int g, int b)
{
analogWrite(PIN_RED,   r);
analogWrite(PIN_GREEN, g);
analogWrite(PIN_BLUE,  b);
}

void setup()
{

pinMode(PIN_RED,   OUTPUT);
pinMode(PIN_GREEN, OUTPUT);
pinMode(PIN_BLUE,  OUTPUT);
pinMode(PIN_SHARP,INPUT);
}

void loop()
{

for (int i = 0; i < 256; i++){
color(255, i, 0);
set_delay();
delay(waiting);
}

for (int i = 0; i < 256; i++){
color(255 - i, 255, 0);
set_delay();
delay(waiting);
}

for (int i = 0; i < 256; i++){
color(0, 255, i);
set_delay();
delay(waiting);
}

for (int i = 0; i < 256; i++){
color(0, 255 - i, 255);
set_delay();
delay(waiting);
}

for (int i = 0; i < 256; i++){
color(i, 0, 255);
set_delay();
delay(waiting);
}

for (int i = 0; i < 256; i++){
color(255, 0, 255 - i);
set_delay();
delay(waiting);
}
}

void set_delay()
{
int analogValue1 = analogRead(PIN_SHARP);
if (  analogValue1 < 100 )
{
waiting = WAIT;
}
else
{
waiting = WAIT / (analogValue1 / 10);
}

}

Trackback URL

, , , , ,

2 Commentaires sur "“The Unnecessary Bubble”"

  1. EquinoxeFR
    StandarT
    19/08/2008 at 22:23 Permalink

    Comment dire… c’est trop cool tes trucs inutiles ! tu me donnerais presque envie de me remettre à l’électronique. Je pense que tes petites inventions peuvent faire des merveilles en cours d’electro-tech de 6eme, sans vouloir dévaloriser le travail, bien au contraire. A mon avis, si un prof (tu es peut-être toi même prof?) passe par là, il a de quoi s’inspirer !

    Au passage, très joli ton nouveau thème pour le blog.

  2. EquinoxeFR
    EquinoxeFR
    19/08/2008 at 22:38 Permalink

    merci :-)

    En tout cas, pour les enseignants, je pense que l’arduino est un outil rêvé. Pas cher, puissant, simple à mettre en oeuvre.

    P.S: je ne suis pas du tout prof ;-)

Bonjour, laissez un commentaire:

ALLOWED XHTML TAGS:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Souscrire aux commentaires