Xbee, trottinette et Pure Data : Différence entre versions

De fablabo
Aller à : navigation, rechercher
(matériel)
 
(30 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
{{Projet
 
{{Projet
<!--Header-->
+
|status=Experimental
|name = Xbee, trottinette et Pure Data
+
|image=Xbee-trotinette.JPG
|status =experimental
+
|description=contrôle de moteurs sans fil avec pure data
<!--Image-->
+
|license=GPL
|image=
+
|contributeurs=Guillaume
<!--General-->
+
|ingrédients=électronique, feraille, bois
|description = contrôle de moteurs sans fil avec pure data
+
|name=Xbee, trottinette et Pure Data
|license = GPL
 
|contributeurs = [[contributeur::Guillaume]]
 
|matériaux = [[materiau::électronique]], [[materiau::feraille]], [[materiau::bois]]
 
 
}}
 
}}
 +
<p style="font-family: Times, serif; font-size:24pt; font-style:italic; font-variant: normal">pour le moment c'est pas très clair, juste des prises de notes<br />
  
 +
réalisation en cours...
  
 
+
=Le Projet=
pour le moment c'est pas très clair, juste des prises de notes
 
 
 
 
 
 
 
 
 
==='''le projet'''===
 
  
 
déplacer des décors pour une vidéo ethno-fictionnesque et géometrique...
 
déplacer des décors pour une vidéo ethno-fictionnesque et géometrique...
  
====le contexte====
+
==le contexte==
  
 
résidence R & D au PAD à angers avec marie Lancelin et 8,7  
 
résidence R & D au PAD à angers avec marie Lancelin et 8,7  
  
  
==='''la première étape'''===
+
=la première étape=
  
 
déplacer un cube en bois ou n'importe quoi de façon linéaire (avant - arrière), sur une distance précise à une vitesse précise, dans un espace donné... pour se faire mapper de la vidéo,le tout sans fil...
 
déplacer un cube en bois ou n'importe quoi de façon linéaire (avant - arrière), sur une distance précise à une vitesse précise, dans un espace donné... pour se faire mapper de la vidéo,le tout sans fil...
Ligne 34 : Ligne 27 :
  
  
====matériel====
+
==matériel==
  
 
*2 xbee serie 1 avec antennes (portée entre 30 et 100m)
 
*2 xbee serie 1 avec antennes (portée entre 30 et 100m)
Ligne 40 : Ligne 33 :
 
*un support xbee en USB
 
*un support xbee en USB
 
*une trottinette électrique d'occaz
 
*une trottinette électrique d'occaz
*driver LLMD182000T
+
*driver LMD18200T
  
 
+
==budget==
=====budget=====
 
 
_xbee x2 : 44<br />
 
_xbee x2 : 44<br />
 
_ardui-nano : 22<br />
 
_ardui-nano : 22<br />
Ligne 56 : Ligne 48 :
 
-trottinette : moyen abordable d'avoir moteur CC, roue, transmission par courroie le tout sur batterie 24V, pour environ 60 dollars européens d'occaz et qui fonctionne basiquement.
 
-trottinette : moyen abordable d'avoir moteur CC, roue, transmission par courroie le tout sur batterie 24V, pour environ 60 dollars européens d'occaz et qui fonctionne basiquement.
  
====Configuration xbee====
+
==Configuration xbee point à point==
  
=====Communication point à point=====
 
  
*Pour le moment n'ayant que deux xbee, la configuration est assez simple
+
*Pour le moment n'ayant que deux modules, la configuration est assez simple.
  
 
La communication via port série doit être configurée avec des paramètres compatible entre arduino, pure data et xbee, <br />
 
La communication via port série doit être configurée avec des paramètres compatible entre arduino, pure data et xbee, <br />
-même baud rate
+
soit le même baud rate si lon garde les réglages d'usine
 +
 
 +
===Commandes pour configuration avec arduino===
  
=====Config des xbee mobiles=====
+
ici, les options de configurations en réceptions ou émissions pour le raccord a un arduino par exemple, via RX/TX...
  
 
  ATRE, IDAAAA, MY1, DL0, D02, D12, D22, IR50, IT1, BD7, WR\r
 
  ATRE, IDAAAA, MY1, DL0, D02, D12, D22, IR50, IT1, BD7, WR\r
Ligne 77 : Ligne 70 :
 
*D02 à D22 : activation des pin d'entrée
 
*D02 à D22 : activation des pin d'entrée
 
*IR50 : taux de raffraichissement 80ms (50 en hex)
 
*IR50 : taux de raffraichissement 80ms (50 en hex)
*IT1 : nb de sample par pacquet soit ici 1
+
*IT1 : nb de samples par paquets soit ici 1
*BD7 : baud rate de 115200 (le 7 quoi...) entre 0 et 7 (standard baud rates par défaut 3)
+
*BD7 : entre 0 et 7 (standard baud rates par défaut 3)
 
  0 = 1200 bps; 1 = 2400; 2 = 4800; 3 = 9600; 4 = 19200; 5 = 38400; 6 = 57600;  7 = 115200
 
  0 = 1200 bps; 1 = 2400; 2 = 4800; 3 = 9600; 4 = 19200; 5 = 38400; 6 = 57600;  7 = 115200
  
Ligne 89 : Ligne 82 :
 
  ATID, MY, DL, D0; D1, D2, IR, IT, BD\r
 
  ATID, MY, DL, D0; D1, D2, IR, IT, BD\r
  
=====config du xbee base=====
+
===Commandes pour configuration autonome===
 +
 
 +
Les modules RF permettent aussi de recevoir et/ou émettre des signaux analogiques ou numériques grâces a des convertisseurs analogiques/digitales.
 +
 
 +
*pin DIO0 a DIO4 (entrées/sorties digital/analogiques)
 +
 +
commande ATD0 a 4 puis
 +
  0 = Disabled
 +
  1 = (n/a) 
 +
  2 = ADC ''Analog-to-digital converter''
 +
  3 = DI ''Digital Input''
 +
  4 = DO low  ''Digital Output''
 +
  5 = DO high ''Digital Output''
 +
 
  
 +
par defaut 0
  
=====X-CTU=====
+
AD0/DIO0 (pin 20), AD1/DIO1 (pin 19), AD2/DIO2 (pin 18), AD3/DIO3 (pin 17), AD4/DIO4 (pin 11).
 +
Les pin DIO5 a DIO7 ont un fonctionnement particulier (voir manuel)...
  
selon http://wire.less.dk/?p=162
 
  
*Pour le moment la configuration a été faites via X-CTU [http://www.digi.com/support/productdetail?pid=3352&type=utilities] sur windoz, puis sous linux avec wine <br />
+
*pin P0 et P1 (PWM0 et PWM1 comme leurs nom l'indique)
Pour linux, il faut seulement créer un lien symbolique entre le port reconnu avec linux : ici le ttyUSB0, et celui utilisé dans wine : com10 ou un autre (wine doit être installer et configurer préalablement):
+
 
 +
commande ATP0 ou ATP1
 +
  0 = Disabled
 +
  1 = RSSI
 +
  2 = PWM Output
  
cd /home/username/.wine/dosdevices
 
  
puis
+
par defaut : PWM0 = 1, PWM1 = 0 <br />
 +
PWM0 (pin 6), PWM1 (pin 7)
  
  ln -s /dev/ttyUSB0 com10
+
  commande ATM0 ou ATM1 (contrôle du taux de PWM en hexadécimal...)
 +
M0 = 0 (0% PWM), 0x01FF (50% PWM), 0x03FF (100% PWM), etc.
  
 +
pour appliquer la modification CN (Exit Command Mode) ou AC (Apply Changes)
  
 +
Configuration Example
 +
As an example for a simple A/D link, a pair of RF modules could be set as follows:
 +
Remote Configuration
 +
DL = 0x1234
 +
MY = 0x5678
 +
D0 = 2
 +
D1 = 2
 +
IR = 0x14
 +
IT = 5
 +
Base Configuration
 +
DL = 0x5678
 +
MY = 0x1234
 +
P0 = 2
 +
P1 = 2
 +
IU = 1
 +
IA = 0x5678 (or 0xFFFF)
 +
These settings configure the remote module to sample AD0 and AD1 once each every 20 ms. It
 +
then buffers 5 samples each before sending them back to the base module. The base should then
 +
receive a 32-Byte transmission (20 Bytes data and 12 Bytes framing) every 100 ms.
  
  
=====minicom, terminal port série pour linux=====
+
===Informations===
  
 +
VR : ''Firmware Version'' nous donne la version du microprogramme <br />
 +
HV : ''Hardware version'' nous donne la version du module<br />
 +
DB : nous donne la force du signal reçus en hexadécimal bien sûr (0x58 = -88 dBm)<br />
 +
SC : nous donne la liste des cannaux <br />
  
  
*Tout d'abord installer minicom (il se trouve dans les paquets...)
+
===config du xbee===
 +
 
 +
 
 +
===Les programmes de configurations===
 +
 
 +
*'''moltosenso Network Manager'''
 +
Après quelques déboires avec X-CTU sous wine, il apparaît plus simple d'utiliser "moltosenso Network Manager Iron" gratuit mais prorio mais efficace et simple a mettre en route.
 +
 
 +
*Changer le répertoire de recherche des ports dans l'onglet Settings/Define ports path(s)
 +
/dev/ttyUSB*;
 +
 
 +
*changer le baud rate a 57600 pour accorder l'ATMEGA avec le standard Firmata et Pure Data
 +
 
 +
*régler "Flow Control" à "None"
 +
 
 +
*puis cliquer sur "SCAN" et sur "OPEN PORT"
 +
 
 +
*cliquer sur "XBEE PRO blabla" qui apparait dans "Detected Device"
 +
 
 +
*cliqueter sur l'onglet "Node Settings" puis sur l'adresse du module et faire "Get All"
 +
 
 +
*modifier les paramètres et valider par "Set" puis "Write Permanently" sinon les paramètres ne seront pas enregistrés
 +
 
 +
 
 +
*'''minicom''', terminal port série pour linux
 +
 
 +
_Tout d'abord installer minicom (il se trouve dans les paquets...)
 
  apt-get minicom
 
  apt-get minicom
  
*puis configurer la communication série avec xbee (le -s pour acceder aux settings, le -c pour avoir un peu de couleur)
+
_puis configurer la communication série avec xbee (le -s pour acceder aux settings, le -c pour avoir un peu de couleur)
 
  minicom -s -c on  
 
  minicom -s -c on  
  
*configurer le baud rate choisis, sinon pas besoin de toucher la config usine <br />
+
_configurer le baud rate choisis, sinon pas besoin de toucher la config usine <br />
  
*sortir de la configuration
+
_sortir de la configuration
 
  minicom -c on
 
  minicom -c on
  
*activer l'option "local Echo on/off" après avoir fait : "alt + A" puis "Z" puis "E" pour voir ce que l'on tape
+
activer l'option "local Echo on/off" après avoir fait : "alt + A" puis "Z" puis "E" pour voir ce que l'on tape
  
*active la communication pour 10s  
+
active la communication pour 10s <br />
 
  +++
 
  +++
  
si tout va bien xbee affichera OK  
+
si tout va bien xbee affichera OK <br />
  
 
  +++OK
 
  +++OK
  
 +
*'''Pure Data'''
 +
 +
grace au patch de [http://wiki.t-o-f.info/Arduino/Xbee#toc16 tof] que j'ai un peu modifier ici
  
  
  
 +
===Les paramètres===
  
 +
Module Base (relié par USB)
 +
ID = 3332
 +
DL = 0x5678 
 +
MY = 0x1234
 +
BD = 6
 +
 +
Modules Distants
 +
ID = 3332
 +
DL = 0x1234
 +
MY = 0x5678
 +
BD = 6
 +
  
ATRE, IDAAAA, MY0, BD 7, WR\r
 
  
 
penser à changer le baud rate de terminal serie <br />
 
penser à changer le baud rate de terminal serie <br />
  
  
pour toutes les commandes cf p.24 du manuel
+
pour toutes les autres commandes cf p.24 du manuel
  
====Config via pd====
+
==Config via pd==
  
cf patch  
+
cf [[:File:xbee_blabla.pd | patch ]]
ATBD6 => 57600 bps that's it !!!
+
  
*cablage,connexions
+
*cablage connexions
 
  Arduino / Xbee
 
  Arduino / Xbee
 
  TX  /  Din
 
  TX  /  Din
 
  RX  /  Dout
 
  RX  /  Dout
  
====Driver Moteurs====
+
==Driver Moteurs==
  
 
*grillage d'un L298 trop de charge...
 
*grillage d'un L298 trop de charge...
  
*test du driver moteur LLMD182000T
+
*test du driver moteur LMD182000T
  
 
pont en H et tout ce qui faut d'intégrer pour faire tourner un moteur jusqu'à 3A et 6A en pointe <br />
 
pont en H et tout ce qui faut d'intégrer pour faire tourner un moteur jusqu'à 3A et 6A en pointe <br />
Ligne 168 : Ligne 245 :
  
  
====control moteur via xbee et pd====
+
==control moteur via xbee et pd==
  
voici patch qui réagis au cliqueti, au traque pade et à la space barre... <br />
+
voici un [[:File:transporteur.zip | patch]] qui réagis au cliqueti, au traque pade et à la space barre... <br />
 
pas super pratique mais ça marche au doigt et à l'oeil...
 
pas super pratique mais ça marche au doigt et à l'oeil...
  
===Retro-Future===
+
=Retro-Future=
  
====problèmes a résoudre====
+
==problèmes à résoudre==
  
 
*moteur à du mal a partir sauf a fond sinon pas assez de couple
 
*moteur à du mal a partir sauf a fond sinon pas assez de couple
Ligne 182 : Ligne 259 :
  
  
====a voir/tester====
+
==a voir/tester==
  
 
*intégrer une roue codeuse ou autre truc dans le genre pour gérer la distance parcourue, pas besoin d'une précision au milimètre
 
*intégrer une roue codeuse ou autre truc dans le genre pour gérer la distance parcourue, pas besoin d'une précision au milimètre

Version actuelle en date du 12 mai 2015 à 18:24


contrôle de moteurs sans fil avec pure data



pour le moment c'est pas très clair, juste des prises de notes
réalisation en cours...

Le Projet

déplacer des décors pour une vidéo ethno-fictionnesque et géometrique...

le contexte

résidence R & D au PAD à angers avec marie Lancelin et 8,7


la première étape

déplacer un cube en bois ou n'importe quoi de façon linéaire (avant - arrière), sur une distance précise à une vitesse précise, dans un espace donné... pour se faire mapper de la vidéo,le tout sans fil...


matériel

  • 2 xbee serie 1 avec antennes (portée entre 30 et 100m)
  • un arduino nano
  • un support xbee en USB
  • une trottinette électrique d'occaz
  • driver LMD18200T

budget

_xbee x2 : 44
_ardui-nano : 22
_support xbee truc :
_driver moteur :
_trotinette : 59
_driver moteur :

  • pourquoi ce matériel????

-xbee pour commander plusieurs modules à partir d'un seul point
-trottinette : moyen abordable d'avoir moteur CC, roue, transmission par courroie le tout sur batterie 24V, pour environ 60 dollars européens d'occaz et qui fonctionne basiquement.

Configuration xbee point à point

  • Pour le moment n'ayant que deux modules, la configuration est assez simple.

La communication via port série doit être configurée avec des paramètres compatible entre arduino, pure data et xbee,
soit le même baud rate si lon garde les réglages d'usine

Commandes pour configuration avec arduino

ici, les options de configurations en réceptions ou émissions pour le raccord a un arduino par exemple, via RX/TX...

ATRE, IDAAAA, MY1, DL0, D02, D12, D22, IR50, IT1, BD7, WR\r

explications

  • ATRE : AT permet de modifier n'importe quel paramètres, expl ATMY 1\r change l'adresse à 1

ici RE est pour faire un reset des paramètres de bases

  • IDAAAA : identité du réseau AAAA
  • MY1 : adresse de la radio à 1
  • DL0 : adresse de la destination (station de base)
  • D02 à D22 : activation des pin d'entrée
  • IR50 : taux de raffraichissement 80ms (50 en hex)
  • IT1 : nb de samples par paquets soit ici 1
  • BD7 : entre 0 et 7 (standard baud rates par défaut 3)
0 = 1200 bps; 1 = 2400; 2 = 4800; 3 = 9600; 4 = 19200; 5 = 38400; 6 = 57600;   7 = 115200
  • WR : sauvegarde le tout

faire de même avec les autres en changeant MY2, MY3, etc...

  • pour confirmer que les paramètres on bien été pris en comptes :
ATID, MY, DL, D0; D1, D2, IR, IT, BD\r

Commandes pour configuration autonome

Les modules RF permettent aussi de recevoir et/ou émettre des signaux analogiques ou numériques grâces a des convertisseurs analogiques/digitales.

*pin DIO0 a DIO4 (entrées/sorties digital/analogiques)

commande ATD0 a 4 puis
 0 = Disabled 
 1 = (n/a)  
 2 = ADC Analog-to-digital converter
 3 = DI Digital Input 
 4 = DO low  Digital Output
 5 = DO high Digital Output


par defaut 0

AD0/DIO0 (pin 20), AD1/DIO1 (pin 19), AD2/DIO2 (pin 18), AD3/DIO3 (pin 17), AD4/DIO4 (pin 11). Les pin DIO5 a DIO7 ont un fonctionnement particulier (voir manuel)...


*pin P0 et P1 (PWM0 et PWM1 comme leurs nom l'indique)
 
commande ATP0 ou ATP1
 0 = Disabled 
 1 = RSSI 
 2 = PWM Output 


par defaut : PWM0 = 1, PWM1 = 0
PWM0 (pin 6), PWM1 (pin 7)

commande ATM0 ou ATM1 (contrôle du taux de PWM en hexadécimal...)
M0 = 0 (0% PWM), 0x01FF (50% PWM), 0x03FF (100% PWM), etc.
pour appliquer la modification CN (Exit Command Mode) ou AC (Apply Changes)

Configuration Example As an example for a simple A/D link, a pair of RF modules could be set as follows: Remote Configuration DL = 0x1234 MY = 0x5678 D0 = 2 D1 = 2 IR = 0x14 IT = 5 Base Configuration DL = 0x5678 MY = 0x1234 P0 = 2 P1 = 2 IU = 1 IA = 0x5678 (or 0xFFFF) These settings configure the remote module to sample AD0 and AD1 once each every 20 ms. It then buffers 5 samples each before sending them back to the base module. The base should then receive a 32-Byte transmission (20 Bytes data and 12 Bytes framing) every 100 ms.


Informations

VR : Firmware Version nous donne la version du microprogramme
HV : Hardware version nous donne la version du module
DB : nous donne la force du signal reçus en hexadécimal bien sûr (0x58 = -88 dBm)
SC : nous donne la liste des cannaux


config du xbee

Les programmes de configurations

  • moltosenso Network Manager

Après quelques déboires avec X-CTU sous wine, il apparaît plus simple d'utiliser "moltosenso Network Manager Iron" gratuit mais prorio mais efficace et simple a mettre en route.

  • Changer le répertoire de recherche des ports dans l'onglet Settings/Define ports path(s)
/dev/ttyUSB*;
  • changer le baud rate a 57600 pour accorder l'ATMEGA avec le standard Firmata et Pure Data
  • régler "Flow Control" à "None"
  • puis cliquer sur "SCAN" et sur "OPEN PORT"
  • cliquer sur "XBEE PRO blabla" qui apparait dans "Detected Device"
  • cliqueter sur l'onglet "Node Settings" puis sur l'adresse du module et faire "Get All"
  • modifier les paramètres et valider par "Set" puis "Write Permanently" sinon les paramètres ne seront pas enregistrés


  • minicom, terminal port série pour linux

_Tout d'abord installer minicom (il se trouve dans les paquets...)

apt-get minicom

_puis configurer la communication série avec xbee (le -s pour acceder aux settings, le -c pour avoir un peu de couleur)

minicom -s -c on 

_configurer le baud rate choisis, sinon pas besoin de toucher la config usine

_sortir de la configuration

minicom -c on

activer l'option "local Echo on/off" après avoir fait : "alt + A" puis "Z" puis "E" pour voir ce que l'on tape

active la communication pour 10s

+++

si tout va bien xbee affichera OK

+++OK
  • Pure Data

grace au patch de tof que j'ai un peu modifier ici


Les paramètres

Module Base (relié par USB)
ID = 3332
DL = 0x5678  
MY = 0x1234
BD = 6
Modules Distants
ID = 3332
DL = 0x1234
MY = 0x5678
BD = 6


penser à changer le baud rate de terminal serie


pour toutes les autres commandes cf p.24 du manuel

Config via pd

cf patch


  • cablage connexions
Arduino / Xbee
TX  /  Din
RX  /  Dout

Driver Moteurs

  • grillage d'un L298 trop de charge...
  • test du driver moteur LMD182000T

pont en H et tout ce qui faut d'intégrer pour faire tourner un moteur jusqu'à 3A et 6A en pointe

pas de soucis particuliers à constater, câblage simple et efficace

  • à tester : retour de température, ou de courant en cas de surchauffe


control moteur via xbee et pd

voici un patch qui réagis au cliqueti, au traque pade et à la space barre...
pas super pratique mais ça marche au doigt et à l'oeil...

Retro-Future

problèmes à résoudre

  • moteur à du mal a partir sauf a fond sinon pas assez de couple
  • marche mieux dans un sens que dans l'autre

>>réductionner le moteur


a voir/tester

  • intégrer une roue codeuse ou autre truc dans le genre pour gérer la distance parcourue, pas besoin d'une précision au milimètre
  • tester xbee sans arduino car des sortie pwm sont dispo sur xbee pour driver les moteurs
  • comment communiquer avec plusieurs xbee via pd?????