/* "E-textile on stage performance #0" Ce projet a nécessité la realisation d'un reseau de capteurs sans fil pour permettre à plusieurs musiciens de transmettre simultanément des données de capteurs à un ordinateur central. Ce réseau de capteurs a été réalisé avec plusieurs modules Arduino_FIO équipés d'antennes Xbee intégrées dans des vetements-instruments. Le Xbee connecté à l'ordinateur central est coordinateur et les cartes embarquées constituent les terminaisons ou "end points" du reseau. Cette configuration est appelée "star-network" Le code Arduino ci-dessous permet d'envoyer à l'ordinateur central les valeurs des capteurs disposés sur le vetement. Il doit etre adapté en fonction du type et du nombre de capteurs embarqués. L'ordinateur central réceptionne les données pour produire et déclancher les sons. L'exemple suivant fonctionne avec les antennes Xbee série 1 PRO. )c( maurin.box@gmail.com */ // Il est avant tout nécessaire d'ajouter la librairie "xbee-arduino-0.3" au logiciel Arduino // http://code.google.com/p/xbee-arduino/downloads/list // cette librairie doit etre placée dans le repertoire Documents>Arduino>libraries #include // creation d'une occurrence de la librairie Xbee à partir du constructeur XBee(); XBee xbee = XBee(); // déclaration d'une variable pour contenir la valeur d'un capteur int valeurCapteur_0 = 0; // ce tableau permet de reserver lespase memoire necesaire pour contenir l'ensemble des données à transmetre byte payload[] = { 0, 0 }; // $1, $2, $3 sont les trois arguments de la fonction Tx16Request // $1 configuration de l'adresse de destination des données des capteurs, dans notre cas les données sont envoyées au coordinateur // $2 tableau comportant l'ensemble des données à transmetre // $3 fonction qui permet de determiner le nombre d'octets contenues dans le tableau "payload" Tx16Request tx = Tx16Request(0x1111, payload, sizeof(payload)); // TxStatusResponse txStatus = TxStatusResponse(); //////////////////////////// Initialisation void setup() { // activation de la transmission et choix de la vitesse de communication Serial1.begin(38400); // Serial1 pour les FIO V3 // Serial pour les FIO V1 xbee.setSerial(Serial1); // Serial1 pour les FIO V3 // Serial pour les FIO V1 // attente de cinq secondes pour permetre au reseau xbee de se configurer delay(2000); } //////////////////////////// Loop void loop(){ // lecture de la brogueche analogue A0 et mémorisation de sa valeur valeurCapteur_0 = analogRead(A0); // division de la valeur captée en 10-bit (0-1024) pour les transmettre sur deux octets séparés payload[0] = valeurCapteur_0 >> 8 & 0xff; // highByte payload[1] = valeurCapteur_0 & 0xff; // lowByte // l'ajout de nouvelles valeurs à transmettre doit aussi être fait à l'initialisation du tableau payload[] plus haut. // envoi des valeurs contenues dans le tableau payload[]; xbee.send(tx); delay(25); }