Utiliser udp2serial (réalisation d'interface capteur sans fil)

Bonsoir,

Mon objectif à terme est de réaliser une interface capteur en sans-fil. Je suis usuellement danseur/circassien après avoir longtemps œuvré comme technicien, j’ai donc un background assez léger en programmation.

J’ai choisi la Yun, et m’en mord un peu les doigts, je pensais utiliser une librairie OSC pour transmettre ensuite via wifi les informations de mes capteurs jusqu’à un max4live.

Sur le site du CNMAT ils expliquent qu’il n’est pas directement possible d’utiliser leur librairie et qu’il faut passer par une astuce développée ici GitHub - cylinderlight/udp2serial: a bridge between udp packets and a tty serial port, framing the udp packet data on the serial line with slip developed to use the OSC protocol on the Arduino Yun.
Le problème c’est que je suis incapable de comprendre ce qui est indiqué dans la procédure de setup.

J’ai tenté d’y arriver en chargeant le croquis “YunSerialTerminal” puis en rentrant les lignes au moment où la console propose de rentrer en mode sans échec, mais sans succès, et dans l’absolu je ne comprends pas comment ne serait-ce qu’installer cette librairie.

En l’état j’ai réussi à lire les données de mes capteurs (accelero/gyro MPU-6050, potentiomètres, boussole HMC-5583) et à les afficher dans le terminal séparément.
J’ai essayé un petit croquis que voici :

#include <OSCMessage.h>

// SLIPEncodedUSBSerial.h au lieu de SLIPEncodedSerial.h est suggéré sur le site du CNMAT 
// dans le cas d'une arduino Leonardo, et la Yun est une Leonardo + un linino avec un Bridge entre les deux
#include <SLIPEncodedUSBSerial.h>
SLIPEncodedUSBSerial SLIPSerial(Serial);

void setup() {
  //begin SLIPSerial just like Serial
  Serial.begin(38400);
  while(!Serial)
    ; //Leonardo "feature"
}

void loop(){
  //the message wants an OSC address as first argument
  OSCMessage msg("/analog/0");
  msg.add(analogRead(2));
  msg.send(SLIPSerial); // send the bytes to the SLIP stream
  SLIPSerial.endPacket(); // mark the end of the OSC Packet
  msg.empty(); // free space occupied by message

  delay(50);
}

Ceci avec pour but de voir rapidement si j’arrivais à afficher des données lues en entrée analogique (potentiomètre sur mon entrée A2) via OSC ce qui m’a valu de lire des données de ce type

À/analog/0

ou avec d’autres caratères abscons au lieu du “À” tels “°” ou parfois des chiffres…

En l’état je me sens maintenant assez bloqué pour avancer plus loin, donc si quelqu’un se sent capable de me guider dans l’utilisation de udp2serial ou à une idée des raisons de ce que je lis en sortie OSC, je serais ravi d’un peu d’aide.

Merci

Bonjour,

Pour l'installer je suis passé via WinSCP copie de udp2serial.py et slip.py dans /usr/bin copie de udp2serial dans /etc/init.d copie de udp2serial_OSC.service dans /etc/avahi/services

Puis via SSH /etc/init.d/udp2serial enable Puis reboot

That's all folks !