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 forum / Re : Joyeux Noël et bonne année 2021 !
« le: décembre 30, 2020, 08:45:39 pm »
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

17
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 ?

18
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 ?

19
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+

20
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.

21
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 ?

22
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+

23
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 !!

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

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

26
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.

27
Ç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.

28
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.

29
Débuter / Re : LGB iphone
« le: juin 03, 2020, 12:28:17 pm »
Citer
Pyk35, attention à ne pas envoyer ElGringo sur une voie de garage, pour lui, un projet réalisé est nécessaire ...

Je n'ai pas l'impression et ce n'était pas mon intention.
ElGringo vient sur le forum de Locoduino avec déjà l'idée d'utiliser un ESP32 et un L298 ; en quoi ai-je proposé quelque chose de différent de sa demande initiale?

Maintenant c'est à lui de voir car cela demande :
  • de coder en C pour créer le code de l'ESP32 sachant qu'il existe des briques mais qu'il faut forcément adapter
  • Comprendre le fonctionnement d'un pont en H comme le 298
  • Utiliser une application gratuite disponible dans les AppStore et autre Google Play
  • de savoir mettre en œuvre un réseau wifi
  • je trouvais que les batteries limiteraient grandement la difficulté par rapport à l'étage de conversion de l'alimentation surtout que la carte que j'ai trouvée est plug'n play
  • Éventuellement développer une carte électronique pour avoir des sorties de puissance pour piloter des fonctions comme de l'éclairage ou des sons (si on ajoute un DFPlayer avec ampli  ; ok je sors ;D ;D).

Laurent, à toi de voir selon ton niveau d'autonomie sur ces fonctions par contre je me permets d'insister sur le fait que le bluetooth est relativement limité en portée mais je n'avais pas l'information que l'usage était indoor. On peut aussi apporter un minimum d'aide surtout si plusieurs personnes sont concernés par cette demande...



30
Débuter / Re : LGB iphone
« le: juin 03, 2020, 07:13:57 am »
Antoine, je ne connais pas la taille du jardin de Elgringo mais le Bluetooth est beaucoup plus limité en distance. Au delà de 7 à 10m, ça commence à être chaud. En wifi, en champ libre, tu feras 40m sans problème. En plus, si tu as 2 locos, ça risque d’être compliqué.

J’ai tout de même l’impression qu’un ESP32 embarqué dans la loco permettrait de faire le PWM sans problème et si il n’y a qu’un train sur le réseau, tu mets cet ESP en point d’accès wifi, si il doit en avoir plusieurs, tu achètes un petit routeur wifi à 40€ et tu mets toutes tes locos en mode station sur ce routeur. On serait sur un réseau wifi dédié au jardin, avec un routeur pas très loin des trains, sous un avancée de toit par exemple.
Il faudrait soigner l’alimentation des esp32 pour éviter un reboot toutes les 10s et je proposerai même qu’il fonctionne sur batterie 18650. Un esp32 monté sur batterie coûte 10€ à Shenzhen  : https://fr.aliexpress.com/item/32970371816.html?algo_pvid=3ae0eda7-72ee-425f-8ad7-d992ffd0602b&algo_expid=3ae0eda7-72ee-425f-8ad7-d992ffd0602b-5&btsid=0ab6fb8315911600053435359e26da&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
Pour le booster, ta proposition me va bien mais si tu fais que du PWM, le 298N fera la boulot pour moins cher.

Côté logiciel, rien de très compliqué, on pourrait utiliser WiThrottleLite (iPhone) ou équivalent Android, prendre les codes que Thierry et Dominique ont développés pour la réception des commandes WiThrottleLite dans le cadre de notre projet de centraleDCC et piloter le driver en conséquence : marche avant, arrière, vitesse. Le développement serait très rapide de mon point de vue. Après on pourrait enrichir avec des rampes d’accélération ou de freinage pour un max de fluidité. On pourrait aussi associer des sorties de l’esp32 aux fonctions (attention au courant de sortie, il faudrait prévoir des transistors, des relais, ou autres selon la charge). .

Côté prix, 10€ pour l’esp32 sur batterie, un booster pour 9€,  2 batteries + chargeur pour 5€ -> moins cher qu’un décodeur DCC. 

Batterie : https://fr.aliexpress.com/item/4000101119770.html?algo_pvid=3d4694ac-3810-4576-a3fd-75300ddd44f0&algo_expid=3d4694ac-3810-4576-a3fd-75300ddd44f0-1&btsid=0ab6d69f15911607095138043e3ee0&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_


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