Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Pyk35

Pages: 1 [2] 3 4 ... 8
16
Vie du site rédactionnel et du forum / Re : IMPRIMANTE 3D
« le: décembre 30, 2020, 08:50:16 pm »
Bonjour,

Tu peux le contacter.

A+

17
Vraiment bien ! Tu partagerais ton fichier source (format step, fusion360) ?

18
Joyeux Noël à vous tous et bonne année 2021!

Tous mes vœux de bonheur, de prise de tête dans nos bugs mais surtout la santé !

Amitiés

Cédric

19
Vos projets / Re : projet centrale wifi DCC++ Can
« le: août 30, 2020, 08:39:34 pm »
Dominique, la détection de l’intensité de court-circuit fonctionne ?

20
Vos projets / Re : projet centrale wifi DCC++ Can
« le: août 30, 2020, 11:11:03 am »
En fait l’idéal serait de mettre en place un bug tracker comme Redmine (mon préféré) ou Bugzilla.
Cela permet d’identifier les bugs, le reste a faire, et d’affecter le dev à un développeur.

Qu’en pensez-vous ?

21
Vos projets / Re : projet centrale wifi DCC++ Can
« le: août 28, 2020, 07:35:58 pm »
Thierry, n'hésite pas à me dire sur quelle partie je dois continuer.
Il reste la sauvegarde par fichier.

A+

22
Les réseaux / Re : Projet Dominique
« le: août 15, 2020, 12:01:58 pm »
Bonjour Dominique,

Je n'ai pas encore tout lu mais je suis très impressionné par cette réalisation !
Un grand bravo.

23
Présentez vous ! / Re : Un nouveau RRTC
« le: août 06, 2020, 06:02:00 pm »
Bonne idée !

Regarde un peu dans le forum, il y a plusieurs sujets autour de la commande de pont tournant mais pas certain que tu trouves pour ce modèle.
Aurais-tu une idée plus précise de ton projet ?

24
Débuter / Re : C++ - hiérarchie des fichiers
« le: août 06, 2020, 05:58:10 pm »
Bonjour Marc,

Je viens de jeter un coup d'oeil et je me permets de critiquer mais c'est toi qui l'a demandé.
Ou j'ai mal compris ton intention, ou il y a un problème C++. Pourquoi ton objet est static? Du coup tu perds une partie de l'intérêt de la programme orientée objet (je ne dis pas que static ne doit pas être utilisé mais dans cet exemple, je ne comprends pas).

Tu créés une classe dont le but de pouvoir faire un on/off sur 2 pin de ton arduino mais du coup tu utilises qu'un seul objet static mais ce n'est pas ça l'objet (sauf cas particulier).

Un classe c'est un modèle de données + des méthodes (des fonctions/procédures). Un objet c'est une structure donnée propre bâtie sur le modèle de données de la classe. Dans ton exemple, tu a prévu une variable membre qui contient le numéro de pin mais tu ne l'utilises jamais. C'est dommage ! Dans cet exemple, il faut initialiser autant d'objet qu'il y a de pin à piloter et ensuite tu n'as plus besoin de rappeler la pin puisqu'elle est mémorisée par l'objet.

Voici comment je ferais :

Pourquoi ne pas déclarer en global 2 objets (genre juste avant la fonction setup, en dehors de toute fonction) :
Sdigi digi1(3);
Sdigi digi2(4);

Tu modifies ta class pour :
Dans le .h:

Tu remplaces :
    void SdigiInit(byte a);
    void SdigiOn(byte a);
    void SdigiOff(byte a);
par
    void SdigiInit(byte a);
    void SdigiOn();
    void SdigiOff();

Dans le cpp,  tu modifies la fonction SdigiInit :

// Fonction qui demande le numéro de pin mais en facultatif car on a créé l'objet avec un constructeur qui a déjà mémorisé le numéro de pin !
void Sdigi::SdigiInit(byte a = 0)
{
  if(a != 0) m_numSdigi = a;  // Si tu amènes la paramètre facultatif a, c'est que tu veux changer la pin mémorisée, sinon tu utilises m_numSdigi
  pinMode(m_numSdigi, OUTPUT);
  digitalWrite(m_numSdigi, LOW);
}

et ensuite :
void Sdigi::SdigiOn()
{
  digitalWrite(m_numSdigi, HIGH);
}

void Sdigi::SdigiOff()
{
  digitalWrite(m_numSdigi, LOW);
}

Maintenant le fichier .ino :

void setup() {
  digi1.SdigiInit();
  digi2.SdigiInit();
}

La loop :

void loop() {

  // essai de la classe dans la boucle
    digi1.SdigiOn();
    delay(2000);
    digi1.SdigiOff();
    delay(2000);
 
    digi2.SdigiOn();
    delay(2000);
    digi2.SdigiOff();
    delay(2000);

  // essai de la classe via une fonction extérieure
  led_delay();
}
Pour la loop, ce n'est pas terrible, on pourrait faire mieux mais pour débuter ça ira car c'est un programme de test.

Globalement c'est plutôt bien codé, le code est propre et tu as bien appréhendé la programmation avec plusieurs fichiers ce qui peut toujours être une prise de tête.

Pour répondre à ta dernière question, oui évidemment que c'est possible mais cela peut vite être compliqué. Pour ma part, je ferai comme ceci :
o Je créé une classe de basse qui contiendrait toutes les propriétés communes ainsi que le fonction commune à tous tes types d'objet
o Je ferai des classes pas objet : lumière, chauffage, prise de courant, etc. qui héritrait de la classe de base. Attention on ne fait pas de classe pour le plaisir, il faut qu'il y ait des comportements différents selon tes objets sinon aucun intérêt, on reste sur la classe de base ou on fait une classe commune.
o Dans le .ino, je ferais un tableau de pointeur d'objet global sur la classe de base. Dans le setup, je ferai des new de tous mes objets selon le pointeur du tableau.
o Dans la loop, je parcours le tableau à la recherche de quelque chose à faire. Aucun delay, on boucle à donf sur tous les objets et surtout sur une fonction d'écouter d'un ordre : communication serial, surveillance de pin d'entrée (de boutons ?), réception d'un message CAN ou Ethernet, etc.)

Il faudrait donc travailler l'aspect polymorphisme et héritage pour arriver à ça. Ce n'est pas si difficile que ça mais le plus dur est d'avoir les idées claires avec ces notions. Après quand on code ce genre de truc, le code final ressemble rarement à l'idée qu'on en avait au début. On fait, refait, recode, remodèlise, et on arrive à la fin à un truc que l'on trouve sympa :)
J'espère t'avoir aidé.
A+

25
Citer
Par contre, concernant les fichiers à copier en SPIFF, il faut préalablement créer une partition et je n'ai pas encore trouvé comment faire.

Christophe, j’ai fait le boulot et je t’ai partagé un fichier sous Google doc pour t’expliquer comment faire. Je peux te dire que cela marche très bien !!

26
Je suis d’accord, j’avais un doute.

27
Et du coup PlateformIO, vous y accédez via visual studio code?

28
Composants / Re : Alimentation 12v
« le: juin 17, 2020, 11:42:35 pm »
Citer
Attention à ne pas créer de problème avec les masses communes.

Comment faire attention à ce problème ? Il y a t’il une règle de câblage des masses en dehors de simplement les interconnecter?
Merci pour tes conseils.

29
Ça change depuis mardi ! Très sympa en tout cas.
Si tu veux que l’on redessine la cabane en allumettes 😉, n’hésite pas, on peut t’en refaire une car celle-là est vraiment vilaine.

30
Vos projets / Re : LGB SMARTPHONE
« le: juin 03, 2020, 05:07:13 pm »
Antoine, je découvre l'historique du dossier, je comprends mieux ton message.

Pages: 1 [2] 3 4 ... 8