Tracker APRS Arduino : la V2

3 mois après la première version du tracker (voir cet article), sa version 2.0 est disponible !

Cette nouvelle version corrige un gros défaut de la V1 : le signal de sortie n’était pas propre. Pour cela, j’ai simplement ajouté 2 filtres RC de fréquence de coupure 5kHz en cascade et un condensateur en série pour supprimer la composante continue du signal.

La sortie micro du tracker à l’oscilloscope sans filtre
La sortie micro du tracker avec les filtres et le condensateur

La liste des composants, le schéma et les autres infos utiles sont disponibles dans ce document :

Pour tout ce qui concerne la programmation de l’Arduino, voir l’article dédié à la V1 du tracker disponible ici (le programme Arduino est le même, seuls les filtres ont été ajoutés).

Pour ceux qui sont intéressés je propose des kits « tracker » qui contiennent le PCB et les composants nécessaires à la fabrication du shield. Pour plus d’infos : meteobruno@gmail.com

Tracker APRS Arduino

Dans cet article je vais vous présenter mon tracker APRS basé sur une Arduino UNO et un GPS de radiosonde.

Photo du shield monté sur son Arduino Uno

Présentation générale

Ce tracker est basé sur une Arduino UNO et sur un GPS de radiosonde. Il fonctionne avec un shield présenté plus bas. Pour fonctionner, il suffit de le brancher sur une alimentation 12V (ou sur une prise allume-cigare) et de le connecter à une radio. Le shield se charge de réduire la tension d’alimentation pour alimenter la carte Arduino, il se charge également de gérer le PTT et les différentes connexions.

Le matériel nécessaire :

  • Une carte Arduino UNO,
  • Un GPS de radiosonde ou tout autre GPS compatible avec la librairie TinyGPS++,
  • Un poste radio,
  • Le shield présenté plus bas.

Pour réaliser le circuit imprimé, voir la liste des composants dans la rubrique dédiée au shield.

Fonctionnement

Comme dit plus haut, ce tracker s’alimente directement en 12V, sur une prise allume cigare de voiture par exemple.

Schéma montrant le fonctionnement du tracker.

Le shield utilisé

Le shield utilisé est un shield que j’ai conçu avec des composants simples. Il a pour objectif de convertir le 12V en 5V afin d’alimenter la carte Arduino, et de gérer les connexions entre la carte Arduino, la radio et le GPS.

Afin de faciliter la conception du shield, j’ai découpé son schéma en plusieurs fonctions. Voilà le schéma global :

Schéma global du shield.
Liste des composants

Voilà la liste des composants nécessaires à la réalisation de ce shield :

NomTypeValeurAutre info
R1Résistance1k
R2Résistance2.2k
C2Condensateur polarisé1µFDiamètre : 5mm
Entre bornes : ~2,5mm
C1Condensateur polarisé10µFDiamètre : 6mm
Entre bornes : 5mm
D1Diode1N4007
D3Diode1N4148
D2, D4DELDiamètre 5mmCouleur au choix, D2 pour le PTT, D4 pour la mise sous tension
T1Transistor NPN2N2222Boitier TO-92
CI1Régulateur de tensionL7805
JP2Connecteur femelle1x3 pinsConnecteur de type pins Arduino
JP1Connecteur femelle1x4 pinsConnecteur de type pins Arduino
JP3Bornier à vis2 bornes

A cette liste il faut rajouter les différents pins males pour assurer l’assemblage avec la carte Arduino, soit des barrettes de:

  • 1 barrette de 1×6 pins,
  • 2 barrettes de 1×8 pins,
  • 1 barrette de 1×10 pins.
Le circuit imprimé

Il est possible de réaliser le montage sur une plaque à trous en faisant le montage avec des fils, mais le mieux est de le faire en circuit imprimé, chose que j’ai faite. Les composants sont des composants traversants, mais pour faciliter la mise en place des pins qui se connectent sur l’Arduino j’ai décidé de mettre les pistes côté composants.

Le PCB avec les emplacements des composants.

N’hésitez pas à me contacter par mail à l’adresse suivante pour avoir plus d’informations sur le PCB ou si vous voulez que je vous envoi le fichier EAGLE : meteobruno@gmail.com

La librairie Arduino utilisé

La librairie utilisée est celle de la V1 de la station météo APRS mobile et que j’avais présenté rapidement dans cet article.

Il s’agit donc de librairie aprslib, que vous pouvez télécharger ici.

La librairie contient 2 fichiers d’exemple : 1 premier fichier sans GPS, un second fichier, celui qui nous intéresse ici, nommé testaprslibgps. Ce fichier combine la librairie aprslib et la librairie Tinygps++ pour envoyer la position GPS par APRS. Pour utiliser le fichier, il faut donc installer la librairie Tinygps++, disponible ici.

Préparation de la librairie

Pour utiliser le fichier d’exemple utilisant le GPS, je vous conseille de copier le contenu de la librairie et le fichier d’exemple dans un même dossier comme ci-dessous :

Capture d’écran du projet Arduino

Une fois que vous avez copié les fichiers, il faut modifier l’appel de la librairie aprslib dans le fichier .ino. Pour cela, à la ligne 31, remplacez les chevrons par des guillemets comme sur la capture suivante :

Capture du fichier .ino pour la modfication de l’appel de la librairie

Vous n’avez ensuite plus de grosse modification à faire, il vous suffit d’adapter les champs à votre utilisation.

Personnaliser les informations de la librairie

Voyons maintenant comment adapter la librairie à notre utilisation et comme la personnaliser avec nos informations.

Pour commencer, il faut saisir notre indicatif. Cette étape se fait entre les guillemets de la ligne 65 du fichier .ino. Toujours dans le fichier .ino, vous pouvez modifier le commentaire APRS. Pour cela, modifier le contenu entre guillemets de la ligne 188 (attention, vous êtes limité à 30 caractères).

Nous allons maintenant modifier le contenu du fichier nommé config.h. A la ligne 43 vous pouvez modifier votre SSID. Voici une liste des SSID à utiliser en fonction des utilisations :

Liste des SSID, source : http://info.aprs.net/index.php?title=AprsStation

Toujours dans le fichier config.h, à la ligne 53 vous pouvez modifier le WIDE de votre trame.

Enfin, dans le fichier aprslib.cpp, vous modifier le symbole APRS sous lequel vous apparaitrez à la ligne 74 (par défaut c’est la table primaire qui est utilisée, mais en modifiant la ligne 71 vous pouvez chosir la table secondaire). Les tables de symboles sont disponibles ici. Personnellement, j’ai choisi de mettre le symbole de la voiture, donc le caractère « > » de la table primaire.


Capture d’une trame envoyée avec le tracker sur aprs.fi
Une nouvelle version du Tracker est disponible ici (le programme ne change pas)

GPS d’une radiosonde M10 avec une Arduino

Dans un précédent article nous avions vu comment rendre un GPS de radiosonde utilisable sur un ordinateur. Il est également possible de réutiliser ces GPS avec une Arduino.

Pour pouvoir réutiliser les GPS de radiosonde sur une Arduino, vous devez au préalable avoir coupé une piste et souder quelques fils, comme indiqué dans l’article dédié.

La librairie à utiliser

Pour les données du GPS nous soit compréhensibles, nous devons passer par une librairie ; il s’agit de la librairie TinyGPS++. Cette librairie vous permet d’interpréter facilement les trames NMEA émises par le GPS.

Connecter le GPS à l’arduino

Pour brancher le GPS sur l’Arduino, il suffit de suivre le câblage suivant :

  • GND du GPS -> GND de l’Arduino
  • VCC du GPS -> 3.3V de l’Arduino
  • TX du GPS -> pin 3 de l’Arduino
  • RX du GPS -> pin 4 de l’Arduino

J’ai pris comme exemple les pins 3 pour TX et 4 pour RX, mais il est bien entendu possible de les inverser ou d’en prendre d’autres comme les pin 7 et 8.

Utilisation de la librairie

Comme dit plus haut, la librairie est simple d’utilisation. Pour récupérer les données, il suffit de demander les données avec les focntions qui suivent et de les utiliser comme bon nous semble (les convertir, les afficher…) :

(gps.location.lat());

(gps.location.lng());

Ces 2 fonctions nous permettent de récupérer respectivement la latitude et la longitude en degrés.

gps.date.year()) ;

gps.date.month())

gps.date.day()) ;

Ces 3 fonctions nous permettent de récupérer respectivement l’année (2000+), le mois (1-12) et le jour (1-31).

gps.speed.kmph())

Cette fonction permet de récupérer la vitesse en km/h. Il est également possible de récupérer la vitesse en mps, mph ou knots en remplaçant le kmph par une de ces 3 unité.

Il est également possible de récupérer la direction, l’heure, le nombre de satellites reçus etc etc. La liste complète des fonctions est disponible sur cette page.

Liste des fonctions disponibles, cette liste est disponible sur le site de la librairie.

Vous pouvez désormais réutiliser les GPS que l’on trouve sur les radiosondes M10 avec une carte Arduino !

Les données que donne un des fichier exemple de la librairie. Lorsque la capture d’écran a été prise, l’acquisition GPS n’était pas parfaite, c’est pour cela qu’il y a des astérisques.


Réutilisation du GPS d’une radiosonde M10

Réutiliser les GPS présents sur les radiosondes permet d’avoir des GPS de bonne qualité pour un coût minime. Nous allons voir comment réutiliser ses GPS de manière très simple.

Les modifications à apporter sur la sonde

Pour commencer, afin de réutiliser le GPS, il faut effectuer quelques petites modifications sur la radiosonde elle même. La 1ere modification consiste à couper la piste entourée ci-dessous.

La piste à couper est entourée en jaune.

Après avoir coupé la piste, il faut maintenant connecter quelques fils. Il faut alimenter le GPS en +3.3V, ce qui veut donc dire que nous allons devoir souder un fil GND et fil VCC. IL faut ensuite venir souder le fil de TX et le fil de RX. Pour cela, nous allons suivre la datasheet du GPS :

Nous allons commencer par mettre le fil de masse. Vous avez 2 options : soit vous mettez le fil sur une des broches GND du GPS, soit vous faites comme dans l’image situé un peu plus bas et vous mettez le fil sur le plan de masse de la sonde (rond blanc).

Maintenant c’est au tour du fil VCC. Là aussi vous pouvez venir le mettre sur la broche VCC du GPS, ou faites comme sur l’image et vous le mettez sur la résistance située juste avant (la soudure est plus simple à faire), voir le rond rouge sur la photo).

Reste à mettre les fils de RX et de TX. Nous allons nous connecter à RXD-B et TXD-B, là il n’y a pas le choix il venir mettre les fils directement sur les broches (voir rectangle bleu).

Les différents fils à souder sur la radiosonde (Blanc : GND, Rouge : VCC, Bleu : TX / RX).

Utiliser ce GPS en USB

Maintenant que les modifications sont effectuées, nous pouvons connecter le GPS à un ordinateur par exemple. Pour le connecter à un port USB, il suffit d’y connecter un convertisseur USB / TTL.

Pour connecter le convertisseur au GPS, il suffit de la câbler de la manière suivante :

  • 3.3V du convertisseur -> VCC du GPS
  • GND du convertisseur -> GND du GPS
  • RX du convertisseur -> TXD-B du GPS
  • TX du convertisseur -> RXD-B du GPS

Vous pouvez ensuite brancher le tout sur un port USB de votre ordinateur. Pour paramétrer le GPS, j’utilise le logiciel du fabricant, à savoir Trimble GPS Studio.

Une fois le logiciel lancé, dans le panneau en haut, à droite de Connect to device, cliquez sur le menu déroulant et choisissez le port de votre GPS. Le panneau suivant s’affiche :

Saisissez les paramètres comme sur l’image ci-dessus et validez. Si tout ce passe bien, vous devriez avoir une fenêtre qui s’ouvre qui affiche les données. On peut augmenter la sensibilité du GPS en le passant sur Indoor. Pour cela, dans la fenêtre qui s’est ouverte, cliquez sur Receiver puis sur Configuration. Dans le panneau qui s’ouvre, passez Sensitivity sur Indoor (High) puis validez.

L’écran de configuration du GPS

Le GPS est maintenant configuré en mode « sensible », vous n’avez plus qu’à l’utiliser !

Trimble GPS Studio affichant les données du GPS sous forme d’interface, sous leur forme brute, et les différents satellites utilisés.

Un article pour utiliser ces GPS avec une Arduino est en cours de rédaction et sera bientôt disponible.


Cet article a été réalisé grâce aux travaux de Sylvain F1BSW sur les GPS des radiosondes, travaux disponibles ici.