Tracker APRS Arduino : la v4

La 4e version du tracker est disponible ! Je n »ai rien mis en ligne concernant la 3e version par manque de temps et parce que j »ai très vite développé cette dernière version.

Pour parler de la v4, les changements par rapport aux versions précédentes sont :

  • l »ajout d »un bouton poussoir permettant d »envoyer une trame manuellement sans déranger l »envoi automatique,
  • l »ajout d »un bouton à glissière qui permet de choisir entre 2 modes de fonctionnement (je reviendrai plus tard sur ces 2 modes de fonctionnement),
  • le remplacement du transistor de PTT par un optocoupleur, ce qui permet de s »adapter à tous les postes,
  • et quelques autres changements mineurs…

Fabriquer le PCB

La fiche de fabrication du PCB est disponible ici :

Quelques explications sur le shield

Les 2 boutons et le principe de mode de fonctionnement

Comme indiqué précédemment, 2 boutons ont été ajoutés dans cette nouvelle version. Le premier est un bouton poussoir : il permet d »envoyer manuellement une trame sans retarder l »envoi automatique. Par exemple, si vous avez choisi d »envoyer une trame toutes les minutes, et que vous appuyez sur le bouton 50 secondes après qu »une soit partie, vous enverrez la trame, et 10 secondes plus tard la trame automatique partira quand même.

Pour que l »envoi manuel fonctionne il faut cependant que le GPS soit connecté, reconnu par l »Arduino et il faut également qu »il fournisse une localisation.

Schéma du bouton d »envoi de trame

Le 2nd bouton est un bouton à glissière. Il permet de choisir quel mode de fonctionnement doit utiliser le tracker. Dans cette version, j »ai en effet ajouté la possibilité de créer 2 modes. Un mode est une combinaison commentaire + pictogramme.

Vous pouvez donc par exemple prévoir un mode voiture et un mode piéton. Le mode voiture utiliserait le pictogramme de la voiture et enverrait comme commentaire « en mobile ». Le mode piéton utiliserait lui le pictogramme du bonhomme qui marche et enverrai comme commentaire « en pédestre ». Pour passer d »un mode à l »autre, il suffit de commuter le bouton à glissière.

Schéma du bouton de changement de mode

Les différents indicateurs à LED

Cette version contient également des témoins LED supplémentaire. En plus de la LED 5mm verte pour la mise sous tension et de la LED 5mm rouge pour le passage en émission, le tracker comporte désormais 2 LEDs 3mm : une rouge et une verte.

Commençons par la LED 3mm rouge. Elle indique si le GPS n »est pas connecté et/ou reconnu mais aussi si les coordonnées qu »il renvoi ne sont pas au bon format. Dans le cas où le GPS n »est reconnu au bout de 5 secondes (donc s »il n »est pas ou mal connecté), la LED s »allumera et restera allumée. Pour refaire un test du GPS, il sera nécessaire d »appuyer sur le RESET de l »Arduino ou de couper puis remettre l »alimentation de l »Arduino.

Si le défaut est un format de coordonnées incorrect, la LED clignotera 3 fois lorsque le shield essaiera d »envoyer une trame. Dans ce cas, il ne sera pas nécessaire de redémarrer l »Arduino, car à la prochaine tentative d »envoi d »une trame le test sera de nouveau effectué.

Schéma de la LED de défaut GPS

La LED 3mm verte indique si le mode secondaire est activé. Si vous utilisez le bouton à glissière pour utiliser le 2nd mode de fonctionnement, cette LED s »allumera alors. Si par la suite vous commuter de nouveau le bouton pour retourner sur le mode principal, elle s »éteindra. C »est aussi simple que ça

Pour résumer, si cette LED est allumée, le tracker mettra dans la trame le pictogramme secondaire et le commentaire secondaire que vous avez configurés dans le programme (voir plus bas la partie programmation).

Schéma de LED d »activation du mode secondaire

Le connecteur de la radio

Sur cette version j »ai rajouté au connecteur radio un pin dédié à la masse de la radio. Cela permet de s »adapter aux radios qui utilise une connexion entre 2 fils pour passer en émission et non un sytème de PTT par mise à la masse. Si votre radio fonctionne dans le 1er cas, utiliser les pins MASSE_PTT et PTT_RADIO pour le PTT et connectez la masse de la radio au pin GND pour que la trame audio puisse être générée. Dans le cas où votre radio fonctionne par mise à la masse, il suffit alors de connecter ensemble les pins GND et MASSE_PTT, connectez les autres pins en suivant les noms.

Noms des pins du connecteur radio

L »alimentation électrique du shield

Le bornier d »alimentation n »a pas changé, il suffit de connecter le – et le + de la batterie en respectant le câblage suivant :

Câblage de l »alimentation sur le bornier

Le connecteur du GPS

Le connecteur du GPS n »a pas changé lui non plus, il récupère les infos du GPS et l »alimente en 3,3V. Son schéma de câblage est le suivant :

Schéma de câblage du GPS

Programmer le tracker

Les programme arduino du tracker est disponible ici.

Une fois téléchargé, ouvrez le avec l »IDE Arduino. Voici comment le personnaliser :

Changer l »indicatif

Allez le remplacer dans la ligne 79 du fichier .ino :

aprs.begin(« F4IAI »);

Modifier l »intervalle de temps entre 2 envois

Modifiez la valeur de la ligne 56 du fichier ino :

unsigned long interval1 = 30000; //intervalle de temps entre 2 trames exprimé en ms

Modifier les commentaires des modes

Toujours dans le fichier .ino, modifiez les textes à la ligne 241 pour le mode principal et à la 244 pour le secondaire (attention : pour les commentaires vous êtes limité à 30 caractères).

Changer votre SSID

Allez le modifier à la ligne 43 du fichier config.h :

define S_CALLSIGN_ID 9

Modifier les pictogrammes des 2 modes

Dans le fichier aprslib.cpp modifiez le caractère de la ligne 93 pour le mode principal et de la ligne 96 pour le mode secondaire.


Mon article sur la V4 du tracker est terminé. Comme d"habitude, je peux fournir les composants et le PCB nécessaires au tracker. Pour cela, contactez moi : enzo.becamel @ gmail.com

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 : enzo.becamel @ 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.