J
Joachim
Ouvrier
Bonjour,
Je crée un sujet a part pour mon ECU.
Comme je ne vais pas tout recopier, ça commence ici : Sujet GR180
Le Github est là : Github, j'envoie mon code à mesure que j'avance sur la branche Dev, il y a le code et le schema électronique format Kicad.
Après mes tests d'écran, je me suis rendu compte que c'est joli, mais ça bouffe énormément de ressources, donc ce sera un module séparé, ou un écran OLED en I2C qui ne nécessite pas beaucoup de ressources.
Technique :
La base :
Les sorties:
Deux pompes, aucune idée de pourquoi, mais ça rentre, soit en mode PWM à 10KHz pour piloter directement un moteur DC (SPEED400) soit sortie en PPM (50Hz) pour piloter un variateur de moteur, en PPM le signal se pilote en µs de 1000 à 2000, en PWM les valeur vont de 0 à 1000.
Le démarreur, idem que les pompes.
Deux électrovannes, piloté en PWM à 400Hz en allant de 0 à 256.
La bougie idem les électrovanne.
Logiciel :
Je suis parti sur la suite IDF 4.3.4 (j'ai eu un problème avec la 4.4.3 mais je ne me rappelle plus lequel) et non pas Arduino, qui me semble un peu plus sérieuse.
Le soft est multitâches avec pour le moment une tache pour le serveur web, une pour la gestion de la turbine (haute priorité) et une pour les logs. Je pense en rajouter une pour la gestion des entrées et une autre pour les sorties, synchronisées avec des timers pour que les traitements se fassent à 100Hz, je pense que c'est suffisant pour gérer la santé d'un réacteur.
Pour gérer la turbine, j'ai une courbe de 50 points avec les RPM, entre les RPM mini et maxi, correspondants aux valeurs de pompe, cette courbe sera rempli lors de l'apprentissage.
A coté de cette courbe, j'ai une courbe en 5 points, qui indique à quelle vitesse la pompe accélère ou décélère vers la consigne. Cette courbe est à renseigner par l'utilisateur, A part 5 champs sur une page web, je n'ai pas d'idée.
J'ai commencer une pseudo séquence de fonctionnement dans le code, qui reste largement à affiner et rajouter les contrôles pour éviter que les variables dépassent les limites.
Pour le fonctionnement de la turbine, dans le cas d'une accélération, je pense utiliser la valeur RPM actuelle, accélérer la pompe jusqu'au point suivant à la vitesse indiqué dans la courbe en 5 point, puis arrivé à 5000trs de la consigne, passer en mode asservi, c'est a dire réguler la pompe pour avoir les RPM correspondants à la valeur de manche de la radio. La régulation devrait se faire dans la limite de 10-20% de la courbe des RPM, si la valeur de la pompe venait à a sortir de cette zone, c'est qu'il doit y avoir un problème, donc pas la peine d'envoyer plus de carburant.
Pour le démarrage, j'ai vu sur des vidéos que la pompe tremblait dans la séquence de préchauffe, sur mon ECU, il y a une led sur la pompe qui clignote, ce qui indique que la pompe s'allume et s’arrête. Cela me donne l'impression que lors de la préchauffe la pompe pulse du carburant plutôt que d'envoyer un flux continu. A voir comment faire pareil, ou différent sachant que je pilote les vannes en PWM, ce qui devrait donner un changement de débit.
Le fonctionnement actuel :
Au démarrage, si une box wifi est configuré (menu wifi), l'ECU s'y connecte, l'ip est donnée par votre box, il faut la trouver , sinon, il passe en mode AP (premier démarrage ou sur le terrain), et là il faut s'y connecter avec un téléphone ou un PC, le SSID est JF-ECU32 et le mot de passe 12345678. Dans ce cas là, l'IP est 192.168.4.1.
Si le wifi ne se connecte à rien, au bout d'une minute le serveur se coupe et le wifi s'éteint.
Dans le menu Sliders, il est possible de faire fonctionner les périphériques, ATTENTION, quand on quitte la page, les dernières valeurs restent actives.
Dans les menu des paramètres, il faut redémarrer l'ECU, si il ne le faut pas seul, pour que les paramètres soient pris en compte.
Il reste beaucoup de choses à faire, la dernière sera la PCB, quand j'aurai validé que toutes les fonctions marchent en même temps sans se mélanger.
Si il y en a qui veulent tester j'utilise ce kit pour le développement : ESP32 DevKit
Voici quelques capture de l'IHM et des sorties.
Je crée un sujet a part pour mon ECU.
Comme je ne vais pas tout recopier, ça commence ici : Sujet GR180
Le Github est là : Github, j'envoie mon code à mesure que j'avance sur la branche Dev, il y a le code et le schema électronique format Kicad.
Après mes tests d'écran, je me suis rendu compte que c'est joli, mais ça bouffe énormément de ressources, donc ce sera un module séparé, ou un écran OLED en I2C qui ne nécessite pas beaucoup de ressources.
Technique :
La base :
- Processeur : Xtensa Dual-Core 32-bit LX6 cadencé jusqu’à 240 MHz
- Wi-Fi (802.11b/g/n) et Bluetooth 4.2 / BLE
- RAM : 520 Ko de SRAM interne
- 4 Mo de Flash (externe)
Les sorties:
Deux pompes, aucune idée de pourquoi, mais ça rentre, soit en mode PWM à 10KHz pour piloter directement un moteur DC (SPEED400) soit sortie en PPM (50Hz) pour piloter un variateur de moteur, en PPM le signal se pilote en µs de 1000 à 2000, en PWM les valeur vont de 0 à 1000.
Le démarreur, idem que les pompes.
Deux électrovannes, piloté en PWM à 400Hz en allant de 0 à 256.
La bougie idem les électrovanne.
Logiciel :
Je suis parti sur la suite IDF 4.3.4 (j'ai eu un problème avec la 4.4.3 mais je ne me rappelle plus lequel) et non pas Arduino, qui me semble un peu plus sérieuse.
Le soft est multitâches avec pour le moment une tache pour le serveur web, une pour la gestion de la turbine (haute priorité) et une pour les logs. Je pense en rajouter une pour la gestion des entrées et une autre pour les sorties, synchronisées avec des timers pour que les traitements se fassent à 100Hz, je pense que c'est suffisant pour gérer la santé d'un réacteur.
Pour gérer la turbine, j'ai une courbe de 50 points avec les RPM, entre les RPM mini et maxi, correspondants aux valeurs de pompe, cette courbe sera rempli lors de l'apprentissage.
A coté de cette courbe, j'ai une courbe en 5 points, qui indique à quelle vitesse la pompe accélère ou décélère vers la consigne. Cette courbe est à renseigner par l'utilisateur, A part 5 champs sur une page web, je n'ai pas d'idée.
J'ai commencer une pseudo séquence de fonctionnement dans le code, qui reste largement à affiner et rajouter les contrôles pour éviter que les variables dépassent les limites.
Pour le fonctionnement de la turbine, dans le cas d'une accélération, je pense utiliser la valeur RPM actuelle, accélérer la pompe jusqu'au point suivant à la vitesse indiqué dans la courbe en 5 point, puis arrivé à 5000trs de la consigne, passer en mode asservi, c'est a dire réguler la pompe pour avoir les RPM correspondants à la valeur de manche de la radio. La régulation devrait se faire dans la limite de 10-20% de la courbe des RPM, si la valeur de la pompe venait à a sortir de cette zone, c'est qu'il doit y avoir un problème, donc pas la peine d'envoyer plus de carburant.
Pour le démarrage, j'ai vu sur des vidéos que la pompe tremblait dans la séquence de préchauffe, sur mon ECU, il y a une led sur la pompe qui clignote, ce qui indique que la pompe s'allume et s’arrête. Cela me donne l'impression que lors de la préchauffe la pompe pulse du carburant plutôt que d'envoyer un flux continu. A voir comment faire pareil, ou différent sachant que je pilote les vannes en PWM, ce qui devrait donner un changement de débit.
Le fonctionnement actuel :
Au démarrage, si une box wifi est configuré (menu wifi), l'ECU s'y connecte, l'ip est donnée par votre box, il faut la trouver , sinon, il passe en mode AP (premier démarrage ou sur le terrain), et là il faut s'y connecter avec un téléphone ou un PC, le SSID est JF-ECU32 et le mot de passe 12345678. Dans ce cas là, l'IP est 192.168.4.1.
Si le wifi ne se connecte à rien, au bout d'une minute le serveur se coupe et le wifi s'éteint.
Dans le menu Sliders, il est possible de faire fonctionner les périphériques, ATTENTION, quand on quitte la page, les dernières valeurs restent actives.
Dans les menu des paramètres, il faut redémarrer l'ECU, si il ne le faut pas seul, pour que les paramètres soient pris en compte.
Il reste beaucoup de choses à faire, la dernière sera la PCB, quand j'aurai validé que toutes les fonctions marchent en même temps sans se mélanger.
Si il y en a qui veulent tester j'utilise ce kit pour le développement : ESP32 DevKit
Voici quelques capture de l'IHM et des sorties.