Installer et utiliser le bluetooth avec un VESC

Salut !

Pour faire suite à “VESC & Bluetooth - Un Wattmeter à 3€, ça vous dit ?”, voici un tutoriel pour installer et configurer le module bluetooth sur un VESC v4.

Note: les photos sont celles d’un VESC 4.12 qvec un connecteur PWR_COMM à 7 pins.
Des versions précédentes ont un connecteur PWR_COMM 6 pin.
Il suffit de faire abstraction du dernier pin du connecteur sur l’illustration ci-dessous (repéré en orange).

Présentation :

Le VESC dispose d’un port de communication série UART sur le connecteur PWR_COMM.
En y connectant une petite carte électronique qui relaye les données du port série à travers une connexion bluetooth, vous permettez à n’importe quel appareil bluetooth de dialoguer avec le VESC, sans fil.
Ici, on utilisera un smartphone avec une application créée pour ça.

Matériel requis :

  • Un VESC :mrgreen:
  • Un module Bluetooth HM-10 (http://www.ebay.fr/itm/Arduino-Android- ... SwuhhXVobU)
  • Un connecteur Dupont 6pin femelle sur au moins un côté (sera coupé) (http://www.ebay.com/itm/6PCS-6-pin-Fema ... 0958910020)
  • Un connecteur JST-PH 7pin femelle (pour nouveaux VESC, pour les anciens, 6 pins) (http://www.ebay.com/itm/JST-2-0mm-PH-7- ... 1367876323)
  • Uniquement si personnalisation du Bluetooth:

  • 1x Arduino (Nano, Uno, Mega)
  • 1x câble USB correspondant (dépend du Nano)
  • 1x ordinateur avec l'IDE Arduino (logiciel Arduino)
  • ETAPE 1 : LA CONNEXION ELECTRIQUE

    Le schéma de câblage :

    Où se trouve le connecteur PWR_COMM sur le VESC ?

    Ici :

    Le petit plus : faire une marque sur son connecteur pour ne pas se tromper de sens pour le branchement du module bluetooth :wink:


    Note : ici on peut apercevoir des résistances sous gaine thermo. Elles ne sont pas nécessaires, il s’agit d’une erreur de ma part. :wink:

    ETAPE 2 : LA CONFIGURATION DU MODULE BLUETOOTH (FACULTATIF)

    Cette étape est facultative, il est possible d’utiliser les paramètres par défaut pour que cela fonctionne.

    Ici, nous allons configurer le module bluetooth à l’aide de commande AT.

    Connecter le HM10 sur les pins 10 (Tx HM10) et 11 (Rx HM10), 5V et GND de l’Arduino.

    Ouvrir l’IDE Arduino.
    Installer la librairie “SoftwareSerial” et téléverser (uploader) le sketch suivant (Arduino Uno et Nano. Marche aussi avec Mega, mais le plus simple est d’utiliser alors directement un autres port série disponible plutôt que de créer un port série Software).

    SoftwareSerial mySerial(10, 11); // RX, TX

    void setup() {
    // Open serial communications and wait for port to open:
    Serial.begin(9600); //moniteur série sur PC
    while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
    }

    // set the data rate for the SoftwareSerial port
    mySerial.begin(38400); //baudrate du HM10
    }

    void loop() { // run over and over
    if (mySerial.available()) {
    Serial.write(mySerial.read());
    }
    if (Serial.available()) {
    mySerial.write(Serial.read());
    }
    }

    Tout en maintenant enfoncé le petit bouton sur le module bluetooth, brancher le câble USB de l’Arduino.

    NE PAS RELACHER LE BOUTON PENDANT TOUTE L’OPERATION !
    Note : s’il n’y a pas de bouton sur le module, il est possible de faire sans. Malheureusement, toutes les fonctions ne seront pas disponibles (comme le changement du pin code).
    Dans ce cas, il faut changer la vitesse de communication en passant de 38400 à 9600 (vitesse par défaut des modules)

    Ouvrir le moniteur série de l’IDE Arduino, configurer en 38400 bauds (ou 9600, en accord avec le sketch) et “Les deux NL et CR”.

    Puis entrer les commandes suivantes :


    AT //Demande si le module est bien en mode de confguration. Doit renvoyer OK.
    AT+NAME? // Demande le nom du module. Doit renvoyer HC-05 si par défaut.
    AT+NAME=nomdumodule //Donne un nouveau nom au module. Doit renvoyer OK.
    AT+NAME? //Redemande le nom au module. Doit renvoyer le nom renseigné à la commande précédente.
    AT+PSWD? //Demande le code jumelage. Doit renvoyer 1234 si par défaut.
    AT+PSWD=xxxx //Donne un nouveau code de jumelage au module. Doit renvoyer OK.
    AT+PSWD? //Redemande le code jumelage. Doit renvoyer le code renseigné à la commande précédente.
    AT+UART? //Demande la config. de comm. série. Doit renvoyer 9600,0,0 si par défaut
    AT+UART=115200,0,0 //Donne la nouvelle config de comm. série. Doit renvoyer OK.
    AT+UART? //Redemande la config. de comm. série. Doit renvoyer 115200,0,0.

    Si tout s’est bien déroulé, relâcher le bouton et débrancher le câble USB.
    Le module est configuré. :smiley:

    ETAPE 3 : LA CONFIGURATION DU VESC

    Dnas l’onglet App - General, activer “PPM and UART”
    (ajouter screenshot)
    Dans l’onglet UART, entrer :

    • Baudrate = 115200 si configuration lors de l’étape 2
    • Baudrate = 9600 si pas de configuration (par défaut)
      Ecrire les paramètres et rebooter le VESC
      (ajouter screenshot)

    Note : il est arrivé que le VESC ne prenait pas la vitesse écrite.
    Dans ce cas, repasser à 9600, écrire les paramètres et repasser à 115200. Rebooter.

    ETAPE 4 : L’UTILISATION

    Note : le module bluetooth 2.0 n’est pas compatible avec les iPhone puisqu’Apple a décidé de se faire son propre protocole dans son coin. :evil:
    Il est possible de remplacer le HC-05 par un HM-10 dont le buetooth (BLE 4.0) sera compatible.
    La connexion électrique est similaire.
    Par contre, côté app, c’est galère car il vous faudra compiler et installer tout seul l’appli (https://github.com/gpxlBen/VESC_Logger)

    Installer l’application “Vedder ESC Monitor” sur votre smartphone : https://play.google.com/store/apps/deta … er_monitor

    Note : Si vous utilisez Android 6 (Marshmallow) il faut aller dans Settings -> Apps -> VESC Monitor -> Permissions et activer le curseur en face de Storage sur ON (sera implémenté automatiquement plus tard).

    Une fois sur l’app, cliquer sur (logo BT), sélectionner le nom du périphérique que vous avez configuré (ou HC-05 par défaut) et de retour sur l’écran principal (avec les valeurs listées), appuyer sur le bouton “Play”.

    Les valeurs s’affichent et se mettent à jour.

    ETAPE 5 : EXPLOITER LES DONNEES ENREGISTREES

    Installer ES File Explorer.
    Dossier VESC_Monitor -> dossier avec comme nom la date du jour d’enregistrement.
    Sélectionner le fichier du ride concerné (l’heure du ride et le build figure dans le nom de fichier) et le transférer sur ordinateur (par mail par exemple).

    Utiliser VDLA pour exploiter simplement les données :
    http://www.gct-hp.de/VDLA/

    Pour Android 8 et + il faut flasher, voici un tuto :
    http://www.hangar42.nl/ccloader

    https://forum.arduino.cc/index.php?topic=393655.0

    Merci pour ton tuto, j ai commandé le module bluetooth et j’vais essayer de trouverun connecteur jst pas vendu par 10 mais ça a pas l’aire de courrir les rues du pH 7 pin

    tip top, je regarde ca quand j’ai du temps

    J’en ai commandé 10 de chaque (JST 7pin et dupont 6pin).
    Je peux vous en filer à l’unité. :wink:
    (Dupont 6pin encore en cours de livraison)

    top

    C’est pas plutôt des JST-PH 7pin male qu’il faut ? :?

    Non, les 7 zizis sont sur le VESC :stuck_out_tongue: :mrgreen: (voir la photo et le lien vers le connecteur)

    Je relis ça attentivement dans la journée !
    MERCI PIMOUSSSSSE !!!

    @pimousse

    Je suis connecté. :lol:

    Demain ride en mode sensored + connected :slight_smile:

    Yeah !!!
    Faut que je détaille la config du module aussi pour la personnalisation. J’en ai fait un 2e hier, cnest vraiment easy.
    Tu as des photos de ton câble avec les résistances ?
    Je trouve le mien un peu bof niveau pérennité.

    Yeah !!!
    Faut que je détaille la config du module aussi pour la personnalisation. J’en ai fait un 2e hier, cnest vraiment easy.
    Tu as des photos de ton câble avec les résistances ?
    Je trouve le mien un peu bof niveau pérennité.

    Je n’ai pas mis les resistances car dans mon stock je n’avais que du 1K :slight_smile:
    D’ailleurs je n’ai pas mis non plus le JST 7 Pin que tu m’as gentiment envoyé car je ne l’ai pas reçu (donc un 6 PIN fait très bien l’affaire).
    Pour en revenir aux resistances, si je les avait mises, j’aurais soudé la 2K directement au pins du modules BT en l’orientant vers la carte (un U à l’envers par rapport à ton schema), et l’autre je l’aurait faite passer sous de la gaine thermo. (c’est une des raison pour laquelle je n’aurais pas mis 2 x 1K en série: si je les avait mises j’aurais fait propre. Et la seconde est que je n’avais que 2 resistances de 1K et qu’il aurait fallu que j’en dessoude une 3e d’un de mes circuits imprimés :lol: )

    Hum ok. Apparemment, ça passe sans résistances.
    Pour ma part j’ai fait un connecteur avec une résistance 2k en U que j’ai soudé entre le fil GND et le RX en faisant fondre la gaine pour laisser découvrir les brins. Puis celle de 1k où j’ai coupé simplement le fil RX et qur j’ai mis au milieu.
    Gaines thermo dans tous les sens, ca marche impec et ca fait propre (je mettrai des photos).

    J’ai testé et je trouve ca trop mou au demarrage. (Genre le Ego me passe devant meme si c’est pas pour longtemps). Ce qui rend les montés difficiles. Je tiens a preciser que j’etais en 30A max mais j’etais dans cette config avant le passage en sensored (il ne s’agit pas de changer 2 parametres a la fois car apres on ne s’est plus de quoi viennent les changements) :slight_smile:

    (Tu t’es pas gourré de post ? :smiley: )

    Non, les 7 zizis sont sur le VESC :stuck_out_tongue: :mrgreen: (voir la photo et le lien vers le connecteur)

    Je ne pense pas que ce soit les 7 zizis qui déterminent M/F, mais plutôt le connecteur plastique.

    Exemple :

    http://www.ebay.fr/itm/JST-XH-1s-2s-3s- … 1xuACT5asQ

    Bien sûr que ça détermine ! :stuck_out_tongue:
    Un zizi = mâle
    Un trou = femelle

    C’est pas choisi au hasard ! :mrgreen:
    J’ai pas compris ton lien par contre. On voit les 2 (M et F).

    dans le lien, quand tu choisis le lipo femelle, tu as l’image du connecteur JST qui est soudé au circuit imprimé du VESC :slight_smile:

    Tiens, plus simple : http://www.componentshop.co.uk/leads-an … -connector

    Effectivement, vu tes exemples, tu as raison.
    Mais alors ce qui est étrange c’est que pour mes commandes sur ebay et cie, je suis resté sur ma logique et j’ai toujours reçu ce que je voulais… :roll:
    Merci pour cet éclaircissement en tout cas. :wink:

    @pimousse

    maintenant tout le monde sait que tu as un petit zizi :lol:

    Bon mon HC-05 ne fonctionne plus: il s’alimente, on peut se connecter dessus avec le tel, mais plus de communication, il est sourd.
    J’en ai un 2eme qui lui fonctionne (ce n’est pas un problème de parametrage).

    Donc je pense que les 2 resistances sont bien nécessaires.