Jump to content

Dithering et Intervalomètre Autonome en Arduino


Recommended Posts

Posted (edited)

Ce n'est pas vraiment ça que j'appelle un algorithme, ce serait plutôt quelque chose comme ça :

https://commons.wikimedia.org/wiki/File:Euclid_flowchart_1.png?uselang=fr

 

On peut aussi faire un grafcet, pour ceux qui ont fait un peu d'automatisme.

Il faut aussi faire la liste des entrées et sorties (physiques et informations)

 

Enfin ce sont justes les "bonnes pratique", ce n'est pas indispensable mais ca evite les erreurs, et c'est conseillé si on veut travailler a plusieurs sur le projet.

Edited by Hans Gruber
Link to post
Share on other sites
  • Replies 102
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Voici un premier jet avec DipTrace. Loin d'être finalisé ! Il faut encore que je place les connecteurs RJ12 pour ST4, Jack pour APN et un autre pour l'alim... Le rectangle vert est pour l'écran LCD. A

Voici donc les choix du menu. J'ai choisi l'anglais pour ne pas limiter l'outil au marché français. Si vous n'êtes pas d'accord, c'est la même chose !   EQUIPEMENT - Focal length : en m

Et voilà !   J’explique. Le film montre les commandes exécutées sur les optocoupleurs simulés par des Led. Les leds jaunes montrent les optocoupleurs sur le port ST4, RA+ et RA-

Posted Images

il y a 12 minutes, Hans Gruber a dit :

Ce n'est pas vraiment ça que j'appelle un algorithme, ce serait plutôt quelque chose comme ça :

https://commons.wikimedia.org/wiki/File:Euclid_flowchart_1.png?uselang=fr

 

On peut aussi faire un grafcet, pour ceux qui ont fait un peu d'automatisme.

Il faut aussi faire la liste des entrées et sorties (physiques et informations)

 

Enfin ce sont justes les "bonnes pratique", ce n'est pas indispensable mais ca evite les erreurs, et c'est conseillé si on veut travailler a plusieurs sur le projet.


Ca vaut pour les projets complexes, ici c’est vraiment basique… (sauf l’interface utilisateur).

Link to post
Share on other sites

Merci, ça permet déjà d'y voir plus clair.

Je vais me pencher sur tes autres messages pour mieux comprendre, car je dois avouer que jusqu'à maintenant je ne m'étais jamais préoccupé du dithering.

Link to post
Share on other sites
Il y a 2 heures, Hans Gruber a dit :

Merci, ça permet déjà d'y voir plus clair.

Je vais me pencher sur tes autres messages pour mieux comprendre, car je dois avouer que jusqu'à maintenant je ne m'étais jamais préoccupé du dithering.

J’ai trouvé une librairie qui fonctionne bien pour le menu. Ça marche sur écran LCD 16x2.

 

https://github.com/MajicDesigns/MD_Menu

 

On peut trouver beaucoup mieux, mais c’est largement plus complexe à utiliser… et leurs auteurs sont très avares de renseignements.

 

 

Link to post
Share on other sites

Jai commandé un écran lcd pour faire des essais, par contre je l'ai pris en i2c pour libérer des ports.

J'ai un clavier matriciel qui traine quelque part, ce serait peut être mieux que des boutons.

Link to post
Share on other sites
Il y a 3 heures, Hans Gruber a dit :

J'ai un clavier matriciel qui traine quelque part, ce serait peut être mieux que des boutons.


Oui j’ai aussi un I2C qui devrait arriver en 16x2 et un autre en 20x4 (pour un autre projet). Pour l’instant je développe avec un série.

 

Pour le clavier, c’est bien mais ça prend juste plus de place. En fait 5 ou 6 boutons suffisent et ça n’occupe qu’un seul port analogique.

 

 

image.jpg

Link to post
Share on other sites

Le problème que je vois au clavier c'est d'entrer des valeurs numériques comme une focale, il faut alors passer par des astuces comme incrémenter/décrémenter de 1 à chaque pression, puis valider. Ce n'est pas infaisable mais ça complique le code. Avec un clavier on peut entrer la valeur directement.

Link to post
Share on other sites
il y a 21 minutes, Hans Gruber a dit :

Le problème que je vois au clavier c'est d'entrer des valeurs numériques comme une focale, il faut alors passer par des astuces comme incrémenter/décrémenter de 1 à chaque pression, puis valider. Ce n'est pas infaisable mais ça complique le code. Avec un clavier on peut entrer la valeur directement.

Oui, tout à fait. Cela dit on n’a pas besoin d’une précision millimétrique. Entrer la focale a 10mm près est largement suffisant de 50 à 150 mm de focale, puis a 50 mm de 150 à 600 mm (focale des plus gros téléobjectifs à prix raisonnable). Le dithering en dessous de 50 mm de focale est assez inutile, et ne le faire qu’en RA au dessus de 600 mm n’a plus tellement de sens non plus.

 

Pour la taille des pixels, c’est pareil, une précision de 0,5 um est suffisante. On peut aller de 3 à 10 um, ça couvrira tous les capteurs courants.

Link to post
Share on other sites
  • Fred_76 changed the title to Dithering et Intervalomètre Autonome en Arduino

Pour la suite, voici l'organigramme.

 

Il ne montre pas :

- les affichages de contrôle à l'écran / leds

- le fait qu'on peut interrompre l'exécution de la prise de vue. Dans ce cas on arrive sur un écran qui demande si on confirme ou non l'arrêt. Tant qu'on n'a pas confirmé l'arrêt, le boitier doit continuer à prendre les photos, tant pis si on fait quelques vibrations.

 

image.png.6dac2a34daa4626cdd81ced335e92534.png

 

PS : pour ceux que ça intéresse, j'utilise https://lucid.app/

Link to post
Share on other sites

Avancement :

- passage sur écran LCD I2C : FAIT (en plus l'écran est rouge)

- saisie des paramètres via menu : FAIT

- sauvegarde dans l'EEPROM pour les récupérer après avoir éteint l'appareil : FAIT

- possibilité de reset : FAIT

 

Voici quelques images de l'interface.

 

Les menus :

IMG_0616.JPG

IMG_0617.JPG

IMG_0618.JPG

IMG_0619.JPG

IMG_0620.JPG

 

Quelques écran de saisie des valeurs :

IMG_0621.JPG

IMG_0622.JPG

IMG_0623.JPG

 

Une fois la valeur confirmée, elle est stockée dans l'EEPROM, comme ça, même après avoir éteint le boitier, on ne la perd pas. On peut cependant revenir aux valeurs par défaut en faisant un RESET.

 

Reste à faire la chaine de commandes quand on appuie sur START.

  • J'aime 1
  • Merci / Quelle qualité! 1
Link to post
Share on other sites

Point pour ce soir :

- implémentation du délais avant de commencer à prendre les photos : FAIT

- implémentation de la prise de vue : FAIT

- implémentation du calcul du dithering : FAIT

- annulation de la séquence en cours : FAIT (mais pas possible de poser la question "continuer/annuler" comme initialement prévu..., tant pis. Mais comme il faut faire un appui long sur le bouton Escape, c'est pas trop grave).

 

J'ai un bug parfois dans l'affichage, peut être un problème de mémoire... va falloir que je regarde ça de plus près.

 

ça avance !

Link to post
Share on other sites

Salut Fred, je regarde ton montage c'est très propre sur ces plaques blanches 

Je me dis que le tas de fils infâme de la motorisation de mon dob y gagnerait en clarté 

Ça s'appelle comment ? Les rangées de trous sont elles reliées entre elles ? 

 

Plus tard.... 

Je viens de regarder une vidéo sur ces plaques, c'est cool 

Par contre elles sont toutes reliées de la même façon ? 

Pour les arduinos, tu sais lesquelles sont préférables ? 

Link to post
Share on other sites

ça s’appelle une breadboard (planche à pain).


Peu importe, les trous sont reliés entre eux en colonnes, avec deux rangées séparées, et tu trouves aussi en haut et en bas deux lignes qui servent au - et au +. Sur certaines plaques ces lignes sont en deux parties, droite et gauche.

 

Pour les Arduino, on s’en fout car à part si on a un shield special, l’arduino ne se clipse pas sur la breadboard.

  • Merci / Quelle qualité! 1
Link to post
Share on other sites

Et voilà !

 


J’explique. Le film montre les commandes exécutées sur les optocoupleurs simulés par des Led. Les leds jaunes montrent les optocoupleurs sur le port ST4, RA+ et RA-. La led rouge simule l’optocoupleur qui commande l’appareil photo. La led verte s’allume quand on est en attente.

 

Les valeurs choisies via le menu sont les suivantes :

 

Equipement

- focale de 200 mm

- photosites de 5 um

- vitesse ST4 de x1

- déclinaison des 30°
 

Dithering

- dithering de 10 pixels en moyenne

- dithering toutes les 3 poses

- stabilisation de 2 s après chaque dithering

 

Intervalometre

- prise de 5 poses de 3 s

- durée minimale d’attente entre deux poses de 5 s

- départ retardé de 3 


La musique est « Achié » 🤪

  • Merci / Quelle qualité! 2
Link to post
Share on other sites

Voici donc les choix du menu. J'ai choisi l'anglais pour ne pas limiter l'outil au marché français. Si vous n'êtes pas d'accord, c'est la même chose !

 

EQUIPEMENT

- Focal length : en mm, de 50 à 600 mm par pas de 5 mm

- Pixel pitch : en µm, de 2.0 à 10.0 par pas de 0.1 µm

- ST4 Speed : 0.25, 0.75 ou 1.00 x la vitesse sidérale

 

DITHERING

- Nb pixels : de 1 à 50 par pas de 1

- Dither every (photos) : de 1 à 10 par pas de 1

- Stabilisation : en s, de 0 à 30 s par pas de 1 s

 

INTERVALOMETER

- Nb photos : de 1 à 999 par pas de 1

- Exposure time : de 1 à 999 s par pas de 1 s

- Wait between : de 1 à 60 s par pas de 1 s (c'est le temps d'attente mini entre deux photos, déduction faite éventuellement de la durée de dithering et de stabilisation)

- Delayed start : de 0 à 60 s par pas de 1 s (c'est le temps d'attente avant de lancer la première photo)

 

START

- Declination : en °, de 0° à 80° par pas de 5°

- OK to Confirm : OK pour lancer, ESC pour annuler

 

SETTINGS

- LCD Menu lum : de 1 (peu lumineux) à 10 (très lumineux)

- LCD Shoot lum de 0 (éteint) à 10 (très lumineux)

- RESET : OK pour re-setter toutes les valeurs par défaut, ESC pour annuler

 

 

Une fois qu'on a lancé la séance, on peut appuyer longuement sur ESC à tout moment pour annuler la prise de vue.

 

La séance de photos se décompose comme suit :

1. Temps d'attente avant 1ère photo selon valeur saisie dans "INTERVALOMETER>Delayed start" (Led Verte allumée)

2. Prise de la photo, selon la durée d'expo saisie dans "INTERVALOMETER>Exposure time". Led rouge allumée. A la dernière photo, arrête la séance.

3. Selon la valeur saisie dans "DITHERING>Dither every", fait du dithering ou non

3.1 En cas de dithering, calcule la durée avec les paramètres saisis et selon méthode déjà décrite, une des 2 Leds jaune est allumée selon RA+ ou RA-

3.2 Attend pendant la durée saisie dans "DITHERING>Stabilisation", Led verte allumée

4. Attend pendant la durée saisie dans "INTERVALOMETER>Wait between", déduction faite éventuellement de la durée de dithering et de la durée de stabilisation (si la somme des 2 est > à la durée saisie Wait Between, on n'attend pas plus), Led verte allumée

5. Poursuit la prise de vues en 2. jusqu'à ce que toutes les photos soient prises.

 

Il me reste à tester sur un appareil photo et mon Astrotrack.

 

Je vais aussi ajouter un contrôle de la luminosité de l'écran via le menu, pour qu'il soit quasiment éteint pendant la séance de poses, et ne s'allume bien que lorsqu'on entre dans le menu, histoire de ne pas gâcher les piles.

 

Ensuite, il faudra faire le circuit imprimé, souder les composants, faire un boitier (en impression 3D) et distribuer la solution !

 

A+

 

Fred

  • J'aime 1
  • Merci / Quelle qualité! 1
Link to post
Share on other sites
Posted (edited)

Joli travail.

 

Pour le paramètre "déclinaison", il serait intéressant de demander confirmation de la valeur lors de la confirmation "Start shooting".

Je pense qu'entre deux cibles, peu de personnes penseront à modifier ce paramètre. Ou alors mettre ce paramètre dans la catégorie "INTERVALOMETER".

Edited by Eridan31
Link to post
Share on other sites

On peut aussi laisser la valeur par défaut, j’ai mis 60° ce qui devrait être suffisant dans la majorité des cas.

 

Ne pas oublier que cet appareil est utilisé pour des montures nomades avec des focales assez courtes < 400 mm dans la très grande majorité des cas (généralement 135 mm). Ca fait un champ observé avec f=50 mm de l'ordre de 30° avec un APSC et 45° avec un PF, et avec f=400 mm, de 4° en APSC à 6° en PF. Si on utilise le renommé Samyang 135/2, le champ est de 11° en APSC ou 18° en PF.

 

*** J'ai modifié le schéma du menu en conséquence.

  • J'aime 1
Link to post
Share on other sites

Voici le schéma électronique. Je suis complétement incapable de mettre ça sur un circuit imprimé... si vous avez des idées...

 

image.thumb.png.d1033f255c6faa658b9f2efcb2bc2d69.png

 

D'autant plus que j'utilise ici Tinkercad qui ne permet pas de mettre tous les composants qu'on veut. L'écran LCD est donc câblé "comme" un I2C, les optocoupleurs que j'ai sont à 4 broches (ce sont des 817C) et le port ST4 ainsi que la fiche jack DSLR sont représentés par les switchs et le bouton...

 

Par contre les résistances ont normalement le bon code couleur.

  • J'aime 1
Link to post
Share on other sites
il y a 11 minutes, Fred_76 a dit :

Voici le schéma électronique. Je suis complétement incapable de mettre ça sur un circuit imprimé... si vous avez des idées...

 

Ce n'est pas compliqué, il suffit de dessiner les pistes comme tu l'a fait avec les fils. Tu peux par exemple utiliser dip trace si tu n'a jamais utilisé ce genre de logiciel.

Par contre la carte arduino uno n'est absolument pas adapté pour un appareil distribué. A la place on peut par exemple utiliser un atmega 328 (que tu programmes avec la carte arduino que tu as déjà) sur la carte définitive.

Link to post
Share on other sites

Oui bien sûr ! J’ai des Arduino Nano qui sont adaptés pour ça. Ils partagent le même brochage avec la Uno (mais ils ne sont pas sur Tinkercad…).

Link to post
Share on other sites

Un nano sera également trop gros, et ça ne fait pas "sérieux". Un atmega 328 avec son bootloader est un arduino, mais sans tous les trucs qui ne sont plus utiles sur ta réalisation.

Link to post
Share on other sites

Je vais regarder. Mais ça va compliquer le montage… je suis une tanche en électronique. Il faudra ajouter un quartz, une alimentation ? What else ?

 

De toutes façons, rien que l’écran LCD est énorme, alors mettre un Nano à côté ne serait pas dramatique !

Link to post
Share on other sites

disons que si tu veux monter le tout sur un pcb l'atmega est plus logique, et ce ne sera pas tellement plus compliqué.

Je peux faire un circuit "vite fait", dans un 1er temps pour montrer à quoi ça pourrait ressembler.

Link to post
Share on other sites

Voici un premier jet avec DipTrace. Loin d'être finalisé ! Il faut encore que je place les connecteurs RJ12 pour ST4, Jack pour APN et un autre pour l'alim... Le rectangle vert est pour l'écran LCD. A gauche il s'agit d'un Arduino Nano qui coute moins cher qu'un ATMega328 !

 

image.png.ada3ad7705da2e863dd1143dcaf932c0.png

  • J'aime 2
  • Merci / Quelle qualité! 1
Link to post
Share on other sites

Bien joué.

Pour fabriquer le circuit il existe des services de réalisation en ligne, (exemple  https://jlcpcb.com/). Ca prend quelques semaines pour être livré, mais pour la fabrication en série c'est le plus optimisé (cout faible et réalisation soignée).

Pour un seul circuit "test" il est possible de le faire soi même.

Link to post
Share on other sites

J'ai une petite question. Voici le schéma :

 

image.png.a194c704636bfe4b3aa23222161d91eb.png

 

Sur les datasheets, j'ai vu que les leds fonctionnaient bien avec un courant inférieur à 20 mA (elles éclairent moins, c'est tout) :

led rouge :

- à 10 mA, intensité lumineuse divisée par 2 (par rapport à 20 mA), chute de tension de 1.8 V

- à 5 mA, intensité lumineuse divisée par 4, chute de tension de 1.7 V

led verte :

- à 10 mA, intensité lumineuse divisée par 2, chute de tension de 2.05 V

- à 5 mA, intensité lumineuse divisée par 4, chute de tension de 2 V

Les leds jaunes sont entre les deux.

 

L'optocoupleur a lui besoin de 2.5 mA mini pour fonctionner (avec un max de 30 mA), donc se placer à 7.5 mA donne suffisamment de marge d'erreur.

Sa chute de tension est de l'ordre de 1,2 V.

 

Donc :

- résistance pour led rouge = (5-1.75-1.2)/0.075 = 270 Ohms

- résistance pour led verte = (5-2.03-1.2)/0.075=  240 Ohms

=> donc des résistances de 240 Ohms suffisent quelque soit la couleur de la Led.

 

Avec 5 mA, on aurait une résistance de 390 Ohms (entre 354 et 420 Ohms).

 

Si j'appuie sur le bouton, donc la Led doit s'allumer et le Pacman devrait en toute logique recevoir une décharge.

 

Est-ce que j'ai bon docteur @olivdeso? 😉 Je trouve que la valeur de la résistance est très faible...

Link to post
Share on other sites

Oui c'est tout bon.

 

Perso je baisserais un peu le courant de la led rouge (ou verte) car ça cracher la nuit. Tu peux même descendre à 1mA, tu la verra encore. D'autant que tu as beaucoup de choix dans les leds modernes, en terme de rendement (qui dépend du semi conducteur utilisé, souvent lié à la couleur) et aussi d'angle d'ouverture (plus l'angle est étroit plus elle est lumineuse)

(actuellement j'utilise une led verte sur un produit avec un courant de 0,5 à 1mA et on la voit très bien de jour par ex, alors de nuit ça serait encore trop)

 

Bref il faut s'occuper en priorité du courant de l'opto et ensuite tu aura ce que tu aura avec la led rouge/verte quite à en changer.

 

Pour l'opto, il faut tenir compte du taux de tranfer de courant  : en sortie tu peux commuter un pourcentage du courant de la led en entrée. Pour les opto courant basiques, tu as au moins 50% de transfert de courant à 5mA en général.  Souvent plus suivant la version de l'opto choisie,

 

-> mais en base compte 50% de taux de transfert à 5mA et tu est tranquille.

 

-> donc ça veut dire que tu pourra commuter 2,5mA en sortie, ce qui devrait suffire

 

Si ça ne suffisait pas, tu pourrait augmenter le courant de la led et/ou changer d'opto pour un autre à meilleur taux de transfert, 200, 400% voir plus avec un darligton.

 

Si la led rouge/verte crache vraiment trop la nuit, alors tu pourrais monter les 2 led en parallèle, chacune avec sa résistance de réglage. (ou un coup de marker noir;) ) ça ne t'indiquera plus si le courant passe réellement dans la led de l'opto, mais bon pas très critique...et comme ça tu pourrait aussi débrayer la led rouge/verte pendant les poses sans couper celle de l'opto. voir faire juste un petit flash en début de pose.

 

Le 09/06/2021 à 13:40, Hans Gruber a dit :

Pour fabriquer le circuit il existe des services de réalisation en ligne, (exemple  https://jlcpcb.com/). Ca prend quelques semaines pour être livré, mais pour la fabrication en série c'est le plus optimisé (cout faible et réalisation soignée).

Pour un seul circuit "test" il est possible de le faire soi même.

 

tu peux être livré dans la semaine si besoin, c'est juste une question de transporteur. Là je viens de faire 1000 PBCs chez eux pour une usine Française dans le Nord ;) ben livré en moins de 2 semaines via DHL.

 

JLCPCB fait un peu de câblage aussi avec des composants basiques.

 

Sinon PCBWAY fait tout type de composants de chez Digikey / Mouser. et le PCB. Typiquement 1 semaine pour le PCB et 4-5 semaines pour le câblage donc 5-6 semaines en tout.

Link to post
Share on other sites

Donc ca donne avec 2.5 mA :

 

- résistance pour led rouge = (5-1.75-1.2)/0.0025 = 820 Ohms

- résistance pour led verte = (5-2.03-1.2)/0.0075=  750 Ohms

 

Après test, effectivement ça dépote, même avec R=1 kOhm... A 5.6 kOhms, c'est plus raisonnable et ça passe toujours alors que je n'ai que 0.4 mA dans l'optocoupleur.

 

On peut le voir ci dessous, les Leds blanches sont commandées par les optos et simulent donc les ports ST4 et DSLR.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.