Catégories
Liens
Utiliser une wemos D1 pour balancer en wifi vers un ordi du signal en osc.
Il faudra bien sur connaître ou définir l'ip de l'ordi et se connecter sur le même réseau, si possible via un routeur de bonne qualité pour éviter les délai et crash…
Attention a bien choisir dans Outils dans Arduino (logiciel):
Mettre un délai de 50ms si entrée analogique utilisé dans la loop… sinon crash de l'osc ! pour une entrée digital 1ms suffit .
pour un bouton et un analogique avec un delay dans la loop de 50ms
#include <ESP8266WiFi.h> #include <WiFiUdp.h> #include <OSCMessage.h> char ssid[] = "****"; // your network SSID (name) char pass[] = "****************"; // your network password WiFiUDP Udp; // A UDP instance to let us send and receive packets over UDP const IPAddress outIp(192,168,43,20); // Ip de l'ordi , ou finir part 255 pour mettre en mode broadcast le serveur wifi const unsigned int outPort = 9999; // remote port to receive OSC const unsigned int localPort = 8888; // local port to listen for OSC packets (actually not used for sending) void setup() { pinMode(D1, INPUT_PULLUP); // on definit en pullUp la pin 1 du wemos pour le shield Olo Serial.begin(115200); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); Serial.println("Starting UDP"); Udp.begin(localPort); Serial.print("Local port: "); Serial.println(Udp.localPort()); } void loop() { // on lit les valeurs A0 et D1 int sensorValue = analogRead(A0); int buttonState = digitalRead(D1); // on cree un message OSC OSCMessage msg("/analog"); msg.add(sensorValue); msg.add(buttonState); Udp.beginPacket(outIp, outPort); msg.send(Udp); Udp.endPacket(); msg.empty(); delay(5); // latence minimal pour eviter crash }
dans pd :