Blog de Snootlab Nous concevons et fabriquons des solutions électroniques connectées pour l'industrie.

26 avril 2012

[FR] Protoshield pour Mega et Mega ADK par Snootlab

Nouveau produit lancé aujourd’hui, notre Power Protoshield pour Arduino Mega et Mega ADK.

Power Protoshield pour Arduino Mega et Mega ADK

Power Protoshield pour Arduino Mega et Mega ADK
Crédit photo : Snootlab

Il permet de facilement développer sur Arduino Mega et Mega ADK, que ce soit avec des composants CMS ou des éléments utilisant le 12V. En effet, il est possible d’alimenter vos montages par via le connecteur Molex branché sur une alimentation de PC.

Power Protoshield sur alimentation ATX

Famille des protoshields Snootlab pour Arduino

Power Protoshield sur alimentation ATX et
la famille des Protoshields Snootlab pour Arduino
Crédits photos :
Snootlab

Plus d’informations sur notre boutique.

25 octobre 2011

[FR] Nouveau produit : protoshield pour Arduino Mega et Mega ADK

Encore un petit nouveau dans la famille des shields pour le prototypage rapide, un protoshield pour Arduino Mega et Mega ADK.

Protoshield pour Arduino Mega et Mega ADK

Protoshield pour Arduino Mega et Mega ADK
Crédit photo :
Snootlab

La zone pastillée de ce shield permet de réaliser facilement ses montages, utiliser des capteurs, des actionneurs sur Arduino Mega et Arduino Mega ADK. Les signaux de l’arrière de l’Arduino sont repris sur le shield. Comprend deux leds (verte et rouge) utilisables dans vos montages; reprise du bouton de reset de l’Arduino.

25 mai 2011

[FR] Test de l’I2C Power Protoshield sur civade.com

Jean-Philippe Civade a publié un test de l’I2C Power Protoshield sur son blog.

Snootlab – Essai de l’Arduino i2C Power proto shield : Controlleur PWM de ventilateurs asservis à la température avec des capteurs 1Wire DS1820

J’ai besoin pour ma CNC, d’asservir les ventilateurs de refroidissement du watercooling de la broche car 2 ventilateurs de 120 mm en 12V, c’est vraiment trop bruyant. […] Mon cahier des charges est assez simple. Je souhaite commander 2 ventilateurs indépendamment, qui soient asservis à la température. […] Le Power shiled m’aidera à gérer le +12V.

À lire dans son intégralité ici.

13 décembre 2010

[EN] What can we do with the Snootlab Protoshield ? Chapter 1

What funny thing can we do today with the Snootlab I2C power Protoshield ?

We have :

One Snootlab I2C PWR Protoshield + One tiny breadboard + 10 M/M jumper wires (Snootlab prototyping kit)Photo credit : Snootlab

DC12V RGB Multicolored 1 meter – 30 LED Light Strip
Photo credit : Snootlab

Standard ATW Power supply with metal paperclip for auto start 🙂
3 x BC547A transistor BC547A (or 2n2222, or equivalent) and 3 x 1k to 2.2k resistors, see « How to drive relays with arduino »
One arduino

Install the components like this :

Protoshield RGB Led Strip 12V wiring – Photo credit : Snootlab

Almost like on the picture 🙂

Full view – Photo credit : Snootlab

A bit of code …

//i/o pin declarations
int rpin = 9;
int gpin = 10;
int bpin = 11;

//function prototypes
void solid(int r, int g, int b, int t);
void fade(int r1, int g1, int b1, int r2, int g2, int b2, int t);

void setup()
{
//empty
}
void loop()
{
  //colour sequence instructions

  //Example sequence one: Rainbow fade over 12 seconds:
  solid(255,0,0,1000); // Maintain pure red 1 sec
  fade(255,0,0,0,255,0,3000); //fade from red to green over 3 seconds
  solid(0,255,0,1000); // Maintain pure green 1 sec
  fade(0,255,0,0,0,255,3000); //fade from green to blue over 3 seconds
  solid(0,0,255,1000); // Maintain pure blue 1 sec
  fade(0,0,255,255,0,0,3000); //fade from blue to red over 3 seconds
}

//function holds RGB values for time t milliseconds
void solid(int r, int g, int b, int t)
{

  //map values - arduino is sinking current, not sourcing it
//  r = map(r, 0, 255, 255, 0);
//  g = map(g, 0, 255, 255, 0);
//  b = map(b, 0, 255, 255, 0);

  //output
  analogWrite(rpin,r);
  analogWrite(gpin,g);
  analogWrite(bpin,b);

  //hold at this colour set for t ms
  delay(t);
}

//function fades between two RGB values over fade time period t
//maximum value of fade time = 30 seconds before gradient values
//get too small for floating point math to work? replace floats
//with doubles to remedy this?
void fade(int r1, int g1, int b1, int r2, int g2, int b2, int t)
{
  float r_float1, g_float1, b_float1;
  float r_float2, g_float2, b_float2;
  float grad_r, grad_g, grad_b;
  float output_r, output_g, output_b;

  //declare integer RGB values as float values
  r_float1 = (float) r1;
  g_float1 = (float) g1;
  b_float1 = (float) b1;
  r_float2 = (float) r2;
  g_float2 = (float) g2;
  b_float2 = (float) b2;

  //calculate rates of change of R, G, and B values
  grad_r = (r_float2-r_float1)/t;
  grad_g = (g_float2-g_float1)/t;
  grad_b = (b_float2-b_float1)/t;

  //loop round, incrementing time value "i"
  for ( float i=0; i<=t; i++ )
  {
    output_r = r_float1 + grad_r*i;
    output_g = g_float1 + grad_g*i;
    output_b = b_float1 + grad_b*i;

    //map values - arduino is sinking current, not sourcing it
//    output_r = map (output_r,0,255,255,0);
//    output_g = map (output_g,0,255,255,0);
//    output_b = map (output_b,0,255,255,0);

    //output
    analogWrite(rpin, (int)output_r);
    analogWrite(gpin, (int)output_g);
    analogWrite(bpin, (int)output_b);

    //hold at this colour set for 1ms
    delay(1);
  }
}

Code slightly modified from arduino forum

Link to the video

« et voilà …. »

After that, we can imagine several possibilities … You can install this in your car and link the diffused color with your engine temperature or whatever your want.

In your room to display the temperature or power consumption, control it using ethernet for a geek chrismas tree, imagination is the limit …

[FR] Que faire avec un Protoshield Snootlab ? Chapitre 1

La bricole du jour consiste a trouver une utilisation sympathique au Protoshield Snootlab.

Nous disposons donc de :

Un protoshield + breadboard + cordons (kit de prototypage Snootlab)Crédit photo : Snootlab

Un mètre de led strip RGB en 12V – Crédit photo : Snootlab

Une Alim PC ATX classique et un trombone 🙂
3 transistors BC547A (ou 2n2222, ou équivalent) et 3 résistances de valeur entre 1k et 2.2k, voir « How to drive relays with arduino »
Un arduino

On branche suivant ce schéma :

Schéma de montage – Crédit photo : Snootlab

Presque comme sur la photo quoi 🙂

Vue d’ensemble du montage – Crédit photo : Snootlab

Et maintenant, un peu de code pour faire tourner tout ça …

//i/o pin declarations
int rpin = 9;
int gpin = 10;
int bpin = 11;

//function prototypes
void solid(int r, int g, int b, int t);
void fade(int r1, int g1, int b1, int r2, int g2, int b2, int t);

void setup()
{
//empty
}
void loop()
{
  //colour sequence instructions

  //Example sequence one: Rainbow fade over 12 seconds:
  solid(255,0,0,1000); // Maintain pure red 1 sec
  fade(255,0,0,0,255,0,3000); //fade from red to green over 3 seconds
  solid(0,255,0,1000); // Maintain pure green 1 sec
  fade(0,255,0,0,0,255,3000); //fade from green to blue over 3 seconds
  solid(0,0,255,1000); // Maintain pure blue 1 sec
  fade(0,0,255,255,0,0,3000); //fade from blue to red over 3 seconds
}

//function holds RGB values for time t milliseconds
void solid(int r, int g, int b, int t)
{

  //map values - arduino is sinking current, not sourcing it
//  r = map(r, 0, 255, 255, 0);
//  g = map(g, 0, 255, 255, 0);
//  b = map(b, 0, 255, 255, 0);

  //output
  analogWrite(rpin,r);
  analogWrite(gpin,g);
  analogWrite(bpin,b);

  //hold at this colour set for t ms
  delay(t);
}

//function fades between two RGB values over fade time period t
//maximum value of fade time = 30 seconds before gradient values
//get too small for floating point math to work? replace floats
//with doubles to remedy this?
void fade(int r1, int g1, int b1, int r2, int g2, int b2, int t)
{
  float r_float1, g_float1, b_float1;
  float r_float2, g_float2, b_float2;
  float grad_r, grad_g, grad_b;
  float output_r, output_g, output_b;

  //declare integer RGB values as float values
  r_float1 = (float) r1;
  g_float1 = (float) g1;
  b_float1 = (float) b1;
  r_float2 = (float) r2;
  g_float2 = (float) g2;
  b_float2 = (float) b2;

  //calculate rates of change of R, G, and B values
  grad_r = (r_float2-r_float1)/t;
  grad_g = (g_float2-g_float1)/t;
  grad_b = (b_float2-b_float1)/t;

  //loop round, incrementing time value "i"
  for ( float i=0; i<=t; i++ )
  {
    output_r = r_float1 + grad_r*i;
    output_g = g_float1 + grad_g*i;
    output_b = b_float1 + grad_b*i;

    //map values - arduino is sinking current, not sourcing it
//    output_r = map (output_r,0,255,255,0);
//    output_g = map (output_g,0,255,255,0);
//    output_b = map (output_b,0,255,255,0);

    //output
    analogWrite(rpin, (int)output_r);
    analogWrite(gpin, (int)output_g);
    analogWrite(bpin, (int)output_b);

    //hold at this colour set for 1ms
    delay(1);
  }
}

Code légèrement modifié, issu d’un post sur le forum arduino

Lien vers la vidéo

et voilà ….

Après ça, tout est envisageable… pour nos amis du tuning, mettre en relation la vitesse ou la position de la pédale d’accélération pour changer la couleur diffusée dans l’habitacle du véhicule (ou dessous, comme les navettes spatiales des téléfilms).

Changer la couler en fonction de la température d’un appart ou de sa conso électrique, une guirlande commandée par ethernet pour un sapin de noel geek, la limite, c’est l’imagination …

Powered by WordPress