- Matériaux nécessaires
- Comprendre les moteurs BLDC
- Pourquoi les drones et autres multi-hélicoptères utilisent des moteurs BLDC?
- Pourquoi avons-nous besoin d'un CES et quelle est sa fonction?
- Quelques termes communs avec BLDC et ESC:
- Schéma du circuit de commande du moteur Arduino BLDC
- Programme pour le contrôle de vitesse BLDC utilisant Arduino
- Contrôle de moteur Arduino BLDC
Construire des choses et les faire fonctionner, comme nous le souhaitons, a toujours été très amusant. Bien que cela soit convenu, construire des objets qui pourraient voler susciterait un peu plus d'anxiété parmi les amateurs et les bricoleurs de matériel. Oui! Je parle de planeurs, d'hélicoptères, d'avions et principalement de multi-copters. Aujourd'hui, il est devenu très facile d'en créer un par vous-même grâce au support de la communauté disponible en ligne. Une chose commune avec toutes les choses qui volent est qu'elles utilisent un moteur BLDC, alors quel est ce moteur BLDC? Pourquoi en avons-nous besoin pour faire voler des objets? Qu'y a-t-il de si spécial? Comment acheter le bon moteur et l'interfacer avec votre contrôleur? Qu'est-ce qu'un ESC et pourquoi l'utilisons-nous? Si vous avez des questions comme celles-ci, ce tutoriel est votre solution unique.
Donc, fondamentalement, dans ce tutoriel, nous contrôlerons le moteur sans balais avec Arduino. Ici, le moteur sans capteur BLDC A2212 / 13T est utilisé avec un contrôleur de vitesse électronique (ESC) 20A. Ce moteur est couramment utilisé pour construire des drones.
Matériaux nécessaires
- Moteur BLDC A2212 / 13T
- ESC (20A)
- Source d'alimentation (12V 20A)
- Arduino
- Potentiomètre
Comprendre les moteurs BLDC
BLDC Motor signifie Brush Less DC motor, il est couramment utilisé dans les ventilateurs de plafond et les véhicules électriques en raison de son bon fonctionnement. L'utilisation des moteurs BLDC dans les véhicules électriques est précédemment expliquée en détail. Contrairement aux autres moteurs, les moteurs BLDC ont trois fils qui en sortent et chaque fil forme sa propre phase nous donnant ainsi un moteur triphasé. Attends quoi!!??
Oui, bien que les moteurs BLDC soient considérés comme des moteurs à courant continu, ils fonctionnent à l'aide d'ondes pulsées. Le contrôleur de vitesse électronique (ESC) convertit la tension CC de la batterie en impulsions et la fournit aux 3 fils du moteur. À tout moment, seules deux phases du moteur seront alimentées, de sorte que le courant entre par une phase et sort par l'autre. Pendant ce processus, la bobine à l'intérieur du moteur est excitée et par conséquent les aimants sur le rotor s'alignent sur la bobine excitée. Ensuite, les deux fils suivants sont alimentés par l'ESC, ce processus se poursuit pour faire tourner le moteur. La vitesse du moteur dépend de la vitesse à laquelle la bobine est excitée et la direction du moteur dépend de l'ordre dans lequel les bobines sont excitées. Nous en apprendrons plus sur ESC plus loin dans cet article.
Il existe de nombreux types de moteurs BLDC disponibles, examinons les classifications les plus courantes.
Moteur BLDC In-Runner et Out-Runner: Les moteurs BLDC In Runner fonctionnent comme n'importe quel autre moteur. C'est-à-dire que l'arbre à l'intérieur du moteur tourne tandis que le boîtier reste fixe. Alors que les moteurs BLDC à coureurs sont juste l'opposé, le boîtier externe du moteur tourne avec l'arbre tandis que la bobine à l'intérieur reste fixe. Les moteurs hors coureur sont très avantageux dans les vélos électriques car le boîtier extérieur (celui qui tourne) lui-même est transformé en une jante pour les pneus et donc un mécanisme de couplage est évité. De plus, les moteurs hors coureur ont tendance à donner plus de couple que dans les types de coureurs, ce qui en fait un choix idéal pour les véhicules électriques et les drones. Celui que nous utilisons ici est également un type de coureur extérieur.
Remarque: il existe un autre type de moteur appelé les moteurs BLDC sans noyau qui sont également utilisés pour les drones de poche, ils ont un principe de fonctionnement différent, mais pour le moment, sautons-le pour le plaisir de ce tutoriel.
Capteur et moteur BLDC sans capteur: Pour qu'un moteur BLDC tourne sans aucune secousse, une rétroaction est nécessaire. C'est-à-dire que l'ESC doit connaître la position et le pôle des aimants dans le rotor afin d'activer le stator en fonction. Ces informations peuvent être acquises de deux manières; la première consiste à placer le capteur à effet Hall à l'intérieur du moteur. Le capteur à effet Hall détectera l'aimant et enverra les informations à l'ESC. Ce type de moteur s'appelle un moteur Sensord BLDC et est utilisé dans les véhicules électriques. La deuxième méthode consiste à utiliser l'EMF arrière généré par les bobines lorsque les aimants les traversent, cela ne nécessite pas de matériel ou de fils supplémentaires, le fil de phase lui-même est utilisé comme rétroaction pour vérifier l'EMF arrière. Cette méthode est utilisée dans notre moteur et est courante pour les drones et autres projets de vol.
Pourquoi les drones et autres multi-hélicoptères utilisent des moteurs BLDC?
Il existe de nombreux types de drones sympas, du quadricoptère aux hélicoptères et aux planeurs, tout a un matériel en commun. Ce sont les moteurs BLDC, mais pourquoi? Pourquoi utilisent-ils un moteur BLDC qui est un peu cher par rapport aux moteurs CC?
Il y a plusieurs raisons valables à cela, une raison principale est que le couple fourni par ces moteurs est très élevé, ce qui est très important pour gagner / perdre rapidement de la poussée pour décoller ou atterrir un drone. Ces moteurs sont également disponibles en tant que coureurs, ce qui augmente encore la poussée des moteurs. Une autre raison de sélectionner le moteur BLDC est son fonctionnement sans vibrations, ce qui est très idéal pour notre drone stable dans les airs.
Le rapport poids / puissance d'un moteur BLDC est très élevé. Ceci est très important car les moteurs utilisés sur les drones doivent être de forte puissance (vitesse et couple élevés) mais doivent également être moins lourds. Un moteur à courant continu qui pourrait fournir le même couple et la même vitesse que celui d'un moteur BLDC sera deux fois plus lourd que le moteur BLDC.
Pourquoi avons-nous besoin d'un CES et quelle est sa fonction?
Comme nous le savons, chaque moteur BLDC nécessite une sorte de contrôleur pour convertir la tension CC de la batterie en impulsions pour alimenter les fils de phase du moteur. Ce contrôleur est appelé un ESC qui signifie Electronic Speed Controller. La responsabilité principale du contrôleur est de mettre sous tension les fils de phase des moteurs BLDC dans un ordre afin que le moteur tourne. Cela se fait en détectant l'EMF arrière de chaque fil et en alimentant la bobine exactement lorsque l'aimant traverse la bobine. Il y a donc beaucoup de brillance matérielle à l'intérieur de l'ESC qui sort du cadre de ce tutoriel. Mais pour en mentionner quelques-uns, il dispose d'un régulateur de vitesse et d'un circuit d'élimination de batterie.
Contrôle de vitesse basé sur PWM: L'ESC peut contrôler la vitesse du moteur BLDC en lisant le signal PWM fourni sur le fil orange. Il fonctionne de manière très similaire aux servomoteurs, le signal PWM fourni doit avoir une période de 20 ms et le cycle de service peut être modifié pour faire varier la vitesse du moteur BLDC. Étant donné que la même logique s'applique également aux servomoteurs pour contrôler la position, nous pouvons utiliser la même bibliothèque de servo dans notre programme Arduino. Apprenez à utiliser Servo avec Arduino ici.
Circuit d'élimination de batterie (BEC): Presque tous les ESC sont livrés avec un circuit d'élimination de batterie. Comme son nom l'indique, ce circuit élimine le besoin d'une batterie séparée pour le microcontrôleur, dans ce cas, nous n'avons pas besoin d'une alimentation séparée pour alimenter notre Arduino; l'ESC lui-même fournira un + 5V régulé qui peut être utilisé pour alimenter notre Arduino. Il existe de nombreux types de circuits qui régulent cette tension normalement, ce sera une régulation linéaire sur les ESC bon marché, mais vous pouvez également en trouver avec des circuits de commutation.
Micrologiciel: chaque ESC a un programme de micrologiciel écrit dedans par les fabricants. Ce micrologiciel détermine grandement la façon dont votre ESC répond; Certains des micrologiciels populaires sont Traditional, Simon-K et BL-Heli. Ce firmware est également programmable par l'utilisateur, mais nous n'entrerons pas dans beaucoup de choses dans ce tutoriel.
Quelques termes communs avec BLDC et ESC:
Si vous venez de commencer à travailler avec des moteurs BLDC, vous avez probablement rencontré des termes tels que freinage, démarrage progressif , direction du moteur, basse tension, temps de réponse et avance. Jetons un coup d'œil à ce que signifient ces termes.
Freinage: Le freinage est la capacité de votre moteur BLDC à s'arrêter de tourner dès que l'accélérateur est retiré. Cette capacité est très importante pour les multi-copters car ils doivent changer leur régime plus souvent pour manœuvrer dans les airs.
Démarrage progressif: le démarrage progressif est une caractéristique importante à prendre en compte lorsque votre moteur BLDC est associé à un engrenage. Lorsqu'un moteur a le démarrage progressif activé, il ne commencera pas à tourner très rapidement tout d'un coup, il augmentera toujours progressivement la vitesse, quelle que soit la vitesse à laquelle l'accélérateur a été donné. Cela nous aidera à réduire l'usure des engrenages attachés aux moteurs (le cas échéant).
Direction du moteur: La direction du moteur dans les moteurs BLDC n'est normalement pas modifiée pendant le fonctionnement. Mais lors de l'assemblage, l'utilisateur peut avoir besoin de changer la direction dans laquelle le moteur tourne. Le moyen le plus simple de changer la direction du moteur est de simplement interchanger deux fils quelconques du moteur.
Arrêt basse tension: Une fois calibrés, nous aurions toujours besoin que nos moteurs BLDC fonctionnent à la même vitesse particulière pour une valeur particulière d'accélérateur. Mais cela est difficile à réaliser car les moteurs ont tendance à réduire leur vitesse pour la même valeur d'accélérateur lorsque la tension de la batterie diminue. Pour éviter cela, nous programmons normalement l'ESC pour qu'il cesse de fonctionner lorsque la tension de la batterie est inférieure à la valeur seuil, cette fonction est appelée arrêt basse tension et est utile dans les drones.
Temps de réponse: La capacité du moteur à changer rapidement sa vitesse en fonction du changement de papillon est appelée temps de réponse. Plus le temps de réponse est petit, meilleur sera le contrôle.
Advance: Advance est un problème ou plus comme un bug avec les moteurs BLDC. Tous les moteurs BLDC ont un peu d'avance en eux. C'est à ce moment que les bobines du stator sont excitées, le rotor est attiré vers elle en raison de l'aimant permanent présent sur elles. Après avoir été attiré, le rotor a tendance à se déplacer un peu plus vers l'avant dans la même direction avant que la bobine ne se désexcite, puis la bobine suivante se met sous tension. Ce mouvement s'appelle «Advance» et il créera des problèmes comme le tremblement, l'échauffement, le bruit, etc. C'est donc quelque chose qu'un bon ESC devrait éviter tout seul.
Bon, assez de théorie maintenant, commençons avec le matériel en connectant le moteur à l'Arduino.
Schéma du circuit de commande du moteur Arduino BLDC
Vous trouverez ci-dessous le schéma de circuit pour contrôler le moteur sans balais avec Arduino:
La connexion pour interfacer le moteur BLDC avec Arduino est assez simple. L'ESC a besoin d'une source d'énergie d'environ 12V et 5A minimum. Dans ce tutoriel, j'ai utilisé mon RPS comme source d'alimentation, mais vous pouvez également utiliser une batterie Li-Po pour alimenter l'ESC. Les fils triphasés de l'ESC doivent être connectés aux fils triphasés des moteurs, il n'y a pas d'ordre pour connecter ces fils, vous pouvez les connecter dans n'importe quel ordre.
Avertissement: certains ESC n'auront pas de connecteurs sur eux, dans ce cas, assurez-vous que votre connexion est solide et protégez les fils exposés à l'aide d'un ruban isolant. Puisqu'il y aura un courant élevé traversant les phases, tout court-circuit entraînerait des dommages permanents du contrôleur et du moteur.
Le circuit BEC (Battery Eliminator) dans l'ESC lui-même régulera un + 5V qui peut être utilisé pour alimenter la carte Arduino. Enfin pour régler la vitesse du moteur BLDC nous utilisons également un potentiomètre connecté à la broche A0 de l'Arduino
Programme pour le contrôle de vitesse BLDC utilisant Arduino
Nous devons créer un signal PWM avec un rapport cyclique variant de 0% à 100% avec une fréquence de 50 Hz. Le cycle de service doit être contrôlé à l'aide d'un potentiomètre afin que nous puissions contrôler la vitesse du moteur. Le code pour ce faire est similaire au contrôle des servomoteurs car ils nécessitent également un signal PWM avec une fréquence de 50 Hz; par conséquent, nous utilisons la même bibliothèque de servo d'Arduino. Le code complet peut être trouvé au bas de cette page ci-dessous. J'explique le code en petits extraits. Et si vous êtes nouveau sur Arduino ou PWM, commencez par utiliser PWM avec Arduino et contrôlez le servo à l'aide d'Arduino.
Le signal PWM ne peut être généré que sur les broches qui prennent en charge PWM par le matériel, ces broches sont normalement mentionnées avec un symbole ~. Sur Arduino UNO, la broche 9 peut générer un signal PWM, nous connectons donc la broche de signal ESC (fil orange) à la broche 9, nous mentionnons également le même code inn en utilisant la ligne suivante
ESC.attach (9);
Nous devons générer un signal PWM de cycle de service variant de 0% à 100%. Pour un cycle de service de 0%, le POT émettra 0V (0) et pour un cycle de service de 100%, le POT émettra 5V (1023). Ici, le pot est connecté à la broche A0, nous devons donc lire la tension analogique du POT en utilisant la fonction de lecture analogique comme indiqué ci-dessous
accélérateur int = analogRead (A0);
Ensuite, nous devons convertir la valeur de 0 à 1023 en 0 à 180 car la valeur 0 générera 0% PWM et la valeur 180 générera un cycle de service de 100%. Toute valeur supérieure à 180 n'aura aucun sens. Nous mappons donc la valeur sur 0-180 en utilisant la fonction de carte comme indiqué ci-dessous.
accélérateur = carte (accélérateur, 0, 1023, 0, 180);
Enfin, nous devons envoyer cette valeur à la fonction d'asservissement pour qu'elle puisse générer le signal PWM sur cette broche. Puisque nous avons nommé l'objet servo ESC, le code ressemblera à ceci ci-dessous, où l'accélérateur variable contient la valeur de 0 à 180 pour contrôler le cycle de service du signal PWM
ESC.write (accélérateur);
Contrôle de moteur Arduino BLDC
Effectuez les connexions selon le schéma de circuit et téléchargez le code sur Arduino et mettez le contrôleur sous tension. Assurez-vous que vous avez monté le moteur BLDC sur quelque chose car le moteur sautera tout autour lors de la rotation. Une fois la configuration allumée, votre ESC émettra une tonalité de bienvenue et continuera à biper jusqu'à ce que le signal d'accélérateur soit dans les limites du seuil, augmentez simplement le POT de 0V progressivement et le bip s'arrêtera, cela signifie que nous fournissons maintenant PWM au-dessus de la valeur seuil inférieure et à mesure que vous augmentez, votre moteur commencera à tourner lentement. Plus vous fournissez de tension, plus le moteur augmentera de vitesse, enfin lorsque la tension dépasse la limite de seuil supérieure, le moteur s'arrête. Vous pouvez ensuite répéter le processus.
Le fonctionnement complet de ce contrôleur Arduino BLDC peut également être trouvé sur le lien vidéo ci-dessous. Si vous avez rencontré un problème pour que cela fonctionne, n'hésitez pas à utiliser la section des commentaires ou à utiliser les forums pour une aide plus technique.