Veste avec EL wire

Veste avec EL Wire par Liliane.

Nota bene: je partage cette réalisation sous licence CC-BY-NC.

Merci de me contacter si vous souhaitez le commercialiser.

 

IMG_20160428_215904_1

El wire est un câble électroluminescent flexible et étanche, fait à base de phosphore. On peut l’incruster facilement dans un vêtement.

Il peut être glissé dans un biais ou une gaine plastique en 3D (tube de crin) comme ci- dessus, ou tout autre matériel inspirant votre imagination. Son aspect est assimilable à un filament lumineux et produit une douce lumière qui n’agresse pas l’oeil.

Vous ne passerez pas inaperçu la nuit mais sa lumière est peu visible à la lumière du jour ou d’intérieur (dans ce cas préférez les LEDS).

Ce tutoriel vous présentera un aspect parmi tant d’autres d’intégration du El Wire au vêtement.

Matériels:

-tissu peu élastique, type lainage, doublure coton

-tube en crin 16mm (gaine plastique); Socolatex, 12 Rue du Bourg l’Abbé, 75003 Paris

http://www.artipistilos.com/en/web/products/crin-tube/crin-tube-2-mm-.aspx

(je n’ai pas encore testé mais l’image laisse croire que c’est le même crin)

-biais en coton entre 16 et 20 mm (tout dépend de l’effet désiré)

-EL wire ; https://www.sparkfun.com/ ou autres vendeurs de composants électroniques

-EL sequencer; https://www.sparkfun.com/products/12781

-Inverter 3V ou 12V; https://www.sparkfun.com/products/10201

-Microphone; https://www.adafruit.com/products/1063

 

1ère partie: La couture

Etape 1: Le patronage

Définir les découpes de son patronage.

La veste a été élaborée à partir d’un patronage classique (crée par mes soins) dont j’ai adapté les découpes par rapport à la gaine de crin de 1,5 cm de diamètre. Bien entendu, vous pouvez partir d’un patronage existant et déplacer les lignes de découpes en équilibrant sur chaque morceau pour obtenir le design désiré.

Ici la gaine représente le centre de la découpe, la ligne finie sera donc les bords de la gaine.

dsc_0342

La ligne finie sera donc à 0,75 cm de chaque côté de la ligne de découpe.

Attention: il faudra couper le papier sur cette ligne mais les autres lignes auront 1cm de couturage!

Etape 2: Le biais

Votre tissu est coupé, ainsi que la doublure.

Assemblez les parties avec le couturage, couture ouverte, repassée.

Superposez l’envers des morceaux tissus avec l’envers de la doublure et maintenez les deux morceaux par le bord en épinglant puis faites une piqûre de maintien (0,5cm).

Coudre le biais sur les parties sans couturage.

Etape 3: La gaine

1462273586536

Les filaments blancs permettent de la structurer (s’il n’y en a pas, vous pouvez quand même essayer mais le résultat sera probablement différent de cette veste).

Utiliser le point zigzag de votre machine, il doit être serré de manière à prendre les fibres de la gaine, pas plus petit que 2 mm de largeur  et d’écart.

dsc_0335

Plier légèrement la gaine au niveau d’un filament et glissez la gaine sous le pied de biche standard. Accolez la partie biais et la gaine et faites en sorte que le point zigzag prenne à la fois le biais et la gaine.

N’hésitez pas à faire un premier essai avec des chutes de tissus pour vous familiarisez avec ce procédé mais aussi voir si votre machine est assez robuste pour presser la gaine 3D!

Laissez  la gaine dépassée de 2cm aux extrémités de la partie biais du morceau. Poussez la gaine et le tissu en même temps.

dsc_0338

Coudre la gaine et le morceau correspondant dans le même sens que le précédent montage, pour éviter les décalages.

SI VOUS SOUHAITEZ FAIRE UN RACCORD, entre deux bouts de gaine:

faites quelques points à la main avec un fil transparent et étalez de la colle gel sur cette zone en faisant le tour du diamètre de la gaine, puis mettre un morceau de scotch et laisser sécher.

Vous pourrez coudre comme expliqué précédemment le biais et la gaine.

Etape 4: EL Wire

Attachez le câble à la gaine à intervalles réguliers avec un fil transparent, passez par les espaces de la gaine tout en entourant uniquement le câble. Laissez une bonne marge pour faire les soudures.

2ème partie: Les branchements

Etape 5: El sequencer

C’est un arduino qui permet de programmer plusieurs El wire. Il utilise peu de courant.

Pour cette veste, j’ai utilisé une batterie rechargeable portable, que l’on branche à un câble USB.

Photo

Dénudez une partie du câble USB, soudez les extrémités des câbles vert et blanc, finir le bout en couvrant par un morceau de gaine thermorétractable.

Souder la broche du câble FTDI et les câbles reliant le micro à l’arduino.

Programmez comme vous voulez!

 

Le code suivant acquiert l’audio, puis réalise une transformée de Fourier pour séparer les diverses composantes du son (grave/aigu). Il réagit différemment selon si le son est grave ou aigu. La librairie utilisée pour la transformée de fourier (transfirlée de Hartree en fait) est ici http://wiki.openmusiclabs.com/wiki/ArduinoFHT

 

/*
Code d'analyse du son, les données intéressantes sont dans contenu_Bandes qui contient un pourcentage de la puissance dans chacune des bandes
définies un peu plus bas.

A vérifier:
Le seuil de détection, voir avec le micro -> Variables SEUIL_DETECTION
Tester avec un micro et différents fichier son, on peut émettre avec l'ordi des sinusoides grace à http://onlinetonegenerator.com/

A faire:
Voir comment on veut que le programme réagisse à ces différentes bandes de fréquences.

NB: le repliement de fréquences causant quelques soucis, la fréquence de sampling étant de l'ordre de 8900Hz:
-soit on augmente la fréquence de sampling de l'arduino -> http://forum.arduino.cc/index.php/topic,6549.0.html mais dans ce cas il faut recaler les bandes
-soit un ajoute après le micro un filtre passe-bas de fréquence de coupure ~ 5000-6000Hz, qui coupera les fréquences trop élevées et diminuera l'importance de ce repliement
*/


#define LIN_OUT 1 // use the lin output function
#define FHT_N 256 // set to 256 point fht

#include <FHT.h> // include the library

/*
On fait 4 bandes de fréquences
0-34Hz(point 0): On rejete cette bande pour peu d'intéret (vu la taille du micro, elle n'a pas beaucoup de signification)
34Hz-68Hz(point 1): Fréquences graves
68Hz-408Hz(point 2-12: Fréquences graves-medium: plutot voix masculines
408Hz-1496Hz (13-44): Fréquences medium-aigues: plutot voix feminies
1496Hz-4352Hz (45-127): Fréquences aigues
*/

#define NB_BANDES 2
int Bandes_debut[NB_BANDES]={1,13};
int Bandes_fin[NB_BANDES]={12,127};
float contenu_Bandes[NB_BANDES];

// Un seuil sur l'écart type à partir duquel on considère qu'il y a du son
int SEUIL_DETECTION=20;

//Le code pour elwire
#include <math.h>    // (no semicolon)
#define SORTIE_A 3
#define SORTIE_B 6
#define NIV_NB 24
#define LENTEUR 10 // Vitesse de la diminution du EL WIRE
#define CYCLE 255
int pause;

int Intens_act=0;//Intensité actuelle du cable;


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600); // use the serial port
  pinMode(SORTIE_A, OUTPUT);
  pinMode(SORTIE_B, OUTPUT);
}

void loop() {
  int temps1=millis();
  for(int i=0; i<FHT_N;i++)
  {
    fht_input[i] = analogRead(A7);
  }//30ms pour 256 points
  //On a donc un pas en fréquence de 34Hz
  //Une fréquence d'échantillonage de 8900Hz
  
  
  //On calcule la moyenne et l'écart type
  float mean=0;//moyenne
  float sig=0;//ecart type
  for(int i=0; i<FHT_N;i++)
  {
    mean=mean+fht_input[i];
  }
  mean=mean*1./FHT_N;
  //On enlève la moyenne pour enlever le continu eventuel
  for(int i=0; i<FHT_N;i++)
  {
    fht_input[i]=fht_input[i]-mean;
    sig=sig+fht_input[i]*fht_input[i];
  }
  sig=sqrt(sig/(FHT_N-1));
  
  /*Serial.print("Mean/EcartType: ");
  Serial.print(mean);
  Serial.print("/");
  Serial.println(sig);*/
  
  float seuilgrave=analogRead(A6)/100.;//Fil vert
  float seuilaigu=analogRead(A5)/150.;//Fil marron
  Serial.print("Seuil grave/aigu ");
  Serial.print(seuilgrave);
  Serial.print(" / ");
  Serial.println(seuilaigu);
  //On mets un seuil sur l'écart type pour éliminer les sons trop faibles
  if(sig >= SEUIL_DETECTION)
  {
    //On calcule la FHT (un peu comme la FFT)
    fht_window(); // window the data for better frequency response
    fht_reorder(); // reorder the data before doing the fht
    fht_run(); // process the data in the fht
    fht_mag_lin(); // take the output of the fht
    //5ms de calcul
    for(int i=0;i<NB_BANDES;i++)
    {
      contenu_Bandes[i]=0;
      for(int j=Bandes_debut[i];j<=Bandes_fin[i];j++)
      {  
        contenu_Bandes[i]=contenu_Bandes[i]+fht_lin_out[j];//On somme le contenu des bandes de fréquences
      }
      contenu_Bandes[i]=contenu_Bandes[i]*1./(Bandes_fin[i]-Bandes_debut[i]+1);//On 
    }
    if(contenu_Bandes[0]>seuilgrave)//Regler le seuil avec un potentiometre
    {
      Serial.println("Grave");
      //OnOffSimul(3);
      Off();
      Flash(2);
      Off();
    }
    else if (contenu_Bandes[1]>seuilaigu)//Regler le seuil avec un potentiometre
    {
      Serial.println("Aigu");
      Intens_act=CYCLE;
      //niveau(11,DUREE_CYCLE/NIV_NB,MODE_OPPOSE);
    }
    for(int i=0;i<NB_BANDES;i++)
    {
      Serial.print(contenu_Bandes[i]);
      Serial.print(" / ");
    }
    Serial.println(" ");
  }
  else
  {
    Intens_act=Intens_act-LENTEUR;
    if (Intens_act<0)
    {Intens_act=0;}
  }
  OnEns(Intens_act);
}

void OnEns(int Intens)//Intens entre 0 et CYCLE, Vit entre 1 et 10
{
    analogWrite(SORTIE_A,Intens);
    analogWrite(SORTIE_B,Intens);
}

void Off()
{
  digitalWrite(SORTIE_A,LOW);
  digitalWrite(SORTIE_B,LOW);
}

void Flash(int nb_flash) {
 for (int i=0;i<nb_flash;i++) {
     digitalWrite(SORTIE_A, LOW);   // turn the LED on (HIGH is the voltage level)
     digitalWrite(SORTIE_B, HIGH);   // turn the LED on (HIGH is the voltage level)       
     delay(NIV_NB/2.); 
     digitalWrite(SORTIE_A, HIGH);    // turn the LED off by making the voltage LOW
     digitalWrite(SORTIE_B, LOW);   // turn the LED on (HIGH is the voltage level)       
     delay(NIV_NB-NIV_NB/2.);              // wait for a second
 }
}
ElWireSon

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution – Pas d’Utilisation Commerciale 3.0 France.

 

 

Posted in Projet en cours.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *