GROWDUINO [Zone de partage]


Recommended Posts

Bon bah je laisse tomber pour ce week-end, trop prise de tête, le fichier que tu m'a envoyer quand je l'est compiler il m'a trouver une erreur sur void Cyclic. Stop qui n'est plus utiliser, du coup je l'est supprimer dans le CCP et le h et maintenant il me ressort 20 erreur par rapport au cyclic

 

C'est que tu as encore sur ton disque une version obsolète..

normalement dans ton répertoire de travail, il ne doit y avoir que 2 fichiers

le functions.h et le MiniGrowduinoV1_35.ino

Après ta première compil, un fichier .hex sera créé

Je viens de remettre à jour l'archive V1_35 , tu en prends les librairies que tu mettras dans ton environnement dans le repertoire librairie..

 

le mieux est d'y effacer les anciennes utilisées par le projet et d'y remettre les nouvelles.

 

N'oublies pas de relancer l'environnement pour qu'elles soient prises en compte.

 

++

GEN

Edited by Gen
Link to post
Share on other sites

Ok ça marche je verrais ça demain, depuis hier j'ai du passer une dizaine d'heure dessus pour au final tout recommencer ça c'est le bordel ce logiciel (tout est séparé de partout (dans différents répertoire, programme, document..) et sublime text ne peut être mis en français et j'ai beau faire comme dans les vidéo trouver sur internet mais j'arrive même pas à vérifier et compiler.

 

Je vais tout reprendre du début: tout supprimer ( logiciel, donnees et librairie), reinstallation de l'ide récupéré le code de Viker, vérifier erreur, puis ajouter des menu( reverifier les erreur). Jusque là j'avais un code qui fonctionner. Et ensuite on ce replongera dans ce code qui fait f*** depuis ce matin.

 

Va falloir que je fasse une copie au fur et et à mesure car la j'ai 20 erreur par rapport au fichier cyclic ( pourtant c'est le même que hier, basé sur cyclic timer que tu m'a fourni ou j'ai supprimer les mots timer pour le passer de cyclic timer à cyclic qui est appeler dans le code principal ).

Link to post
Share on other sites

Ok ça marche

 

Petite question pourquoi quand on importe des librairie le logiciel en mets dans la librairie de arduino(dans C:/ programme/arduino/librairie) et d'autre dans la librairie du projet (C:/user/utilisateur/arduino...)?

Link to post
Share on other sites

re

 

C:/ programme/arduino/librairie  c'est l'endroit où doivent se trouver les librairies

 

C:/user/utilisateur/arduino ce sont les codes .ino, si tu y retrouves une librairies c'est quelle à dû être compilée

ou qu'en décompressant une archive elles s'y sont foutues

 

à toi de veiller à toujours avoir tes librairies dans C:/ programme/arduino/librairie

 

++

GEN

Link to post
Share on other sites

Archive V1_35 Mise à jour

modification de la classe MotorDriver inclues

 

++

GEN

 

Bon je testerais demain en espérant ne pas avoir à redessouder et souder :/

 

merci Gen

 

++ Viker

Link to post
Share on other sites

Bonjour à tous

 

Générale après vérification sur le site arduino si j'utilise la bonne methode d'ajou, j'ai constaté que tu te trompe sur l'emplacement idéal pour stocker des bibliothèques "personnalisé ".

Sur le site arduino à cette adresse:

https://www.arduino.cc/en/Guide/Libraries

 

Il précise bien que pour les bibliothèques vaut mieux les stocker dans documents /arduino plutôt que programme/arduino car lorsque le logiciel ce met à jour il supprimé tout dans programme/arduino (dont les bibliothèques ) mais ne touche pas à la partie croquis (documents /arduino).

 

J'essayerais ce soir si j'arrive à faire fonctionner mon code

Bonne journée à tous

Link to post
Share on other sites

possible,

mais chez moi elles sont toutes dans librairies.. car je ne fais pas les mises à jour.

je n'y ai que les librairies standard et celles que j'écris moi-même..

 

Mon pc de travail n'est jamais connecté au réseau (enfin pas tout à fait, juste pour l'upload des videos).. trop eu de mauvaises expériences

 

Ceci expliquerait cela

 

tiens moi au jus

 

++

GEN

Link to post
Share on other sites

Archive V1_35 Mise à jour

modification de la classe MotorDriver inclues

 

++

GEN

 

Bonjour,

 

Je viens de mettre la nouvelle classe MotorDriver et j'ai testé sur une lampe à filament et... bah ça clignote.

En effet runMotors est relancé periodiquement avec runProcess et du coup MOTOR_DRIVER.setSpeed est également relancé et par conséquent 500 ms de délais.

Du coup il est possible qu'en effet les ssr ne grillent plus (je n'ai pas encore testé) mais par contre l'allumage extinction des intra extra toutes les 2 secondes ne vont-ils pas nuire à leur durée de vie?

Du coup quel est la meilleur option pour éviter le clignotement (hors changement de vitesse)?

J'ai pensé à une condition du genre dans void runMotors

if(currentTemp < previousTemp -0.5) || (currentTemp > previousTemp +0.5) alors exécuter les instructions habituelles sinon fin de void runMotors

solution élégante ou y a-t-il mieux?

 

Sinon petite contribution pour programmer l'arduino mega par les pin rx et tx si comme moi vous ne pouvez plus accéder au port usb du mega.

 

En effet, mon arduino mega est fixé dans la box miniGrowduino et je ne peux accéder à la prise usb sans démonter mon arduino ce qui n'est pas pratique si je veux changer le programme.

 

Donc j'utilise un programmateur FTDI que je branche de la façon suivante sur mon arduino mega :

 

FTDI Rx --> Tx Mega

         Tx --> Rx

       Vcc --> +5V

      Gnd --> Gnd

 

Attention, le FTDI alimente le Mega donc pas d'autre alimentation branchée sur le Mega le temps de la programmation.

 

Sinon dans l'IDE Arduino sélectionnez comme d'habitude dans tools (outils), le type de carte Arduino Mega, le processeur Mega 2560 et le port com adéquat.

 

Avant d'appuyer sur upload (téléversement) il faut enfoncer le bouton reset du mega. Au moment ou la compilation vient de finir il faut relâcher le bouton reset afin que le téléchargement s'opère. Les led tx et rx se mettent alors à clignoter rapidement sur le FTDI. Voilà c'est terminé.

 

Bonjour à tous

 

Générale après vérification sur le site arduino si j'utilise la bonne methode d'ajou, j'ai constaté que tu te trompe sur l'emplacement idéal pour stocker des bibliothèques "personnalisé ".

Sur le site arduino à cette adresse:

https://www.arduino.cc/en/Guide/Libraries

 

Il précise bien que pour les bibliothèques vaut mieux les stocker dans documents /arduino plutôt que programme/arduino car lorsque le logiciel ce met à jour il supprimé tout dans programme/arduino (dont les bibliothèques ) mais ne touche pas à la partie croquis (documents /arduino).

 

J'essayerais ce soir si j'arrive à faire fonctionner mon code

Bonne journée à tous

 

Toutes les librairies que j'ai installées se trouvent dans le dossier librairies lui même dans le dossier où se trouvent les projets créés (.ino) et cela fonctionne très bien.

 

++ Viker

Link to post
Share on other sites

Yop Viker

 

C'est pour cela que tu as un paramètre de temporisation de l'échantillonage

 

int motorDelayInSec = .... 

 

que tu règles en fonction du volume et de l'inertie thermique.

 

J'ai mis une tempo de 500ms par défaut pour le basculement des relais

 

réponse à ta question : il y a mieux LOOOOL ;-)  tu verras dans le code

Pourquoi ? Car une classe a un niveau d'abstraction élevé, et peut être réutilisée par tout autre projet.

de plus, un classe te permet d'en faire x instanciations avec des paramètres différents

 

voila pour résoudre le problème

 

je vais aller mettre la classe à jour dans le post#1 (Fait)

 

++

GEN

Edited by Gen
Link to post
Share on other sites

Ah bah oui en effet comparer si la vitesse est différente de la vitesse actuelle dans la classe même.

 

tu m'as donné l'idée de pouvoir modifier le temps j'ai rajouté 2 methodes supplémentaires dans la classe MotorDriver

La valeur par défaut est de 500ms

++

GEN

Edited by Gen
Link to post
Share on other sites

Excellent.

 

Possibilité de modifier et vérifier la valeur du délai des relais via l'interface du miniGrowduino.

Bon je vais quand même utiliser la valeur par défaut sans toucher au programme :P

J'upload la nouvelle bibli, je teste sur 24h.

 

A plusieurs on est plus intelligent ;)

Vive la zone de partage!

 

++

Viker

Link to post
Share on other sites

Arf, je viens de mettre la nouvelle classe moteur mais j'ai toujours un clignotement comme si la comparaison de vitesse était toujours différente alors qu'il n'y pas eu de changement de température.

 

Il y a bien une instance de la classe pour l'extra et une pour l'intra? il n'y pas comparaison de la vitesse de l'intra avec celle de l'extra? Que se passe-t-il?

 

Edit: ou est-ce le fait que currentSpeed soit initialisée à 0 et qu'elle reste à cette valeur ?

 

int _currentSpeed = 0;

 

++

Viker

Edited by Viker
Link to post
Share on other sites

Il y a bien qu'une seule instance de la classe MotorDriver

la différentiation se fait via le parametre passé INTRA ou EXTRA

Et oups.. j'ai fait une erreur je dois mettre 2 _current speed un pour l'intra et l'autre pour l'extra.

Désolé j'ai la tête dans le guidon car je suis en train de taffer sur les protos et à force de passer de l'un à l'autre je m'embrouille les pinceaux.

 

Je jette une bille, je modifie, je teste et je reviens te dire quoi

 

++

GEN

Link to post
Share on other sites

voila, c'est fait.

 

La classe est modifiée, elle fonctionne parfaitement, j'ai testé sur mon banc d'essais avec une routine dédiée

 

voici les fichiers .h et .cpp

 

fichiers_moteurs.zip

 

par contre j'ai remarqué un autre petit souci dans le code même du prog, je suis dessus

 

Une fois corrigé, je remettrai une archive dans le post #1

 

++

GEN

Edited by Gen
Link to post
Share on other sites

yop j'ai trouvé mon étourderie (j'aime bien ce mot) ;-)

 

 

MotorDriver         MOTOR_DRIVER(MOTOR_ADDRESS,invertedRelay);

 

à remplacer par

 

MotorDriver         MOTOR_DRIVER(MOTOR_ADDRESS,false);

j'ai supprimé la variable invertedRelay qui ne sert plus

 

ce qui donne au niveau des déclaration ceci

DailyTimer          TIMER_1(TIMER1_PIN    , false);    
DailyTimer          TIMER_2(TIMER2_PIN    , true);
Cyclic              CYCLIC_1(CYCLIC1_PIN  , CYCLIC1_PIN ,true );    // The second parameter defined the exit pin of a led, if you do not use this feature, leave the code as it stands
Cyclic              CYCLIC_2(CYCLIC2_PIN  , CYCLIC2_PIN ,true );    // The second parameter defined the exit pin of a led, if you do not use this feature, leave the code as it stands
HystDrive           TEMP_DRIVER(TEMP_U_PIN,TEMP_D_PIN,true);
HystDrive           HUMIDITY_DRIVER(HR_U_PIN , HR_D_PIN, true);
MotorDriver         MOTOR_DRIVER(MOTOR_ADDRESS,false);

j'ai mis pour le test l'echantillonage à 2 sec pour le test, (ça fonctionne nickel) perso je travaillerai avec 30s pour les petits espaces et 60-120 pour les grandes salles

 

Merci pour tes interventions, cela fait avancer le schmilblick

 

++

GEN

Edited by Gen
Link to post
Share on other sites
Guest
This topic is now closed to further replies.