Contrôleur de position d'antenne «Raspitrack»
Je désigne par ce mot de «Raspitrack» le néologisme qui décrit le pilotage de ma parabole par un micro-PC de type Raspberry-pi.
Le pilotage d'une antenne THF doit répondre à un certain nombre de critères en particulier de précision de pointage.
Pour des activités EME ou satellite par exemple, il faut en plus de l'azimut contrôler l'élévation.
Dans les zones urbaines polluées radioélectriquement, certains envisagent de déporter les antennes en zone plus calmes.
En plus de proposer une solution simple et précise pour mesurer les positions angulaires, le montage décrit, en faisant largement appel à l'informatique du shack, permet un contrôle à distance total. L'adaptation mécanique des capteurs de position est facilitée pour l'élévation par l'emploi d'un accéléromètre mesurant la gravité. Pour l'azimut, il est juste nécessaire d'accoupler un capteur dans l'axe de rotation.
Contexte de la réalisation :
J'ai repris mon projet de parabole 1,3 / 2,3 GHz qui dort dans le jardin depuis quelques temps.
Elle mesure 3 mètres de diamètre, le F/D est de 0,375 et le gain espéré sur 1,3 GHz est de 29 dBi.
Celle-ci est montée sur un SPID-ROTOR pour l'azimut. L'élévation est faite par un vérin prévu pour la motorisation des antennes de TV satellite et qui fait pivoter une potence de ma fabrication.
Description :
L'inconvénient du moteur SPID utilisé en hyper est son manque de précision dû à la lente désynchronisation de l'affichage par rapport à la position réelle si l'on utilise le contrôleur d'origine. C'est pourquoi ici il sera remplacé.
Pour obtenir une information d'azimut fiable et permanente, j'ai rajouté sur l'axe de rotation de la partie mobile un codeur MEGATRON MAB25, qui transmet ainsi dans tous les cas la position réelle de l'antenne.
Par prudence, j'ai aussi modifié le moteur pour lui rajouter deux butées électriques assurant un recouvrement de 45° sur la circonférence.
Ce codeur MAB25 est raccordé au capteur d'élévation, objet d'une précédente description sur le WEB dont vous trouverez les références en annexe.
L'ensemble de mesure est constitué du codeur MAB25 pour l'azimut et d’un accéléromètre MEMSIC MX2125 pour le capteur d'élévation, le tout géré par un microcontrôleur PIC. Positionné dans le support mobile, il constitue ainsi un ensemble transmettant toute les 200 ms environ une trame série asynchrone à la norme EIA-485 (RS485), qui comporte les deux informations d'azimut et d'élévation. Cette ligne de transmission, une simple paire téléphonique torsadée, peut être longue de plusieurs centaines de mètres. Si l'information d'élévation est en valeur absolue dans la trame, l'information d'azimut est représentée par une valeur numérique sur 12 bits (4096 positions) qu'il faudra ramener au modulo 360 et qui nécessitera un calage initial pour une lecture réelle de l'azimut.
Ce développement de capteur date de plusieurs années déjà (2007).
L'accéléromètre MEMSIC MX2125 utilisé commence à dater, et les progrès technologiques autour des Smartphones notamment ont mis sur le marché des composants que certains exploitent sur des cartes de développent de type Arduino ou de véritables pico-ordinateurs comme le Raspberry-Pi. Ceci devrait donner de nouvelles idées à nombre d'entre nous pour des applications de pilotage d'antennes.
L'apparition sur le marché de ce petit micro-PC Linux extrêmement versatile (au sens anglais du terme) rend à mon avis totalement caduc le développement de cartes spécifiques à base de PIC ou autres microprocesseurs.
Synoptique du contrôle de position :
Réalisation pratique :
Connecté sur le bus GPIO du Raspberry-Pi, vous pouvez voir une petite carte qui comporte le chip d'interface série RS485, carte par laquelle sont reçues les informations de position des antennes et qui comporte les transistors de commande des relais permettant la mise en rotation des deux moteurs.
L'ensemble constitue une «boîte noire» raccordée au réseau local du shack, en Ethernet ou par une clef Wifi. L'alimentation externe se fait avec le 13,8 volts de la station, un régulateur interne délivre le 5 volts nécessaire au Raspberry-Pi. C'est cette même tension de 13,8 volts qui alimente les deux moteurs.
Les programmes installés sur le Raspberry-Pi sont contenus dans une carte SD de 8 ou 16 Go qui comprend le système d'exploitation Raspbian, un Linux adapté au hardware, les librairies de communication propres au bus GPIO, les librairies astronomiques pour le calcul de la position des astres, les librairies pour le langage PERL avec lequel Christophe ON4IY a écrit les routines de position. J'ai pour ma part écrit le programme de poursuite automatique de la lune. Vous trouverez en annexe les moyens de télécharger une image toute configurée de la carte SD, ainsi que les schémas et typons des circuits imprimés des cartes d'interface.
Mais la présentation de ces diverses cartes périphériques ferra l'objet d'une prochaine description.
L'interface de commande :
Elle est "virtuelle". Dans un boîtier de commande classique, on s'attend à trouver des poussoirs et un affichage par galvanomètre ou afficheur LCD. Ici, puisque les informations ont été digitalisées dès le départ, nous restons dans du tout numérique et la commande se fait à partir du PC Windows du shack.
Il faut installer un serveur X11, nécessaire pour l'affichage des fenêtres en mode X-window propre à Linux.
C'est un logiciel gratuit nommé XMING. Lancé préalablement une fois pour toute, il se déroule en tâche de fond et on n'a plus à s'en occuper.
La connexion avec le Raspberry-Pi via le réseau local se fait avec un autre logiciel gratuit bien connu nommé PUTTY, grâce auquel on programme la connexion SSH au Raspberry-Pi avec validation du protocole X11. Une fois logué, il faut lancer une commande qui affiche les informations de position ainsi que l'accès aux commandes de rotation. Ainsi décrit, cela peut paraître compliqué, mais en fait c'est relativement simple. D'autre part, le Raspberry-Pi, ainsi connecté à votre réseau local, peut être accessible par Internet via votre Box ADSL, permettant ainsi un pilotage à distance des antennes. Pour une accessibilité externe, le port TCP-IP 22 sera redirigé dans votre Box vers l'adresse locale du Raspberry-Pi. Il est très pratique, avec un petit "notebook" Wifi, de pouvoir commander les diverses rotations en se tenant juste à coté des antennes, chez moi sur le toit.
La présentation est très simple et sera amenée à évoluer, mais l'ensemble est déjà parfaitement opérationnel et permet de piloter la parabole avec une précision suffisante. Nous avons en illustration une copie d'écran du PC de commande D'autre part, les possibilités de calcul du Raspberry-Pi, nous permettent d'avoir la position de la lune.
La première ligne donne la position de la lune en temps réel. L'indication du QRA locator ainsi que les offsets initiaux sont paramétrés dans le fichier Perl.
La deuxième ligne donne la position réelle des l'antenne.
Cinq "Boutons Radio" exclusifs permettent de commander manuellement l'antenne en site et azimut.
Les boutons "slow" et "fast" permettent de basculer entre vitesse normale et vitesse lente obtenue par un hachage de la tension d'alimentation du moteur d'azimut, seule méthode pour ralentir le moteur sans perte de couple.
Le bouton "track" permet d'enclencher la poursuite automatique de la lune. Une fois celui-ci enclenché, les moteurs suivront la position de l'astre dans une fenêtre d'un degré. La poursuite en azimut passe automatiquement en vitesse basse dès que l'angle d'erreur est inférieur à 3° pour une arrivée en douceur sur la position.
Il ne faut pas se leurrer, les fortes variations de la température extérieure auxquelles ces capteurs sont soumis rendent illusoire la précision théorique du dixième de degré affiché, qui ne résulte que d'une péréquation mathématique des données numériques fournies.
Evolutions :
Le Raspberry-Pi dispose d’un OS avec toutes les couches logicielles de communication réseau et de toutes les librairies scientifiques possibles.
Tous les langages sont disponibles, PERL, Python, C etc. en plus du langage de script de Linux.
Il dispose d’un serveur de pages HTML et donc les informations, par des développements correspondants, peuvent être lues aussi avec un simple navigateur.
Ceci permet d'imaginer bien d'autres applications autour de ces fonctions de pilotage d'antenne.
Conclusion.
Le but de cette description n'est pas de permettre une réalisation à l'identique mais plutôt de donner des idées pour le contrôle d'un système d'antennes plus spécialement adapté aux fréquences THF et SHF, dans une approche originale. Cependant, les schémas des circuits imprimés, non décrits ici, ainsi que les logiciels utilisés sont disponibles de suite aux adresses données en annexe.
Ces cartes seront décrites ultérieurement ainsi que la configuration des différents logiciels utilisés.
Ce projet reprend des développements antérieurs dont vous trouverez ci-dessous les liens de publication des articles sur le WEB.
Vous qui avez déjà réalisé ou allez réaliser un montage de ce type, pensez à partager le fruit de vos efforts avec les autres.
F1TE, août 2015
Bibliographie sur le WEB :
Vous trouverez à cette adresse la description des modifications apportées au moteur : www.f1te.org ou directement http://urls.r-e-f.org/jm905kd.
L'ensemble capteur est décrit à cette adresse : www.f1te.org ou directement http://urls.r-e-f.org/cb185kv
Voir exemple d'utilisation du capteur : http://on4cdu.net/az-el/
Serveur Windows de fenêtres X11, XMING : http://urls.r-e-f.org/je833ce
Logiciel de connexion sécurisées en SSH, PUTTY : http://www.putty.org/
Compléments aux articles techniques sur le site du REF :
- Carte d'interface : http://urls.r-e-f.org/io760ia.
- Circuit imprimé de la carte d'interface : http://urls.r-e-f.org/xp447iu.
- Carte relais : http://urls.r-e-f.org/yz738am.
- Circuit imprimé de la carte relais : http://urls.r-e-f.org/qi293ux.
- Image de la carte SD (Win32 Disk Imager)
Remerciements.
- F1OAT, F1HDI et F5DJL qui sont intervenus à différents niveaux lors du développement du capteur d'élévation.
- ON4IY pour ses conseils, sa téléassistance et ses programmes en PERL.
- F8FIV pour son support pour les affichages X11 sous Windows.
- Et bien sûr, mon complice F6BKI, toujours présent pour le montage de mes antennes.
Interface de commande
Dans les systèmes classiques de pilotage des moteurs d'antennes, les commandes se font généralement manuellement à partir de poussoirs de commande, pour tourner, monter ou descendre.
L'affichage de la position se fait avec des galvanomètres ou des afficheurs numériques LCD. Pour la poursuite automatique, une interface de dialogue est prévue avec l'ordinateur qui lui envoie les positions à atteindre.
Dans notre projet, aucun poussoir, aucun bouton, aucun affichage direct sur notre automate.
Alors comment faire ? C'est là tout l'avantage d'un outil "communiquant".
Il est équipé d'un serveur WEB "HTTP" et c'est par cette voie que l'on va se connecter à lui, via notre PC de trafic, notre tablette numérique ou notre Smartphone, avec notre navigateur Internet favori.
Dès lors, plus de limite à l'information disponible et aux commandes possibles puisque tout est dématérialisé. Nous pouvons faire une interface homme/machine (IHM) très poussée, avec toutes les informations de calcul disponibles grâce à notre processeur : Position des astres ou des satellites, commandes manuelles ou poursuite automatique, affichage de carte etc, grâce à des boutons clicables à la souris.
Le matériel étant réduit au minimum, le cout de l'ensemble de pilotage sera lui aussi réduit au minimum. Une fois monté dans une boîte très simple, avec les quelques connecteurs nécessaires, le reste est une affaire de software. Plus de face avant à percer, plus de design esthétique à réaliser. Une simple "boîte noire" suffit.
Synoptique du pilotage des antennes
Raspberry Pi et son interface de commande |
<=> |
Capteur d'élévation et d'azimut |
Librairie Perl du bus GPIO
gunzip bcm2835-1.17.tar.gz
tar xvf bcm2835-1.17.tar
cd bcm2835-1.17
./configure
make
sudo make check
sudo make install
Librairie Perl correspondante :
Installer les librairies de Perl
make
make test
sudo make install
UART du bus GPIO
Faire une sauvegarde du fichier /boot/cmdline.txt
L'éditer soit avec vi, nano ou leafpad
Remplacer la ligne qui s'y trouve :
Puis éditer le fichier /etc/inittab et commenter la dernière ligne par un "#"
Faire une reboot par la commande :
Soft
- Déterminer la position de la lune
- Connaitre la position des antennes
- Faire fonctionner les relais pour faire tourner les moteurs dans le bon sens pour assurer la poursuite.
Prototype
PCB
Implantation
TOP
BOTTOM
Ce qui donne le schéma suivant :
Créer le disque Linux sur la carte SD.