Contrôleur d'antenne rotatif compatible avec le logiciel de suivi
Composants et fournitures
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 |
Applications et services en ligne
|
À propos de ce projet
Dernière mise à jour novembre 2021
Ce projet a commencé comme un divertissement et est devenu un équipement sérieux.
Le contrôleur accepte le positionnement manuel de l'antenne, au moyen de deux encodeurs rotatifs, Azimut et Elévation. Il peut automatiquement suivre les satellites lorsqu'il est connecté par USB à un PC exécutant un logiciel de suivi des satellites.
Il est compatible avec tous les logiciels de suivi utilisant le protocole EasyComm2 / 9600 bauds. PstRotator, WXtrack, HRD, MacDoppler... Même WXtoIMG peut contrôler le rotateur.
Il fonctionne directement avec Orbitron, avec un plugin DDE de http://tripsintech.com/orbitron-dde-azimuth-elevation-to-serial/
Le contrôleur émet une réponse en série, pour que le logiciel de suivi affiche la position réelle de l'antenne sur l'écran. Jusqu'à présent, seul PstRotator a fait cela.
Le code n'utilise aucune bibliothèque (sauf pour l'écran LCD) et fonctionne exactement tel quel, avec des broches selon le schéma électrique ci-dessous. Si vous appuyez sur le bouton de l'encodeur d'azimut, tout mouvement d'antenne s'arrête immédiatement et la commande d'azimut peut être réglée sur 10 degrés. étapes.
Vous trouverez ici deux versions :une pour les moteurs à courant continu et une pour les moteurs à courant alternatif (uniquement des relais). Le dernier peut être interfacé avec les rotateurs d'antenne commerciaux existants.
La version avec moteurs à courant continu a l'avantage d'utiliser le PWM pour un mouvement d'antenne plus doux/plus fluide. Il délivre une réponse en puissance proportionnelle à l'erreur d'angle (Cible<->Antenne). Ainsi, lorsque l'antenne se met en mouvement, elle accélère progressivement et, en s'approchant de la position souhaitée, elle ralentit jusqu'à l'arrêt complet. Ceci est connu sous le nom de Soft-Start / Soft-Stop . Il y a une zone morte réglable, où l'antenne ne bouge pas pour le moindre décalage de cible.
J'ai une bêta version avec Soft-Start / Soft-Stop pour les moteurs à courant alternatif, profitant de ce module AC-Dimmer, mais pour le moment il ne fonctionne que pour l'azimut. Si vous voulez essayer, faites-le moi savoir par e-mail.
Si vous avez 180 degrés. système d'élévation, vous êtes bon, donnez-moi un e-mail. Il existe également une version avec 0.1deg. précision, mais je ne le recommanderais pas à moins que vous n'ayez une lecture de potentiomètre solide comme un roc et une conception de construction de contrôleur paranoïaque. Vous trouverez plus de versions sur ma page Web.
Après avoir terminé la construction, vous devez appliquer les procédures d'étalonnage .
- Le calibrage du potentiomètre est obligatoire et assure une lecture correcte de 0-359deg. / 0-90deg., quel que soit le type de potentiomètre que vous utilisez.
- Le étalonnage du moteur sert uniquement à régler le Soft-Start-Stop caractéristique. Ceci est nécessaire si vous n'aimez pas les paramètres par défaut.
Explications plus détaillées dans les vidéos. Parce que le code a été amélioré au fil du temps et que les vidéos ne peuvent plus être mises à jour, consultez ma page Web pour les dernières informations et l'expérience personnelle de la vie avec ce contrôleur. https://racov.ro/index.php/2020/12/09/arduino-based-antenna-rotator-part3-software-tracking-update/
Envoyez-moi un email si vous voulez en savoir plus, car cette plateforme ne m'informe pas des nouveaux commentaires, je ne sais pas pourquoi. Je vais essayer de résoudre les petits problèmes du mieux que je peux. [email protected]
Merci beaucoup à tous ceux qui m'ont envoyé des commentaires, aidant à rendre ce projet plus fiable. Tout commentaire est très apprécié.
Code
- ant-rot-DC-nov2021
- ant-rot-AC-août 2021
- Procédure d'étalonnage du potentiomètre
- Procédure d'étalonnage du moteur
ant-rot-DC-nov2021Arduino
Ce code est pour les moteurs à courant continu, avec sortie PWM démarrage-arrêt progressifant-rot-AC-août2021Arduino
Assurez-vous d'utiliser le schéma électrique pour les moteurs à courant alternatifOffre des contacts secs (ON/OFF). Il peut être facilement interfacé avec des rotateurs commerciaux.
Potentiometer calibration procedureArduino
AZ / EL Potentiometers limit calibration PROCEDURE for displaying the correct antenna angles and rotation limits ( 0-359ᴼ / 0-90ᴼ)This is plain text, not a code :)
AZ / EL Potentiometers limit calibration PROCEDURE ( 0-359ᴼ / 0-90ᴼ)This might seem complicated, but it only has to be done once.1. Open the code in Arduino and - Look for void DisplAzim(int x, int y, int z) {...// Serial.print ("Az ");// Serial.println (analogRead(AzPotPin)); - Uncoment these lines. Should look like this:Serial.print ("Az "); Serial.println (analogRead(AzPotPin)); - Look for void DisplElev(int x, int y, int z){...// Serial.print ("El ");// Serial.println (analogRead(ElPotPin));Uncoment these lines, too. Should look like this:Serial.print ("El "); Serial.println (analogRead(ElPotPin));2. Upload the code and open the Serial Monitor. There you will see a lot of numbers;3. With the help of the encoders, move the antenna to minimum values, 0ᴼ in azimuth and 0ᴼ in elevation.- Write down the values for Azimuth and Elevation. (in my case it was AzMin=90, ElMin=10)- These are the input values read by Arduino, not the real angles;4. Move the antenna again to maximum values, 359ᴼ in azimuth and 90ᴼ in elevation.- Again, write down the values for Azimuth and Elevation. (in my case it was AzMax=1000, ElMax=992);5. Look in the code, at the beginning, for the section// ANTENNA potentiometers CALIBRATION int AzMin =1; int AzMax =1023; int ElMin =1; int ElMax =1023;- Here input the values you wrote down for each situation;6. Now it is no longer necessary to send this on serial, so you have to comment back these lines, like this:// Serial.print ("Az "); // Serial.println (analogRead(AzPotPin));... // Serial.print ("El "); // Serial.println (analogRead(ElPotPin));7. Upload again the code.That's all.Now, in the serial monitor, there should be no more numbers, and the true antenna position is read correctly.
Motor calibration procedureArduino
This procedure sets the parameters for the Antenna Speed-Up / Slow-Down Zone.This is plain text, not a code :)
Motor Calibration Procedure For Soft-Start / Soft-Stop feature.This procedure sets the parameters for the Antenna Speed-Up / Slow-Down and the Dead-Zone.You basically set how fast and how slow you want the antenna to start and to stop. You also set much the target can move, before the antenna will adjust again.It’s not strictly necessary, only if you don’t like the default settings.Make sure you first apply the Potentiometer Calibration Procedure !!! That one is strictly necessary.Look at the power diagram for a better understanding.***For Azimuth movement***-As the antenna starts to move towards the target, is picking up speed, reaching full power afterdegrees difference. -As the antenna closes in to the target, below degrees difference, it starts to slow down. should be higher for heavier antennas.-The power starts to decrease from to until the angle difference becomes zero. (in percents %) should be 100 for full speed. If you ever think your antenna rotates too fast, you can set a smaller . (in percents %) is the minimum power for which your motor doesn’t stall and can start under load. The power output never falls below this value.-Once the antenna reaches the target position (zero degrees error), it stops and doesn’t move again until the target travels more than degrees. This is a dead zone, to prevent continuously shaking the antenna for the smallest target movement, or potentiometer position jitter. The smaller the , the more precise tracking, the more frequent shacking of the motors.***For Elevation movement***Exactly as for the Azimuth.Look at the beginning of the code for this section. Here you can input your desired values./**************THIS IS WHERE YOU REALY TWEAK THE ANTENNA MOVEMENT************/...// Allowed error for which antennna won't move. int AzErr =8; int ElErr =4;// Angle difference where soft stop begins int Amax =25; //azimuth int Emax =15; //elevation// min and max power for motors, percents; int PwAzMin =30; //minimum power for which the motor doesn't stall and starts under load int PwAzMax =100; //full power for the fastest speed int PwElMin =30; int PwElMax =100;/****************************************************************************/
Schémas
Make sure you use this diagram with the code for DC motors.Connection of all the modules, encoders, LCD, relays, MosFet etc, Make sure you use this diagram with the code for AC motors.
Offers dry contacts (ON/OFF). It can be easily interfaced with commercial rotators.
Processus de fabrication
- Variation des lumières avec PWM à l'aide du bouton-poussoir
- Jeu de gyroscope Arduino avec MPU-6050
- Capteur DHT11 avec LED et haut-parleur piézo
- Unopad - Contrôleur MIDI Arduino avec Ableton
- Iron Man
- Capteur d'obstacles simple avec Arduino
- Trouvez-moi
- Contrôle de l'humidificateur Arduino
- cube LED 4x4x4 avec Arduino Uno et 1sheeld