Objectif du projet.
Réaliser un nouveau contrôleur de rotor pour la remise en état de ma station pour satellites défilants.
Protocole GS232B
Moteur d'azimut : SPID-RAK standard.
Moteur d'élévation : KenPro KR500 de récupération.
Low-cost, composants standards.
Tracking au degré de précision.
Analyse.
Les deux moteurs sont très différents et n'ont pas été prévu pour fonctionner sous le même protocole.
-
Le SPID-RAK a un système de recopie de positionnement par comptage d'impulsions.
-
Le KR500 , vieux moteur KENPRO, a une recopie par potentiomètre donc par mesure analogique.

L'avantage du SPID est que sa double démultiplication par roue tangente et vis sans fin rend le mouvement irréversible. Quand le moteur est à l'arrêt, les mouvement des antennes ne peuvent se répercuter sur le capteur et donc faire perdre des impulsions puisque le comptage et le décomptage des impulsions se fait en fonction du sens de rotation de l'induit du moteur et le décompte s'arrête avec la coupure du moteur. Par contre, celui-ci ayant sa propre inertie, il est nécessaire de continuer à compter ou à décompter pendant au moins 500 ms après l'arrêt de la tension du moteur si on ne veut pas perdre des impulsions, car nous avons une impulsion par degré d'azimut.
J'ai personnellement modifié le SPID pour y rajouter deux butées électriques de façon à limiter la rotation à 390°, ceci pour prévenir toute perte de contrôle. Arrivé sur une butée électrique, le moteur ne peut repartir que dans l'autre sens.
La seconde photo montre cette perte de contrôle où l'on voit les câbles enroulés autour du moteur sans butées.


Pour les déplacements en automatique, nous prévoirons une réduction de la vitesse par hachage de la tension d'alimentation en fonction du delta de course restant. A partir de 3° nous passeront à 80% de la vitesse, 2° nous réduirons à 50% et pour le dernier degré à seulement 20%. Tout ceci pour que l'arrêt en position se fasse à vitesse réduite.
L'inconvénient de ces types différent de rotors est que le SPID nécessitera pour son moteur une tension continue entre 14 et 18V environ alors que le KR500 s'alimente à 24V/28V alternatif.
Le transformateur devra donc disposer de deux enroulement, autour de12 et 24 V, d'au moins 2A chacun. Voir la suggestion de schéma pour l'alimentation.
Affichage du statut du contrôleur par écran LCD 4 lignes.
Trois mode de fonctionnement sont prévus :
-
Mode manuel, les commandes droite/gauche ou montée/descente par interrupteur bistables.
-
Mode cible : on indique la valeur à atteindre sur l'afficheur et une fois celle-ci indiquée , au bout de deux secondes les moteurs démarrent et s'arrêtent, en douceur pour l'azimut, sur la position demandée.
-
Mode Automatique au protocole GS232B : C'est le contrôleur de tracking qui envoie les commandes de positionnement en protocole GS232B via un port USB-C.
Les logiciels alors utilisés seront par exemple GPREDICT, SATPC32 et bien d'autres, mais mon préféré est le programme SKYNET de F4NAU dont on reparlera.
Le microprocesseur utilisé pour la gestion sera un petit Arduino-Nano de quelques Euros.
Après révision mécanique complète des deux moteurs nous allons passer à la carte de commande.
Le schéma et son circuit imprimé.
Alimentation

PCB définitif - 10 X 10 cm

Câble USB-C pour raccorder l'Arduino au PC de contrôle

LCD2004A+I2C

Liste des composants
|
Item |
Q |
Référence |
Type |
|
1 |
1 |
C1 |
1µF CMS 0805 |
|
2 |
1 |
C2 |
80µF Non polarisé |
|
3 |
2 |
C3,C7 |
100nF CMS 0505 |
|
4 |
1 |
C4 |
0.1µF CMS 0805 |
|
5 |
1 |
C5 |
10µF 35V SMD 1210 |
|
6 |
1 |
C6 |
10µF 10V SMD 1210 |
|
7 |
5 |
D2,D6,D7,D8,D11 |
SS14 CMS |
|
8 |
1 |
D13 |
DIODE DSE112 10A |
|
9 |
1 |
JP1 |
LCD-2004A |
|
10 |
1 |
JP2 |
Connexion SPID-RAK |
|
11 |
1 |
JP3 |
Connexion ALIM 12V |
|
12 |
1 |
JP4 |
Connexion KR-500 |
|
13 |
1 |
JP5 |
Connexion 24V~~ |
|
14 |
4 |
K1,K2,K3,K4 |
RELAY SPDT SONGLE SRD-12VDC-SL-C |
|
15 |
4 |
Q1,Q2,Q3,Q4 |
2N2222 SMD SOT23 |
|
16 |
1 |
Q5 |
MOSFET P IRF9640 |
|
17 |
1 |
Q6 |
MOSFET N BSS138 SOT23 |
|
18 |
1 |
R1 |
10/11/26 |
|
19 |
2 |
R2,R8 |
4.7k |
|
20 |
2 |
R7,R9 |
4.7K |
|
21 |
2 |
R22,R12 |
1K |
|
22 |
2 |
R21,R23 |
10k |
|
23 |
1 |
R24 |
470 |
|
24 |
3 |
SW1,SW3,SW5 |
Interrupteur 3 positions |
|
25 |
1 |
SW2 |
Interrupteur à poussoir "OK" |
|
26 |
1 |
SW4 |
Interrupteur 2 positions "CAL" |
|
27 |
1 |
U1 |
ARDUINO NANO |
|
28 |
1 |
U2 |
78M05 |
Calibration
Le contrôleur utilise deux méthodes différentes pour mesurer la position :
|
Azimut (SPID-RAK) |
Élévation (KR500) |
|
|---|---|---|
|
Capteur |
ILS à impulsions |
Potentiomètre de recopie |
|
Mesure |
Comptage des impulsions |
Tension analogique sur A0 |
|
Référence |
Nord géographique, 0° |
Deux positions : 0° et 180° |
|
Mémorisation |
EEPROM |
EEPROM |
La calibration s'effectue en trois étapes successives, commandées par SW4 et validées avec le bouton OK (A1).
Déroulement de la calibration
-
Calibration AZ — Nord 0°
Placer SW4 en position CALIBRATION. Avec les commandes manuelles AZ, orienter le rotor vers le Nord géographique, sur le repère de référence choisi.
Appuyer sur OK.
Le contrôleur associe la position actuelle du compteur d'impulsions à l'azimut 0°. Cette référence permet ensuite de calculer les positions AZ.
-
Calibration EL — Position 0°
Le LCD passe automatiquement à la calibration de l'élévation.
Avec les boutons UP/DOWN, amener le KR500 sur son repère physique 0°, sans nécessairement atteindre la butée mécanique.
Appuyer sur OK.
Le Nano mesure et mémorise la valeur analogique présente sur A0. C'est la référence basse de l'élévation.
-
Calibration EL — Position 180°
Avec les mêmes commandes UP/DOWN, amener le KR500 sur son repère physique 180°.
Appuyer sur OK.
Le Nano mémorise la deuxième valeur analogique. C'est la référence haute de l'élévation.
-
Fin de calibration
Replacer SW4 en position normale.
Le contrôleur reprend son fonctionnement habituel avec les nouvelles références enregistrées.
Pendant les étapes de calibration EL, les commandes UP/DOWN restent actives, indépendamment de la position de SW5.
Même si le potentiomètre ne fournit pas exactement 0 V et 5 V aux deux repères, le contrôleur peut afficher correctement 0°, 90° et 180°, sous réserve d'une recopie suffisamment linéaire.
Conservation des réglages
Les valeurs de calibration sont enregistrées dans la mémoire EEPROM du Nano.
Elles sont conservées après coupure de l'alimentation. Il n'est donc pas nécessaire de refaire la calibration à chaque mise sous tension.
Une nouvelle calibration sera utile après un démontage du rotor, une modification du calage du potentiomètre, ou un changement du système de recopie.
Points importants à retenir
-
La calibration AZ définit une origine pour le comptage des impulsions ; elle ne mesure pas un angle absolu.
-
La calibration EL définit deux références électriques correspondant à deux positions physiques connues.
-
Les positions 0° et 180° de l'élévation correspondent aux repères du rotor, pas nécessairement aux butées mécaniques.
-
Les limites logicielles restent à 0–360° pour AZ et 0–180° pour EL.
-
Le ralentissement PWM progressif de l'Azimut est indépendant de la calibration.
En résumé : la calibration AZ apprend au Nano où se trouve le Nord, tandis que la calibration EL lui apprend quelles tensions correspondent à l'horizontale et à 180°.
Modes de fonctionnement
Le contrôleur dispose donc de trois modes sélectionnés par le commutateur SW5 à trois positions : MANUEL, CIBLE et GS-232B.
Ils utilisent tous les mêmes capteurs de position, les mêmes calibrations et les mêmes limites logicielles, mais se distinguent par la manière de commander les moteurs.
Vue d'ensemble des trois modes
|
Fonction |
MANUEL |
CIBLE |
GS-232B |
|---|---|---|---|
|
Commande AZ |
LEFT / RIGHT |
Consigne locale |
Ordinateur |
|
Commande EL |
UP / DOWN |
Consigne locale |
Ordinateur |
|
Déplacement automatique |
Non |
Oui |
Oui |
|
Ralentissement PWM AZ |
Non |
Oui |
Oui |
|
Affichage LCD2004 |
Oui |
Oui |
Oui |
|
Liaison série |
Non nécessaire |
Non nécessaire |
9600 bauds |
Mode MANUEL — Commande directe des moteurs
MANUEL
Déplacement à la demande, sous le contrôle de l'opérateur.
LEFT / RIGHT
Rotation AZ
UP / DOWN
Élévation EL
Dans ce mode, chaque bouton agit directement sur le moteur correspondant.
-
Le moteur fonctionne tant que le bouton est maintenu.
-
Dès que le bouton est relâché, la commande du moteur est interrompue.
-
L'AZ fonctionne toujours à pleine vitesse, sans ralentissement PWM.
-
Le LCD affiche les positions mesurées en temps réel.
Les limites logicielles empêchent normalement de dépasser 0° et 360° en AZ, et 0° et 180° en EL.
Utilisation principale : orientation manuelle de l'antenne, essais mécaniques et vérification du fonctionnement des rotors.
Mode CIBLE — Positionnement automatique local
CIBLE
Choix d'une position, puis déplacement automatique vers celle-ci.
Position actuelle AZ
125°
Position demandée AZ
145°
Exemple : déplacement automatique de 125° vers 145°.
Le mode CIBLE permet d'orienter l'antenne sans ordinateur, en indiquant directement les positions souhaitées.
Fonctionnement :
-
Sélectionner le mode CIBLE avec SW5 (position centrale).
-
Régler les positions souhaitées avec les boutons AZ et EL. Le défilement s'accélère lorsque les boutons restent appuyés.
-
Après environ 2 secondes sans action sur les boutons, le contrôleur commence le déplacement.
-
Les moteurs s'arrêtent automatiquement lorsque les positions demandées sont atteintes.
Pendant le déplacement, une action sur un bouton permet d'interrompre le positionnement automatique.
Ralentissement progressif de l'Azimut
En mode CIBLE, le hacheur MOSFET réduit la vitesse lorsque l'azimut approche de la position demandée.
Rapport cyclique PWM selon l'écart AZ
> 3° : 100%
2 à 3° : 80%
1 à 2° : 50%
0 à 1° : 20%
Fréquence de découpage : 100 Hz. Les pourcentages représentent le temps de conduction du MOSFET.
L'objectif général est de limiter les dépassements de consigne dus à l'inertie du rotor, mais surtout de limiter les a-coups dans les aériens. L'élévation ne dispose pas de cette réduction de vitesse.
Utilisation principale : orientation vers une position fixe, sans utiliser de logiciel de poursuite.
Mode GS-232B — Pilotage par ordinateur
GS-232B
Commande automatique par logiciel de poursuite satellite.
PC — Skynet / Hamlib
USB série — 9600 bauds
Arduino Nano — GS-232B
Relais AZ / EL et mesures de position
SPID-RAK AZ
KR500 EL
Dans ce mode, le contrôleur reçoit ses consignes depuis un ordinateur par la liaison USB série de l'Arduino Nano.
Le logiciel peut envoyer des positions AZ et EL, demander les positions actuelles et arrêter les moteurs.
Principales commandes reconnues
|
Commande |
Fonction |
|---|---|
|
|
Lire la position AZ |
|
|
Lire la position EL |
|
|
Lire les deux positions |
|
|
Positionner l'AZ |
|
|
Positionner l'EL |
|
|
Positionner AZ et EL simultanément |
|
|
Rotation AZ directe |
|
|
Mouvement EL direct |
|
|
Arrêt AZ |
|
|
Arrêt des deux moteurs |
Le retour de position C2 utilise le format GS-232B :
AZ=125 EL=045
Les deux valeurs sont transmises sur une seule ligne, terminée par CR+LF.
Le logiciel de poursuite peut ainsi interroger régulièrement le contrôleur et connaître la position réelle des antennes.
Nous avons validé ce fonctionnement avec Skynet de F4NAU et le modèle Hamlib 603, retour de position activé.
Le positionnement automatique AZ bénéficie du même ralentissement PWM progressif que le mode CIBLE.
Utilisation principale : poursuite automatique des satellites et commande depuis un logiciel de station.
Affichage commun aux trois modes
Le LCD2004 permet de surveiller en permanence les positions, les consignes, le mode sélectionné et l'état des moteurs.
Par exemple, en mode CIBLE, 13° pour AZ et EL :
Les positions affichées proviennent des capteurs : impulsions de l'ILS pour l'AZ, tension du potentiomètre pour l'EL. Elles évoluent pendant toute la rotation jusqu'à l'arrêt sur les positions ciblées, ici 13°.
En résumé
-
MANUEL : je commande directement les moteurs.
-
CIBLE : je choisis une position et le contrôleur s'y rend automatiquement.
-
GS-232B : l'ordinateur choisit les positions et le contrôleur assure le déplacement tout en renvoyant les positions réelles.
La calibration AZ/EL est commune aux trois modes et reste mémorisée en EEPROM. Le commutateur SW4 permet d'accéder séparément à cette procédure.
Prototype
Sur ce prototype, le hacheur PWM de la tension d'alimentation du SPID a été testé séparément mais il a été inclus dans le PCB définitif. Les connecteurs de raccordement aux deux moteurs sont fixés sur le petit circuit imprimé à l'arrière du boitier. Des tas d'autres options sont possibles.
Fichier GERBER du circuit imprimé, Firmware
Ces fichiers sont bien sur disponibles sur demande.
Le PCB définitif a été fixé à 10x10 cm pour limiter les coûts de fabrication chez les prestataires courants.
Le firmware en fichier .INO a été crée avec l'aide de l'IA et il est à téléverser dans l'Arduino-Nano avec le programme ARDUINO-IDE.
Logiciel de poursuite Skynet de Matteo F4NAU
Ce logiciel s’appuie sur les librairies Hamlib bien connues et c'est un vrai plaisir à installer, tout ceux qui ont galéré pour installer GPREDICT sous Windows me comprendront.
Disponible sous GITHUB dans l'espace de Matteo, une fois l'application téléchargée et installée dans un répertoire Windows, vous n'avez plus qu'à lancer l'exécutable Skynet.
Bien sur, il faut ensuite configurer un certain nombre de paramètres via les menus.
Mais je vous laisse découvrir le logiciel, vraiment très simple à configurer.
La fenêtre Rotor Control permet de suivre le tracking en temps réel, la fenêtre affiche les coordonnées de retour de notre contrôleur et visualise par le petit index rouge la poursuite effective sur la trajectoire du satellite sélectionné.
Ici, AO7 en poursuite. On voit dans l'affichage des positions Computed et Read que l'on est en mode FLIP pour un passage en butée nord du rotor, les positions étant décalées entre elles de 180°
Bonne réalisation.
Lucien F1TE
