2.2 Choix de la méthode de génération du signal de commande du contrôleur.
La génération d’un tel signal peut être faite par des dispositifs astables et monostables réalisés à l’aide de portes logiques de type inverseur, nand ou nor travaillant sous une tension de 5 volts, ou avec l’universel NE555. On peut trouver des schémas en se documentant sur le web.
La génération du signal de commande qui va être présentée ici fait appel aux microcontrôleurs parce qu’ils sont facilement accessibles actuellement, plus stables et précis dans la génération du signal. Avantage indéniable, avec très peu de composants externes le montage va pouvoir aussi assurer la régulation de la hauteur de la réserve d’air, dispensant complètement le réalisateur de placer une quelconque vanne de régulation sur son alimentation en air.
Nous avons réalisé des dispositifs à l’aide de PIC de Microchip et d’Atmega d’Atmel. C’est avec ces derniers, sous la forme de module « Arduino » que ces réalisations sont présentées. Le principal critère du choix de ces derniers réside dans la possibilité de présenter des circuits facilement réutilisables par toute personne ayant quelques connaissances en électricité et dans l’usage des micro-ordinateurs. On peut tout à fait ne pas avoir de connaissance particulière dans la programmation des microcontrôleurs parce que les modules « Arduino » se présentent sous forme d’ensembles prêt à fonctionner, disposant de broches d’entrée et de sortie numérotées et d’une interface USB que l’on connecte directement à un port USB de l’ordinateur pour le programmer. Le câblage, la programmation, la mise en œuvre est décrite dans ce qui suit.
Les réalisations présentées utilisent le module « Arduino Nano ». Son encombrement est assez réduit pour que les études soient facilement faites sur une platine d’essai sans soudure. La réalisation finale, en circuit imprimé plus compacte, pourra être faite par chaque utilisateur.
Le logiciel de programmation est à télécharger sur le site Arduino à l’adresse :
http://arduino.cc/en/Main/Software
Noter aussi un site correspondant, en français, qui explique à l’adresse suivante tous les détails de l’installation du logiciel de programmation et la méthode pour faire la première connection de son premier module Arduino, et la première configuration :
http://arduino.cc/fr/Main/DebuterInstallationWindows
Cette installation est nécessaire pour les réalisations qui vont être présentées.
Le programme de chaque réalisation est donné sous forme d’un texte. Pour l’utiliser il suffit de faire les opérations suivantes :
- D’abord, ouvrir le fichier texte avec un logiciel, par exemple avec « Bloc notes » de Windows. Si la fenêtre de programmation Arduino est simultanément visible à l’écran de l’ordinateur il suffit de faire un « copier – coller » depuis le texte vers la fenêtre d’Arduino.
- Ensuite, on peut faire un « clic » sur la première icone à gauche pour vérifier que la compilation du texte du programme se passe bien. Si aucune ligne du texte, ni signe de programmation, en particulier le dernier } de fin n’a pas été oublié dans le « copier – coller », si dans la configuration, (outil tools de la barre de menus), la carte Arduino Nano avec Atmega328 a été bien spécifié, tout devrait bien se passer, car les programmes ont été testés.
- Et pour terminer, il reste à faire le clic sur la seconde icone à gauche pour « verser » le programme dans la mémoire du microcontrôleur. (Il est bien entendu que le module Arduino est déjà connecté à l’ordinateur par un câble USB.)
- Quand c’est terminé, le module Arduino est opérationnel. On peut sauvegarder le programme sur son ordinateur si on veut le réutiliser ou le modifier.
Quelques images montrent ces opérations qui viennent d’être décrites (cliquez sur l'image pour l'agrandir).
Avertissement :
Les circuits et les programmes présentés ont été testés. L’écriture des programmes n’a pas été optimisée.
On
a voulu utiliser les fonctions les plus simples du « langage Arduino », en ayant toutefois vérifié que chaque boucle de programme a effectué tout son travail avant que les 20 millisecondes de la période de répétition des impulsions ne soit écoulée.
Les schémas et programmes sont donnés « tel que », on ne peut assurer qu’ils soient exempts de défauts ou de bugs.
Chaque expérimentateur peut s’en inspirer et les utiliser, mais sous sa propre responsabilité.
Attention :
Il y a une alimentation de 5 volts vers le module Arduino par la liaison USB à l’ordinateur. Il y a une autre alimentation de 5 volts fournie par le contrôleur du moteur, par son fil rouge : le fil central du connecteur 3 fils du contrôleur. Il se peut que la présence de 2 alimentations simultanées puisse créer des situations indésirables, il vaut mieux vérifier les connections des montages pour que cette situation ne se présente pas. (Débrancher le contrôleur avant que la connection USB soit faite par exemple, et à l’inverse débrancher le câble USB avant que le contrôleur soit connecté).
2.3 Un premier montage simple pour tester le matériel : Faire tourner un moteur et modifier sa vitesse par un potentiomètre.
Tous les moteurs brushless et tous les contrôleurs ont 3 fils de connection pour les relier. Comme on l’a déjà signalé si, à l’expérience, le moteur ne tourne pas dans le sens souhaité, il suffit d’inverser les branchements de 2 fils pour inverser le sens de rotation.
Les contrôleurs présentent 2 autres gros fils, rouge et noir en général, à connecter respectivement vers le pôle positif et le pôle négatif de l’alimentation électrique : 12 volts continus dans toutes les réalisations présentées ici.
Il ne restera plus qu’à brancher le petit câble « 3 fils » à la platine d’essai, où l’on va générer les signaux de commande qui vont faire tourner le moteur.
Pour ce premier montage sur la platine d’essai qui porte le module Arduino, c’est le potentiomètre de 10 kilo ohms qui joue le rôle d’accélérateur du moteur. On utilise le schéma suivant :
Voici la photographie de la platine d’essai :
Remarquez la présence des 2 condensateurs de 22 microfarads en haut et en bas entre les lignes des trous placées à 0 volts ou à 5 volts. Ces lignes sont elles-mêmes reliées aux broches marquées GND et 5V de l’Arduino. Comme c’est souvent l’usage, un condensateur de 100 nF céramique y est ajouté. On y voit en plus , d’une part, les liaisons du potentiomètre vers 0V et 5V, sa broche médiane qui est reliée par l’intermédiaire de la résistance de 1 kilo ohm et du fil jaune à l’entrée analogique A0 de l’Arduino, et d’autre part la sortie D9 reliée par le fil vert et la résistance de 1 kilo ohm à la broche de commande où vient se brancher le connecteur « 3 fils » du contrôleur. Les résistances de 1 kilo ohm ne sont pas nécessaires mais peuvent protéger les circuits contre des erreurs de branchements. On voit aussi 2 petites liaisons venant de la broche du connecteur « 3 fils » respectivement vers le 0 volt et vers le 5 volts. Elles permettent d’alimenter le module Arduino lorsqu’on entreprend les tests, le câble USB le reliant à l’ordinateur ayant été enlevé.
2.3.1 Premier programme : fichier CommandeNo0.txt.
Le but est uniquement de générer un signal de commande pour piloter la vitesse de rotation du moteur.
Une fonction appelée mesures() se charge de mesurer la tension sur la prise médiane du potentiomètre. La valeur donnée par le convertisseur numérique analogique est stockée dans la variable appelée distance. On lui a déjà donnée ce nom, parce que dans les réalisations suivantes elle stockera une valeur indiquant la distance entre la hauteur de la réserve d’air et le capteur.
Puisque le convertisseur numérique analogique travaille sur 10 bits, la variation du potentiomètre depuis 0V jusqu’à 5V la fera varier depuis le nombre 0 jusqu’au nombre 1023.
Cette variable est transmise à la fonction faire_pulse(), qui se charge de mettre à l’état haut la broche D9 pour une durée égale à (990 + distance) microsecondes. Et la boucle loop() attend que 20 millisecondes se soient écoulées avant de recommencer.
Le signal sur la broche D9 est donc conforme au code des signaux de télécommande : le potentiomètre tourné côté 0V, l’impulsion dure 0,99 milliseconde et le moteur est arrêté, le potentiomètre est tourné côté 5V, l’impulsion dure 2.013 millisecondes et le moteur tourne à plein régime.
Si vous voulez tester ce programme, copiez dans la fenêtre d’Arduino le texte du fichier CommandeN°0.txt ou de CommandeN°0_bref.txt, (ils donnent le même résultat : le premier a beaucoup de commentaires qui peuvent compléter les explications qui précèdent, le second n’en a presque pas). Vérifiez la compilation puis chargez le programme dans la mémoire du module Arduino, suivant la méthode déjà décrite.
2.3.2 Test de la réalisation.
Prendre soin de débrancher le câble USB de la programmation avant de connecter une alimentation. Sur la photographie du test c’est un petit accumulateur au plomb de 12 volts qui est utilisé, et le tout a fonctionné comme prévu.
ATTENTION :
Les contrôleurs destinés aux modèles réduits ont pour la plupart une sécurité. Au branchement de l’alimentation, avant qu’on ne puisse faire tourner le moteur, il faut que le contrôleur reçoive pendant plusieurs secondes les impulsions de largeur minimale qui correspondent à la commande « moteur arrêté ». Au bout de ces quelques secondes, l’initialisation du contrôleur est faite et la commande acceptée. En général le contrôleur émet alors un signal sonore pour avertir qu’il est disponible pour un fonctionnement normal. C’est à partir de ce moment qu’on peut lancer la rotation du moteur. Il faut donc pour tester la réalisation que le potentiomètre soit tourné du côté 0 V à la mise sous tension du montage, et attendre un signal sonore avant de tourner le potentiomètre vers le +5V pour lancer le moteur.
Si tout a fonctionné, c’est une confirmation de la bonne configuration de l’ensemble matériel et logiciel, et que vous avez appris à l’utiliser si vous ne le saviez pas encore. Le système est prêt à être développé pour piloter le moteur brushless d’un ventilateur d’orgue.
La réalisation suivante propose de remplacer simplement le potentiomètre par un capteur de distance optique. Il produit une tension qui augmente quand la distance le l’obstacle en vue se rapproche. On va associer cet obstacle à la hauteur de la réserve d’air.
Cliquez ici pour lire la suite.
|