Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2012-05-31 23:46:41 Processing+ hack mindflex (cerebrale)= génération de forme

elastickman
nouveau membre
Date d'inscription: 2011-05-29
Messages: 8

Processing+ hack mindflex (cerebrale)= génération de forme



Bonjour à tous, je suis régulièrement ce forum pour trouver des réponse, mais là j'ai besoins de vous pour un projet précis. Je me présente, étudiant en design je joue régulièrement avec les robot, automatisme, fraiseuse numérique et arduino dans mes projets. Là je tape sur un mix de monde "réel" et processing, chose que je ne maitrise pas sur le bout des doigt.

Voici mon projet, j'ai hacké depuis quelque temps un jouet mindflex ( http://frontiernerds.com/brain-hack ). Mais j'aimerais maintenant créer un ptit code sous processing pour que les différentes infos récupérées sur le cerveaux génére une forme 3D en fonction de celles-ci. Donc passer de l'arduino à processing ou chaque paramètre en contrôles d'autre pour la forme. En code "brut" en sortie de l'arduino j'ai une trame de chiffres correspondant à chaques colonne du code (déjà existant sous processing). celles-ci augmentent ou diminuent en fonction de l'activité et fait évoluer les graphes.

je pense donc que les infos sont facilement récupérable et exploitable. J'aimerai un coup de pouce pour le début de code, ou si vous avez certains exemples facilement adaptable pour commencer à illustrer le truc.

La fin du projet serais d'arriver à maitriser pas mal de paramètre et pouvoir exporter l'objet en 3D pour l'imprimer ensuite. En définissant au départ une famille de forme (chaise, vase, lumière...) et les paramètre viendrais les modifiers

voici ce qu'un designer a déjà produit dans le même registre, en partant du son. François Brument.
http://i87.servimg.com/u/f87/11/27/59/08/00391.jpg

merci

Hors ligne

 

#2 2012-06-10 19:48:43 Re : Processing+ hack mindflex (cerebrale)= génération de forme

Malleat
membre
Date d'inscription: 2012-04-15
Messages: 148
Site web

Re: Processing+ hack mindflex (cerebrale)= génération de forme



Juste un message pour te demander ou en sont tes recherches et si c'est vraiment interessant comme truc?

Je suis aller voir chez neurosky, et tout ça m'a l'air vraiment fou!! qu'est-ce que ça donne alors?


SITE WEB ->REVŒLUTION

Hors ligne

 

#3 2012-06-10 20:17:34 Re : Processing+ hack mindflex (cerebrale)= génération de forme

elastickman
nouveau membre
Date d'inscription: 2011-05-29
Messages: 8

Re: Processing+ hack mindflex (cerebrale)= génération de forme



salut, du coup je me suis interessé à pleins de trucs, et je suis passeé finalement par un plug in pour rhino 3D(logiciel de 3D) qui gère pas mal de paramètre, comme le pilotage d'arduino, des données pour la modélisation et autre. Ce plug in s'appelle grasshopper, et avec un plug in supplémentaire je fais communiquer le casque en OSC avec grasshopper par l'intermédiaire de processing. Du coup j'ai plus qu'a exploiter ça dans grasshopper, assez complet comme truc. Je documente dès que j'avance

Hors ligne

 

#4 2012-06-10 21:26:21 Re : Processing+ hack mindflex (cerebrale)= génération de forme

Malleat
membre
Date d'inscription: 2012-04-15
Messages: 148
Site web

Re: Processing+ hack mindflex (cerebrale)= génération de forme



Je pensais plutôt essayer de faire un soft pour faire des cartes mentales de projet en 3D, genre avec certaines commandes et autre...


SITE WEB ->REVŒLUTION

Hors ligne

 

#5 2012-06-13 18:47:55 Re : Processing+ hack mindflex (cerebrale)= génération de forme

Malleat
membre
Date d'inscription: 2012-04-15
Messages: 148
Site web

Re: Processing+ hack mindflex (cerebrale)= génération de forme



J'ai le mindwave, et la vue processing, haha! ça tue!


SITE WEB ->REVŒLUTION

Hors ligne

 

#6 2012-06-14 00:25:28 Re : Processing+ hack mindflex (cerebrale)= génération de forme

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: Processing+ hack mindflex (cerebrale)= génération de forme



et ça s'interface bien avec processing ?

Hors ligne

 

#7 2012-06-14 07:58:20 Re : Processing+ hack mindflex (cerebrale)= génération de forme

elastickman
nouveau membre
Date d'inscription: 2011-05-29
Messages: 8

Re: Processing+ hack mindflex (cerebrale)= génération de forme



ça marche plustot pas mal, la seule limite est hardware, les frequences de mise à jours de la puce et d'envoie du paquet et d'environ une seconde, dût à la puce. Mais j'ai crus voir une bidouille qui permettais de changer ça, mais faut rajouter de l'électronique, je regarderai. Sinon j'ai bien avancé, j'ai d'abord bossé avec un pote sur un code "graphisme", pour réussir à isoler tout ce qui m'interessé, j'ai pas mal épuré le code de base. Là je m'attaque à la 3D, avec ton code si je ne me trompe pas de personne wink.  Quand on a finit avec mon pote je pense qu'on fera un poste avec explication et sources.

Dernière modification par elastickman (2012-06-14 07:58:43)

Hors ligne

 

#8 2012-06-25 06:47:05 Re : Processing+ hack mindflex (cerebrale)= génération de forme

elastickman
nouveau membre
Date d'inscription: 2011-05-29
Messages: 8

Re: Processing+ hack mindflex (cerebrale)= génération de forme



bonjour tout le monde. Bon ça avance, je fait plusieurs trucs en même temps mais j'ai pu bien m'y remettre. Je suis bloqué sur un dernier point. voilà où j'en suis, j'ai utlisé et modifier un code de Gilles, je me permet de le publier en espérant que c'est ok.

voilà j'ai réussis à épurer le code de base du casque, du coup je n'ai que les valeurs brut qu'il me faut, (chaine de 10 charactères chacun identifié et a imprimer en "print" dans la fenêtre. Ensuite je me suis dit je vais remplacer certaines de ces variables du genre ("hauteur", "rayon modu", etc...). Tout semblais pouvoir marcher. Mais non, mais je pense que le soucis viens du début de la boucle dans "void draw ()", dans la déclaration du "for".

   for(int j=-hauteur/2 + 2;j<hauteur/2 + 2;j+=20){
for(int i=0;i<360;i+=20){

  rayon=cos(radians(j+phi)*facteur)*attention*200+rayonBase;
vertex(cos(radians(i))*rayon,sin(radians(i))*rayon,j);
vertex(cos(radians(i+20))*rayon,sin(radians(i+20))*rayon,j);
rayon=cos(radians(j+20+phi)*facteur)*attention*200+rayonBase;
vertex(cos(radians(i+20))*rayon,sin(radians(i+20))*rayon,j+20);
vertex(cos(radians(i))*rayon,sin(radians(i))*rayon,j+20);

}
}
.

Sur le code du casque il vérifie d'autre chauses:

  for (int i = 0; i < monitors.length; i++) {
    monitors[i].update();
    monitors[i].draw();
  }

Mais il s'agit de "class" que je n'utilise pas du tout.

voici le code en entier, celui de Gilles + le mien mixé.



import processing.opengl.*;

float rotX;
float rotY;
float rayon;
float rayonBase=100;

int hauteur=800;
float phi=60;
float facteur=0.7;

float attention;



import processing.serial.*;
Serial serial;


  String message;       // the message to send
// TODO Import OSC library

int packetCount = 0;

void setup() {
 
   size(1280,800,OPENGL);
  frameRate(60);
  strokeWeight(0.5);
  smooth();
   
           
  // Set up serial connection
  println("Find your Arduino in the list below, note its [index]:\n");
  println(Serial.list());
  serial = new Serial(this, Serial.list()[0], 9600);   
  serial.bufferUntil(10);
 


}


void serialEvent(Serial p) {
  // Split incoming packet on commas
  // See https://github.com/kitschpatrol/Arduino … ter/README for information on the CSV packet format
  String[] incomingValues = split(p.readString(), ',');

  // Verify that the packet looks legit
  if (incomingValues.length > 1) {
    packetCount++;

    // Wait till the third packet or so to start recording to avoid initialization garbage.
    if (packetCount > 3) {
      float signalQuality = Integer.parseInt(incomingValues[0].trim());
      float attention = Integer.parseInt(incomingValues[1].trim());
      int meditation = Integer.parseInt(incomingValues[2].trim());
      int delta = Integer.parseInt(incomingValues[3].trim());
      int theta = Integer.parseInt(incomingValues[4].trim());
      int lowAlpha = Integer.parseInt(incomingValues[5].trim());
      int highAlpha = Integer.parseInt(incomingValues[6].trim());
      int lowBeta = Integer.parseInt(incomingValues[7].trim());
      int highBeta = Integer.parseInt(incomingValues[8].trim());
      int lowGamma = Integer.parseInt(incomingValues[9].trim());
      int highGamma = Integer.parseInt(incomingValues[10].trim());
     
     
 
 
   
    // prints the message on the console
    print( attention + ";" + signalQuality);
 
   

     
    }}}
   
   
void draw() {

  background(255);
  pushMatrix();


  translate(width/2,height/2,-300);
 
  rotateY(radians(rotY));
  rotateX(radians(rotX));
  beginShape(QUADS);
  fill(10,237,255,34);
  stroke(0);
  for(int j=-hauteur/2 + 2;j<hauteur/2 + 2;j+=20){
for(int i=0;i<360;i+=20){
  rayon=cos(radians(j+phi)*facteur)*attention*200+rayonBase;
vertex(cos(radians(i))*rayon,sin(radians(i))*rayon,j);
vertex(cos(radians(i+20))*rayon,sin(radians(i+20))*rayon,j);
rayon=cos(radians(j+20+phi)*facteur)*attention*200+rayonBase;
vertex(cos(radians(i+20))*rayon,sin(radians(i+20))*rayon,j+20);
vertex(cos(radians(i))*rayon,sin(radians(i))*rayon,j+20);

}
}
endShape();
popMatrix();
}


    void mouseMoved(){
  if(keyPressed&&key=='m'){
rotX=map(mouseY,50,height-50,-180,180); 
rotY=map(mouseX,50,width-50,-180,180);
}}

si vous y voyez clair dites moi tout, ça serais génial. merci et bonne journée

Hors ligne

 

#9 2012-06-25 18:50:20 Re : Processing+ hack mindflex (cerebrale)= génération de forme

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: Processing+ hack mindflex (cerebrale)= génération de forme



Bon j'ai testé le code chez moi et ça marche pas faute d'arduino, tu peux copier coller le message d'erreur ici, comme ça on verra de quoi il en relève.

Hors ligne

 

#10 2012-06-25 19:20:58 Re : Processing+ hack mindflex (cerebrale)= génération de forme

elastickman
nouveau membre
Date d'inscription: 2011-05-29
Messages: 8

Re: Processing+ hack mindflex (cerebrale)= génération de forme



salut, en fait de mon côté, le code marche, fin se lance, mais rien ne se passe avec les valeurs que j'utilise. ça veut dire qu'il les reconnais bien mais on dirais qu'il ne les utilise pas. (elles varient de 0 à 200 pour l'attention, je les vois bouger dans "print" dans la console). Je voudrais en fait remplacer les controlP5 par ses valeurs que je reçois, tout simplement.

on dirais que la boucle se lance pas. Mais quand je laisse les controlP5 pour contrôler le reste je peux modifier la forme comme le code de base, mais pour la valeur "hauteur" par exemple, je la remplace par "attention"  et rien ne se passe. donc aucun message d'erreur...

Hors ligne

 

#11 2012-06-26 14:58:58 Re : Processing+ hack mindflex (cerebrale)= génération de forme

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: Processing+ hack mindflex (cerebrale)= génération de forme



Salut elastickman,

C'est un problème avec la portée des variables, tu redéfinis dans la fonction serialEvent() les deux variables  attention et signalQuality, leurs valeurs ne sont pas "vues" de l'extérieur. Pour bien comprendre, compare le résultat de ces deux codes :

Code (processing) :

et (les variables ne sont pas redéfinies) :

Code (processing) :

Hors ligne

 

#12 2012-06-27 13:44:37 Re : Processing+ hack mindflex (cerebrale)= génération de forme

Malleat
membre
Date d'inscription: 2012-04-15
Messages: 148
Site web

Re: Processing+ hack mindflex (cerebrale)= génération de forme



Tu utilises quel model de mindflex/wave.. etc. Comme la vidéo?


SITE WEB ->REVŒLUTION

Hors ligne

 

#13 2012-07-12 16:56:29 Re : Processing+ hack mindflex (cerebrale)= génération de forme

elastickman
nouveau membre
Date d'inscription: 2011-05-29
Messages: 8

Re: Processing+ hack mindflex (cerebrale)= génération de forme



salut tout le monde, désolé j'étais absent pendant 15 jours, je viens de rentrer. Je vous fait un ptit topo d'où j'en suis assez rapidement. ça a avancé.

Hors ligne

 

#14 2012-07-13 19:06:51 Re : Processing+ hack mindflex (cerebrale)= génération de forme

Malleat
membre
Date d'inscription: 2012-04-15
Messages: 148
Site web

Re: Processing+ hack mindflex (cerebrale)= génération de forme



Hate de voir ça big_smile


SITE WEB ->REVŒLUTION

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024