Aller au contenu

Dithering et Intervalomètre Autonome en Arduino


Fred_76

Messages recommandés

Il y a 3 heures, Hans Gruber a dit :

envoyées par un terminal bluetooth.

 

Qu'appelles tu "terminal Bluetooth" ? Si c'est pour ajouter un deuxième boitier, dans notre cas, c'est peu utile. Ca pourrait l'être si il était installé sur la monture (pour ne pas y toucher), c'est ce que j'ai fait pour la mise au point des objectifs, mais je commande le boitier avec un simple petit clavier de télécommande.

Lien vers le commentaire
Partager sur d’autres sites

Le terminal proprement dit est le téléphone : On utilise une application (moi j'utilise Serial Bluetooth, sans pub ni autorisation farfelue à valider) qui permet d'envoyer et recevoir des chaines de caractères.

Par exemple sur mes montages j'envoie (de l'esp32) généralement un menu à options associées à des chiffres lorsque j'envoie "menu" de mon téléphone.

Quand je répond le chiffre en question j'entre dans le menu suivant, et ainsi de suite.

Il est également possible de réceptionner de longues chaines de caractères, ou des valeurs, que l'application peut sauvegarder sous forme de fichier sur le téléphone.

En quelque sorte le téléphone remplace un clavier.

Modifié par Hans Gruber
Lien vers le commentaire
Partager sur d’autres sites

Merci, c’est effectivement quelque chose d’intéressant à voir.

 

Cela dit, comme je vois passer plein de messages sur le forum de gens qui n'arrivent pas à se connecter au Bluetooth de leur Star Adventurer (Mini ou 2i) ou encore à l'EQTooth, je me demande s'il ne serait pas plus judicieux de faire un bidule "standalone".

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Voici une première version du circuit. Comme Wokwi ne gère pas énormément de composants, je fais donc le schéma avec Tinkercad ... qui ne gère pas les écrans LCD I2C. Mais au moins Tinkercad sait gérer plein de composants !

image.thumb.png.96568cede951c9f4907f770de36827fc.png

 

La petite platine en haut simule la monture et l'appareil photo.

 

Sur la grande plaque, on trouve en noir les 3 relais, en bleu un potentiomètre pour régler l'intensité de l'écran LCD, une LED rouge qui s'allume quand une photo est en cours jusqu'à ce que la monture soit stabilisée. On trouve aussi les 6 boutons de sélection des paramètres.

 

Quasiment tous les ports de l'Arduino Uno sont pris. En utilisant un écran I2C, j'aurais plus de ports disponibles et ça ne changera (presque) pas la programmation, ça me ferait gagner 4 ports .

Ca me permettrait de placer des LEDs à la place de la Led rouge de controle pour faire passer plus de messages visuels.

 

*** amélioration en cours : mettre les boutons en série sur une seule entrée analogique, ce qui me fera gagner 5 ports.

 

A+

 

Fred

 

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, Hans Gruber a dit :

Au lieu de l'écran et des boutons ce ne serait pas mieux de prendre un petit écran tft tactile ? Les écrans sur 2 lignes c’était bien il y a 10 ans.

 

Et tu fais comment la nuit par -5°C avec les doigts gelés...  enfin c'est juste mon avis !

 

Cela dit, j'ai regardé ces "petits écrans tactiles". On en trouve à moins de 10€ et ça semble effectivement bien simplifier le boulot. Sauf qu'aucun émulateur ne les prend en compte... donc je partirai au petit bonheur avec ce choix.

 

Note qu'il faut doubler voire tripler le prix car souvent les écrans arrivent cassés ou avec des défauts électroniques qui les rendent inopérants après quelques utilisations, dixit les innombrables retours qu'on peut lire sur le net. Il y a aussi les écrans Oled, qui contrairement aux écrans LCD, ne dépendent pas de la température extérieure. Mais ils sont tous petits... Dans tous les cas, seule la partie interface graphique changera, le reste de la programmation et de l'électronique sera similaire.

 

Voici la version avec un clavier en série, plus qu'un seul câble (c'est la plaque de droite) qui remplace les 6 câbles bleus.

 

image.thumb.png.a9ab0cf7434f7523a99afcdcb6845477.png

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Qu'est ce que tu appelles émulateur ? Ces écrans sont assez faciles à utiliser, on trouve facilement des tuto.

J'en ai acheté à de nombreuses reprises, et je n'en ai jamais eu un seul de défaillant.

Avec les doigts gelés ça devient plus compliqué en effet, dans ce cas il faut utiliser un stylet, ou faire de gros boutons.

A noter que ces écrans ne sont pas capacitifs mais résistifs, on peut les utiliser avec les gants.

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 9 heures, Fred_76 a dit :

 

Et tu fais comment la nuit par -5°C avec les doigts gelés...  enfin c'est juste mon avis !

Il ne faut pas oublier l'IR, suffisant pour la plupart des fonctions 

Un capteur IR ça coûte 1€, une vieille télécommande de télévision, un peu de code et hop ! 

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Oui ça j’ai fait. C’est pas mal du tout pour faire la mise au point de mon objectif sans y toucher.

Il y a 10 heures, Hans Gruber a dit :

Qu'est ce que tu appelles émulateur ? Ces écrans sont assez faciles à utiliser, on trouve facilement des tuto.


Par exemple TinkerCad ou Wokwi. On peut ainsi faire le schéma et le tester, y compris la programmation dans Arduino.

 

Je vais regarder ça de plus près.

Lien vers le commentaire
Partager sur d’autres sites

Le 22/05/2021 à 00:30, Hans Gruber a dit :

A noter que ces écrans ne sont pas capacitifs mais résistifs

 

J'ai vu qu'il y avait les deux types d'écrans. Les résistifs semblent plus fragiles que les capacitifs.

 

Par contre, ce qui m'embête un peu c'est que ces écrans ne laissent plus que 3 ports disponibles sur l'Arduino Uno (connection de l'écran TFT, de la fonctionnalité Touch et de la carte SD) : il ne reste qu'1 analogique et 2 digitaux. Mais ça suffit pour piloter les 3 relais (2 pour le ST4 en RA, 1 pour l'intervalomètre).  Si je veux aussi un dithering en DEC, il faudra prendre une Nano qui a 2 ports supplémentaires (analogiques).

 

Si je ne connecte pas la carte SD, je gagne 2 ports digitaux, mais ce serait dommage de s'en priver, histoire de gagner de la place mémoire, d'afficher des pages d'aide et de stocker facilement son setup.

Lien vers le commentaire
Partager sur d’autres sites

Il faut prendre un écran série, un exemple ici :  https://fr.aliexpress.com/item/32877887683.html?spm=a2g0w.12057483.detail.3.3b062553Y4BgyH

Ces écrans sont plus lents (on pourra difficilement faire des animations évoluées), mais pour du texte la vitesse suffit amplement. On peut aussi stocker des images sur une carte pour afficher un arrière plan, ce qui évite de le dessiner en faisant transiter les données sur le port.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Fred_76 et tous les contributeurs,

 

Le projet bouge bien, très intéressant à suivre.

Quelques remarques/questions :

 

 

1. Quels sont les arguments qui t'on fait choisir des relais plutôt qu'une puce "optocoupleur 4 voies" ?

Il me semble que les relais reviennent plus cher, sont plus volumineux, consomment plus de courant et sont moins précis/réactifs pour donner des impulsions ST-4.

 

2. L'idée d'utiliser un terminal Bluetooth sur smartphone via une console telle que l'appli "Serial Bluetooth Terminal" me plait bien.

Un module HC05 revient moins cher et s'intègre plus facilement qu'un écran et des boutons.

On peut enfermer le dispositif dans une boîte, à l'abri de l'humidité et courts-circuits.

 

3. Quel serait le rôle de la carte SD que tu mentionnes ? Il y a si peu de place que ça dans l'Arduino pour stocker le programme ?

Les paramètres de configuration tels que "focale de l'instrument", "échantillonnage", etc. pourraient être stockés dans l'EEPROM ?

 

4. Le système sera-t-il compatible Arduino Nano (pas seulement Uno) ?

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, Eridan31 a dit :

Bonjour Fred_76 et tous les contributeurs,

 

Le projet bouge bien, très intéressant à suivre.

Quelques remarques/questions :

 

 

1. Quels sont les arguments qui t'on fait choisir des relais plutôt qu'une puce "optocoupleur 4 voies" ?

Il me semble que les relais reviennent plus cher, sont plus volumineux, consomment plus de courant et sont moins précis/réactifs pour donner des impulsions ST-4.

 

D’après ce que j’ai pu comprendre, certaines montures n’acceptent pas les optocoupleurs. Voir message précédent d’Olivdeso.

 

Il y a 1 heure, Eridan31 a dit :

 

2. L'idée d'utiliser un terminal Bluetooth sur smartphone via une console telle que l'appli "Serial Bluetooth Terminal" me plait bien.

Un module HC05 revient moins cher et s'intègre plus facilement qu'un écran et des boutons.

On peut enfermer le dispositif dans une boîte, à l'abri de l'humidité et courts-circuits.

 

Oui c’est certain mais ça impose dans ce cas de faire une app ou bien de lancer des commandes via une interface austère.

 

Il y a 1 heure, Eridan31 a dit :

 

3. Quel serait le rôle de la carte SD que tu mentionnes ? Il y a si peu de place que ça dans l'Arduino pour stocker le programme ?

Les paramètres de configuration tels que "focale de l'instrument", "échantillonnage", etc. pourraient être stockés dans l'EEPROM ?

 

Je parle de carte SD car en fait il y a un lecteur SD sur les écrans TFT. Rien n’oblige de l’utiliser, on peut effectivement tout mettre sur l’EEprom. Mais la carte permet de stocker pas mal de choses, comme par exemple des fichiers d’aide.

 

Il y a 1 heure, Eridan31 a dit :

 

4. Le système sera-t-il compatible Arduino Nano (pas seulement Uno) ?

 

Normalement oui. La Nano partage la même puce que la Uno. Elle a même 2 ports analogiques en plus.

Lien vers le commentaire
Partager sur d’autres sites

 

il y a une heure, Fred_76 a dit :

D’après ce que j’ai pu comprendre, certaines montures n’acceptent pas les optocoupleurs. Voir message précédent d’Olivdeso.

Celui-ci ? 

 

il y a une heure, Fred_76 a dit :

Oui c’est certain mais ça impose dans ce cas de faire une app ou bien de lancer des commandes via une interface austère.

Ok j'insiste pas ;)

Jette quand même un œil à https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&hl=fr&gl=US si tu connais pas.

Le programme Arduino peut envoyer des lignes de texte qui seront affichées dans la console.

Et depuis le téléphone on peut aussi envoyer du texte vers la Arduino, par exemple avec le clavier pour saisir des valeurs numériques (ex: distance focale) ou via des boutons prédéfinis envoyant des noms de commandes reconnues par ton programme (ex: "CMD_MENU1", "CMD_OK", etc.).

Dans l'appli on peut créer jusqu'à 30 boutons pour lesquels on choisit le nom affiché et le texte associé envoyé via le Bluetooth.

On peut même exporter/importer la config des boutons pour partager avec les autres utilisateurs.

 

PS : je trouve pas d'appli équivalente avec les boutons prédéfinis pour iOS...

Lien vers le commentaire
Partager sur d’autres sites

Je suis sur iOS...

 

Sinon si vous voulez vous amuser, voici le projet TinkerCAD (avec des optocoupleurs et un clavier analogique à 6 boutons). J'ai bien séparé les diverses parties hard sur des plaques différentes. Le potentiomètre permet de régler la luminosité de l'écran. La Led rouge sur la plaque principale s'allume quand une photo est prise.

https://www.tinkercad.com/things/6iyIhffLsmJ-dithermeter-vbeta/editel?sharecode=IzjcKiLKFEN8yzxwBSyC454JdcuYNmJptdVhyihFpHY

image.png.cc97da6014739332c0903470e6a5a25d.png

Le code est très sale... mais le projet permet de remplacer l'écran LCD par un écran TFT. Cela dit, il semble qu'une fois la librairie TFT installée, il n'y a quasiment plus de place en mémoire flash pour mettre son code. A suivre ! (il y a une librairie dédiée aux menus LCD, je vais regarder).

Lien vers le commentaire
Partager sur d’autres sites

Excellent l'outil TinkerCAD. Je ne connaissais pas.

 

J'ai pu jouer avec les boutons et voir le bon numéro s'afficher dans la console 😛

Je vois aussi que tu as commencé à mettre les différents affichages sur le LCD.

 

Un post qui pourrait t'intéresser : CDLC a développé un programme assez complet avec une interface un peu comme toi.

J'aime bien son diagramme qui schématise la navigation des les menus. Pratique pour clarifier ses idées et pour illustrer le manuel utilisateur.

 

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 20 minutes, Eridan31 a dit :

avec une interface un peu comme toi

 

On me reprochait d'utiliser un écran LCD "technologie d'il y a 10 ans", mais là, il utilise un afficheur à Leds, technologie qui date de 30 ans (au moins) :jesors:

 

Pour le menu, il faut que je regarde les librairies LiquidMenu ou lcdmenulib2. Ca m'évitera de réinventer l'eau tiède...

  • Comme je me gausse! 2
Lien vers le commentaire
Partager sur d’autres sites

Pffff c’est vraiment galère la prog de menus. La gestion des caractères du temps des cartes perforées est une calamité, merci le C !!!

 

Et les librairies sans aide ou exemple explicite…

 

Bref, galère galère :bang:

 

Donc :

- LiquidMenu.h => trop compliqué, dès que je modifie un des exemples, plus rien ne marche et la logique de l’organisation est vraiment confuse.

- LCDMenuLib2.h => moins compliqué en apparence mais ne compile pas (même les exemples !)


Je teste maintenant ça, mais on verra ce week end !

https://www.cohesivecomputing.co.uk/hackatronics/arduino-lcd-menu-library/

 

Lien vers le commentaire
Partager sur d’autres sites

Le 27/05/2021 à 22:30, Eridan31 a dit :

La gestion de l'interface LCD est sûrement plus complexe que le reste du projet.

 

Tu m'étonnes ! Le truc cité chez Cohesivecomputing permet d'afficher très facilement des menus sur 1 seule ligne, mais ne gère pas de façon simple la fonction appelée quand on entre dans ce menu... en tous cas je n'y arrive pas car l'affichage par la fonction est automatiquement écrasé par l'affichage du menu...

 

C'est vraiment galère la prog de menus en C ! Les librairies sont généralement écrites par des types qui savent très bien programmer, et considèrent que tout le monde est un as en prog, ce qui est loin d'être le cas. Du coup leurs exemples sont mal foutus, pleins de trucs inexpliqués. En plus la prog objet et moi, ça fait 2, je suis procédural, pas un objet !

 

Je suis à deux doigts de laisser tomber ce projet... 

Lien vers le commentaire
Partager sur d’autres sites

Raz le @@@.

 

En plus ce projet n’intéresse pas grand monde. Depuis que le chat a foutu le bordel dans le code (pas que sur les 2 lignes ci dessus, il en a flingué un paquet !!!), impossible de refaire fonctionner quoique ce soit. L’arduino se met à faire des trucs bizarres. Il a du griller un de ses composants…

 

Si le cœur vous en dit, je vous laisse poursuivre. Moi j’abandonne.

  • Snif, c'est trop triste 1
Lien vers le commentaire
Partager sur d’autres sites

  • Fred_76 changed the title to Dithering et Intervalomètre Autonome en Arduino - projet abandonné

Dommage. Pour ma part pas le temps de programmer en ce moment.

 

Pour réduire la complexité du projet, il faudrait retirer le menu interactif :

- Soit en remplaçant l'écran et les boutons par une interaction console : on écrit des messages et on lit des valeurs saisies. Fonctionne en mode simulateur, puis sur smartphone en bluetooth.

- Soit en gardant l'écran LCD et les boutons, mais en remplaçant les menus interactifs par une séquence de valeurs à saisir au démarrage du programme :

     - Ligne 1 LCD = nom du paramètre à définir

     - Ligne 2 LCD = valeur actuellement définie, avec les boutons + et - qui modifie la valeur courante

Les valeurs sont mémorisées dans l'EEPROM. Pour modifier des paramètres, on appuie sur le bouton reset de l'arduino et/ou sur un bouton déporté prévu à cet effet.

 

Bref fait une pause si c'est prise de tête ;) 

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Il faudrait surtout écrire l'algorithme avant de taper la moindre ligne de code ; on a l'impression de perdre du temps, mais au final il ne reste plus qu'à traduire.

Un petit logigramme avec les menus serait souhaitable aussi.

Lien vers le commentaire
Partager sur d’autres sites

il y a 47 minutes, Hans Gruber a dit :

Il faudrait surtout écrire l'algorithme avant de taper la moindre ligne de code ; on a l'impression de perdre du temps, mais au final il ne reste plus qu'à traduire.

Un petit logigramme avec les menus serait souhaitable aussi.


Les algos sont écrits (cf. Les messages précédents, j’ai tout détaillé). Pour les menus aussi j’ai le logigramme mais je ne compte pas réécrire toute une interface de menus, d’où mon envie d’utiliser une librairie. 
 

Je pense que c’est le cloud qui foutait le bordel dans le code. Maintenant quand on installe l’IDE Arduino, il se place de force dans « Mes Documents » qui sont envoyés sur la Cloud de Microsoft. Et la synchro fout un peu le bazard. J’ai tout déplacé ailleurs et tout recommencé et ça semble aller mieux.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation !

Vous pouvez répondre maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous pour poster avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • 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.