Scolring - Forum

Entraides et échanges autour de la technologie Scol - Informations and exchanges on the Scol technology

Vous pouvez changer la langue de l'interface une fois inscrit - You can change the language once registered

You are not logged in.

#1 22-May-2014 22:43:54

t3vall
Member
From: Parthenay
Registered: 16-Jan-2012
Posts: 57

Openspace et webcam

Bonjour,
Ça fait pas mal de temps que je suis pas venu sur le forum mas openspace est toujours dans ma liste de logiciels à découvrir et tester. J'ai pas encore fait enormément de test (je ne comprends pas trop les liaisons que l'on doit faire entre les briques mais je vais chercher).

Aujourd'hui j'ai envie de tester l'occulus rift. J'en ai un au travail et je voulais tester l'occulus avec une webcam 3D (avec donc 2 "yeux") qui serait montée sur des moteurs reliés à une carte arduino.
Par différentes vidéos que j'ai vu je suis sur qu'OSpace peut réaliser mes recherches.

Je recherche donc un peu d'aide ou des tutoriaux qui m'aiderait à comprendre les relations à créer entre les briques que je devrait utiliser pour mon projet.

Je pensais utiliser media pour la caméra (mais y aurait il un soucis avec une possibilité de récupérer les 2 flux ?)
utiliser évidement le module input occulus.

Si vous pouvez me dire aussi de qu'elle manière je peux avoir une relation entre l'OCRift et les moteurs sur une arduino se serait génial. Jai pas trouvé de module qui pourrait faire l'affaire.

En fait pour tout dire, je voudrait tenter de faire tourner un moteur pas à pas et 2 servos moteurs en bougeant la tète qui porte l'occulus. Ce pourrait être une petite animation que je présenterait sur mon lieux de travail.

Sincèrement félicitation pour vous développements

Offline

#2 23-May-2014 15:14:52

arkeon
Admin. / Scol language & OpenSpace3D developer
From: Nantes
Registered: 30-Mar-2009
Posts: 5,091
Website

Re: Openspace et webcam

Bonjour !

Je pense en effet que cela est possible.
ta webcam stereo sort un flux en side by side ou juste 2 webcams ?

pour l'arduino tu peux utiliser le plugIT Serial
tu definis ensuite une sorte d'api dans le code de l'arduino pour recevoir les coordonnées de l'oculus.
et tu fais un lien Oculus.Orientation -> serial.Send "ang $1 $2 $3" par exemple

et l'aduino cherche le mot "ang" et tu lis les 3 parametres suivant en flottant.

Offline

#3 23-May-2014 17:07:10

t3vall
Member
From: Parthenay
Registered: 16-Jan-2012
Posts: 57

Re: Openspace et webcam

Bonjour,
Rapide  et efficace  merci. Je vais pouvoir tester ça ce weekend.

C'est une caméra flux side by side.

Si j'y arrive c'est génial. smile

Offline

#4 24-May-2014 00:28:21

arkeon
Admin. / Scol language & OpenSpace3D developer
From: Nantes
Registered: 30-Mar-2009
Posts: 5,091
Website

Re: Openspace et webcam

ok tiens moi au courant, c'est interessant comme projet smile

tu auras surement des problemes d'alignement avec la cam stereo, j'avais géré un décalage sur les images 2D pour eviter de faire loucher avec l'oculus.
en cas de probleme envois moi un screen shot, je devrais trouver une solution rapidement.

Offline

#5 24-May-2014 11:43:46

t3vall
Member
From: Parthenay
Registered: 16-Jan-2012
Posts: 57

Re: Openspace et webcam

J'ai tenté qq chose hier soir mais je n'y suis pas arrivé.
Quand je vois ça https://www.youtube.com/watch?v=gSc_RmRE96A ca donne vraiment envie.

En fait pour m'aider j'aimerai trouver des tutoriaux la dessus mais je n'ai rien trouvé. Si déjà j'arrive à allumer une led en passant par openspace je saurai surement faire le reste.
Je continue les recherches

merci pour ton aide en tout cas.

Offline

#6 24-May-2014 12:06:33

arkeon
Admin. / Scol language & OpenSpace3D developer
From: Nantes
Registered: 30-Mar-2009
Posts: 5,091
Website

Re: Openspace et webcam

oui je me suis bien amusé a faire ce petit projet smile

- tu connects l'arduino avec le plugIT serial input
- tu choisis le bon port com et la bonne vitesse de communication definie dans le code de l'arduino, paramètre aussi le caractère de fin de commande "\13" par exemple, cela depend aussi de la manière dont tu as codé coté arduino
- dans le program arduino dans la loop tu lis les données serie en entrée
- dans openspace tu ecrits des données avec le lien par exemple Mouse.clickleft -> serial.send avec dans le parametre du lien 1 ou 0 par exemple pour allumer ou eteindre la led

après réflexion c'est la webcam stereo avec l'oculus qui risque de poser des problèmes. peux tu m'envoyer un screenshoot de la webcam que je vois le format (résolution tout ça)

voici un exemple pour l'arduino (pas testé)

int led = 13;
String inputString = "";

void setup() 
{  
  Serial.begin(9600);
  inputString.reserve(24);
  pinMode(led, OUTPUT);
} 

void ReadSerial()
{
  char inChar;  
  while (Serial.available() > 0)
  {
    // get the new byte:
    inChar = Serial.read(); 
    
    // add it to the inputString:
    if (inChar != 13) // '\n'
      inputString.concat(inChar);
    else
    {
      if (inputString == "0" || inputString == "off")
      {
        digitalWrite(led, LOW);
        
        // return to OS3D
        Serial.println("Led Off");
      }
      else if (inputString == "1" || inputString == "on")
      {
        digitalWrite(led, HIGH);
        // return to OS3D
        Serial.println("Led On");
      }
      
      inputString = "";
    } 
  }
  Serial.flush();
}

void loop() 
{
  ReadSerial();
}

Offline

#7 24-May-2014 12:17:17

t3vall
Member
From: Parthenay
Registered: 16-Jan-2012
Posts: 57

Re: Openspace et webcam

ha tu es génial je vais tester ça.
La caméra que j'ai est une http://www.minoru3d.com/
Quand je la teste avec le média capture je n'ai qu'une caméra qui s'allume mais pas sur la totalité de l'ecran de  l'occulus.. mais bon en cochant  la case % ça s'agrandit.. je pense pas que ce soit grand chose... j'ai essayé d'utilise le rendu stéréo pour voir mais ça n'a rien fait..

Comme je ne connais pas bien le logiciel il faut que je cherche .

Offline

#8 25-May-2014 22:06:06

t3vall
Member
From: Parthenay
Registered: 16-Jan-2012
Posts: 57

Re: Openspace et webcam

Salut,

j'ai modifié un peu le code que tu m'as passé en y ajoutant les fonctions pour faire tourner un moteur continu. Je pense essayer avec un pas à pas et après un servo moteur.

J'ai crée un bouton qui active ou non (1 ou 0) le moteur sur un L293D et il tourne. Donc ca fonctionne.
J'ai tenté de dire au plugiT OccHead de faire tourner le moteur mais j'ai pas encore réussi. Je vais continuer a étudier ta première proposition, mais serait il possible (pour peut être avoir une meilleure gestion de la rotation) d'utiliser un objet ou dummy de lui appliquer une rotation par l'occulus et ensuite partir de l'objet et de créer un lien "send click" pour utiliser mon bouton .
Aussi pour l'instant je ne vois pas trop comment dire a arduino de quel coté l'occulus tourne.

Mais bon ça ne fait que 2 jour que je suis dessus alors je vais bien trouver qq chose.
Concernant la caméra dis mois .. je pourrait surement tester avec 2 caméras. Si c'est le cas je crois devoir utiliser 2 viewport pour avec une composition Occ Left et Occ right et peutêtre le plugit Stéreo sidebyside.


 
 int led = 12;  // définition de la broche led
String inputString = ""; // a string to hold incoming data

int motorInput2 = 8; 
int motorInput7 = 7;
int enableInput1 = 11;

void setup() 
{  
    // initialize serial:
  Serial.begin(9600);
  // reserve 200 bytes for the inputString:
  inputString.reserve(24);
  pinMode(led, OUTPUT);
  
pinMode(motorInput2, OUTPUT);
pinMode(motorInput7, OUTPUT);
pinMode(enableInput1, OUTPUT);
digitalWrite(enableInput1, HIGH);
} 

void ReadSerial()
{
  char inChar;  
  while (Serial.available() > 0)
  {
    // get the new byte:
    inChar = Serial.read(); 
    
    // add it to the inputString:
    if (inChar != 13) // '\n'
      inputString.concat(inChar);
    else
    {
      if (inputString == "0" || inputString == "off")
      {
       //digitalWrite(led, LOW);
        mdroite();
        // return to OS3D
        Serial.println("Led Off");
      }
      else if (inputString == "1" || inputString == "on")
      {
       // digitalWrite(led, HIGH);
       mgauche();
        // return to OS3D
        Serial.println("Led On");
      }
      
      inputString = "";
    } 
  }
  Serial.flush();
}

void mdroite() {
  
digitalWrite(motorInput2, HIGH); 
digitalWrite(motorInput7, LOW);

}

void mgauche() {
  
digitalWrite(motorInput2, LOW); 
digitalWrite(motorInput7, HIGH);

}

void loop() 
{
  ReadSerial();
}

Offline

#9 25-May-2014 22:16:53

arkeon
Admin. / Scol language & OpenSpace3D developer
From: Nantes
Registered: 30-Mar-2009
Posts: 5,091
Website

Re: Openspace et webcam

oui tu peux utiliser un plugIT Object Position pour faire tourner l'object avec l'oculus, mais je pense que c'est inutile ici
Oculus.Orientation -> Object Position.Set Orientation
ça sera en effet plus simple avec un servo moteur auquel tu donnes un angle, pour le moteur ça peut se gérer aussi avec des impulsions je pense

sinon dans le code arduino tu gardes la derniere valeur reçus et tu la soustrait au prochain resultat pour avoir la valeur relative et donc positve ou negative.

Offline

#10 25-May-2014 22:20:03

arkeon
Admin. / Scol language & OpenSpace3D developer
From: Nantes
Registered: 30-Mar-2009
Posts: 5,091
Website

Re: Openspace et webcam

avec 2 cameras le probleme sera le meme, je pense qu'il faille que je gere le cas de la camera stereo dans le moteur 3D avec un flag ou quelque chose, pour decaler l'image a gauche ou a droite, puisque le meme rendu est utilisé pour l'image de droite et l'image de gauche. ici il n'y a pas de viewport différents, seulement le rendu 3D fait 2 fois, interface comprise.

Offline

Board footer

Powered by FluxBB