Go Down

Topic: arduino et EL Wire (débutant) (Read 12005 times) previous topic - next topic

vj_dobermann

héhéhé
t'es de gnèèève aussi ?  :P

pour la programmation de ma séquence, j'utilise plein de delay() pour être au plus proche de la musique mais je sais pas si c'est une bonne solution pour un code allégé et facilement configurable...

Artouste


héhéhé
- t'es de gnèèève aussi ?  :P

- pour la programmation de ma séquence, j'utilise plein de delay() pour être au plus proche de la musique mais je sais pas si c'est une bonne solution pour un code allégé et facilement configurable...

bonjour
- non pas moi, mais il y en a ici , dont JF notre absolu vénéré modo  :smiley-mr-green: :smiley-mr-green:
- utiliser des delay ce n'est generalement pas conseillé, mais dans un cas comme le tien (ton programme ne gere que des delais)
c'est une solution meme si elle est lourde , simple et efficace.
Pour l'avenir , si tu doit gerer plusieurs "spectacles" peut etre voir pour embarquer les sequences sur une carte SD

vj_dobermann

J'ai essayé de faire une séquence sur une musique
mais c'est hyper brouillon, je ne sais pas si c'est possible de faire dans ce genre-là :
un bloc de code qui dit que "pendant 20 seconde, il y a un clignotement des pins 4 et 7 à une interval de 500 milisecondes" une fois les 20sec terminé on passe à un autre bloc qui dit "pendant 47 sec, on fait clignoter à 1sec d'interval" etc etc
parce que j'ai essayé de faire ça avec le peu de connaissances que j'ai en programmation :

Code: [Select]

int vert = 4;
int orange = 7;

void setup() {                
 pinMode(vert, OUTPUT);
 pinMode(orange, OUTPUT);  
}

void loop() {
 delay(20000); //attente de 20 secondes

 // allumage vert orange 40 sec
 digitalWrite(vert, HIGH);
 digitalWrite(orange, HIGH);
 delay(40000);              
 digitalWrite(vert, LOW);
 digitalWrite(orange, LOW);
 delay(1000);  

 // clignotement lent 27 sec
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);
 digitalWrite(vert, HIGH);
 delay(1000);
 digitalWrite(vert, LOW);
 digitalWrite(orange, HIGH);
 delay(1000);
 digitalWrite(orange, LOW);

 // clignnotement rapide 40 sec
etc etc


Artouste


J'ai essayé de faire une séquence sur une musique
mais c'est hyper brouillon, je ne sais pas si c'est possible de faire dans ce genre-là :
...

regarde le code de Vincent concernant l'animation de son pilote du MIRA3
Ce n'est pas exactement la meme problematique, mais faire une action en fonction d'une bande son est quand meme assez approchante
code et animation fin de cette page
http://www.retroplane.net/mira3/page2.htm

vj_dobermann

Salut,
Merci du lien, baleze son animation  :)

voilà le code que j'ai utilisé :

Code: [Select]

int vert = 4;
int orange = 7;

void setup() {               
  pinMode(vert, OUTPUT);
  pinMode(orange, OUTPUT); 
}


void loop(){
  delay(21000); // intro 21sec

  //vert+orange ON 40sec
  digitalWrite(vert, HIGH);
  digitalWrite(orange, HIGH);
  delay(40000);               
  digitalWrite(vert, LOW);
  digitalWrite(orange, LOW);

  //clignotement interval 1sec pendant 27sec
  int i;
  for(i=0; i<13.5; i++) {
    digitalWrite(vert, HIGH);
    delay(1000);
    digitalWrite(vert, LOW);
    digitalWrite(orange, HIGH);
    delay(1000);
    digitalWrite(orange, LOW);
  }

  //clignotement interval 0.5sec pendant 40sec
  for(i=0; i<40; i++) {
    digitalWrite(vert, HIGH);
    delay(500);
    digitalWrite(vert, LOW);
    digitalWrite(orange, HIGH);
    delay(500);
    digitalWrite(orange, LOW);
  }
  //vert+orange ON pendant 13sec
  digitalWrite(vert, HIGH);
  digitalWrite(orange, HIGH);
  delay(13000);
  digitalWrite(vert, LOW);
  digitalWrite(orange, LOW);

  //clignotement lent pendant 13sec
  for(i=0; i<6.5; i++) {
    digitalWrite(vert, HIGH);
    delay(1000);
    digitalWrite(vert, LOW);
    digitalWrite(orange, HIGH);
    delay(1000);
    digitalWrite(orange, LOW);
  }
  //clignotement 0.5sec pendant 17sec
  for(i=0; i<17; i++) {
    digitalWrite(vert, HIGH);
    delay(500);
    digitalWrite(vert, LOW);
    digitalWrite(orange, HIGH);
    delay(500);
    digitalWrite(orange, LOW);
  }
  //vert+orange ON 10sec
  digitalWrite(vert, HIGH);
  digitalWrite(orange, HIGH);
  delay(10000);
  digitalWrite(vert, LOW);
  digitalWrite(orange, LOW);

  delay(10000); //10sec le temps de sortie de scene
}


le spectacle a eu lieu ce vendredi 13 et samedi 14 juin, tout a été parfaitement synchro  8) 8) 8)
on a tous eu très chaud car le vendredi je n'avais même pas eu le temps de le tester, juste eu le temps de le téléverser dans l'arduino et hop levé de rideau  :smiley-sweat:

Artouste


...

le spectacle a eu lieu ce vendredi 13 et samedi 14 juin, tout a été parfaitement synchro  8) 8) 8)
on a tous eu très chaud car le vendredi je n'avais même pas eu le temps de le tester, juste eu le temps de le téléverser dans l'arduino et hop levé de rideau  :smiley-sweat:


bonjour
la chance du vendredi 13 ?  :smiley-mr-green:
Le principal est que tu soit content de ton resultat  8)

vj_dobermann

la magie du vendredi 13  XD

je suis impatient de voir la vidéo, elle devrait être dispo dans les semaines qui suivent

vj_dobermann

Voilà la vidéo de la danse  :)
c'est GENIAL les spectateurs ont tous été bluffés  8)

http://vimeo.com/105355399


Artouste


Voilà la vidéo de la danse  :)
c'est GENIAL les spectateurs ont tous été bluffés  8)
...

bonjour
ça fait toujours plaisir de voir un retour de quelque chose d'aboutie.  :smiley-mr-green:

finalement tu a geré comment la synchro son/El Wire ?

en fin de video le el wire "orange" semble moins lumineux qu'au debut ? c'est une impression ?  8)


vj_dobermann

j'ai utilisé le code arduino cité dans mon post du 17 juin, plein de for()  ]:D

on a décortiqué la piste audio pour savoir comment on allait procéder pour les séquences d'allumage (intro, 1er rythme, 2ème rythme, etc) cette méthode est fastidieuse car on doit convertir les secondes en millisecondes et la piste audio doit démarrer en même temps que la lecture du code arduino. Dans notre cas, un simple "biiip" dans les hauts-parleurs de retour sur scène donnant le signal au danseur d'allumer le boitier. Ca fait très à l'arrache, car mes connaissances en arduino sont très réduites, mais c'est le résultat qui compte  XD

J'aurai voulu utiliser une méthode avec un pad midi et une carte wifi sur l'arduino mais bon trop compliqué à mettre en place avec le peu de temps qui restait. Je pense le faire prochainement car si jamais je ne pouvais être présent durant une représentation, presque n'importe qui pourrait prendre contrôle du costume.

Maintenant que tu me parles d'une baisse de luminosité, ça se pourrait bien, j'ai remarqué que l'intensité lumineuse baisse quand le vert et l'orange sont allumés en même temps.

Artouste

#40
Sep 15, 2014, 03:52 pm Last Edit: Sep 15, 2014, 04:11 pm by Artouste Reason: 1

j'ai utilisé le code arduino cité dans mon post du 17 juin, plein de for()  ]:D

on a décortiqué la piste audio pour savoir comment on allait procéder pour les séquences d'allumage (intro, 1er rythme, 2ème rythme, etc) cette méthode est fastidieuse car on doit convertir les secondes en millisecondes et la piste audio doit démarrer en même temps que la lecture du code arduino. Dans notre cas, un simple "biiip" dans les hauts-parleurs de retour sur scène donnant le signal au danseur d'allumer le boitier. Ca fait très à l'arrache, car mes connaissances en arduino sont très réduites, mais c'est le résultat qui compte  XD

J'aurai voulu utiliser une méthode avec un pad midi et une carte wifi sur l'arduino mais bon trop compliqué à mettre en place avec le peu de temps qui restait. Je pense le faire prochainement car si jamais je ne pouvais être présent durant une représentation, presque n'importe qui pourrait prendre contrôle du costume.

Maintenant que tu me parles d'une baisse de luminosité, ça se pourrait bien, j'ai remarqué que l'intensité lumineuse baisse quand le vert et l'orange sont allumés en même temps.

carte wifi , c'est peut etre un peu "too much"  :smiley-mr-green:
partir sur du transceiver  HF plus abordable (433 ou en 2.4  genre nRF24L01+) voir du bluetooth (module HC 0x)  est peut etre plus simple.

apres avoir revu la video , la baisse de luminosité semble etre "subjective" et est surement due au dispositif de captation (adaptation de la camera entre bleu/vert et/ou orange)

vj_dobermann

c'est vrai qu'avec le module xbee ça commence à faire cher  :smiley-roll-sweat:
je vais regarder le petit modul hf que tu proposes, aurais-tu des tuto ?

Merci  :)

Artouste


c'est vrai qu'avec le module xbee ça commence à faire cher  :smiley-roll-sweat:
je vais regarder le petit modul hf que tu proposes, aurais-tu des tuto ?

Merci  :)

bonjour
avant de partir sur des tutos , il faut déjà faire le choix du vecteur comm
avec déjà une question importante , tu a besoin de quoi comme distance de transmission entre le danseur et l'operateur lumiere pour etre sans soucis en presta?

Go Up