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.

Modification des grilles par défaut sur EAGLE

En règle générale quand nous utilisons un logiciel qui offre des options comme des grilles, nous utilisons toujours ou presque les mêmes paramètres. Saisir ces paramètres à chaque nouveau lancement du logiciel peut donc s’avérer pénible.

Afin d’éviter de devoir saisir les paramètres d’affichage de la grille sur les schémas et les boards à chaque lancement d’EAGLE, il est possible de modifier un script qui se lance avec EAGLE et qui contient nos préférences.

Le fichier à modifier

Le modifier script a été placé sur votre ordinateur lors de l’installation d’EAGLE. Il se trouve dans le dossier scripts de votre répertoire EAGLE et se nomme eagle.scr.

Pour le modifier, ouvrez le avec un éditeur de texte comme NotePad++, Sublime Text ou même le BlocNotes de windows.

Paramétrage de la grille pour les boards

Une fois le fichier ouvert, il faut taper les bonnes choses au bon endroit. Commençons par modifier la grille de l’interface pour les Boards.

Les paramètres de l’interface Board se trouvent après la ligne 9 du fichier :

Pour ma part je travaille avec une grille en points de 50mil (50mil pour la touche ALT); pour obtenir cette grille je dois donc taper les ligner suivantes entre le BRD: et le MENU  :

Grid Default;

Grid mil 50 1 dots on;

Grid ALT mil 25;

Ces paramètres sont donnés à titre d’exemple, vous pouvez adapter à votre utilisation en remplaçant les valeurs de telle sorte :

  • mil : unité de votre grille
  • 50 : espacement entre 2 points de la grille principale
  • 1 : facteur de multiplicité de la grille
  • dots on : affiche les points au lancement
  • 25 : espacement entre 2 points en appuyant sur la touche ALT
paramétrage de la grille pour les schémas

En suivant la même démarche que pour que les boards, vous pouvez modifier la grille de l’interface pour les schémas.

 Les paramètres qui concerne l’interface schéma se trouve après la ligne 17 du fichier :



Pour ma part, toujours en utilisant la même structure que pour les boards, j’ai paramétré la grille suivante :

Grid Default;

Grid mil 100 1 dots on;

Grid ALT mil 50;


Une fois les 2 paramétrages effectués, vous devriez avoir un fichier semblable à celui là :

Il ne vous reste plus qu’à sauvegarder et à lancer EAGLE pour vérifier que vos modifications ont bien été apportées…

Création d’un plan de masse sur un PCB

Lorsque vous créez un PCB (un Board), utiliser un plan de masse permet de simplifier et d’optimiser le PCB. Nous allons donc voir dans cet article comment procéder pour en créer un.

Sur le Schema

La première étape consiste à le définir un GND ou 0V sur votre schéma. Pour cela, si vous avez un symbole 0V dans une de vos librairie utilisez-le, sinon insérez un GND.

Dans cet article, nous partirons du principe que vous avez un 0V. Si vous utilisez un GND, il vous faudra juste remplacer tous les 0V de l’article par des GND.

Le schéma que nous allons utiliser avec le 0V défini.

Le Board

Maintenant que le schéma est prêt, créez un Board à partir du schéma. A l’aide de l’outil Polygon, dessiner un rectangle plus grand que votre zone de travail sur le couche 16 Bottom (ou 1 Top si vous travaillez en double face et que vous voulez un plan de masse sur la couche supérieure).

Dans la fenêtre Signal Name qui s’ouvre, tapez 0V (ou GND selon votre cas) puis validez. Le contour du rectangle devrait apparaitre en pointillés comme ci-dessous :

Maintenant si vous déplacez un de vos composant dans la zone de travail et que vous utilisez la fonction Ratsnest, vous devriez voir le rectangle se remplir de bleu et les bornes des composants connectées à la masse le seront.

Cependant, comme vous pouvez le remarquer, il n’y a pas beaucoup d’espace vide entre les pads et le plan de masse. Pour augmenter cet espace, il faut modifier la valeur du paramètre isolate du Polygon.

A l’aide de l’outil Info, cliquez sur le contour du Polygon (le contour dessiné au tout début et qui s’est masqué avec l’utilisation de Ratsnest). Dans la fenêtre qui s’ouvre, changez la valeur de isolate, en général je mets 40.

Après avoir validé, vous pouvez voir que l’espace entre les bornes non connectées à la masse et le plan de masse a augmenté. Cet espace sera également présent de part et d’autre de vos pistes.


Création d’une librairie de composants sur EAGLE

Dans cet article, nous allons voir comment créer une librairie de composants sur le logiciel de conception de circuits imprimés EAGLE.

La composition d’une librairie et d’un composant

Une librairie est une sorte de banque de composants que l’on ajoute au logiciel. Chaque composant est composé de 4 parties (présentées dans l’ordre de l’interface Librairies d’EAGLE) :

  • Le Device : C’est l’élément qui relie les autres éléments (schéma, PCB, modèle 3D) entre eux. Il les relie entre eux tant au niveau correspondance (il permet de déterminer quel PCB va avec quel schéma), tant au niveau des Pins ; c’est en effet là où les Pins du schéma et du PCB seront liés. Sans lui, les Footprint et Symbol ne serait pas liés.
  • Le Footprint : C’est l’empreinte PCB du composant, c’est ce qui représentera le composant quand vous créerez le Board. Cet élément contient donc les pastilles (traversantes ou CMS), mais aussi le boitier, des indices pour les connexions ou tout autre information voulue.
  • Le 3D Package : C’est le fichier 3D du composant, il n’est pas obligatoire.
  • Le Symbol : C’est le symbole du composant quand il sera inséré dans les schémas. Il contient donc une représentation mais surtout les différentes connexions du composant.
Création d’une librairie

Pour créer une librairie c’est assez simple : il suffit de faire File -> New -> Library

La fenêtre suivante apparait :

Cette fenêtre contient les 4 éléments décrits plus haut.

Il vous suffit maintenant de sauvegarder votre librairie dans le dossier de vos librairies.

Création d’un composant : le schéma

Nous allons maintenant pouvoir commencer à créer nos composants pour remplir la librairie. Commençons par créer le schéma du composant : dans la colonne Symbol de la fenêtre ouverte précédemment, cliquez sur Add Symbol…

Donnez ensuite un nom au schéma puis validez.

La fenêtre suivante s’ouvre :C’est dans cette fenêtre que nous allons dessiner le schéma qui représentera le composant dans tous les schémas. En cliquant sur Description, nous pouvons également ajouter une description au composant. Nous allons créer une sorte de connecteur à 3 entrées et 2 sorties.

Dans la couche 94 Symbols, dessinez la représentation voulue du composant avec les outils de dessin (ligne, polygone, rectangle, cercle…). Pour faciliter l’utilisation du composant, il est conseillé de le centrer sur l’origine.

Une fois le composant dessiné, nous allons mettre en place les Pins. Pour cela, passer en mode Pin.

Dans la barre d’outil du haut, vous choisir la rotation du Pin, son symbole d’inversion, ou encore quels information afficher dessus. Mais le plus important est la direction. Dans un premier temps, nous n’utiliserons que 3 paramètres de directions : in lorsqu’il s’agit d’un pin d’entrée dans le composant, et out lorsqu’il s’agit d’un pin de sortie du composant. Enfin, si votre composant comporte des pins d’alimentation, ils devront avoir le paramètre de direction pwr.Nous allons donc placer maintenant nos 3 pins d’entrée et nos 2 pins de sortie. Comme pour les composants dans les schémas, avec l’outil Info ou Name vous pouvez renommer les pins.

Nous allons désormais afficher le nom du composant et son éventuelle valeur. Pour afficher le nom il suffit d’insérer le texte >Name sur la couche 95 Name, pour afficher la valeur il faut insérer >Value sur la couche 96 Values.

Pour ces textes, je vous conseille d’utiliser une taille de 70 et ratio de 8.Vous pouvez également rajouter de annotations sur la couche 97 Infos. Après avoir sauvegardé, le schéma de votre composant est prêt.

Création d’un composant : l’empreinte PCB

Voyons maintenant comment créer une empreinte PCB. Pour créer une nouvelle empreinte, dans la fenêtre de gestion de la librairie, colonne Footprint, cliquez sur Add Footprint…

Dans la petite fenêtre qui s’ouvre, donnez un nom à l’empreinte puis validez.

La fenêtre suivante s’ouvre :

Nous allons commencer par dessiner le boitier du composant. Pour cela, dessinez le sur la couche 21 tPlace grâce aux outils de dessin (ligne, polygone, cercle, rectangle…). Pour faciliter l’utilisation de l’empreinte, il est conseillé de la centrer sur l’origine.Une fois le boitier dessiné, nous allons pouvoir mettre en place les Pads. Pour un composant traversant, utilisez la fonction Pad, pour un composant CMS, utilisez la fonction Smd. Dans notre cas, nous nous créons un composant traversant.

Après avoir cliqué sur Pad, dans la barre d’outil du haut vous pouvoir choisir la forme du pad (carrée, ronde, ovale…), son diamètre de perçage intérieur, son diamètre extérieur (par défaut il est sur auto, EAGLE déterminera donc le diamètre extérieur en fonction du diamètre de perçage) et l’orientation du pad. Il ne vous reste qu’à placer les pads là où vous le souhaitez.

Maintenant que les pads sont placés, vous pouvez les renommer avec les outils Info ou Name. Vous n’êtes pas obligé de leur donner les mêmes noms que sur votre Symbol, mais utilisez des noms de manière à pouvoir identifier facilement les pads.

Comme sur le Symbol, vous pouvez ajouter le nom du composant en insérant le texte >Name sur la couche 25 tNames (taille 70 conseillée avec un ratio de 8). Pour des questions de lisibilité, nous n’ajouterons pas la valeur du composant.

Enfin, sur la couche 51 tDocu vous pouvez rajouter les annotations que vous voulez.

Vous n’avez plus qu’à sauvegarder.

Création d’un composant : le Device

Pour que le composant soit utilisable, il faut maintenant lier son Symbol et son Footprint. Pour cela, dans la fenêtre de gestion de la librairie, cliquez sur Add Device…

Donnez un nom à votre Device (c’est le nom qui apparaitra dans le listing de la librairie) puis validez. La fenêtre suivante apparait :

La première étape consiste à insérer le (ou les, selon comment vous avez construit votre composant) Symbol du composant. Pour cela, cliquez sur Add Part. Dans la fenêtre qui s’ouvre, choisissez le Symbol voulu puis validez. Placer ensuite ce Symbol sur la zone graphique (là encore il est conseillé de centrer sur l’origine).

Le Schéma du composant est maintenant déterminé. Nous allons désormais lui lier l’empreinte PCB. Pour cela, en bas à droite, cliquez sur New puis Add local package. Dans la fenêtre qui s’ouvre, sélectionnez le Footprint voulu puis validez. Le Footprint apparait alors à doite dans la colonne Package. Il faut maintenant indiquer au logiciel les correspondances des pins.

En bas à droite, cliquez sur Connect. Dans la fenêtre qui s’ouvre, vous avez 3 colonnes :

  • La première contient les pins du schéma,
  • La seconde contient les pads du PCB,
  • La dernière contient les connexions établies.

Pour réaliser une connexion, il suffit de sélectionner un pin dans la 1ere colonne, de sélectionner celui avec lequel on veut le lier dans la 2nde colonne puis de cliquer sur Connect.

Une fois la manipulation effectuée pour tous les pins, toutes les connexions apparaissent dans la 3e colonne.Cliquez sur OK pour valider, si toutes les connexions ont bien été établies, vous devriez avoir une coche verte sur la ligne du package.

Si vous voulez donner un préfixe (comme R, C ou JP) au nom de votre composant lorsqu’il sera inséré dans un schéma, utilisez la fonction Prefix en bas à droite.

Pour finaliser votre composant, vous pouvez y ajouter une description en cliquant sur Description.Vous n’avez plus qu’à sauvegarder.


Le composant est maintenant créé et fonctionnel, vous le retrouverez dans votre librairie.

Installation du logiciel Gnu Radio Companion sous Linux

Dans cet article, nous allons voir comment installer le logiciel Gnuradio Companion sous le système d’exploitation Linux Mint (voir cet article pour l’installer sous Windows). Il s’agit d’un logiciel gratuit, vous trouverez plus d’informations sur le logiciel sur le site gnuradio.org.

Ce logiciel est modulable, on peut y ajouter des « blocks », qui contiennent des fonctions supplémentaires.

Installation du logiciel de « base »

Voyons comment installer le logiciel de « base », c’est-à-dire sans blocks additionnels.

Pour lancer l’installation, il suffit d’une simple commande dans le terminal (avant de l’exécuter, il faut bien entendu avoir fait la commande avec « update ») :

sudo apt-get install gnuradio

Après avoir laissé travailler l’ordinateur pendant quelques minutes, Gnu Radio Companion est installé.

Pour le lancer, vous pouvez soit utiliser son icône présent dans le menu Démarrer, rubrique « Programmation », soit taper la commande :

gnuradio-companion

Si l’installation s’est bien déroulée, vous devriez avoir la fenêtre suivante :

Gnuradio Companion au lancement.

Ajout de blocks supplémentaires

Comme expliqué plus haut, vous pouvez ajouter des fonctions à Gnuradio Companion avec des blocks. Pour mon utilisation, j’ai choisis d’ajouter les blocks pour la clé SDR et pour le RDS.

Pour le block SDR :

L’ajout du block SDR se fait par une simple commande, il suffit en effet de taper dans un terminal :

sudo apt-get install gr-osmosdr

Si vous relancez Gnuradio Companion, vous devriez maintenant trouver « RTL-SDR Source » dans le menu des sources, à droite.

La source RTL-SDR.

Pour le block RDS :

Pour ajouter le block RDS, la démarche est la même, seule commande change, il faut taper dans un terminal :

sudo apt-get install gr-rds

Voilà, Gnuradio Companion est maintenant installé, avec les blocks SDR et RDS. Il ne suffit plus qu'à prendre en main le logiciel, et ça ne semble pas être chose facile... on verra bien

Le projet de station météo APRS mobile : le matériel de la V2

Alors que la version 1 de la station été basée sur une Arduino UNO et plusieurs capteurs (voir présentation du matériel de la V1), la version version 2 est basée une Raspberry et une station Davis Vantage Vue.

La Version 2 de la station lors d’une présentation pour les pompiers du Gard. En vert est encadré l’ISS ; le bloc qui contient les capteurs. En bleu est encadré la console qui reçoit et affiche les données météo pour les renvoyer à la Raspberry.

La station météo

Les différents capteurs de la V1 ont été remplacés par une station plus professionnelle, une Davis Vantage Vue.

La station est en deux blocs : l’ISS qui contient les capteurs (cadre vert sur la photo ci-dessus), et la console qui reçoit et affiche les données (cadre bleu sur la photo ci-dessus).

La partie « ISS » de la station.

La liaison entre les deux blocs se fait en 868 Mhz, cette fréquence est nettement mieux pour notre utilisation que les 433 Mhz, d’une part car la bande des 433 Mhz est très occupée, d’autre part car le poste radio va émettre sur les 144 Mhz et il sera proche physiquement de la station météo, donc plus on est éloigné en fréquence moins il y aura de brouillage de la part du poste radio.

Les données météo (température, hygrométrie, vitesse et direction du vent, pluviométrie) sont transmises toutes les 2 secondes à la console.

La Raspberry

La Raspberry (PI2 minimum) remplace l’Arduino Uno. Sur cette Raspberry sont installés les logiciels Weewx, YAAC et Direwolf. Chaque logiciel a un rôle précis :

  • Weewx lit les donnés de la station qui est branchée en USB (grâce au data logger de Davis Instrument) et construit grâce à un plugin un fichier .txt
  • YAAC est un client APRS. Il est chargé de lire le fichier .txt généré par Weewx pour le transformer en trame APRS. La trame APRS est ensuite envoyée au TNC virtuel
  • Direwolf est le TNC virtuel. Il va transformer la trame envoyée par YAAC en une trame audio (la raspberry n’ayant pas de carte son intégrée, il faut rajouter une carte son USB). Direwolf gère également le PTT du poste radio grâce à un montage sur les GPIO (voir schema ci-dessous)

Montage pour permettre à la Raspberry de contrôler le PTT du poste.

Au final, comment la station fonctionne ?

L’ISS de la station météo envoi ses données à la console sur 868 Mhz. La console est reliée par USB à la raspberry grâce au data logger vendu par Davis Instrument.

Les données sont lues par la raspberry grâce au logiciel Weewx, qui génère toutes les minutes un fichier .txt. Ce fichier .txt est ensuite récupéré par le client APRS « YAAC », qui va généré une trame APRS avec les données saisies par l’utilisateur à l’installation du logiciel (position GPS, indicatif…) et les données météo actualisées toutes les minutes. Cette trame est envoyée à intervalle régulier au TNC virtuel.

Le TNC virtuel, ici Direwolf, récupère la trame et la transforme en trame audio. Cette trame audio est générée grâce à une carte son USB, la raspberry n’ayant pas de carte son intégrée. C’est également Direwolf qui bascule le poste en émission grâce à un montage PTT sur les GPIO.

Fin de cette petite présentation du matériel de la V2.
D'autres articles dédiés aux logiciels utilisés seront mis en ligne.

Le projet de station météo APRS mobile : création de la trame météo

La librairie présentée dans l’article précédent nous permet d’envoyer une trame APRS grâce à une simple arduino Uno. Cependant cette trame il faut savoir quoi mettre dedans.

La composition d’une trame météo

Plusieurs schémas sont possibles pour faire une trame météo. La liste des trames APRS est disponible dans ce document.

Le schéma retenu est le suivant :

4401.27N/00437.22E_188/007g008t079r000p000P000h40b09947adrasec30

Le découpage est le suivant :

4401.27N → Latitude au format Degrés Minutes en décimales

00437.22E → Longitude au format Degrés Minutes en décimales

188 → Direction du vent en degrés

007 → Vitesse moyenne du vent en mph

g008 → Vitesse rafale de vent en mph

t079 → Température actuelle en °F

r000 → Pluviométrie de la dernière heure en inch

p000 → Pluviométrie sur les dernières 24h en inch

P000 → Pluviométrie depuis minuit en inch

h40 → Humidité en %

b09947 → Pression atmosphérique en mb

adrasec30 → commentaire

L’acquisition des données

Les données des différents capteurs sont acquises grâce à leurs librairies et programmes. Ces acquisitions se font dans le fichier principal du programme.

Cependant, pour pouvoir envoyer les données, elles doivent être sous la forme de « string », ce sont les différentes chaines de caractères (String) qui seront assemblées pour former la trame APRS. Il faut donc penser à convertir les résultats des lectures des capteurs qui peuvent donner des valeurs sous d’autres format (sous le format « float » par exemple).

Outre les formats qui doivent être respectés, tout (ou presque) est permis pour lire les données des capteurs.

L’assemblage de la trame

Une fois les données récupérées, il faut encore les assembler pour obtenir le bon format.

En ce qui concerne les coordonnées GPS, on peut utiliser les variables prévues à cet effet dans la librairie.

Pour la direction du vent on peut utiliser la variable « tempaprscourse », pour la vitesse moyenne on peut utiliser « tempaprsspeed », par contre pour les autres informations il n’y a pas de variable pré-établie. Du moins au premier abord, car il suffit simplement de les mettre dans la variable dédiée au commentaire.

Lorsque les décodeurs APRS vont recevoir la trame, si elle est bien construite ils ne considéreront pas les informations de la variable « tempsaprscomment » comme des commentaires, mais comme des données météo. Pour cela il faut assembler dans la variable « tempaprscomment » les caractères qui définissent les données (« g », « t », « h »…) et les données en elles mêmes.

C’est là où il est important d’avoir augmenté le nombre de caractères autorisés.

Vous pouvez maintenant utiliser la librairie Arduino pour envoyer des informations météo.

Décodage ADSB depuis une clé SDR avec RTL1090 et Planeplotter

Les clés SDR permettent tout un tas de choses, comme décoder des réseaux tels que le DMR comme nous l’avons vu précédemment dans cet article. Ces petits objets permettent aussi de localiser les avions, je m’explique : vous connaissez les sites de suivi des avions tels que FlightRadar24 ? Tous ces sites utilisent l’ADS-B (pour Automatic Dependant Surveillance-Broadcast), c’est un protocole utilisé dans l’aviation pour envoyer des informations sur un avion comme sa position GPS, son altitude, mais aussi des codes Squawk (un code de 4 chiffres signifiant un message : par exemple 7500 pour un détournement d’avion, 7600 pour une panne radio, d’autres codes existent pour les approches d’aéroport…).

Ces trames sont transmises sur 1090 Mhz.

Les logiciels nécessaires

Pour décoder l’ADSB avec une clé SDR, il faut déjà avoir une clé d’installée sur son ordinateur. Si ce n’est pas votre cas, vous pouvez suivre ce tutoriel pour Windows.

Il vous faut ensuite le logiciel RTL1090 disponible ici. L’installation est assez simple, il suffit de se laisser guider.

Enfin, il vous faut Planeplotter, disponible ici. L’installation de Planeplotter est elle aussi très simple.

Configurer les logiciels

Une fois que vous avez installé ces 2 logiciels, il ne vous reste plus qu’à les configurer. La vidéo ci-dessous vous montre la démarche à suivre (pour suivre cette vidéo vous devrez cependant avoir déjà configuré les paramètres de base de Planeplotter comme l’emplacement de votre station).