Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


Panneau latéral

ateliers:esp-osc:accueil

ESP-OSC

  • Porteur du projet : reso-nance Laurent
  • Date : 29/01/2020
  • Licence : libre !
  • Contexte : INIT'
  • Support : présentation

Description

Réalisation d'un contrôleur analogique basé sur un ESP8266 communicant en OSC via wifi avec un ordinateur 9

Matériaux

Tutoriel

UDP & BROADCAST

L'OSC peut circuler sur le réseau au protocole TCP ou UDP. Le TCP permet de vérifier que le destinataire à reçu le message et que son contenu n'est pas corrompu. L'UDP envoie le message sans se préoccuper de sa réception. En conséquence, le TCP ne peut s'utiliser qu'entre deux machines tandis que l'UDP peut être broadcasté (envoyé sur un grand nombre de machines simultanément). C'est la raison pour laquelle on préfèrera envoyer de l'OSC au protocole UDP dans la plupart des cas.

Pour envoyer des données en UDP depuis un ESP8266, on peut utiliser le code suivant, commenté ligne par ligne. Il est également disponible sur le repo github de l'init

envoiUDP.ino

Pour afficher l'UDP reçu, un script python écoutant l'UDP entrant est également fourni

receptionUDP.py

OSC

L'OSC est un format de donnée constitué d'une adresse et éventuellement d'arguments. L'adresse adopte le format d'une URL en commençant par un / Les arguments peuvent être aussi nombreux que nécessaire et contenir des entiers, des chaînes de caractères, des nombres à virgule flottantes ou tout autre type de données (appelées blob). Cette souplesse d'utilisation est la raison du succès de l'OSC qui s'adaptera aisément à tout type d'utilisation.

Pour créer un message OSC, on utilisera la bibliothèque OSC, disponible dans le gestionnaire de bibliothèque d'Arduino ou sur le repo de cet INIT Dans cet exemple, nous lirons la valeur d'un potentiomètre câblé sur l'entrée analogique de l'ESP8266 Pour éviter de surcharger le réseau, nous n'enverrons cette valeur que si elle à changée de plus de 2. Pour s'en assurer, on stocke dans une variable sa valeur précédente (au tour de boucle précédente) et on la compare à la valeur actuelle. Si la différence est supérieure à la tolérance, un message OSC est envoyé. Ce message aura pour addresse /monOSC et un seul argument, la valeur du potentiomètre. On peut ajouter d'autres arguments au même message en répétant la ligne

 message->add(VALEUR_A_AJOUTER)

avant l'envoi du message. Le reste du code est commenté ligne par ligne.

envoiOSC.ino

Un exemple de réception d'OSC est fourni sous forme d'un script python utilisant la bibliothèque pyliblo Un script d'installation de cette bibliothèque et de ses dépendances pour debian/ubuntu/raspbian est également disponible sur le repo de cet INIT

receptionOSC.py

ARDUINO

Photos

Autres photos, galerie, …

Les mots clés (tags) représentant votre travail

/home/resonancg/www/wiki/data/pages/ateliers/esp-osc/accueil.txt · Dernière modification: 2020/02/07 09:59 de laurent