Aller au contenu

astrolivier

Membre
  • Compteur de contenus

    100
  • Inscription

  • Dernière visite

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

astrolivier's Achievements

  1. @shibon C'est bien joli. comment as tu procéder pour l'étanchéité au niveau du mlx? pour le bme280 l'alimentation est forcément en 3.3V. Je l'alimente depuis l'esp32 car il consomme vraiment peu! Pour ma part le bme280 est déporté dans un petit boitier repris et modifié à partir d'ici, imprimé en petg blanc: https://www.thingiverse.com/thing:1067700 pour ma part pas de problème. Merci encore pour les photos, reste plus qu'un zip avec les fichiers si tu es d'accord Olivier
  2. Les plaques de prototypage sont des moyens fiables à bas coup, plus que les fils qui pendouillent!! nombre de fois que j'ai du m'y reprendre avec ceux la! Sur les connecteur Dupont je mets systématiquement un point de colle chaude et hop ca ne bouge plus. Pour la partie Excel je ne pense pas qu'il y aura de conflit car tu ne fais qu'un appel avec une requête http et tu lis le JSON. Ce serait vraiment pas de bol que les deux requêtes se fasse simultanément ^^. Tiens nous au courant dès que tu auras tout assemblé Olivier
  3. @shibon Pour ma part j'ai mis le capteur de pluie (pluviomètre) et non le detecteur de "gouttes". Je part du principe que si les coefficients "k" sont bien réglés alors on sait s'il y a des nuages. Je me fiche de la pluie car de toute facon je n'ouvre pas si c'est couvert. Le pluviomètre ne sert qu'a renseigner la partie web qui fait office de "station météo locale". Pour info j'utilise le driver météo https://www.dehilster.info/astronomy/ascom_environment_safetymonitor.php dans NINA. Il a le très gros avantage d'être entièrement programmable et on peut sélectionner toutes les variables que l'on désire "écouter" pour savoir si les conditions sont safe ou non! c'est extra! C'est ici que je selectionne uniquement le % de nuages, la vitesse du vent. En tout cas pour moi cela suffit! Olivier
  4. Bonjour Sam, heureux d'apprendre que tout fonctionne pour vous. Si j'ai bien compris vous avez repris le projet en partie pour l'adapter à votre situation. Peux être pourriez vous partager votre travail afin d'en faire bénéficier le plus grand nombre Plus il y a de variantes plus l'impact sera grand Bonne journée. Olivier PS: auriez vous une photo de votre montage fini à partager?
  5. Bonsoir, je suis désolé de ne répondre que maintenant, je viens seulement de voir votre message. concernant la librairie j’avoue ne jamais passer par le gestionnaire, a chaque fois je prends celle sur github. si vous n’avez pas eu d’erreur alors toit devrait bien se passer. n’hésitez pas si besoin, je vais activer les alertes!! bonne soirée. Olivier
  6. Salut, j'ai déjà pensé à cet idée, mais un équipement avec du 220V franchement je ne le ferai pas!! Je me suis rabattu sur un mini pc N100, tout est géré à merveille. Il est muni d'un petit ventilo et honnêtement, mon eq6 avec double lunette 80/480 fait du 0.5" en autoguidage!! Je pilote avec NINA. A la maison, en fin de la séquence un script envoie les images sur mon drive avant de tout éteindre. Le lendemain sur mon gros PC je traite les images Olivier
  7. Bonsoir. meme problème ici. C’est sûrement lié au fait que le servo cherche une position stable. j’ai résolu le pb en mettant un petit aimant sur le capot qui le bloque en position ouverte et mis un mosfet sur l’alim. Le servo est ainsi déconnecte lorsque non utilisé en espérant avoir aidé! Olivier
  8. C'est ce que je dis au premier message. Le soucis c'est qu'entre les nuits d'hiver et d'été ce ne sont pas les mêmes conditions dans ma Normandie trop puissant pour l'un et pas assez pour l'autre. Et quand on oublie de modifier la puissance ca turbule sévère devant le scope ^^. Honnetement, prix de revient ici de seulement quelques euros si on a déjà les resistances chauffantes!!
  9. UPDATE 1: Bonjour à tous, Pas très satisfait dont se passaient les choses avec la version précédente j'ai préféré supprimer les deux firmwares. J'ai retravaillé les codes et je suis parti sur un nouveau format. Initialement je voulais que le code final intègre un autotune lors du premier démarrage. Cela fonctionnait mais je n'ai pas réellement trouvé convainquant les valeurs des PID calculées. Je suis donc parti sur une nouvelle librairie et une nouvelle philosophie que je vais exposé ci dessous. NOTICE D'INSTRUCTION POUR L'UTILISATION DES CODES Pour commencer, il convient que le matériel, et donc les 3 sondes de températures, soient dans un équilibre thermique uniforme. Pour mes essais j'ai donc placé l'ensemble de mon matériel dans une pièce durant plusieurs heures. Etape 0: recherche des adresses I2C des sondes de températures: Via le firmware fourni au post 1, il faut brancher tour à tour les différentes sondes de température et reporter les adresses trouvées. On attribuera à chaque sonde (et donc adresse) sa destination finale. Etape 1: Calibration des sondes: Connectez les sondes sur l'arduino et televersez le programme "CalibrationRC". Vous devrez renseigner dans le fichier config.h les différentes adresses des sondes, exemple pour moi: Mettez les valeurs de correction à 0. Choissisez maintenant une résolution de mesure de la température ici: Pour ma part je suis parti avec une resolution de 0,125°C soit une valeur 11. Televersez le code et ouvrez le moniteur série. Il y a fort à parier que les valeurs affichées ne soient pas les mêmes pour les différentes sondes. A ce moment plusieurs raisonnement possibles: Soit vous avez un thermomètre étalonné que vous utilisez comme référence soit vous choisissez une des sondes comme référence. N'ayant pas de thermomètre ultra précis je suis parti sur la deuxième solution. De toute façon ici le système ne sert pas à mesurer la température réelle mais bien de voir une variation de la température. Donc pas de soucis ici tant que les sondes sont calibrées entre elles. Par exemple, dans mon cas perso: Avant correction: Après correction: Voilà maintenant nos sondes sont calibrées et indiquent donc toutes la même température. Etape 2: Auto Tune des coefficient PID: L'une des étapes les plus délicate de ce projet est bien la determination de ces fameux coefficients. Ce sont en effet ces paramètres qui vont faire que la régulation du chauffage soit la plus efficace possible. Charger le programme AutotunePIDRC et aller dans le fichier config.h. Comme pour le précédent fichier, modifier les valeurs des adresses des sondes. Regler aussi la valeur de la résolution précédement choisie. Pour que l'auto tune soit le plus efficace dans la recherche de ces paramètres il faut régler 2 choses de plus dans le code: - D'une part le temps d'un tour de PID. C'est le délai entre deux tours de calcul des coefficients. Si le délai est trop court, sur des telescope où les temps de réaction sont très lents, le programme ne verra pas de fluctuation. A l'inverse, avec un delai trop long, le programme ne detectera pas les variations minines. Cette valeur est à paramètrer ici: Dans l'exemple j'ai mis 30 secondes. Le meilleur moyen de savoir quelle valeur mettre, lancer un auto tune avec une valeur par défaut de 1s. lancer un chrono. Les températures vont s'afficher toutes les secondes dans le moniteur série. Arrêtez le chorno dès lors que vous observez une variation positive de la température. Mettez cette valeur à la place du 1 (ou 30 sur l'image). Avant de relancer un auto tune avec cette nouvelle valeur il faudra attendre de nouveau que le système se restabilise en température. Televersez un code basique (par exemple un simple blink dans les exemples) pour désactiver les sorties des resistances chauffantes. - D'autre part, une autre valeur moins importante est à régler. Il s'agit du delta de température positif que vous souhaitez atteindre pour calculer les coefficients du PID. En effet, on va simuler la réaction du système en lui demande d'atteindre une certaine température. Dans le fichier config.h il s'agit de ce paramètre: Dans l'exemple j'ai mis une température de 5°. Concretement, cela implique les choses suivantes une fois que le code est televersé et le moniteur série ouvert: l'autotune va mettre une puissance de 100% sur la sortie jusqu'à atteindre la consigne, ici une température de l'air + 5°. Une fois la consigne atteinte la sortie passe à 0% jusqu'à ce que la température passe sous la consigne et recommence ainsi de suite. Après un certains nombre de cycles, les coefficients determinés par le programme s'affichent sur le moniteur série. Si vous avez activez un "GUIDE" comme moi, alors les PID sont effectués en parallèles. Notez ces coefficients pour la dernière étape, la plus simple Attention: le delta choisi ne doit pas être trop grand. En effet, par exemple 5°C ici, il faut que le système de chauffe puisse arriver à suffisament chauffer pour que la consigne soit atteinte. Si la puissance de chauffe n'est pas suffisante le système ne pourra pas atteindre la consigne et l'auto tune sera forcément faux. Une valeur de 3°C pour commencer semble être la plus part du temps un bon compromis. A vous de voir si vous avez la puissance suffisante! Etape 3: Execution du programme final Ouvez le fichier RCAutoPID et aller dans le fichier config.h Une fois de plus il vous faudra changer les adresses des sondes de températures et indiquer la resolution des mesures choisie à l'étape 1. Il faut aussi modifier les valeurs suivantes: A la place de 1 seconde mettez ici la valeur du chrono trouvée à l'étape 2 ou une valeur inférieure. renseignez les divers coefficients des Kp Ki et Kd trouvés à l'étape 2 pour le telescope et le guide si vous l'avez utilisé. ne pas tenir compte de mes valeurs qui sont issus d'une simulation. Etape 3 bis: Simulation du programme final Pour tester le bon fonctionnement vous pouvez tricher en modifiant le code. Normalement, le but final sera de faire en sorte que la température du système soit toujours celle de l'air ambiante. Pour simuler nous pouvons faire croire au système que le telescope est plus "froid" que l'air ambiant et cela aura pour conséquence de délencher la résistance chauffante. Exemple pour le telescope :Pour ce faire modifier la ligne 89 du porgamme de en où 3 a été arbitrairement choisi ici mais vous pouvez reprendre la valeur défini à l'étape 2. Televersez le code et vous verrez la puissance de sortie augmenter. Si tout va bien, les températures devraient restées aux alentours de la consigne ici température air + 3°C, par exemple: Ici on voit bien la consigne de 3°C de plus que l'air ambiant, une puissance de 0% car la consigne est atteinte. Une tolérence de 2 * la résolution du capteur est ajoutée afin de ne pas chauffer inutilement, soit ici on ne chauffe que si la température telescope estt inférieure à 18,625°C (18.875°C - 2*0,125°C). Si on voit que la température est maitrisée alors c'est que les coefficients trouvés avec l'autotune sont les bons. On a plus qu'à modifier le programme pour enlever ces 3°C qu'on a simuler et televerser le code final. Et voilà, c'est fini. Je joins en plus des différents programme un fichier zip contenant les librairies nécessaires au bon fonctionnement des codes. Il faut extraire ces librairies dans "Documents/arduino/libraries" et lancer seulement après l'IDE arduino. N'hésitez pas en cas de besoin. Olivier AutotunePIDRC.zip calibrationRC.zip libraries_RCPID.zip RCAutoPID.zip
  10. UPDATE 1 du 19/11/2014: Voir message #2 pour toutes les infos. Olivier Bonjour à tous, habitant en Normandie, nous avons eu quelques jours de soleil récemment qui ont donné envie de sortir le matos! Tout allé bien jusqu'à ce que..... la buée montre le bout de son nez. J'avais bien vu que l'air allait être très humide, j'avais donc anticipé en pointant les Pléiades, pas trop haut sur l'horizon... Munie de son par buée, j'ai dû finalement me résoudre à tout ranger au bout d'une heure... grrrr!! déjà que les belles nuits sont rares... cela augmente considérablement la frustration. J'avais par le passé fabriqué un petit système de chauffage automatique qui depuis est devenu quelque peu obselète, mais qui avait le mérite de n'être pas cher du tout. Les solutions modernes coutants relativement cheres, et c'est peu dire, ont de plus un inconvénient majeur: ces solutions supposent que vous soyez à coté de l'instrument assez souvent pour augmenter / diminuer manuellement la puissance de chauffe. Et si le matériel est trempé, il en va de même pour le bonhomme (ou la femme ^^) à coté!! J'ai dans un tiroir quelques arduino nano, des petites sondes DS18B20, des MOSFETS et quelques petites autres bricoles. Je me décide à me lancer dans une nouvelle réalisation de chauffage, mon cahier des charges est le suivant: - utilisation en poste fixe (donc pas de travail de recherches quand à la limitation de la consommation de courant) - utilisation des composants à ma dispo: sondes de température, mosfet type NPN, led, fils, arduino nano - le système devra pouvoir chauffer 2 instruments indépendament l'un de l'autre (j'ai une lulu principale + une lulu guide) - système complètement automatique, sans intervention humaine donc C'est surtout sur ce dernier point que va porter ce post. La réalisation électrique est rudimentaire: Cela consiste simplement à utiliser une source en 12V dont la variation de puissance se fera en modulant la sortie d'un arduino qui controlera un MOSFET. Ne Pas tenir compte des références pour les 2 MOSFETS 'c'est pour l'exemple. coté composants les sondes de températures doivent être assez petites afin d'être "fixées" directement sur le barrilet de mon triplet (dans mon cas). J'ai des petites DS18B20 parfaites pour cela. Pour le MOSFET un modèle pilotable en 5V fera parfaitement l'affaire. Enfin 2 led indiqueront l'état du fonctionnement de chaque sortie. La led variera progressivement en fonction de la puissance de chauffe. Si une sonde est defectueuse (ou non connectée) alors la led clignotera toutes les secondes. Enfin, le coeur du système, le code! Avant tout chose je dois expliquer mon raisonement sur un point: j'ai volontairement ecarté le fait d'utiliser comme valeur la température de rosée. Je suis parti du principe que si l'élément chauffé avait la même température que la température ambiante locale, alors il n'y aurai pas de buée mais il n'y aurai pas non plus de turbulances visibles sur le système (du moins pas plus que si je devais chauffer au hasard par rapport à une solution toute faite). Cela dit le code est flexible et permet de très facilement ajouter cela si quelqu'un le souhaite. Pour rendre le système complètement automatique nous pouvons envisager 2 scénarios: 1) soit on décide arbitrairement de choisir des valeurs seuils qui enclencheront un seuil de puissance. Par exemple, 1 degrés sous la température ambiante déclenche 25% de puissance, 2° en dessous 50% etc.. 2) soit on décide de partir sur un système plus joli et plus efficace à partir d'une régulation en utilisant un PID Je suis parti sur ce deuxième point. Le premier point à l'avantage d'être très facile à mettre en oeuvre (quelques lignes de code tout au plus) mais le deuxième à clairement un meilleur avantage quand à la régulation!!! en effet, sans rentrer dans les détails, un système PID est un système prédictif qui permet de ne pas chauffer trop mais anticipe la baisse et envoie les justes corrections à apporter pour maintenir la bonne température. Comme expliquer plus haut, le but est donc qu'en cas de chute de température de l'élément à chauffer, la puissance sera augmentée pour eviter une future baisse, cela determiné par les valeurs déjà acquises ou en cours d'acquisition. Le problème, et oui toujours!!, c'est que pour qu'un système de ce type soit efficace il faut lui fournir 3 coefficients dont peut de gens auront envie de la mettre en oeuvre ( moi y compris ). C'est la que l'arduino entre en jeu: des gens biens ( et intelligents) ont crée des bibliothèques permettant de calculer automatiquement ces coefficients. Ah le bonheur. J'ai donc implémenter toute cette logique afin d'avoir un système réellement automatique et autonome!! concretement, que fait le programme: Lors de la première initialisation (Voir procédure plus loin), le programme va lancer un "auto tune" afin de calculer les bons coefficients (un peu comme sur les imprimantes 3D qui utilise ce système sur leur hot end). Une fois fini les coefficients sont stockés dans l'eeprom et seront ensuite utilisés comme base pour la régulation. C'est le point fort!! ca le fait pour vous , une fois fois pour toute. Une fois lancé, le programme prends des mesures toutes les 10 secondes (valeur que l'on peut changer dans le fichier de configuration config.h). Ces valeurs vont agrémenter le PID qui calculera la nouvelle puissance à appliquer. Bien entendu le déclenchement du chauffage ne se fera que si l'élément chauffé voit sa valeur passer sous la température de l'air ambiante. Initule de chauffer pour rien non plus Programme: Attention, il faut installer les librairies suivantes: - "DallasTemperature" et "PID_v1_bc" depuis l'IDE, - "PID_AutoTune_v0" depuis le github: https://github.com/br3ttb/Arduino-PID-AutoTune-Library/tree/master Lors de l'ouverture du fichier arduino, tous les paramètres modifiables sont dans le fichier "config.h" Il faudra y apporter les corrections suivantes: Modifier les adresses des sondes de températures sont uniques. Je joins un scanner d'adresse que vous pouvez utiliser pour connaitre les votres. Si vous ne disposez pas de deux instruments comme moi (lunette principale + lunette guide) vous pouvez commenter la ligne" #define GUIDE " qui ne gardera donc que la partie telescope. L'affichage des températures sera visible dans le moniteur série. Il est important de mettre à 0 les valeurs des corrections des sondes dans le config.h: à l'achat celles ci pourraient ne pas indiquer la même valeur de température. Il suffit de les mettre dans un endroit à la même température et de relever les écarts et de modifier les coefficients de correction afin qu'elles donnent toutes les mêmes valeurs ----------------------------------------------------------------------------------------Procédure Auto tune:-------------------------------------------------------------- Pour obtenir un auto-tuning efficace et des coefficients PID bien adaptés au système de chauffage pour l'élément à chauffer, voici quelques recommandations spécifiques : - Stabiliser la Température Ambiante Avant l’Auto-Tune : Pour minimiser les interférences dues à des fluctuations extérieures, assurez vous que le système est dans un environnement stable. Les variations de température ambiante affecteront moins l’auto-tune si vous le lancez dans des conditions proches de celles où ton télescope sera utilisé la plupart du temps (par exemple, une nuit sans changement brutal de température). - Initialiser le Système à une Température d’Équilibre : L’auto-tune sera plus précis si le télescope commence à une température proche de celle de l’air. Cela garantit que le chauffage soit principalement responsable des variations de température, sans effets perturbateurs dus à des changements rapides de température naturelle ou au refroidissement initial. - Éviter les Courants d'Air et les Sources de Chauffage Parasites : Un courant d'air froid ou une source de chaleur peut créer des perturbations thermiques parasites. Place le système dans une zone abritée, sans flux d'air direct, pour éviter que le PID ajuste mal ses paramètres. - Ajuster le Paramètre LookbackSec : Actuellement, aTune.SetLookbackSec(10); impose une fenêtre d’observation de 10 secondes, ce qui pourrait être trop court pour un système lent comme pour certain (fonction du diamètre, épaisseur ...). Essayez une valeur plus longue, par exemple 30 secondes ou même 60 secondes, pour permettre à l’auto-tune de mieux capter la réponse du télescope, surtout si la chauffe et le refroidissement sont lents. - Optimiser le OutputStep (puissance d’impulsion) : L’auto-tune utilise SetOutputStep(50); pour chaque impulsion, équivalent à une puissance de 50 unités PWM (soit 20 % de la puissance totale de 255). Si les variations de température sont lentes, augmenter ce paramètre, par exemple à 70 ou 80, pourrait accélérer le processus en provoquant des oscillations plus marquées, mais attention à ne pas surchauffer. - Éviter d’Interrompre l’Auto-Tune : L’auto-tune prend un certain temps, mais il est essentiel de le laisser aller jusqu’au bout pour obtenir des valeurs précises. Interrompre l'auto-tune ou forcer un recalcul pourrait conduire à des valeurs PID imprécises, ce qui réduirait l’efficacité du système par la suite. ----------------------------------------------------------------------------------------FIN Procédure Auto tune:-------------------------------------------------------- Voilà les grosses lignes. J'espère qu'il pourra servir à d'autres passionnés bien embétés par la buée!! Je fournis aussi un petit programme simpliste de chauffage basé sur des seuils (que j'avais initialement conçu avant de passer à la régulation par PID) scenario 1 plus haut! - le programme simpliciste se nomme RC_automatique - le scanner pour les sondes: scanner_1_wire - le programme avec régulation PID: AutotuneRC. N'hésitez pas si vous avez des questions ou besoin d'aide. Olivier scanner_1_wire.zip
  11. Personnellement, au vu de la courbe et des valeurs du "current dark" je ne m'embeterais à refaire les darks si la température varie tant que le temps de pose reste le même.... m'enfin c'est mon avis
  12. Non! le fait de faire beucoup d'image fait baisser le bruit final de l'image. Le bruit diminie avec la racine carré du nombre d'images L'image master résultant de l'empilement de ces images ne sera que meilleure.
  13. Pour ma part il n’y a qu’un seul fichier crée, le meme meme nom que le ino mais en .bin, le 1er sur la photo Et oui, j’ai oublié de le dire, il faut dans mes firmwares remettre ses ssid et password ainsi que l’ip et passerelle par defaut! dsl
  14. Je regarderai a l’occasion. ma version est une 1.8.19 mais en effet c’est cette version qui a le mieux fonctionné pour moi. ps: j’ai dit une betise de tete mais c’est bien un « .bin » le fichier. de 800ko environ ps2: essais ce tuto: https://tingene.com/blog/index.php?article47/bin-binary-files-sketch-arduino-ide
  15. Je dois partir, mais avant de balancer cette version, si tu veux voir si tout fonctionne, tu peux ajouter des Serial.println dans la partie du MLX. Si ton ESP32 est raccordé avec un câble au port série tu pourrais y afficher toutes les valeurs intermédiaire et des valeurs de corrections etc.... cela pourrait permettre de voir où cela pose problème. Désolé je peux pas faire mieux pour le moment. Olivier PS: vérifie aussi si sur la page web tu as bien les bonnes valeurs de K affichées, sait on jamais!! les valeurs affichées sont celles dans la flash et sont celles uilisées dans le calcul!
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.