====== LaBOT / XBee ====== * Porteur du projet : jerome ([[user:resonance|]]) * Date : 18/05/2016 * Licence : libre ! * Contexte : Atelier actionneur * Fichiers : {{:projets:labot-1:xbee:labot-xbee.zip|}} {{tag>xbee robot}} ===== Description ===== {{:projets:labot-1:xbee:xbee-labot.jpg?800|}} ===== Configuration des XBee ===== * Deux modules XBee série1 * Une carte Romeo v2 Leonardo de DFRobot * Un module de communication série ==== Installation ==== Pour accéder aux modules XBee et les configurer, vous devez installer un programme qui vous permet de communiquer avec : - Télécharger Processing : http://processing.org - Télécharger ControlP5 et le placer dans "~/sketchbook/libraries" http://www.sojamo.de/libraries/controlP5 - Télécharger XBee Terminal (un programme processing qui permet de configurer avec les XBee) : https://www.faludi.com/projects/xbee-terminal-max/ - Placer le XBee sur le module Serial Converter et le brancher sur le port USB de l'ordinateur - Ouvrir XBee Terminal avec Processing, dans le dossier "source" - 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). - Lancer le programme et regarder le numéro de port dans le console - Reporter ce numéro à la ligne 21 : "int portID = 32;", puis lancer de nouveau ==== Commandes AT ==== - Module #1 : +++ (attendre), ATRE, ATMY 1, ATDL 4, ATWR - Module #2 : +++ (attendre), ATRE, ATMY 1, ATDL 4, ATWR Voir la page [[http://jeromeabel.net/ressources/xbee-arduino/|XBee & Arduino]] pour plus d'informations. {{:projets:labot-1:xbee:xbee-terminal-processing.jpg|}} ===== 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 * Si vous utilisez une autre carte Arduino, remplacez "Serial1" par "Serial" * * Usage : couple de données, l'ID (O ou 1) pour les moteurs gauches et droite, et la valeur pwm (0-180) */ #include // 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); } } } delay(10); } ===== Code Pure Data ===== {{:projets:labot-1:xbee:xbee-labot-puredata.png|}}