Vario Bluetooth pour XCTrack / LK8000 sur vos tablettes ou smartphones

Bonjour à tous,

Si vous cherchez à équiper vos tablettes ou smartphones d’un capteur de pression, voici une solution simple que j’ai rapidement développé pour un ami, peu onéreuse (25€) et qui solutionnera votre problème de vario GPS peu précis sur XCTrack ou LK8000.

Il faudra vous procurer:

  • Un Arduino Nano
  • Un capteur GY-68 BMP180
  • Un module bluetooth HC-05
  • Une résistance de 20kOhms
  • Une résistance de 10kOhms

Les connexions:

  • Le capteur GY-68 alimenté sur le 3V3/GND de l’Arduino, SDA connecté sur A4, SCL connecté sur A5
  • Le module HC-05 alimenté sur le 5V/GND de l’Arduino, TX connecté sur D2, la résistance de 20kOhms connectée entre RX et GND, la résistance de 10kOhms entre RX et D3.
    Il est possible de tout intégrer de manière assez compacte. Le module que j’ai monté fait la taille d’une clé USB.

Le code à flasher dans l’Arduino :
https://create.arduino.cc/editor/benjiper/14f4df2c-5734-4a68-8076-1261089be1a9/preview
Certaines parties de ce code sont tirées de différents projets existants.

Fonctionnement:
Une fois alimenté par son mini USB, connecter le module à votre téléphone ou tablette (nom: HC-05, mot de passe: 1234), puis configurer XCTrack ou LK8000 afin d’utiliser un baromètre externe. Le module enverra des trames NMEA LK8EX1 (vario, altitude, température,…).

Et voilà, ne vous reste plus qu’à profiter d’un vrai vario sur vos tablettes !

Enjoy ! :ppte:

Ben de Vari’Up

PS: Pour ceux qui veulent tester leurs modules, j’ai conservé l’envoi des trames NMEA sur l’USB.

Pour les intéressés, voici quelques images du module fini:

https://drive.google.com/open?id=0B9a778O4GKoNWXFJWkpTSlFIS28

https://drive.google.com/open?id=0B9a778O4GKoNWXFJWkpTSlFIS28

https://drive.google.com/open?id=0B9a778O4GKoNUElfLV9EcG95UTg

https://drive.google.com/open?id=0B9a778O4GKoNUElfLV9EcG95UTg

https://drive.google.com/open?id=0B9a778O4GKoNS0UtYUd1NWRDbDA

https://drive.google.com/open?id=0B9a778O4GKoNS0UtYUd1NWRDbDA

https://drive.google.com/open?id=0B9a778O4GKoNOURSc05PdE9NbFU

https://drive.google.com/open?id=0B9a778O4GKoNOURSc05PdE9NbFU

karma+ pour l’esprit open et la réalisation !

Super merci. Un peu de bricolage, c’est cool!

Est-ce que tu as aussi un vendeur de prédilection chez qui on peut trouver les 3 composants spécifiques?

Hello Ottaflodna !

J’ai trouvé un vendeur qui a les trois éléments principaux sur Ebay.
http://www.ebay.fr/usr/v-elec?_trksid=p2047675.l2559

A plus !

J’ai entre temps (WE pluvieux à occupper :wink: ) tenté ma chance chez banggood.com, ils proposent les 3 composants aussi, comme ça je pousse l’expérimentation jusqu’au bout.
Vu l’investissement, j’ai pas risqué ma vie.

L’intégration à base de papier bulle translucide (à base de l’emballage des composants recyclé :eclaircie:) lui donne plus une carrure de doigt de bûcheron que de clé USB, mais on voit les LED qui clignotent et ça doit supporter un peu la maltraitance.

Petit retour d’expérience. C’était mon tout premier contact avec le monde Arduino. Ça fourmille de tutos sur le net: ça aide.

Fournisseurs:

  • des 3 composants achetés chez Banggood, la carte “arduino-like” et le module BT fonctionnent, le capteur de pression délire complètement, et les délais de livraison sont assez long;
  • en revanche le vendeur eBay suggérée par Benjiper m’a livré super vite, et tout marche;

Réalisation:
Dans la version proposée par Benjiper, la transmission bluetooth ne fonctionnait pas: on aurait dit que les trames envoyées étaient incomplètes. Après un peu d’investigation, j’ai modifié deux choses:

  • j’ai supprimé le pont diviseur de tension (et donc connecté directement RX à D3), il semblerait que mes deux cartes sortent un truc plus proche du 3.3V que du 5V annoncé… voir si mon module BT supporte ça longtemps;
  • j’ai modifié la vitesse du BT de 38400 à 9600 (ligne 27 du code).
    Et ne me demandez pas pourquoi, mais ça marche comme ça.

Donc l’avantage, c’est qu’il n’y a pas besoin de résistance chez moi, ça fait toujours quelques soudures de moins à foirer faire.

Il me reste la partie la plus cool à faire: tester en vol! :vol:
Entre le réglage de la moyenne mobile dans le code embarqué, du lissage et de la constante de temps de XC Track, j’ai encore de quoi m’amuser un peu.

Donc pour conclure, grand merci à Benjiper pour le tuyau de départ.
Il n’y a plus qu’à poursuivre avec l’intégration d’une petite batterie embarquée, histoire de ne pas avoir à balader un câble USB. La suite au prochain épisode.

Eh bien super ! :bravo:

Il est possible que ton module baro intégrait déjà un level shifter ou équivalent, du coup, pas besoin de ce pont !
Pour la vitesse, cela fonctionnait sur mon Yotaphone et sur une tablette Android mais il est possible que la vitesse soit un peu haute pour certains appareils. ( Attention à ne pas trop la descendre car ton vario perdra en nombre d’ acquisition/seconde)
Attention aux infrarouges qui pourraient passer à travers ton papier bulle, certains capteurs y sont sensibles ! Fais le tourner sur lui même au soleil pour voir si c’est le cas. ( Je sais que ça l’était avec nos capteurs de chez Measurement Specialities des Vari’Up Nano avant de changer la matière du boitier)

Du coup, prix total de la chose ?

Enjoy !

Ben de Vari’Up

Non, a priori les sorties logique de ma carte Arduino sont déjà plus proche de 3.3 V que 5 V… donc avec le pont ça donnait plus que du 2 V et des brouettes.
Je pense que c’est plus une question de cartes Arduino d’origine pas vraiment certaine.

La calibration dans XC Track me dit que j’ai toujours bien mes 3 mesures par seconde… donc pour la vitesse ça roule.

Ah ouais, bien vu. Je ferai un test à l’occasion.

Chez Banggood, 9.47 CHF soit 8€20 en gros au taux du jour, frais de port inclus, inclus aussi le capteur qui ne fonctionne pas :tomate:
Chez le marchand eBay, 20€ frais de port inclus.

Et bien se marrer en se rendant compte que je suis une grosse brêle avec un fer à souder dans la main, ça n’a pas de prix :ppte:

J’ai poursuivi un peu le développement parce que je trouvais la batterie USB trop encombrante.

En alimentant la carte par le Vin avec une pile 9V, ça marche. Et contrairement à ce que j’ai pu lire ici ou là, le 3V3 qui alimente le capteur de pression marche aussi même si l’USB n’est pas alimentée.
J’ai ajouté un pont diviseur pour mesurer la moitié de la tension d’alimentation avec la borne A7, en espérant en tirer une indication du niveau d’autonomie de la batterie et ne pas trop consommer de courant inutilement dans le pont diviseur.

Le code est là: https://create.arduino.cc/editor/ottaflodna/b2760f96-9815-4e4c-a5f7-e3f4d233c959

Bref, j’ai un petit vario bluetooth.

Bonjour,

j’ai aussi fait le montage du vario avec arduino nano. mais j’ai un soucis car étant vu en Bluetooth par xcsoar (hc05) et/ou ma tablette il ne transmet pas de données.
Question :

  • Comment puis je vérifier que le capteur est bon ( j’ai vu que quelqu’un avait un probleme avec un capteur acheté chine comme moi)
    sur xcsoar ( avec pilote generic ou lxnav ) je suis connecté mais pas de données affiché dans periph.

J’ai aussi se message d’erreur au bout d’un certain temps sur le téléversement
Le croquis utilise 14124 octets (45%) de l’espace de stockage de programmes. Le maximum est de 30720 octets.
Les variables globales utilisent 1063 octets (51%) de mémoire dynamique, ce qui laisse 985 octets pour les variables locales. Le maximum est de 2048 octets.
Une erreur est survenue lors du transfert du croquis

Merci d’avance si vous avez une réponse, en attendant je cherche aussi de mon coté… :fume:

Gpat :pouce:

Pour la vérification:

  • j’ai utilisé Bluetooth Terminal HC-05 (application Android) pour lire les trames reçues sur mon téléphone;
  • tu vois si tu reçois des trames qui correspondent bien à la spécification du LK8000 (“LK8EX1,pressure,altitude,vario,temperature,battery,*checksum”) ou des trucs chelous (j’avais ce soucis avec le pont diviseur, je ne recevais pas les trames complètes donc XCTrack n’en faisait rien;
  • dans la trame lue (tu peux aussi l’avoir dans un terminal série si tu es branché en USB), tu vois tout de suite si la valeur de la pression, de l’altitude et du vario sont réalistes ou bien complètement farfelues.

Et pour info, le catpeur a l’air sensible aux UV également: un coup de soleil sur le vario et c’était une vraie symphonie :slight_smile:

salut,

Merci pour ton retour…
j’ai testé le baromètre avec un petit soft trouvé sur internet et connecté sur un arduino uno, il fonctionne. du coup je vais enlever le pont diviseur et refaire un test.

j’essayerai aussi ton soft (Bluetooth Terminal HC-05 ) avec mon phone, mais il le voyait deja le hc-05 c’est juste qu’il n’y avais pas de trames.
pour le capteur sensible au soleil y peut être d’autres modèles a essayer!!!

question: la précision est bonne ?

te tiens au courant

Gpat

Bon c’est pas gagné… :grrr:

je ne vois aucune trame ni sur lk800, ni sur xcsoar et ni sur terminal bluetooth hc-05.

pige plus, pourtant y a pas grand chose comme câblage ou alors y autre chose mais je ne sais ou chercher

Bonsoir,

j’ai réussi a faire apparaitre des trames sur lk800 et xcsoar, Mais en remplaçant mon arduino nano ( HS? ) par un arduino uno que j’avais en stock
Mais je dois mettre le port sérial à 9600b sinon j’ai des caractères cabalistiques. Et je n’utilise pas de pont diviseur.

Prochaine étape trouver un autre arduino nano et eventuelement ajouter un buzzer. :ppte:

Bonjour,

J’ai également fait le bricolage, merci à tous pour le partage.
J’ai du moi aussi enlever le pont diviseur pour obtenir des trames régulières. Par contre mon capteur de pression indique 235 Pa.
Il y a une calibration à faire? l’indication de l’altitude dans la trame est dans quelle unité le mètre?
Merci

est-il possible de changer gy68 à gy 63 ms5611 capteur

Hello,

bien sûr, il faut juste intégrer la bibliothèque Arduino du MS5611 ou 5607 et adapter le code.
Je pense qu’il est facile de trouver des exemples sur le net.

  J'utilise google translate alors excusez-moi pour une mauvaise langue. Je ne suis pas familier avec le programme. Mais je ne suis pas sûr de quelle partie du code arduino je dois changer?

Salut,

Si tu réussi,ça m’intéresserai car la précision est meilleure. Et je suis pas très fort en codage…

Merci d’avance :ppte:

patrick