Go Down

Topic: Aide pour le CODE qui va contrôler le toit de mon observatoire avec un PC linux (Read 2551 times) previous topic - next topic

constant1462

hello
un gars m'as donné se lien  pour comprendre un peu le truc.
]https://github.com/indilib/indi-3rdparty/tree/master/indi-duino

je vais essayer de comprendre

lesept

Hello
J'ai un peu regardé Firmata (ton message 59) : c'est un protocole de communication simplifié entre un PC et une carte Arduino, ça permet donc d'envoyer des commandes du PC vers l'arduino et recevoir des valeurs de l'arduino vers le PC.

Côté Arduino, ce n'est pas très compliqué, par contre côté PC, il faut créer une IHM dédiée qui envoie les commandes selon le protocole. J'ai vu que ça peut se faire en Python : si tu connais la programmation Python, ça doit être assez simple à faire. Il suffit de mettre des boutons qui correspondent aux actions que tu veux faire faire à l'arduino : ouvrir, fermer.

Si tu ne connais par Python, il y a peut-être d'autres solutions (Javascript par exemple), je n'ai pas cherché.

Le truc de ton message 60 semble être une mise en oeuvre Python, mais ça a l'air d'une usine à gaz, je n'ai pas trop envie de rentrer dedans...
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

constant1462

hello

Quote
mais ça a l'air d'une usine à gaz, je n'ai pas trop envie de rentrer dedans...
Alors tu penses bien que moi ,c'est encore pire ,je me casse en courant  ;) .

si qui est pas trop claire pour moi ,c'est que visiblement Kstars a l'option pour commander ,mais c'est pas claire


j'ai trouvé ça
Quote
Quote
La communication avec la carte Arduino se fait à l'aide du protocole firmata ( http://www.firmata.org/ ) et la carte doit être chargée avec la firm firm firm firm standard. Ce firmware est distribué avec l'outil de programmation Arduino-IDE. Pour charger File-> examples-> firmata-> standardfirmata
alors j'ai été voir les exemples dans le programme de programmation.
par contre je pige pas si on dois le copie et si on dois l'intégré a notre CODE

lesept

As-tu regardé ceci ? Ca montre le fonctionnement de l'exemple StandardFirmata (il est dans les exemples lorsque tu installes la bibli Firmata).

Si j'ai bien compris la vidéo, on peut créer une IHM (en Python par exemple) qui envoie des commandes au protocole Firmata pour commander des IO Arduino digitales ou analogs. Donc, si tu n'as que 2 boutons (ouvrir, fermer) ça devrait être assez simple.

Après réflexion, il me semble plus facile encore (et j'ai plus l'habitude car j'ai déjà joué avec) de faire une interface html et de commander l'arduino en Wifi. Pour cela, tu utiliserais un ESP8266 ou un ESP32 qui créerait son propre réseau Wifi. Tu y connectes ton smartphone et l'ESPxx fait tourner un serveur qui affiche deux boutons, un pour ouvrir, l'autre pour fermer (et éventuellement un bouton stop, d'arrêt d'urgence). C'est plus simple et plus léger qu'utiliser un PC.

Tu peux voir un exemple ici.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

constant1462

Le problème qui vas se poser pour moi si on le fais en wifi, c'est que j'ai envie que Kstars commande le toit.

Je t'explique pourquoi, c'est utile...
Si je fais une séance de photo d'une nébuleuse , cela peu  prendre des heures ,entre 2 et 4 heures, donc si kstars commande le toit ,je peux faire une séquence qui dis que a la fin du temps de pose programmé , il range le télescope et ferme le toit.
Donc pas besoin d'attendre 4 h du matin ;)   

De même que par exemple, si il commence à pleuvoir, il peut automatiquement fermée le toit...

Donc il faut que je trouve une solution, hélas....


 

lesept

OK, donc les commandes ne sont pas forcément manuelles, elles peuvent venir d'un autre logiciel : comment calcules-tu le temps de pose ? C'est Kstars qui te le donne ou bien c'est un "forfait" genre "nébuleuse = 4 heures, trou noir = 2 jours, saturne = 15 minutes" ? :)

Dans ce cas, on peut programmer des temps d'ouverture dans le code Arduino : il fermera le toit au bout du temps de pose prescrit. On peut donc imaginer une IHM Wifi avec un bouton d'ouverture et soit des boutons pour diverses durées, soit un formulaire à renseigner pour la durée.

Pour la pluie, il te faut un capteur ? Comment comptes-tu faire ?
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

constant1462

Hello
Alors je suis pas encore au capteur météo pour la fermeture du toit en automatique, mais c'est possible.
Je suis arrivé a faire fonctionné les relais en prenant le programme en exemple de firmdata depuis kstars.

Il faute que trouve un programme compatible avec la fonctionne dôme qui ressemble un peu a se que je veux faire pour voir.
Et faire des teste, mais ceux que j'ai trouvé fonctionne pas.....

constant1462

Hello
Dis voir, tu connais le programme QtCreator ?
Car visiblement sur le forum indi ,il me conseil se programme , le truc c'est que j'arrive même pas à
mettre un code pour le transférer sur l'arduino !!

lesept

A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

constant1462

Hello
Alors visiblement je dois installer un driver sur mon pc Linux.
Et après il faut reconfiguer le code pour que cela fonctionne.
Pour l'instant j'attends une réponse pour savoir comment installer ce driver correctement, et après si jamais je te redis.
A+

constant1462

Hello
Alors visiblement je dois installer un driver sur mon pc Linux.
Et après il faut reconfiguer le code pour que cela fonctionne.
Pour l'instant j'attends une réponse pour savoir comment installer ce driver correctement, et après si jamais je te redis.
A+

constant1462

hello lesept
j'ai une question pour toi ,
on a mis la version d'entrée a tous les boutons "INPUT_PULLUP" mais je n'arrive pas a faire la même chose pour le bouton d'alimentation ,car c'est justement la partie abstrait pour moi.
Car on le déclare pas la "pinMode" comme les autres.

lesept

Tu es sur le code du message #51 ?

Il y a ça dans la loop :
Code: [Select]
  BoutonRelaisState = digitalRead (BoutonRelais) ;
  if (BoutonRelaisState == HIGH) {
    estAlimente = !estAlimente; // ****
    delay (30);
  }

Donc il faut déclarer le BoutonRelais

C'est quoi comme type de bouton ? Un bouton poussoir ?
Tu dois pouvoir mettre dans le setup :
Code: [Select]
  pinMode(BoutonRelais, INPUT_PULLUP);
Non ?
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

constant1462

Oui boutons poussoir
Mais je sais se que j'ai fais de faut....
J'avais déjà essayer
 pinMode(BoutonRelais, INPUT_PULLUP);

mais j'avais oublier de  passer (BoutonRelaisState == HIGH) en LOW

Code: [Select]
BoutonRelaisState = digitalRead (BoutonRelais) ;
  if (BoutonRelaisState == HIGH) {
    estAlimente = !estAlimente; // ****
    delay (30);
  }


du coup cela restait toue le temps allumé

Merci

PS: au faite visiblement c'est pas si simple de crée un driver compatible pour se code entre la carte arduino et le programme kstars,mais  j'ai un mec qui me donne un coup de main et qui se casse les dents dessus , quand cela fonctionnera je te mettrais la solution .

A+

lesept

A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Go Up