mercredi 17 décembre 2014

Mod DJT FrSky pour Telemetry via Bluetooth / Android Phone


L'idée de départ est d'avoir la tension de la batterie Lipo, au sol.
C'est soit on mod la 9XR et le module DJT afin que l'affichage soit sur la 9XR mais on doit flasher son firmware...
soit on ne mod que le DJT
Les explications d'origine sont sur ; Adding_bluetooth_to_FrSky_DJT_DFT_telemetry_module

Je propose d'ajouter à l'intérieur du boitier un module Bluetooth SPBT2632C2A (voir mon post)

et d'utiliser le 3.3V disponible sur le module, mais de désolidariser (cut) la piste venant de la pin 12 du level shifter sipex 3232 (c'est lui qui permet d'avoir du RS232 à l'extérieur, il inverse l'UART soit dit en passant).
Donc on coupe uniquement sur la ligne RX et on vient se greffer directement sur l'entrée RX UART du microcontrôleur STM32F103 du module DJT. On la relie donc à la sortie TXD du module BT SPBT2632CA (pin 14 TXD).
La ligne TX du DJT est à relier au RXD  du SPBT2632CA (pin 13 RXD).

On peut aussi utiliser un autre module Bluetooth 3.3V.

Je teste et je vous dirai ;-)
Stay tuned.
Edit : ça marche ! je continue le blog :


 Sur l'image ci-contre, on voit les modifications qu'il faut apporter.



 



Une fois les 4 fils soudés sur le module DJT (j'ai utilisé du fil à wrapper, désolé pour les couleurs, je n'avais qu'une seule bobine bleue), il faut les souder sur le module BT, ce qui est plus facile.
Ne pas oublier de souder également la pin CTS (Clear To Send) à la masse.
Tester d'abord comme ça avant de scotcher et de remettre dans le boitier. Faîtes surtout attention à connecter correctement le RX du DJT au TXD du Bluetooth et vice versa.


Après la modification

Utilisez l'application Android FrSky :


Ceci est une capture. Une fois connecté par Bluetooth au module, le téléphone Android montre en vert la connection Bt Up ansi que la qualité de la liaison radio et les tensions transmises des ports analogiques AD1 et AD2.
En cochant les cases "haut parleur" et "Cyclic Speaker On", l'application lit, par synthèse vocale, les valeurs.
On doit configurer un facteur d'échelle pour lire les valeurs physiques (tension ou...)

Bonne connexion.




module Bluetooth SPBT2632C2A

J'ai un module Bluetooth que j'utilise en "Cable Replacement"
c'est à dire en protocole SPP pour relier un microcontrôleur (ou équivalent) au PC équipé de BT.

http://www.st.com/web/en/catalog/sense_power/FM1968/CL1976/SC1324/PF253470?s_searchtype=keyword#

http://fr.farnell.com/stmicroelectronics/spbt2632c2a-at2/module-bluetooth-class-2/dp/2428785

C'est un module intéressant car il est petit, antenne pcb intégré, pas trop cher (19 USD), bien que sur ebay y a encore des modules moins chers...
et surtout on peut le souder à la main, car il a des pins du type : demi pad
pas comme le module LMX9838 qui est en LGA et donc où on doit avoir un four à refusion pour le souder...

Il s'alimente en 3.3V où même 2.5 V mais est tolérant à 5V sur ses pins RX, TX, RTS, CTS (que j'ai câblé à la masse car je n'utilise pas de contrôle de flux matériel, _je sais, c'est pas bien ;-) mais c'est plus simple : 3 fils suffisent après avec le host.

Il est livré par défaut en 115200 bds
mais j'ai voulu le reprogrammer en 9600 bds en envoyant des commandes AT depuis le host (microcontrôleur dspic)

je ne comprenais pas pourquoi il n'entrait pas en séquence de commande ("Escape sequence" ou séquence d'échappement ne marchait pas)

En fait il faut vraiment envoyer, sans les caractères \r\n ni de " "
^#^$^%
et attendre 2s
puis envoyer des ordres comme le passage par défaut en 9600 bds (c'est ce que je voulais) : AT+AB ChangeDefaultBaud 9600
puis repasser en mode mode Bypass (câble replacement)
alors qd on allume par défaut il est en 9600 (au lieu de 115200) et aussi en mode Bypass, c'est à dire câble replacement


un bout de code, la séquence en commentaire ne doit être faite qu'une seule fois pour sa reprogrammation

void InitUART ()
{
    U1MODE = 0x8000;    // enable UART1, 8 bits, 1 stop bit, no parity, RX normal
    U1STA = 0x0000;
    U1BRG = ((FCY/16)/BAUD) - 1;    // set baud rate
    RXPtr = &InData[0];        // point to first char in receive buffer
    Flags.CheckRX = 0;            // clear rx and tx flags
    _U1RXIF = 0;    // clear interrupt flag
    _U1RXIE = 1;            // enable RX interrupt
    _U1TXIF = 0;        // clear interrupt flag
    Flags.SendTX = 0;
    Flags.SendData = 0;        // clear flag
    SeqComm=SeqCommMax;
    _UTXEN = 1;           // Initiate transmission

//// Reprogram default Baud of    St SPBT2632C2A (ONCE only)
//    TXPtr =&"^#^$^%";
//    SendMsg();
//DelayNmSec(10000);
////    TXPtr =&"AT+AB ChangeBaud 9600\r\n";
//    TXPtr =&"AT+AB ChangeDefaultBaud 9600\r\n";
//    SendMsg();
//    TXPtr =&"AT+AB Bypass\r\n";
//    SendMsg();

-- 

jeudi 18 septembre 2014

équinoxe d'automne et cadran solaire


Nous approchons de l'équinoxe d'automne (23 septembre).
C'est une date particulière de l'année, où la durée du jour devient égale à celle de la nuit.

Sur le cadran solaire, cela correspond au parcours de l'ombre du style sur la ligne de l'équinoxe (trait noir)
Vous pouvez le simuler sur l'application java de la page http://baghli.com/cs/
Il suffit de sélectionner la date à l'aide de son curseur (slider) et de bouger le curseur de l'heure de la journée.

Ne ratez pas l'observation directe de notre cadran solaire (Faculté de Technologie, sur le mur sud du bâtiment de l'administration).
Tout au long de cette journée (visible lundi et mardi ), la pointe de l'ombre parcourra la ligne de l'équinoxe.
Ce phénomène se reproduira à nouveau au début du printemps, le 20 mars.

Exemple à 15h :