Régulateur à Peltier DIY
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Je suis en train de monter un régulateur pour le peltier externe (frigo à smartphone) qui refroidit ma caméra IMX585. Dans un premier temps je voudrais m'en servir pour me construire une bibliothèque de Darks par pas de 1°.
Le principe est simple : un script Sharpcap interroge en continu la température de la caméra et envoie une requête http en wifi pour allumer/éteindre la réfrigération (la caméra a pas mal d'inertie thermique ce qui fait qu'une régulation On/Off suffit) via un wemos (ESP8266 avec wifi) raccordé au frigo.
Pour l'instant le script est fonctionnel (post suivant) et il me reste à faire la partie Wemos.
A ce sujet, j'ai un léger problème (@lordzurp, si tu as une bonne idée sous le coude) ; je pensais simplement ouvrir/fermer l'alimentation du frigo pour la régulation , mais l'interrupteur se met automatiquement sur Off si je le débranche (je peux éventuellement court-cicuiter l'interrupteur On/Off)
Le frigo, disponible à 10-20 € dans toutes les bonnes épiceries
!! Pour les personnes qui disposent du même modèle, l'interrupteur à impulsion est une vraie plaie à shunter > Il faut raccorder la terre (fil noir) du Peltier à la borne Gnd qui est juste en dessous pour shunter l'interrupteur (et on perd l'affichage led de la température du Peltier, m'enfin pour ce que l'on s'en fout...)
En mode ouvert
Le circuit imprimé
Le principe est simple : un script Sharpcap interroge en continu la température de la caméra et envoie une requête http en wifi pour allumer/éteindre la réfrigération (la caméra a pas mal d'inertie thermique ce qui fait qu'une régulation On/Off suffit) via un wemos (ESP8266 avec wifi) raccordé au frigo.
Pour l'instant le script est fonctionnel (post suivant) et il me reste à faire la partie Wemos.
A ce sujet, j'ai un léger problème (@lordzurp, si tu as une bonne idée sous le coude) ; je pensais simplement ouvrir/fermer l'alimentation du frigo pour la régulation , mais l'interrupteur se met automatiquement sur Off si je le débranche (je peux éventuellement court-cicuiter l'interrupteur On/Off)
Le frigo, disponible à 10-20 € dans toutes les bonnes épiceries
!! Pour les personnes qui disposent du même modèle, l'interrupteur à impulsion est une vraie plaie à shunter > Il faut raccorder la terre (fil noir) du Peltier à la borne Gnd qui est juste en dessous pour shunter l'interrupteur (et on perd l'affichage led de la température du Peltier, m'enfin pour ce que l'on s'en fout...)
En mode ouvert
Le circuit imprimé
Dernière modification par ouiouiblog le 10 oct. 2023, 00:01, modifié 2 fois.
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Côté Sharpcap : un simple script
A enregistrer n'importe où (suffixe .py) et à lancer via "Scripting/Run script" de Sharpcap (après avoir sélectionné la caméra et avec un wemos dispo pour accueillir les requêtes http).
C'est un code simple et rustique qui :
- Ouvre une fenêtre pour saisir la température cible et l'écart de régulation (par exemple 20°+/- 0.1°)
- Interroge la température de la caméra toutes les 10 secondes (paramétrable) et envoie une requête http pour allumer/éteindre le frigo
Paramétrage à faire :
- renseigner l'adresse IP (que l'on s'assurera de garder fixe) de votre wemos dans les lignes 93 et 98 (http://192.168.1.46/control?cmd=event,ON' à remplacer par votre XXX.XXX.X.XX)
Edit 23/10/2023 : Robin a corrigé la dernière version de Sharpcap (4.1.11137.0) de manière à ce que la température de la caméra soit actualisée en continu (jusqu'ici la température n'était actualisée qu'entre chaque pose sur les caméras non refroidies, ce qui posait des problèmes de régulation pour les poses longues)
!! script pour Sharpcap 4.0 (passé de Python 2 à 3 sur SC 4.1)
!! script pour Sharpcap 4.1 (passé de Python 2 à 3 sur SC 4.1)
A enregistrer n'importe où (suffixe .py) et à lancer via "Scripting/Run script" de Sharpcap (après avoir sélectionné la caméra et avec un wemos dispo pour accueillir les requêtes http).
C'est un code simple et rustique qui :
- Ouvre une fenêtre pour saisir la température cible et l'écart de régulation (par exemple 20°+/- 0.1°)
- Interroge la température de la caméra toutes les 10 secondes (paramétrable) et envoie une requête http pour allumer/éteindre le frigo
Paramétrage à faire :
- renseigner l'adresse IP (que l'on s'assurera de garder fixe) de votre wemos dans les lignes 93 et 98 (http://192.168.1.46/control?cmd=event,ON' à remplacer par votre XXX.XXX.X.XX)
Edit 23/10/2023 : Robin a corrigé la dernière version de Sharpcap (4.1.11137.0) de manière à ce que la température de la caméra soit actualisée en continu (jusqu'ici la température n'était actualisée qu'entre chaque pose sur les caméras non refroidies, ce qui posait des problèmes de régulation pour les poses longues)
!! script pour Sharpcap 4.0 (passé de Python 2 à 3 sur SC 4.1)
Code : Tout sélectionner
#Version pour SC 4.0 (Python 2)
#App tournant en boucle : interroge la Temperature Camera toutes les X secondes (10 par défaut > paramétrable avec la ligne "sleep =10")et envoie requête Allumage/Extinction Frigo si Température trop éloignée de la température cible
#Bibliothèques
import time
import urllib2
import clr
import System
#Boite de dialogue
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")
from System.Windows.Forms import Form, Label, TextBox, Button, DialogResult
from System.Drawing import Size, Point
class InputForm(Form):
def __init__(self):
self.InitializeComponent()
def InitializeComponent(self):
self.label1 = Label()
self.label2 = Label()
self.textBox1 = TextBox()
self.textBox2 = TextBox()
self.okButton = Button()
# Set form properties
self.Text = "Température cible"
self.Size = System.Drawing.Size(300, 150)
self.label1.Text = "Température:"
self.label1.Location = System.Drawing.Point(20, 20)
self.label1.AutoSize = True
self.textBox1.Location = System.Drawing.Point(120, 20)
self.textBox1.Size = System.Drawing.Size(100, 20)
self.label2.Text = "Ecart:"
self.label2.Location = System.Drawing.Point(20, 50)
self.label2.AutoSize = True
self.textBox2.Location = System.Drawing.Point(120, 50)
self.textBox2.Size = System.Drawing.Size(100, 20)
self.okButton.Text = "OK"
self.okButton.Location = System.Drawing.Point(120, 80)
self.okButton.Click += self.OkButton_Click
self.Controls.Add(self.label1)
self.Controls.Add(self.textBox1)
self.Controls.Add(self.label2)
self.Controls.Add(self.textBox2)
self.Controls.Add(self.okButton)
def OkButton_Click(self, sender, e):
# Get the values entered by the user
Cible = self.textBox1.Text
Cible = float(Cible)
Delta = self.textBox2.Text
Delta = float(Delta)
# Close the form
self.DialogResult = System.Windows.Forms.DialogResult.OK
self.Close()
# Return the values
return Cible, Delta
if __name__ == "__main__":
input_form = InputForm()
result = input_form.ShowDialog()
if result == DialogResult.OK:
Cible, Delta = input_form.OkButton_Click(None, None) # Get the values
print Cible
print Delta
# Définit le délai l'appli (en secondes)
sleep = 10
# Affiche la caméra ouverte
print "Camera : ", SharpCap.SelectedCamera
# loop indefinitely > Interroge Temp camera et lance requete HTTP pour allumer/éteindre peltier
while True:
# Stocke la Temperature de la camera dans la variable Temp
Temp = SharpCap.SelectedCamera.Controls.Find(lambda x:x.Id == CommonPropertyIDs.Temperature).Value
# Affiche Temp
print Temp
# Requete Allumage Wemos si Temp > Cible + Delta
if Temp > Cible+Delta:
urllib2.urlopen('http://192.168.1.46/control?cmd=event,ON')
print "requete Allumage"
# Sinon requete Extinction Wemos
else:
urllib2.urlopen('http://192.168.1.46/control?cmd=event,OFF')
print "requete Extinction"
time.sleep(sleep)
Code : Tout sélectionner
#Version pour SC 4.1 (python 3)
#App tournant en boucle : interroge la Temperature Camera toutes les X secondes (10 par défaut > paramétrable avec la ligne "sleep =10")et envoie requête Allumage/Extinction Frigo si Température trop éloignée de la température cible
#Bibliothèques
import time
import clr
import System
#Boite de dialogue
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")
from System.Windows.Forms import Form, Label, TextBox, Button, DialogResult
from System.Drawing import Size, Point
from urllib.request import urlopen
class InputForm(Form):
def __init__(self):
self.InitializeComponent()
def InitializeComponent(self):
self.label1 = Label()
self.label2 = Label()
self.textBox1 = TextBox()
self.textBox2 = TextBox()
self.okButton = Button()
# Set form properties
self.Text = "Température cible"
self.Size = System.Drawing.Size(300, 150)
self.label1.Text = "Température:"
self.label1.Location = System.Drawing.Point(20, 20)
self.label1.AutoSize = True
self.textBox1.Location = System.Drawing.Point(120, 20)
self.textBox1.Size = System.Drawing.Size(100, 20)
self.label2.Text = "Ecart:"
self.label2.Location = System.Drawing.Point(20, 50)
self.label2.AutoSize = True
self.textBox2.Location = System.Drawing.Point(120, 50)
self.textBox2.Size = System.Drawing.Size(100, 20)
self.okButton.Text = "OK"
self.okButton.Location = System.Drawing.Point(120, 80)
self.okButton.Click += self.OkButton_Click
self.Controls.Add(self.label1)
self.Controls.Add(self.textBox1)
self.Controls.Add(self.label2)
self.Controls.Add(self.textBox2)
self.Controls.Add(self.okButton)
def OkButton_Click(self, sender, e):
# Get the values entered by the user
Cible = self.textBox1.Text
Cible = float(Cible)
Delta = self.textBox2.Text
Delta = float(Delta)
# Close the form
self.DialogResult = System.Windows.Forms.DialogResult.OK
self.Close()
# Return the values
return Cible, Delta
if __name__ == "__main__":
input_form = InputForm()
result = input_form.ShowDialog()
if result == DialogResult.OK:
Cible, Delta = input_form.OkButton_Click(None, None) # Get the values
print (Cible)
print (Delta)
# Définit le délai l'appli (en secondes)
sleep = 10
# Affiche la caméra ouverte
print ("Camera : ", SharpCap.SelectedCamera)
# loop indefinitely > Interroge Temp camera et lance requete HTTP pour allumer/éteindre peltier
while True:
# Stocke la Temperature de la camera dans la variable Temp
Temp = SharpCap.SelectedCamera.Controls.Find(lambda x:x.Id == CommonPropertyIDs.Temperature).Value
# Affiche Temp
print (Temp)
# Requete Allumage Wemos si Temp > Cible + Delta
if Temp > Cible+Delta:
urlopen('http://192.168.1.46/control?cmd=event,ON')
print ("requete Allumage")
# Sinon requete Extinction Wemos
else:
urlopen('http://192.168.1.46/control?cmd=event,OFF')
print ("requete Extinction")
time.sleep(sleep)
Dernière modification par ouiouiblog le 23 oct. 2023, 22:10, modifié 11 fois.
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Côté frigo
J'étais parti pour monter un interrupteur connecté à partir d'un wemos et d'un Relay Shield, mais finalement j'ai fait plus simple : j'ai branché le frigo sur une prise connectée que je pilote par ma box domotique. Il suffit de changer les lignes 93 et 98 pour une commande compréhensible par votre box domotique (si vous en avez une, sinon vous êtes bon pour faire un relais wemos).
J'étais parti pour monter un interrupteur connecté à partir d'un wemos et d'un Relay Shield, mais finalement j'ai fait plus simple : j'ai branché le frigo sur une prise connectée que je pilote par ma box domotique. Il suffit de changer les lignes 93 et 98 pour une commande compréhensible par votre box domotique (si vous en avez une, sinon vous êtes bon pour faire un relais wemos).
Dernière modification par ouiouiblog le 10 oct. 2023, 00:28, modifié 2 fois.
- lordzurp
- Messages : 1428
- Inscription : 25 juin 2020, 19:08
- Localisation : à l'ouest
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Je te remercie pour la plus-value que tu apportes au sujet
Une idée pour réguler le frigo ?
- lordzurp
- Messages : 1428
- Inscription : 25 juin 2020, 19:08
- Localisation : à l'ouest
Régulateur à Peltier DIY
Suis dans la montagne avec que le téléphone sous la main, compliqué de faire un long post 
Mais reping moi dans quelques jours et on voit ça
Mais reping moi dans quelques jours et on voit ça
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
A priori, le composant noir à 16 pins ressemble à un contrôleur de Led (genre RT5957). Si c'est le cas, on doit pouvoir commander le peltier comme une LED avec des commandes neopixel
EDIT : ben non en fait, ça ne marche pas
EDIT : ben non en fait, ça ne marche pas
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Hé ben, ça marche bien
La caméra était à 34° au démarrage, je lui ai demandé de se caler à 31 +/0.1° (avec actu toutes les 10 secondes).
Je tourne entre 30.6 et 31.3 ;
Rien n'empêche d'accélérer la période d'actualisation et de travailler sur un intervalle plus serré (la température est relevée au 1/1000 000ème de degré, avec une précision sans doute toute relative). A cette température ambiante, la température de la caméra évolue environ 0.02° par seconde
Je vais pouvoir me faire ma biblio de Darks sans rester scotché derrière ma caméra
@Zibou, tu gagnes 10 à 15° avec ce truc, pas moyen d'aller à -10°. Par ailleurs le frigo refroidit l'extérieur de la caméra, quand tu passes en dessous du point de rosée, la caméra se met à ruisseler (et elle n'est pas IP68)
La caméra était à 34° au démarrage, je lui ai demandé de se caler à 31 +/0.1° (avec actu toutes les 10 secondes).
Je tourne entre 30.6 et 31.3 ;
Rien n'empêche d'accélérer la période d'actualisation et de travailler sur un intervalle plus serré (la température est relevée au 1/1000 000ème de degré, avec une précision sans doute toute relative). A cette température ambiante, la température de la caméra évolue environ 0.02° par seconde
Je vais pouvoir me faire ma biblio de Darks sans rester scotché derrière ma caméra
@Zibou, tu gagnes 10 à 15° avec ce truc, pas moyen d'aller à -10°. Par ailleurs le frigo refroidit l'extérieur de la caméra, quand tu passes en dessous du point de rosée, la caméra se met à ruisseler (et elle n'est pas IP68)
Dernière modification par ouiouiblog le 10 oct. 2023, 00:35, modifié 1 fois.
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
J'avais édité mon post pour te répondre 
gain de 10 à 15°
En partant de 34, j'en suis là (et ça continue à descendre doucement) En graphique (abscisse en secondes)
gain de 10 à 15°
En partant de 34, j'en suis là (et ça continue à descendre doucement) En graphique (abscisse en secondes)
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Il n'y a pas de peltier dans les PC (enfin pas les PC de M. tout le monde). Les températures en jeu ne sont pas les mêmes : le proc monte autour de 100° dans une atmosphère à 20/30°; souffler dessus suffit à le refroidir. Là il faut descendre en dessous de la T° ambiante.
Le but n'est pas de faire une cam refroidie (l'Uranus pro ne coûte jamais que 200 € de plus que la version non refroidie et un bricolage risque de coûter le même prix pour un résultat moindre), mais surtout d'avoir des températures stabilisées (surtout pour me faire une biblio de Darks dans un premier temps, voire pour imager par nuit de canicule).
Le but n'est pas de faire une cam refroidie (l'Uranus pro ne coûte jamais que 200 € de plus que la version non refroidie et un bricolage risque de coûter le même prix pour un résultat moindre), mais surtout d'avoir des températures stabilisées (surtout pour me faire une biblio de Darks dans un premier temps, voire pour imager par nuit de canicule).
- lordzurp
- Messages : 1428
- Inscription : 25 juin 2020, 19:08
- Localisation : à l'ouest
Régulateur à Peltier DIY
Pour 10€ et 2min d'installation, par rapport aux 200-300€ d'un frigo "de série" c'est loin d'être si bof que ça
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Edit 23/10/2023 : problème résolu avec la dernière version de Sharpcap
Je viens d'identifier un petit truc à améliorer : le driver (en tout cas celui de l'Uranus) ne met à jour la température du capteur qu'entre chaque prise de vue. Ca peut être gênant pour les poses longues genre 60 secondes ou plus ; surtout lors du réchauffement, si on est descendu bas en température (la caméra se réchauffe de 1.5° par minute).
Je vais peaufiner l'algo de régulation (je pense que j'ai fait 80% du boulot avec 20% du temps et je sens que je bascule de l'autre côté de la règle des 80/20)
Je viens d'identifier un petit truc à améliorer : le driver (en tout cas celui de l'Uranus) ne met à jour la température du capteur qu'entre chaque prise de vue. Ca peut être gênant pour les poses longues genre 60 secondes ou plus ; surtout lors du réchauffement, si on est descendu bas en température (la caméra se réchauffe de 1.5° par minute).
Je vais peaufiner l'algo de régulation (je pense que j'ai fait 80% du boulot avec 20% du temps et je sens que je bascule de l'autre côté de la règle des 80/20)
Dernière modification par ouiouiblog le 23 oct. 2023, 22:11, modifié 1 fois.
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Edit 23/10/23 : script inutile avec la nouvelle version de Sharpcap
Un script plus élaboré et plus adapté aux poses longues (pour lesquelles on n'a accès à la température de la caméra qu'entre les poses). Le script modélise l'évoluton de température de la caméra entre chaque pose. C'est mieux (je régule à +/- 0.5° sur des poses de 60 secondes). Par contre ça nécessite de calibrer la courbe d'évolution thermique de la caméra (ce qui est un poil pénible à faire).
Exemple sur une régulation à 20°
En l'état le script est adapté à une Uranus-C avec pad thermique et un régulateur comme le mien. Il demande un paramètre supplémentaire au démarrage (température ambiante), pour estimer la température max du capteur (T ambiante + 7°) et faire ses calculs
!! script pour Sharpcap 4.1
Un script plus élaboré et plus adapté aux poses longues (pour lesquelles on n'a accès à la température de la caméra qu'entre les poses). Le script modélise l'évoluton de température de la caméra entre chaque pose. C'est mieux (je régule à +/- 0.5° sur des poses de 60 secondes). Par contre ça nécessite de calibrer la courbe d'évolution thermique de la caméra (ce qui est un poil pénible à faire).
Exemple sur une régulation à 20°
En l'état le script est adapté à une Uranus-C avec pad thermique et un régulateur comme le mien. Il demande un paramètre supplémentaire au démarrage (température ambiante), pour estimer la température max du capteur (T ambiante + 7°) et faire ses calculs
!! script pour Sharpcap 4.1
Code : Tout sélectionner
#App tournant en boucle : A chaque nouvelle image, interroge la Temperature Camera en boucle et envoie requête Allumage/Extinction Frigo si Température trop éloignée de la température cible
#Bibliothèques
import time
import clr
import System
import math
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")
from System.Windows.Forms import Form, Label, TextBox, Button, DialogResult
from System.Drawing import Size, Point
from urllib.request import urlopen
#Boite de dialogue
class InputForm(Form):
def __init__(self):
self.InitializeComponent()
def InitializeComponent(self):
self.label1 = Label()
self.label2 = Label()
self.label3 = Label()
self.textBox1 = TextBox()
self.textBox2 = TextBox()
self.textBox3 = TextBox()
self.okButton = Button()
# Set form properties
self.Text = "Température"
self.Size = System.Drawing.Size(350, 200)
self.label1.Text = "Temp. ambiante:"
self.label1.Location = System.Drawing.Point(20, 20)
self.label1.AutoSize = True
self.textBox1.Location = System.Drawing.Point(120, 20)
self.textBox1.Size = System.Drawing.Size(100, 20)
self.label2.Text = "Temp. cible:"
self.label2.Location = System.Drawing.Point(20, 50)
self.label2.AutoSize = True
self.textBox2.Location = System.Drawing.Point(120, 50)
self.textBox2.Size = System.Drawing.Size(100, 20)
self.label3.Text = "Ecart:"
self.label3.Location = System.Drawing.Point(20, 80)
self.label3.AutoSize = True
self.textBox3.Location = System.Drawing.Point(120, 80)
self.textBox3.Size = System.Drawing.Size(100, 20)
self.okButton.Text = "OK"
self.okButton.Location = System.Drawing.Point(120, 110)
self.okButton.Click += self.OkButton_Click
self.Controls.Add(self.label1)
self.Controls.Add(self.textBox1)
self.Controls.Add(self.label2)
self.Controls.Add(self.textBox2)
self.Controls.Add(self.label3)
self.Controls.Add(self.textBox3)
self.Controls.Add(self.okButton)
def OkButton_Click(self, sender, e):
# Get the values entered by the user
Ambiant = self.textBox1.Text
Ambiant = float(Ambiant)
Cible = self.textBox2.Text
Cible = float(Cible)
Ecart = self.textBox3.Text
Ecart = float(Ecart)
# Close the form
self.DialogResult = System.Windows.Forms.DialogResult.OK
self.Close()
# Return the values
return Ambiant, Cible, Ecart
if __name__ == "__main__":
input_form = InputForm()
result = input_form.ShowDialog()
if result == DialogResult.OK:
Ambiant, Cible, Ecart = input_form.OkButton_Click(None, None) # Get the values
Tmax = Ambiant + 7
# Affiche les paramètres
print ("Camera : ", SharpCap.SelectedCamera)
print ("T. Ambiante : ", Ambiant)
print ("T. Max Camera : ", Tmax)
print ("T. Cible : ", Cible)
print ("Ecart : ", Ecart)
sleep = 5
# loop indefinitely > Interroge Temp camera et lance requete HTTP pour allumer/éteindre peltier
# Lignes urlopen(...) à personnaliser
# Lignes modélisation température caméra à personnaliser Temp = Temp - 4.147*math.log(sleep)+16.237 et Temp = Temp + 3.6746*math.log(sleep)-28.739
while True:
#récupère durée exposition en millionième de sec.
Expo = SharpCap.SelectedCamera.Controls.Find(lambda x:x.Id == CommonPropertyIDs.Exposure).Value / 1000000
#Expos < ou = Sleep >> régulation simple
if Expo <= sleep:
# récupère Temp camera
Temp = SharpCap.SelectedCamera.Controls.Find(lambda x:x.Id == CommonPropertyIDs.Temperature).Value
print (Temp)
# Requete Allumage Wemos si Temp > Cible + Ecart
if Temp > Cible+Ecart:
urlopen('http://192.168.1.46/control?cmd=event,ON')
print ("requete Allumage pour", sleep, "s")
# Requete Extinction Wemos si Temp < Cible - Ecart
if Temp < Cible-Ecart:
urlopen('http://192.168.1.46/control?cmd=event,OFF')
print ("requete Extinction pour", sleep, "s")
print (Temp)
time.sleep(sleep)
#Expos > Sleep >> modélisation de la température du capteur toutes les 5 secondes
else:
Capture0 = SharpCap.SelectedCamera.CapturedFrameCount
Capture = Capture0
print ("image : ", Capture)
Temp = SharpCap.SelectedCamera.Controls.Find(lambda x:x.Id == CommonPropertyIDs.Temperature).Value
print (Temp, "reel")
while Capture == Capture0:
# Requete Allumage Wemos si Temp > Cible + Ecart
if Temp >= Cible+Ecart:
urlopen('http://192.168.1.46/control?cmd=event,ON')
#Calcul température à la fin du Sleep
#duree : Tps de Tmax à Temp
duree = math.exp((16.237-(Temp-Tmax))/4.147)
#Temperature finale calculée avec duree + sleep par rapport à Tmax
Temp = Tmax + (16.237-4.147*math.log(duree+sleep))
print ("requete Allumage pour", sleep, "s")
print (Temp)
# Requete Extinction Wemos si Temp < Cible - Ecart
else:
urlopen('http://192.168.1.46/control?cmd=event,OFF')
#Calcul température à la fin du Sleep
#duree : Tps de Temp à Tmax
duree = math.exp((28.739+(Temp-Tmax))/3.6746)
#Temperature finale calculée avec duree + sleep par rapport à Tmax
Temp = Tmax + 3.6746*math.log(duree+sleep)-28.739
print ("requete Extinction pour", sleep, "s")
print (Temp)
time.sleep(sleep)
Capture = SharpCap.SelectedCamera.CapturedFrameCount
Dernière modification par ouiouiblog le 23 oct. 2023, 22:11, modifié 1 fois.
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
J'ai échangé avec Robin. Le fait que Sharpcap n'actualise pas la température du capteur n'est pas un comportement normal. Il cherche une solution. A partir de là, le script fourni en début de post sera totalement opérationnel ; y compris pour les poses longues.
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Robin n'a pas trainé > problème résolu dans la version Sharpcap de ce jour (4.1.11137.0).
- vidalv
- Messages : 331
- Inscription : 09 avr. 2022, 16:27
- Localisation : Région Bordelaise
Régulateur à Peltier DIY
Bonjour, je tape l'incruste,
Quel intérêt de réduire la température sur un capteur CMOS, un CCD je comprends, il y a des emballements thermiques lors des décharges ?
Par exemple ma caméra (une ASI585MC) est équipée d'un capteur CMOS Sony IMX585 avec la techno Starvis 2 qui évite la génération "d'amp-glow" réduire de 10°C m’amènera à quoi de plus ?
Merci
Quel intérêt de réduire la température sur un capteur CMOS, un CCD je comprends, il y a des emballements thermiques lors des décharges ?
Par exemple ma caméra (une ASI585MC) est équipée d'un capteur CMOS Sony IMX585 avec la techno Starvis 2 qui évite la génération "d'amp-glow" réduire de 10°C m’amènera à quoi de plus ?
Merci
- steph37
- Messages : 4330
- Inscription : 14 avr. 2021, 11:03
- Localisation : Chenonceaux
Régulateur à Peltier DIY
Je trouve que c'est pas mal expliqué ici : https://sahavre.fr/wp/bruit-part-1/
-
pejive
- Messages : 11138
- Inscription : 09 avr. 2019, 05:43
- Localisation : 33
Régulateur à Peltier DIY
Sauf que dans ce lien il n'est pas question de la température (ou alors j'ai mal lu
)
Je préfère celui-ci , un peu plus hard certes
https://www.thorlabs.com/newgrouppage9. ... on%20band).
Pour faire simple: quand la température diminue, le courant d'obscurité d'un CMOS diminue, et cela ne peut qu'être bénéfique; sinon pourquoi ferait-on des caméras refroidies ?
Il est facile de constater que les images obtenues en hiver avec une température de capteur de 20° sont toujours meilleures que celles réalisées sous la canicule lorsque la température du capteur est de 35°
Les CMOS ont un bruit dû à ce courant d'obscurité plus élevé que les CCD https://www.photometrics.com/learn/excl ... han%20CCDs.
Je préfère celui-ci , un peu plus hard certes
https://www.thorlabs.com/newgrouppage9. ... on%20band).
Pour faire simple: quand la température diminue, le courant d'obscurité d'un CMOS diminue, et cela ne peut qu'être bénéfique; sinon pourquoi ferait-on des caméras refroidies ?
Il est facile de constater que les images obtenues en hiver avec une température de capteur de 20° sont toujours meilleures que celles réalisées sous la canicule lorsque la température du capteur est de 35°
Les CMOS ont un bruit dû à ce courant d'obscurité plus élevé que les CCD https://www.photometrics.com/learn/excl ... han%20CCDs.
- steph37
- Messages : 4330
- Inscription : 14 avr. 2021, 11:03
- Localisation : Chenonceaux
Régulateur à Peltier DIY
Sisi @pejive on parle bien de température dans le lien que je propose, au bout de quelques lignes, il est vrai 
- vidalv
- Messages : 331
- Inscription : 09 avr. 2022, 16:27
- Localisation : Région Bordelaise
Régulateur à Peltier DIY
Merci @steph37 en résumé : mais c'est surtout les caméra refroidie qui génère ce type de soucis ? donc ça deviens confus
- vidalv
- Messages : 331
- Inscription : 09 avr. 2022, 16:27
- Localisation : Région Bordelaise
Régulateur à Peltier DIY
Eneffet
Qui à déjà bossé avec le SNR (Signal Noise Rejection, comme y disent), bon en gros ils parlent de "Hot Pixels" hors, à mon avis sur les capteurs modernes c'est minoritaire voir inutile, va falloir que je recontacte mes potes du côte d'E2V vers Grenoble pour savoir ce qu'il en est
Intéressant
- steph37
- Messages : 4330
- Inscription : 14 avr. 2021, 11:03
- Localisation : Chenonceaux
Régulateur à Peltier DIY
Écoute @vidalv ma compréhension est que les caméras refroidies refroidissent le capteur mais ce faisant produisent de la chaleur à proximité
ce qui peut poser des soucis
(Je n'ai plus de caméra refroidie et, bizarrement, ça ne me manque pas. )
(Je n'ai plus de caméra refroidie et, bizarrement, ça ne me manque pas. )
- Caprice
- Messages : 6878
- Inscription : 25 juil. 2020, 16:35
- Localisation : Isère
Régulateur à Peltier DIY
Je dirais plutôt que ce bruit IR est inhérent à la fabrication des caméras et qu'il est d'autant plus visible avec une cam refroidie car il y a moins de bruit annexe pour le noyer. J'ajouterai qu'il est retiré par un dark plus facile à préparer sur une cam refroidie pour une température donnée 
- ouiouiblog
- Messages : 1705
- Inscription : 03 nov. 2022, 22:31
- Localisation : 44
Régulateur à Peltier DIY
Un exemple vaut mieux qu'un long discours 
Dark 60 secondes à 6.5° > Sigma ~25 et BGNoise = 9 (estimation du bruit par Siril) Dark 60 secondes à 26.1° > Sigma ~120 et BGNoise ~ 30 (estimation du bruit par Siril)
>> Le bruit est 3x plus élevé à 26° qu'a 6°
Dark 60 secondes à 6.5° > Sigma ~25 et BGNoise = 9 (estimation du bruit par Siril) Dark 60 secondes à 26.1° > Sigma ~120 et BGNoise ~ 30 (estimation du bruit par Siril)
>> Le bruit est 3x plus élevé à 26° qu'a 6°