Asservissement antenne Tracking satellites radioamateurs

Tracking bonjour -- je suis radioamateur et pratique l'émission / réception avec les nombreux satellites radioamateur, et également l'EME ( via la lune ).
Pour le moment, mes antennes ne font le tracking qu'en AZIMUT a l'aide d'un rotor asservi par un logiciel.
Ce logiciel délivre également les informations DATA pour asservir un rotor ou un vérin pour la position élévation SITE.
Je possède un vérin avec potentiomètre de recopie + 1 Arduino Uno + l'afficheur 2 lignes + le convertisseur USB/ TTL .
Je n'arrive pas a comprendre comment l'asservissement peut se combiner , ne sachant quels signaux venant du logiciel devront ètre comparés avec la valeur du potentiomètre.
Je sais que je vais devoir faire un étalonnage du potentiomètre qui donnera une tension variable de part la position du vérin.
Comment l'étalonner en degrès ?
Quel genre de programme de comparaison des signaux venant du logiciel de tracking avec la valeur du potentiomètre ?
Je ne sais pas par ou commencer !!!
Si vous avez déja réalisé cela, merci de m'aider. ( 73 )

EME546:
Tracking bonjour -- je suis radioamateur et pratique l'émission / réception avec les nombreux satellites radioamateur, et également l'EME ( via la lune ).
Pour le moment, mes antennes ne font le tracking qu'en AZIMUT a l'aide d'un rotor asservi par un logiciel.
Ce logiciel délivre également les informations DATA pour asservir un rotor ou un vérin pour la position élévation SITE.
Je possède un vérin avec potentiomètre de recopie + 1 Arduino Uno + l'afficheur 2 lignes + le convertisseur USB/ TTL .
Je n'arrive pas a comprendre comment l'asservissement peut se combiner , ne sachant quels signaux venant du logiciel devront ètre comparés avec la valeur du potentiomètre.
Je sais que je vais devoir faire un étalonnage du potentiomètre qui donnera une tension variable de part la position du vérin.
Comment l'étalonner en degrès ?
Quel genre de programme de comparaison des signaux venant du logiciel de tracking avec la valeur du potentiomètre ?
Je ne sais pas par ou commencer !!!
Si vous avez déja réalisé cela, merci de m'aider. ( 73 )

bonjour
Tu es sur qu'il s'agisse bien d'un potentiometre et pas d'un encodeur ?
si oui , la transformée est relativement simple à effectuer .
basiquement
lorsque ton potentiometre est lu par une entrée AD de l'arduino , tu va recupérer une info (valeur) comprise entre un mini (verin completement rentré) et un maxi (verin completement sorti )
la transformée de cette valeur en degré est une simple operation trigo fonction de l'equipage mecanique

merci pour ta réponse - oui, je vais commencer par chercher les valeurs potar a zéro et potar a fond. jusque là, ça devrait pas vraiment me poser de problème.
c'est la suite ...... le logiciel tracking va me donner des infos pour faire marcher le vérin que je vais devoir comparer ou ASSIGNER aux valeurs données par le potentiometre.
Un exemple : le logiciel tracking va "dire" position élévation 20° , il faudra que le vérin s'actionne pour arriver a sa valeur correspondant a 20° et que son moteur s'arrête.

comprends tu mon problème ?

EME546:
merci pour ta réponse - oui, je vais commencer par chercher les valeurs potar a zéro et potar a fond. jusque là, ça devrait pas vraiment me poser de problème.
c'est la suite ...... le logiciel tracking va me donner des infos pour faire marcher le vérin que je vais devoir comparer ou ASSIGNER aux valeurs données par le potentiometre.
Un exemple : le logiciel tracking va "dire" position élévation 20° , il faudra que le vérin s'actionne pour arriver a sa valeur correspondant a 20° et que son moteur s'arrête.

comprends tu mon problème ?

Je crois que oui :grin:

Tu confirme bien que c'est un potentiometre et pas un encodeur ?

donne un peu plus d'info

  • sur ton verin
  • sur ton logiciel

dans un premier temps je ferais un relevé sur tableur des valeurs de V au curseur du potentiomètre (avec simple voltmètre) extrémités du potentiomètre reliés au +5V GND
X° de site = V lue

çà permettra déjà de voir la "tronche" de la courbe de progression

OUI je confirme qu'il s'agit dans un premier temps de faire avec le potar de recopie du verin.
Le vérin est un vérin a course linéaire de 45 cm.
Le logiciel est ORBITRON mais, il y en existe d'autres.

Le potar de recopie est intéressant a cause de la liaison qui peut etre longue entre lui et l'arduino. Mais hélas la précision n'est pas excellente. Il me faut + ou - 1° maxi de précision pour la lune.

Par contre, je mettrais bien un accéléromètre , mais se pose le problème de la liaison entre ce capteur qui sera en haut sur les antennes et le traitement Arduino a la station . Une vingtaine de metres de fil 5 conducteurs . Il faudrait mettre un interface de communication a la sortie du capteur pour transporter les infos dans un autre protocole lequel serait compatible avec Arduino.

Certains l'ont fait, mais bizarrement ils ne dévoilent pas leur astuce, ou pour eux c'est d'une évidence des plus limpides que tout le monde doit pouvoir comprendre. J'ai 71 ans , et je m'accroche aux nouvelles technologies. Il m'est parfois difficile d'assimiler les nouveautés.

EME546:
OUI je confirme qu'il s'agit dans un premier temps de faire avec le potar de recopie du verin.
Le vérin est un vérin a course linéaire de 45 cm.
Le logiciel est ORBITRON mais, il y en existe d'autres.

Le potar de recopie est intéressant a cause de la liaison qui peut etre longue entre lui et l'arduino. Mais hélas la précision n'est pas excellente. Il me faut + ou - 1° maxi de précision pour la lune.

Par contre, je mettrais bien ... :grin:

Certains l'ont fait, mais bizarrement ils ne dévoilent pas leur astuce, ou pour eux c'est d'une évidence des plus limpides que tout le monde doit pouvoir comprendre. J'ai 71 ans , et je m'accroche aux nouvelles technologies. Il m'est parfois difficile d'assimiler les nouveautés.

La precision de positionnement de ton ensemble meverin découle inevitablement des caracteristiques de son maillon le plus faible
ton ensemble de positionnement : cinematique de l'ensemble, mecanique du verin ,caracteristique du potentiometre de recopie, ... etc
Dans ton projet , la répetatibilité de la precision de positionnement est une notion importante
I.e : Si déjà l'accouplement mecanique de ton potentiometre bagote de +/- 1 ° il sera illusoire d'esperer une precision de (re)positionnement >

Pour faire "court" , plus tu aura "confiance" dans la chaine de mesure de l'angle de site , plus ton probleme sera simple à resoudre.
Ici sur le forum arduino , plus tu donne d'infos sur ce que tu utilise exactement, plus tu aura de propositions de solutions
Je réîtere donc ma 1ere question :
ton ensemble vérin (mécanique/electrique) c'est quoi exactement ? :grin:

reference ?
datasheet ?
photo ?
autres ?

Le vérin que je vais utiliser est électromécanique - il fonctionne en 12 v CC .
Sa charge peut aller jusqu’a 100 kg.

Mais depuis hier soir, j’ai fait des recherches tous azimuts et j’ai trouvé une application qui est exactement ce que je cherchais . Et comble de bonheur, les braves gars qui ont publié cette réalisation, ont mis le code complet pour Arduino.

je me suis empressé de faire un copier / coller du code et de le rentrer en nouveau fichier .
il s’est enregistré , et j’ai appuyé sur le bouton "vérif " et là surprise j’ai un message d’erreur sur la première ligne avant même void setup – message : NO SUCH FILE OR DIRECTORY
j’ai déjà eu ce message pour d’autres copies de programmes. Tu vois pas des fois d’ou ça pourrait coincer

Je te met la photo du vérin en question.
A +

Bonjour
sans le code , même avec une bonne vue et des dons de voyance il est difficile de répondre autre chose qu'une génaralité du genre 'le compilateur estime qu'il manque quelquechose...'

Bonjour.
j’ai un peu progresser, mais le programme que j’ai bloque sur un if .
Je viens d’essayer de mettre le programme ici, mais il dépasse les 9000 caractères.

juste un bout, mais ça va pas donner beaucoup d’indications … c’est ce if : if (rotorMoveEl > 0)

le message d’erreur est expected unqualified-id before “if”

// update display if necessary
if (rtcCurrent - _rtcLastDisplayUpdate > _displayUpdateInterval)
{
// update rtcLast
_rtcLastDisplayUpdate = rtcCurrent; // reset display update counter base
int displayAzEl(_rotorAzimuth, _rotorElevation);
}
else // rtc overflow - just in case
{
// update rtcLast
_rtcLastDisplayUpdate = rtcCurrent;
}
}

// update elevation rotor move

void

updateElevationMove();

// calculate rotor move
long rotorMoveEl = _newElevation - _rotorElevation;

if (rotorMoveEl > 0)

elRotorMovement = " U ";
elRotorMovement = elRotorMovement + String(_newElevation / 100);
digitalWrite(_G5500DownPin, LOW);
digitalWrite(_G5500UpPin, HIGH);
}
else
{
if (rotorMoveEl < 0);
{
elRotorMovement = " D ";
elRotorMovement = elRotorMovement + String(_newElevation / 100);
digitalWrite(_G5500UpPin, LOW);
digitalWrite(_G5500DownPin, HIGH);
}
}

void readElevation();
{
long sensorValue = analogRead(_elevationInputPin);
_rotorElevation = (sensorValue * 10000) / _elScaleFactor);
}

// decode gs232 commands
//
void decodeGS232(char character);

EME546:
Bonjour.
j'ai un peu progresser, mais le programme que j'ai bloque sur un if .
Je viens d'essayer de mettre le programme ici, mais il dépasse les 9000 caractères.

juste un bout, mais ça va pas donner beaucoup d'indications ... c'est ce if : if (rotorMoveEl > 0)

Bonjour
met ton code entre balises code

rapidement :
il semble manquer une accolade ouvrante { à ton if

if (rotorMoveEl > 0) {

merci . j'ai essayé, ça bloque toujours au même endroit et même message d'erreur.
ça serait du a quelque chose avant if

Donnez le lien vers le site qui publie le code ou attachez tout le fichier en PJ...

voici le lien de l'article . Le code source est a la fin .

http://www.tomdoyle.org/simplesatrotorcontroller/SimpleSatRotorController.html