Télémétrie RC...

Bonjour à tous,

Ceci est mon premier post ici ... une petite présentation est donc de rigueur. Je m'appelle Jean-Claude, j'ai 34 ans et je suis administrateur réseau sur Toulouse.

Je viens avoir vos avis et conseils pour un petit projet qui me trotte dans la tête.

Je fait du modélisme naval RC de vitesse. Le but des modèles comme les miens est donc d'aller le plus vite possible. Aujourd'hui pour mesurer la vitesse j'utilise un GPS de randonnée qui mémorise la vitesse max atteinte. A la fin des essais, je sort le bateau de l'eau et je lis la vitesse sur le GPS.

Je souhaiterai embarquer dans mon modèle réduit un Arduino équipé d'un GPS et d'un module Bluetooth de façon a pouvoir lire sur mon Android la vitesse du dernier run du bateau alors que celui ci est arrête dans l'eau devant moi (dans un premier temps, peut être plus tard afficher des courbes d'accélération, la conso électrique des moteurs, le niveau de charge des accus etc ...).

Je me demandais donc :

Si j'ai bien lu, la communication entre Arduino et le module GPS et le module bluetooth se fait par une liaison série. Sur ma board (Arduino UNO) il n'y a qu'un seul port. Cela veut il dire que je ne peux pas utiliser ces deux modules en même temps ou y a t'il une solution ?

Je vous remercie pour votre aide !

JC

Bonjour

Il ya toujours la possibilité de creer des ports série 'software' sur n'importe quelle pin numérique en plus du port série "hardware' ,unique dans le cas de la carte UNO.
Avec Arduino 022 la librairie la plus performante est NewSoftSerial
http://arduiniana.org/libraries/newsoftserial/
Si je comprend bien la description du fonctionnement attendu les deux ports n'auraient pas à proprement parler à travailler 'en même temps' mais tour à tour : collecte GPS pendant le parcours et envoi par Bluetooth à l'arrêt.......ça simplifie grandement le software.

A la place du bluetooth tu peut peut-être passer en liaison RF ou 2.4ghz pour réduire les coups non ? et en 2.4ghz avec une bonne antenne tu devrais avoir une bonne porté déjà je pense !

@chicotore : loops veut récupérer les données sur son smartphone Android donc il n'a le choix qu'entre BT ou Wifi (l'Arduino c'est dans le bateau)
Sur Android : une appli java perso ou un soft comme BlueTerm, SenaBterm...
Il faut juste un petit module Uart-Bluetooth côté Arduino (< 15€ pour du Bluetooth V2.0+EDR)
Quand on a au bout,comme terminal , un téléphone, smartphone ou PC avec BT c'est un peu dommage de créer un lien radio 'maison'.

Salut a tous !
Merci pour vos réponses.
en effet pour le bluetooth al1fch a complètement raison. Grâce a Appinventor de google Labs je vais pouvoir me faire facilement une application pour afficher les données. J'ai donc du bluetooth et du wifi dispo. Je pense que le bluetooth est plus indiqué que le wifi. Une liaison série me suffit.

Je vais me pencher sur la librairie, mais dans un premier temps essayer de faire fonctionner mon module bluetooth. Je pensait que ca se ferai presque tout seul mais je me rend compte que c'est pas si évident. Je suis d'ailleurs pas certain d'avoir acheté le bon module ...
J'ai acheté ceci : http://www.ebay.com/itm/180701113700?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

pensez vous que ce soit adapté ?

A première vue le module convient (je ne pensais pas que les côuts avaient autant baissé)
Le module utilise une puce CSR généralisée sur ces modules
Par contre la page ebay donnée en lien ne fournit pas la documentation suffisante.
Les divers modules se différencient par le firmware de la puce CSR
Chaque firmware définit une liste de commandes pour parametrer le module.

Ce module à l'air géré par des commandes AT, il est donc indispensable d'avoir la liste de ces commandes
On n'en voit qu'une sur le lien !

AT + ROLE = 1

ça ne suffit pas pour configurer les parametres variés d'un module BT
Solution : Un autre vendeur du même module sur ebay a probablement une page plus complète

Ok,
je me met en quête d'une doc plus complète !
Merci !

Je pense l'avoir trouvé : http://www.sparkfun.com/datasheets/Wireless/Bluetooth/SPP%20AT%20command%20set.pdf

Ce jeu de comandes AT n'est probablement pas fait pour ton module.
Le rôle (master/slave) y est défini par les commandes ATR0 et ATR1 alors que la page ebay indique une commande AT+R=1
Commande AT c'est juste pour indiquer des modules qui se parametrent en reprenant le 'style' des Modems.
Chaque fabricant de modem RTC a (avait) son jeu de commandes avec des commandes de bases communes et des commandes étendues 'maison'.
Va configurer avec soin un modem 56kb Olitec (ce n'est qu'un exepmle) avec la doc d'un modele d'une autre fabricant !! C'est pareil avec les modules BT.
(N'importe qui peut sur le site CSR se procurer l'outil de développement des puces et confectionner son firmware particulier avec des commandes AT maison.)
Sur cette page Sparkfun on traouve une échantillon d modules d'origines diverses ayant leur propore jeu AT

Le vendeur de ton module pourrait être averti que son module est inexploitable .... comme un processeur sans jeu d'instructions !!

ok je comprend.
Bien que le chipset de cette doc soit le même que celui de mon module les commandes peuvent être différentes.
C'est un peu la loose ...
Bon je continue ma recherche ...

Default serail port setting : 9600, N, 8, 1
Pairing code : 1234
Running in slave role: Pair with BT dongle and master module

Peut etre qu'en attendant la bonne notice tu peux parier sur une configuration par défaut exploitable si le module est en mode esclave (serveur) et qu'il est visible et a bien le code pin 1234
Pour Android si mes souvenirs sont bons le profile BlueTooth SPP n'est apparu qu'après la version 1.6

C'est ce que j'ai fait au début.
Je vois bien le module, je peut l'appairer a mon smartphone ou a mon PC mais je ne vois aucun service associé. Je m'attendais a voir sur mon PC (ubuntu 10.10) un nouveau port série apparaitre après connexion bluetooth ... Il n'en est rien. Ça ne fonctionne peut être pas comme ca ?!

Features:

  1. Wireless serial bluetooth port.
  2. With free power adapter bottom board come with well power regulator.
    User can connect 3.3 to 5VDC and connect TX and RX to your control IO (general 3.3 to 5V digital input output of MCU or arduino IO is ok, or general TLL IO)
  3. Easy to connect this module with PC, just search and key "1234" passcode.
  4. With white SMD LED on the adapter board, can see the Bluetooth connection status.

Step to connect:

  1. Connect the wiring, power up, while the device is not connected, the bluetooth module board has a white LED flashing
  2. At PC side, search bluetooth device.
  3. Found name called "LINVOR" device
  4. Connect it, and passcode is "1234"
  5. While connection is ok, you can see the LED become always on.
  6. Enjoy

Basically, user can only use 2 to 5 pin in most of the application
PIN NAME FUNCTION
1 KEY For configuration use (normally not connected)
2 VCC 3.3 to 5V input
3 GND Ground
4 TXD TX transmit pin
5 RXD RX receive pin
6 STATE Connection status

Industrial serial port bluetooth, Drop-in replacement for wired serial connections, transparent usage. You can use it
simply for a serial port replacement to establish connection between MCU and GPS, PC to your embedded project and etc.

Computer and peripheral devices
GPS receiver
Industrial control

MCU projects
Default serail port setting : 9600, N, 8, 1

Pairing code : 1234
Running in slave role: Pair with BT dongle and master module

Usage
Coupled Mode: Two modules will establish communication automatically when powered.
PC hosted mode: Pair the module with bluetooth dongle directly as virtual serial.

Bluetooth protocal : Bluetooth Specification v2.0+EDR
Frequency : 2.4GHz ISM band
Modulation : GFSK(Gaussian Frequency Shift Keying)
Emission power : <=4dBm, Class 2
Sensitivity : <=-84dBm at 0.1% BER
Speed : Asynchronous: 2.1Mbps(Max) / 160 kbps, Synchronous: 1Mbps/1Mbps
Security : Authentication and encryption
Profiles : Bluetooth serial port

CSR chip : Bluetooth v2.0
Wave band : 2.4GHz-2.8GHz, ISM Band
Protocol : Bluetooth V2.0
Power Class : (+6dbm)
Reception sensitivity: -85dBm
Voltage : 3.3 (2.7V-4.2V)
Current : Paring - 35mA, Connected - 8mA
Temperature : -40~ +105 Degrees Celsius
User defined Baud rate : 4800, 9600, 19200, 38400, 57600, 115200, 230400,460800,921600 ,1382400.
Dimension : 26.9mm13mm2.2mm

Pin definition :

PIO8 connects with LED cathodea with 470ohm series resistor in between. LED NEGATIVE connects to ground. It is used
to indicate the module state. After powered on, flashing intervals differ in different states.

PIO9 is used to control LED indicating paring. It will be steady on when paring is successful.
PIO11, module state switching pin. HIGH -> response to AT command; LOW or floating -> regular work status.
With build-in reset circuit, reset is completed automatically after powered on.
Steps to set to MASTER:
Set PIO11 HIGH with a 10K resistor in between.
Power on, module comes into AT Command Response Status
Open HyperTerminal or other serial tool, set the baud rate 38400, 8 data bits, 1 stop bit, no parity bit, no Flow
Control

Via serial port, send characters "AT + ROLE = 1 r n",if successful, return "OK r n", where r n is carriage return.
Set PIO11 LOW, re-power, then in Master state, automatically search for slave module and connect.

Pour la doc des commandes AT, il faudrait essayer ceci:
http://cgi.ebay.fr/V2-0-Bluetooth-serial-module-transmission-module-Slave-/170668829934?pt=LH_DefaultDomain_0&hash=item27bca7acee#ht_6466wt_899

Je mets le texte en copie si le lien ebay ne fonctionne plus...

***CSR Bluetooth chip, Bluetooth V2.0 protocol standards
***The operating voltage of serial port module is 3.3V
***The user can set the baud rate as 1200,2400,4800,9600,19200,38400,57600,115200

***The core module size is: 28mm x 15 mm x 2.35mm
***Current: pairing 20 ~ 30MA, paired 8MA
***Sleep current: no sleep
***Can use in the GPS navigation system, utility meter reading systems, industrial control systems on-site mining.
***Seamlessly connect Bluetooth laptop, computer and Bluetooth adapters, PDA and other devices


***Note :
 the module is slave , can communicate with the master module  ,but the communication between masters or between slaves can not do ,this is very important .The slave module can communicate pairing with computers, mobile phones and other Bluetooth  devices .

***Factory default parameters:
Slave, baud rate: 9600, N, 8,1. Pairing Passcode: 1234; To require the host mode, specify when the next one.

AT command set is as follows:
1, test communications
Send: AT (return OK, send again after about a second )
Return: OK

2, change the Bluetooth serial port baud rate
Send: AT + BAUD1
Returns: OK1200

Send: AT + BAUD2
Returns: OK2400

 

1---------1200
2---------2400
3---------4800
4---------9600
5---------19200
6---------38400
7---------57600
8---------115200
9---------230400
A---------460800
B---------921600
C---------1382400

Not recommended for use in more than 115200 baud rate, signal interference make the system unstable.
After setting more than 115,200 ,can not use with a computer, if so ,you have to use the microcontroller programming to set more than 115200 baud rate and re-use this to send AT command set baud rate low
Once you set the baud rate with AT command , the next time do not need to set again, you can  save the baud rate when power is off.

3, change the Bluetooth name
Send: AT + NAMEname
Returns: OKname
Parameter name: the name to be set,is that Bluetooth can be searched. 20 characters or less.
Example: Sending AT + NAMEbill_gates
Back OKname
Then the Bluetooth name to bill_gates
Parameters can power-off to save, just modify one time . PDA terminal services can see the changes after refreshing the Bluetooth name.

4, change the Bluetooth pairing password
Send: AT + PINxxxx
Returns: OKsetpin
Parameters xxxx: password pair to be set, 4 bytes, this command can be used in the master machine or slave. Adapter or cell phone is asked to enter the pairing password when window pop-up, then manually enter this parameter, you can connect the slave machine.  
Example: 
Sending AT + PIN8888
Back OKsetpin
Bluetooth passkey is changed to 8888 ,module pair at the factory default password is 1234.
Parameters can power down to save, just modify one time.

Package :Bluetooth Serial Module (slave)

Est-ce que ça fonctionne???

La documentation plus détaillée que chicotore vient de poster laisse penser que par défaut le module est en mode 'slave' , visible et qu'un simple appairage devrait permettre au PC ou au smartphone de voir (sans intervention sur le module) le service SPP fournit par le module. Etonnant qu'Ubuntu ne le voie pas...
Avec ce module et cette doc je m'attendrai également à un fonctionnement sans aucun re-parametrage par commandes AT. Que fait la led ?

Step to connect:

  1. Connect the wiring, power up, while the device is not connected, the bluetooth module board has a white LED flashing
  2. At PC side, search bluetooth device.
  3. Found name called "LINVOR" device
  4. Connect it, and passcode is "1234"
  5. While connection is ok, you can see the LED become always on.
  6. Enjoy

Basically, user can only use 2 to 5 pin in most of the application

C'est du moins ce que je comprend avec cette documentation très sommaire (les modules FreeMove ou Roving Networks) que j'ai utilisé ont des docs de plus de 20 pages.......juste pour le profil SPP

Le basculement en rôle Master n'est ni nécessaire ni souhaitable dans ton appli ou la carte Arduino attendra que le terminal Android prenne l'initiative de la liaison.

J'utilise également Ubuntu et sur le plan de l'ergonomie de la gestion centrale du BlueTooth il est encore un peu en retard sur la concurrence ...

Merci a tous !
Bon si je comprend bien, la programmation du module n'est pas vraiment en cause.
J'envoyais les commandes AT depuis un programme dans Arduino. Je vais connecter le module sur le port série de mon pc et les envoyer par un terminal pour m'assurer de la conf du module en pouvant voir le retour des commandes que j'envoie.

Me reste qu'a mettre la main sur un MAX232...
Je vous tiens au jus !

La led, même après "apairage" clignote rouge rapidement.

Si la doc correspond bien au module il y aurait echec de l'appairage

PIO9 is used to control LED indicating paring. It will be steady on when paring is successful

Le module BT est-il vu sous le nom 'LINVOR' comme dans la doc de chicotore ?
L'alimentation est-elle suffisante ? (les modules BT ont besoin de courants dépassant 100mA pendant de brefs instants)
LINVOR est peut être le 'sésame' !!!
ça renvoie vers des marchands sérieux (Sure Electronics) et des utilisateurs comme celui là :
http://profmason.com/?p=1479
Pour ton usage il n'y aura peut être même pas à utiliser de commandes AT, la config usine devrait suffire.
Voilà déjà un début de documentation qui correspond peut être à ton module CMS

GP-GC021_Ver1.0_EN.pdf (437 KB)

Oui, son nom est bien linvor.
La diode clignote comme ca des la mise sous tension du module.
Appairé ou pas, elle ne change jamais d'état !
Ceci dit il y a peut être une différence entre appairé et connecté ! La diode ne changerai t'elle pas d'état une fois que le module serait connecté au un autre périphérique BT ?
Étant donné que je ne détecte pas de service sur le module, je ne peut pas m'y connecter. Le module BT est donc disponible et clignote rapidement pour le signaler !