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

  1. 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.

  2. 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.

  3. 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.

  4. 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 :

  1. Sélectionner le mode CIBLE avec SW5 (position centrale).

  2. 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.

  3. Après environ 2 secondes sans action sur les boutons, le contrôleur commence le déplacement.

  4. 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

C

Lire la position AZ

B

Lire la position EL

C2

Lire les deux positions

Mxxx

Positionner l'AZ

Exxx

Positionner l'EL

Wxxx yyy

Positionner AZ et EL simultanément

L / R

Rotation AZ directe

U / D

Mouvement EL direct

A

Arrêt AZ

S

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

Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.