« Xbee, trottinette et Pure Data » : différence entre les versions
De fablabo
m a déplacé Xbee trottinette et Pure Data vers Xbee, trottinette et Pure Data |
|||
(33 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{Projet | {{Projet | ||
|status=Experimental | |||
|image=Xbee-trotinette.JPG | |||
|status = | |description=contrôle de moteurs sans fil avec pure data | ||
|license=GPL | |||
|image= | |contributeurs=Guillaume | ||
|ingrédients=électronique, feraille, bois | |||
|description = contrôle de moteurs sans fil avec pure data | |name=Xbee, trottinette et Pure Data | ||
|license = GPL | |||
|contributeurs = | |||
| | |||
}} | }} | ||
<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= | |||
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== | |||
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= | ||
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== | |||
*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 | *driver LMD18200T | ||
==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 point à point== | |||
*Pour le moment n'ayant que deux | *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 /> | ||
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 | 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 | *IT1 : nb de samples par paquets soit ici 1 | ||
*BD7 : | *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 | ===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 <br /> | |||
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 <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 /> | |||
===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 <br /> | |||
_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 <br /> | |||
+++ | |||
si tout va bien xbee affichera OK <br /> | |||
+++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 | |||
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== | |||
cf patch | cf [[:File:xbee_blabla.pd | patch ]] | ||
*cablage | *cablage connexions | ||
Arduino / Xbee | Arduino / Xbee | ||
TX / Din | TX / Din | ||
RX / Dout | RX / Dout | ||
==Driver Moteurs== | |||
*grillage d'un L298 trop de charge... | *grillage d'un L298 trop de charge... | ||
*test du driver moteur | *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 122 : | Ligne 245 : | ||
==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= | |||
==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 136 : | Ligne 259 : | ||
==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 |