Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


Panneau latéral

projets:labot-1:xbee:accueil

Ceci est une ancienne révision du document !


LaBOT / XBee

  • Porteur du projet : jerome (resonance
  • Date : 18/05/2016
  • Licence : libre !
  • Contexte : Atelier actionneur
  • Fichiers : labot-xbee.zip

Description

Configuration des XBee Série 1

  • Deux modules XBee série1
  • Une carte Romeo v2 Leonardo de DFRobot
  • Un module de communication série

Installation

  1. Télécharger Processing : http://processing.org
  2. Télécharger ControlP5 et le placer dans “~/sketchbook/libraries” http://www.sojamo.de/libraries/controlP5
  3. Télécharger XBee Terminal (un programme processing qui permet de configurer avec les XBee) : https://www.faludi.com/projects/xbee-terminal-max/
  4. Placer le XBee sur le module Serial Converter et le brancher sur le port USB de l'ordinateur
  5. Ouvrir XBee Terminal avec Processing, dans le dossier “source”
  6. Décommenter et changer la ligne 78 en “printArray(Serial.list());”. Pour connaître l'identifiant du port série et afficher un tableau (nouvelle fonction de Processing 3).
  7. Lancer le programme et regarder le numéro de port dans le console
  8. Reporter ce numéro à la ligne 21 : “int portID = 32;”, puis lancer de nouveau

Commandes AT

  1. Module #1 : +++ (attendre), ATRE, ATMY 1, ATDL 4, ATWR
  2. Module #2 : +++ (attendre), ATRE, ATMY 1, ATDL 4, ATWR

Voir la page XBee & Arduino pour plus d'informations.

Code Arduino

/*
 * XBee / Labot
 * Réception de la communication série pour contrôler deux servo-moteurs
 * Attention : usage du "Serial1" au lieu de "Serialé pour la communication XBee avec une carte Leonardo
 * Usage : couple de données, l'ID (O ou 1) pour les moteurs gauches et droite, et la valeur pwm (0-180)
 */
 
#include <Servo.h>
 
// Variables Servo
Servo servo_d, servo_g;
int id, pwm; // couple de données en réception
 
void setup() {
  Serial1.begin(9600); // On définit la vitesse de transfert des données
  servo_d.attach(10); // Le servo droit est connecté au pin 10
  servo_g.attach(11); // Le servo gauche est connecté au pin 11 (à l'envers)
  delay(100); 
  servo_d.write(90);// positions de repos
  servo_g.write(90);
}
 
void loop() { 
    // Lecture des messages Série
    while (Serial1.available()) {
      id = Serial1.parseInt(); 
      pwm = Serial1.parseInt();
      if (Serial1.read() == '\n') {
         if (id == 0){
           servo_g.write(pwm);
         } else if (id == 1) {
           servo_d.write(pwm);
         }
       }
     }
}

Code Pure Data

/home/resonancg/www/wiki/data/attic/projets/labot-1/xbee/accueil.1463578396.txt.gz · Dernière modification: 2016/05/18 15:33 de resonance