Kévin Juge
- Amélioration continue
- Green Belt - Lean Six Sigma
- Assistance à la maîtrise d'ouvrage
- Efficacité énergétique
Carte électronique de prototypage
Ce projet fut réalisé en 2014/2015
Objectifs:
- Rafraîchir mes connaissances en lien avec les cours d'informatique suivis 8 ans plus tôt en IUT
- Préparer de futurs projets (modélisme à ce moment)
Matériel
- Circuit d'alimentation avec régulateur (pour pouvoir utiliser une alimentation externe 12V ou une alimentation USB)
- Un circuit dérivé du programmateur UsbPicProg, comprenant:
- 1 micro-contrôleur Microchip PIC18F2450 (pour programmer le second)
- 1 pompe à charge pour générer la tension de programmation à partir du 5V provenant du port USB
- Le circuit de prototypage
- Micro-contrôleur Microchip PIC 16F877A
- Mémoire Microchip 24C16
- Liaison série RS232 (Maxim MAX232)
- Buzzer
- Afficheur LCD 2x16 caractères
- Drivers ULN2003 pour piloter un moteur pas-à-pas
- 4 boutons
- 3 potentiomètres (entrées analogiques)
- 4 LEDs
- Pont en H L298 pour piloter un moteur (2 sens, activation et mesure de courant)
En 2017, une seconde version de la carte a vu le jour afin d'améliorer:
- Utilisation de la liaison série du micro-contrôleur PIC18F2550 afin de l'utiliser comme convertisseur série / USB, ce qui aurait nécessité de modifier son programme par la suite.
- Intégration d'un support à force d'insertion nulle (ZIF) afin de simplifier le changement de micro-contrôleur (par exemple PIC 18F)
- Gestion de l'alimentation 12V par transistors (alimentation buzzer et moteurs)
Première version
Seconde version
Logiciel
La programmation pouvait être réalisée avec:
- Des logiciels Open Source: Code::Blocks et le compilateur Small Device C Compiler (SDCC)
- L'environnement de développement intégré du fondeur: MPLAB et le compilateur libre CC5X (PIC 16F) ou CC8E (PIC 18F), que nous utilisions en IUT
Le programme du programmateur est fourni par UsbPicProg
Celui développé pour le second micro-contrôleur a permis de tester les différentes fonctions de la carte
Gestion des interruptions
- Timer (commande du moteur pas-à-pas, LEDs, buzzer, ...)
- Communication série
L'un des boutons permet de sélectionner un mode, qui s'affiche sur l'affficheur LCD:
- Affichage des valeurs des entrées analogiques sur l'afficheur LCD
- Gestion d'un moteur à l'aide du hacheur en modulation de largeur d'impulsion (MLI), affichage courant, tension, et sens de rotation
- Gestion d'un moteur pas-à-pas, affichage du sens de rotation
- Gestion du buzzer, fréquence variable grâce à la MLI
- Communication par liaison série
Véhicule auto-guidé
Ce projet débuta durant l'année 2016
Objectifs:
- Améliorer un véhicule radio-commandé, vers une commande numérique, pour, par la suite, le rendre auto-guidé à l'aide d'une caméra, et y ajouter une interface graphique
Ce projet a été réalisé en plusieurs parties
- Conception et réalisation des cartes électroniques du véhicule et de la télécommande
- Développement des programmes des micro-contrôleurs en C
- Développement des programmes de communication, de traitement d'image et d'interface graphique en C/C++, Qt et OpenCV
Véhicule et télécommande
Matériel
Carte électronique de la télécommande:
- Alimentation 9V / 5V depuis une pile
- 2 commandes analogiques par potentiomètre pour la propulsion et la direction
- Ajout de 4 boutons: 4 roues motrices, klaxon, phares et aito-guidage
Celle-ci est composée de:
- Micro-contrôleur PIC 16F1508
- Émetteur radio 433MHz
Carte électronique du véhicule:
- Alimentation 7,2V / 5V par batterie NiMh 3000mAh
- Régulation du servomoteur de direction par pont H L293D
- Klaxon par buzzer
- Régulation de propulsion par pont H L298: commande des 2 moteurs et mesure de courant
- Micro-contrôleur PIC 16F886
- Phares
- Gestion d'une alimentation externe pour Raspberry
- Communication I2C avec le Raspberry
- Récepteur radio 433 MHz
En 2017, une seconde version de la carte a vu le jour pour résoudre quelques problèmes:
- Remplacement du pont H L298 par 2 ponts H MC33887 sur une carte fille du fait de l'espace disponible, afin d'augmenter le courant des moteurs de 2 à 5A et gestion des déafuts des ponts
- Amélioration de la gestion de l'alimentation de la carte et externe
- Séparation des sorties pour les feux (aguche, droit et arrière)
Logiciels
Au début du projet j'utilisais Code::Blocks, le compileur Small Device C Compiler (SDCC) et la carte de programmation UsbPicProg pour la programmation des micro-contrôleurs Puis j'ai acquis un programmeur / débogueur PicKit3, utilisé avec MPLABX (compatible Linux) afin de simplifier le débogage.
UsbPicProg
PicKit3
Fonctionnalités de la télécommande
Envoi d'une trame toutes les 10 ms, contenant:
- Consigne de propulsion
- Consigne de direction
- Position des boutons
Fonctionnalités du véhicule
- Arrêt du véhicule par watchod timer (en cas de perte de communication)
- Arrêt des moteurs lorsque la batterie est déchargée
- Commande par I2C (Raspberry ou interface homme-machine)
- Commande par liaison série (télécommande)
- Gestion des défauts des hacheurs pour activer la commande des moteurs
- Réglage de la position centrale de direction
- Régulation de la propulsion et direction par régulateur PID (Proportionnel, Intégral, Dérivé). La mesure de position pour la direction nécessiterait un amplificateur ou convertisseur plus précis
- Activation des 2 hacheurs (4 roues motrices) lorsque le mode est activé ou lorsque le courant du premier moteur est supérieur à un seuil. À l'usage les 2 hacheurs doivent être activé, sinon le couple moteur-transmission non utilisé freine le véhicule
- Gestion du klaxon
- Réinitialisation des commandes provenant de la télécommande toutes les 15 ms
- Mesure du courant des moteurs
- Mesure de la tension de la batterie
Émission I2C (état) | Réception I2C (commandes) |
---|---|
Référence propulsion | Référence propulsion |
Référence direction | Référence direction |
Position direction | Réglage direction |
Position maximale à gauche | Mot de commande |
Position maximale à droite | |
Courant moteur avant | |
Courant moteur arrière | |
Tension batterie | |
Tension nominale batterie | |
Tension minimale batterie | |
Mot de commande | |
Mot d'état |
Communication, traitement d'image et interface graphique
Raspberry
Ce programme, dans sa première version, était écrit en C, et permettait de transmettre les données entre le véhicule et un ordinateur distant grâce à l'I2C et le Wifi du Raspberry
Depuis sa création plusieurs améliorations ont été réalisées:
- Modification du transfert des données dans le programme: utilisation de file des messages à la place de mémoire partagée et mutex, suite à une expérience professionnelle
- Modification des tâches "serveur":
- Séparation données et image: 2 sockets sur 2 threads
- Essais de différents protocoles: TCP, UDP, RTP (adaptés aux flux vidéo)
- Compression de l'image avant transmission
En lien avec la documentation restreinte d'OpenCV en langage C, ce programme a évolué vers du Python puis du C++, plus performant et adapté à la gestion bas niveau (champs de bits).
Première version avec serveurs séparés
Dernière version avec file de messages
Chaque tâche transmet ses messages vers une file principale Le programme principal re-transmet le message vers le bon destinataire
La tâche de traitement d'image transmet la dernière image vers la mémoire partagée, puis la tâche serveur d'image la transmet à l'ordinateur distant
Raspberry + caméra
Micro-contrôleur ESP32
Du fait de la consommation énergétique élevée du Raspberry, je me suis orienté en 2021, vers un micro-contrôleur ESP32 associé à une caméra. Le module ESP323-CAM est ainsi composé de celui-ci, d'une mémoire externe de 4 MB, d'un connecteur pour caméra et son antenne Wifi 2 caméras étaient proposées et cdelle grand angle convient mieux à cette application
Comme les ressources de ce micro-contrôleur sont limitées, traitement d'image notament, j'ai simplifié le programme afin de transmettre les données entre le véhicule et l'ordinateur distant, ainsi qu'envoyer les images.
L'ESP32 peut être programmé avec l'Environnement de développement intégré (IDE) Arduino ou le framework de développement IoT (IDF) compatible avec VsCode et Eclipse. Étant plus expérimenté en C/C++, j'utilise ce framework avec Eclipse.
Le programme principal s'occupe de l'initialisation du Wifi et des buffers La tâche I2C communique avec le serveur de données grâce à 2 buffers circulaires La tâche liée à la caméra reçoit les paramètres de la caméra depuis le serveur d'image grâce à un buffer circulaire et lui renvoie la dernière image (buffer de 3 images lié à la capture)
Architecture avec buffers circulaires
ESP32-CAM
Interface homme-machine
Ce programme est écrit en C++/Qt
- Interface reprenant les différentes fonctions décrites auparavant
- Commandes: klaxon, phares, pilotage manuel, pilotage autonome, affiche de l'image, réglage direction, affichage des données sous forme graphique
- Information d'état des commandes effectives: les commandes sont envoyées au véhicule, puis retournées dans le mot d'état
- 2 tâches liées à l'émission / réception des données et réception de l'image
L'utilisation de l'ESP32 a introduit des modifications:
- Ajout d'une tâche liée au traitement d'image avec OpenCV
- Ajout de la configuration de la caméra (taille d'iamge, filtres)
- Ajout des images liées au traitement d'image: modification espace de couleur, détection ligne, ligne représentant la direction, ...
Interface avec image issue de la caméra
Traitement d'image
Le traitement des images est réalisé grâce à la librairie OpenCV et permet au véhicule de suivre une ligne de couleur
L'angle de direction du véhicule est issu de la détection de cette ligne, réalisé comme ci-dessous:
- Correction de la balance de blancs
- Modification de l'espace de couleur RGB vers HSV (teinte, saturation, couleur)
- Détection des bords de la ligne à partir d'une teinte
- Filtrage du 1/3 bas de l'image, à proximité du véhicule
- Détection des segments de ligne
- Suppression des segments horizontaux
- Calcul de la direction des segments à gauche et à droite
- Moyenne des directions
- Calcul de l'angle de direction
- Affichage d'une barre centrée en bas de l'image pour représenter la consigne de direction
Suite à l'utilisation de l'ESP32, les images intermédiaires peuvent être affichées sur l'interface graphique, ce qui simplifie le déboguage
Difficultés et améliorations
- Latence sur les commandes du véhicule (propulsion, direction) depuis l'interface graphique
- Manque de précision pour la position de direction
- Latence pour le transfert d'image et utilisation importante du processeur du Raspberry: il serait préférable de compresser les images avec son encodeur matériel
- La détection de ligne est d'autant plus complexe que le véhicule se déplace rapidement. En effet, les différentes étapes: communication, problème de latence, traitement (dont reflets liés à l'éclairage, très consommateur de ressources), envoi des commandes nécessitent du temps
Je pensais intégrer d'autres fonctions plus complexes
- Guidage grâce au machine learning: détection de panneaux de direction (tourner, faire demi-tour ou lire un texte)
- Réalisation du plan d'un appartement: le véhicule se déplace seul est établit un plan, ce qui fait apparaître le problème de calcul de distance sans référence
Radiateur
Radiateur
Ancienne carte électronique
Ce projet a débuté à l’automne 2021, en lien avec la vétusté d’un radiateur électrique à accumulation (avec 300kg de briques, ce qui permet de stocker 48kWh)
Objectifs:
- Remédier à l’obsolescence des pièces détachées, dont la carte de régulation de charge
- Ajouter des fonctionnalités comme pour les thermostats connectés actuels (régulation de la température ambiante, planification horaire, configuration, ainsi que gestion des défauts et affichage des tendances grâce à une interface Web)
Matériel
Réalisation d’une carte électronique pour la régulation électronique de charge
Circuit d’alimentation
- Alimentation 230V AC / 9V DC
- Alimentation 9V DC : commande des relais
- Alimentation 5V DC : super condensateur, entrées logiques et micro-contrôleur
- Alimentation 3,3V DC : convertisseurs MAX31865, réglage de charge et LED
Entrées logiques
- Heures creuses (230V)
- Relance charge (230V)
- Thermostat externe (230V)
- Sécurité ventilateurs (230V)
- Présence alimentation (3,3V) - Entrée (dans le domaine d’alimentation RTC) pour la mise en veille et réveil du micro-contrôleur.
Entrées analogiques
- 3 Sondes de température / convertisseur - SPI
- Sonde noyau – Pt700
- Sonde extérieure – Pt100
- Sonde ambiance – Pt100
- 1 entrée analogique : réglage du niveau de charge
Sorties logiques
- 3 relais 16A pour les résistances (2kW)
- 1 relais 16A pour les ventilateurs
Super condensateur
- Permet de remplacer une batterie et sert à alimenter le micro-contrôleur en cas de coupure électrique (afin de sauvegarder les paramètres et l’horodatage)
Micro-contrôleur
- ESP32-WROOM-32D sur carte de développement ESP32-DevKitC
Du fait de l’utilisation des convertisseurs de température Max31865, qui ne sont fabriqués qu’en CMS, j’ai choisi de faire fabriquer la carte après un premier essai avec ma machine à graver. Ce qui explique la taille des pistes, des via et autres composants traversants.
En 2023: Réalisation d’une seconde version pour corriger quelques erreurs
- La carte de développement ESP32-DevKitC-32D est obsolète : remplacement par un Module ESP32-WROOM-32E, ce qui permet de supprimer l’alimentation 5V DC et les régulateurs de tension.
- Correction d’une inversion entre le signal de présence d’alimentation (entrée non RTC) et la seconde LED (non configurable en sortie)
- Ajout des résistances de pull-up pour la liaison SPI des convertisseurs des sondes
- Ajout d’une entrée pour le décodage du signal Pulsadis EDF (informations liées à la tarification)
Logiciel
Le module ESP32 comprend
- module Wifi 2,4GHz + Bluetooth + Bluetooth LE
- mémoire flash
- une antenne Wifi (sur la carte)
- le micro-contrôleur peut être cadencé jusqu’à 240MHz et comprend 2 cœurs
- il est muni de FreeRTOS
Le logiciel est réalisé en C++ avec 4 classes principales, comprenant les différentes tâches
Organisation initiale des tâches
Diagramme des classes
Les classes
Main
Point d’entrée de l’application
Initialise les principales classes (MessageSwitcher, HardwareManagement, WebServer, SchedulingAndRegulation), démarre leurs tâches et appel infiniment la fonction « switchMessage »
Classes principales (contenant les différentes tâches)
Diagramme d'activité du programme principal
MessageSwitcher
Classe dédiée aux files de messages
La fonction « switchMessages » permet de router les messages entrants vers les files de messages appropriées (selon l’identifiant du message)
Diagramme d'activité "switchMessages"
HardwareManagement
Gestion des interfaces matériel / logiciel
- 1 Timer (1s) pour déclencher la mesure des valeurs analogiques
- 1 bus SPI : partagé entre les 3 convertisseurs des sondes de température
- 5 entrées logiques avec leur gestionnaire d’interruption : qui envoie un message vers un gestionnaire d’événement ou une file de message en cas de changement d’état
- 1 entrée analogique
- 7 sorties logiques : LEDs et relais
- 4 filtres afin d’utiliser une valeur moyenne des mesures analogiques
L’exécution de la tâche permet, successivement
- Lecture des messages reçus dans la file de messages
- Mise à jour, si besoin, de l’état des sorties
- Lecture successive, si autorisé, des mesures analogiques et envoi, si besoin, des nouvelles valeurs dans la file de messages
La mise à jour de l’état des entrées est réalisée par interruption : un message est envoyé dans la file de message lors d’un changement d’état
Un timer permet de déclencher la mesure des valeurs analogiques, en raison de leur faible fréquence (1s).
Classe HardwareManagement
Classe Input
Classe Output
Classe AnalogInput
Classe MAX31865
Classe SPI
Le code du Max31865 et du SPI est issu du dépôt GitHub suivant:
SchedulingAndRegulation
Gestion des régulateurs (charge et température ambiante), chargement / sauvegarde des paramètres
- 1 Timer (1s) pour transmettre les tendances au serveur Web
L’exécution de la tâche permet, successivement
- Lecture des messages reçus dans la file de messages
- Mise à jour, si besoin, des données liées aux régulateurs, état des entrées, sauvegarde des paramètres et mise en veille, mise à l’heure et mise à jour des paramètres
- Mise à jour des points de consignes en fonction de la planification horaire
- Mise à jour des régulateurs
- Mise à jour de la commande des relais et LEDs
Mise à l’heure
L’horloge RTC est celle du micro-contrôleur, toutefois elle s’arrête en veille profonde. Le réglage de l’heure, et non la date, se fait de manière autonome grâce aux informations heures creuses / heures pleines et l’interface web permet à l’utilisateur de régler l’horodatage.
Dans le lieux où est installé l’appareil, les heures creuses sont déclenchées selon 2 créneaux par jour 15h-17h et 22h-6h
Périodes tarifaires
Si la période d’heures creuses a durée 2, il est 17h. Sinon il est 6h le jour suivant.
Class SchedulingAndRegulation
Class Regulator
Class RoomRegulator
Class LoadRegulator
Cette page m’a permit d’améliorer l’algorithme de mon régulateur PID:
Cette page m’a permis d’implémenter le régulateur de charge, et d’y ajouter quelques fonctionnalités comme le décalage du point de charge :
Settings
Ils contiennent:
- 1 planification par défaut, soit 24h configurable par 1/2h
- 1 planification hebdomadaire (7 jours, configurables par 1/2h)
- température hors gel
- température de confort
- température réduite
- nombre de jours de congés restants
- horodatage
- activation de la sonde de température externe
- activation de la gestion du ventilateur
- puissance de relance
- puissance nominale
- type d’alimentation (monophasée, triphasée)
- type d’accumulation (proportionnel, automatique, …)
- décalage de charge (début, milieu, fin de nuit)
Afin de simplifier le programme, chacune des tâches WebServer et SchedulingAndRegulation instancie la classe Settings, qui permet de charger / sauvegarder les paramètres depuis la mémoire flash. Lorsqu’une modification d’un paramètre a été effectuée depuis l’interface Web, celui-ci est sauvegardé dans la flash et un signal est envoyé à la tâche SchedulingAndRegulation pour lui indiquer qu’une modification a eu lieu. Trois identifiants de messages, correspondants au différents paramètres, sont implémentés : paramètres, consignes et planification.
Classe Settings
WebServer
Gestion de l’initialisation du WiFi en point d’accès, gestion des connexions et échange de données avec la page Web (dont celles de configuration) grâce à plusieurs gestionnaires des ressources et une librairie Json (cJSON).
Le site web est réalisé en HTML/CSS, et tous les fichiers sont stockés sur le micro-contrôleur du fait de la configuration en point d’accès, ce qui nécessite beaucoup de mémoire (79,5ko).
L’exécution de la tâche permet, successivement :
- Lecture des messages reçus dans la file de messages
- Copie, si besoin, des données liées aux tendances dans un buffer tournant
- Mise à jour des index liés au buffer
Class WebServer
Page web (haut)
Page web (bas)
Chauffage solaire
Ce projet a débuté au cours de l'été 2022
Objectifs :
- Optimiser la récupération d'énergie d'un système solaire thermique
- Automatiser la vidange et le remplissage du circuit en fonction des conditions climatiques (gel)
- Lire des données grâce à des cartes déportées, afin de limiter les câbles (tempértaure, irradiation, ...)
- Dialoguer avec une chaudière pour lire ses valeurs (températures, ...) et éventuellement la piloter
- Pouvoir intégrer, par la suite, un système de tracking solaire afin d'optimiser l'inclinaison des panneaux
- Générer des tendances sur une interface Web (températures, puissance récupérée, ...)
- Anticiper de futures évolutions (entrées / sorties supplémentaires)
Matériel
Cartes électroniques
Carte principale
Circuit d'alimentation
- Alimentation 230V AC / 12V DC
- Alimentation 12V DC : contrôle par relais
- Alimentation 5V DC : supercondensateur, horloge RTC, sorties analogiques et Raspberry Pi Zero W (ou ESP32)
- Alimentation 3,3V DC : convertisseurs MAX31865, entrées logiques, communication
Entrées logiques
- Niveau bas du réservoir (230 V)
- Niveau haut de réservoir (230 V)
- Reserve (230V)
- Reserve (230V)
- Présence d'alimentation (3,3 V) - Pour mettre le nano ordinateur en veille
Entrées analogiques
- 4 sondes de température / convertisseur - SPI
- Température aller panneaux – Pt100
- Température retour panneaux – Pt100
- Température entrée de l'échangeur – Pt100
- Température sortie de l'échangeur – Pt100
Sorties logiques
- 1 relais 16A pour électrovanne de vidange
- 2 relais 16A en réserve
Sorties analogiques
- 2 sorties analogiques (vers 10 V) avec MCP4922 / amplificateurs (SPI)
- Circulateur avec un Triac (230 V / 16 A)
Communication
- 1 émetteur-récepteur RS485 pour communication par carte externe
- 1 émetteur-récepteur RS485 pour la communication de la chaudière
Super condensateur
- Permet de remplacer une pile et sert à alimenter le nano ordinateur en cas de coupure de courant
Horloge RTC
- DS1337 (I2C)
Nano-ordinateur
- Raspberry Pi Zero W
Carte déportée
Circuit d'alimentation
- Alimentation 9V DC
- Alimentation 3,3 V DC : convertisseurs MAX31865, entrées, communication et microcontrôleur
Entrées analogiques
- 2 sondes de température / convertisseur - SPI
- Température aller panneaux – Pt100
- Température retour panneaux – Pt100
- Irradition solaire
- Pression, température, humidité - BME280 (SPI)
Communication
- 1 émetteur-récepteur RS485 pour la communication avec la carte principale
Microcontrôleur
- Microchip PIC16LF1508
Aérogénérateur
Ce projet a débuté en 2023
Objectifs:
- Réaliser un prototype d'aérogénérateur basé sur une aile de kitesurf
- Tester la viabilité
Matériel
Le système sera constitué de plusieurs cartes électroniques, adaptées aux différentes parties. Et différentes configuration seront testées.
- Les cartes d'instrumentation, positionnée sur l'aile. Ce qui permet de remonter les informations liées à sa dynamique (gyroscope / accéléromètre). Une communication radio est nécessaire du fait de la longueur des lignes, et 2 configurations seront testées : Bluetooth et radio inférieure au GHz
- La carte de commande, qui récupère, traite les informations et commande l'aile. Cette carte est compatible pour les 2 modes de commaunication radio.
- Les cartes de puissance qui adaptent les tensions nécessaires aux servomoteurs
- La carte de commande d'un ventilateur, qui est optionnelle, et permettra de tester le système
Carte d'instrumentation 1 (sur l'aile)
Première option de la carte où le micro-controleur fait l'interface entre les capteurs et l'émetteur radio
Circuit d’alimentation
- Alimentation par batterie jusqu'à 9V DC
- Alimentation 3,3V DC : gyroscope, accéléromètre, émetteur radio, micro-contrôleur
Capteurs
- Accéléromètre IIS2DLPC
- Gyroscope IAM-20380
Communication
- Si4060
Micro-contrôleur
- STM8L101F3P
Carte d'instrumentation 2 (sur l'aile)
Seconde option de la carte où il paraît possible d'utiliser le module BlueNRG-M2SP comme interface avec les capteurs et émetteur, du fait de ses possibilités de programmation.
Circuit d’alimentation
- Alimentation par batterie jusqu'à 9V DC
- Alimentation 3,3V DC : gyroscope, accéléromètre, BlueNRG-M2SP
Capteurs
- Accéléromètre IIS2DLPC
- Gyroscope IAM-20380
Communication
- BlueNRG-M2SP
Carte de commande
Circuit d’alimentation
- Alimentation 12V DC (à partir d'une alimentation déportée du fait de la puissance nécessaire au pilotage de l'aile)
- Alimentation 3,3V DC : super-condensateur, convertisseur analogique-numérique, récepteur radio, micro-contrôleur
- Alimentation 5V / 3,3V DC : port USB
Entrées logiques
- Passage par zéro de la tesnion (sinusoïde 230V)
Entrées analogiques
- Convertisseur analogoique-numérique (SPI)
- tension de sortie des 3 hacheurs
- courant des 3 hacheurs
- Vitesse du vent (anémomètre)
- Direction du vent (Girouette)
Sorties analogiques
- sortie PWM pour régler la tension des 3 hacheurs
- sortie PWM pour le servomoteur des arrières de gauche
- sortie PWM pour le servomoteur des avants
- sortie PWM pour le servomoteur des arrières de droite
- sortie PWM pour piloter le ventilateur (fonction test)
Communication
- Si4362
- STM32WB55
- Connecteur pour communaiction SPI (si besoin d'évolution)
Micro-contrôleur
- STM32WB55
Carte de puissance
Ne connaissant pas l'effort de traction nécessaire au pilotage de l'aile, je prévois d'utiliser des servomoteurs de 35kg. Ce qui permet de dimenssionner les hacheurs.
Caractéristiques
- Alimentation 12V DC à partir d'une alimentation déportée du fait de la puissance nécessaire
- Sortie jusqu'à 12V DC - 6A
- Circuit d'amplification pour la commande du transistor (3,3V / 12V)
- Mesure de la tension et courant de sortie
- Carte générique pour les 3 hacheurs
Carte de commande d'un ventilateur (test du système)
Circuit de commande d'un ventilateur, afin de simuler le vent et tester le système
Caractéristiques
- Commande du ventilateur par PWM depuis la carte de commande et Triac (230V AC - 16A)
- Détection du passage par zéro de la tension sinusoïdale (cahrge inductive) à destination du micro-contrôleur