Steun onze actie WeGoSTEM

Voor onze actie WeGoSTEM zoeken we nog vrijwilligers. Doe mee via WeGoSTEM.be/meedoen

Commander les moteurs à courant continu d'un robot

Tout le monde rêve de construire leur propre robot. Avec le Dwengo, du Lego ™ et ce tutoriel, cela devient facile. Étape par étape, nous allons vous montrer comment construire un robot roulant autonome. La combinaison de ce tutoriel avec une explication de base sur quelques différents types de capteurs et de votre propre imagination, vous pouvez reconstruire votre robot dans un suiveur de ligne, un robot mangeant la lumière de ou même un SumoBot avancé.


Requirements

  1. Un Dwenguino
  2. Câble USB fourni
  3. Deux moteurs à courant continu par exemple le moteur Lego NXT
  4. Quelques pièces de base mécaniques pour construire un robot

Commander des moteurs à courant continu utilisant PWM

Tous les appareils qui fonctionnent sur courant continu ou DC nécessitent une tension d'entrée constante. Cela inclut plusieurs composants tels que des moteurs Lego et des LED. La tension sur ces composants est généralement spécifié dans une certaine gamme, mais peut souvent être réduite. Dans le cas d'une LED une tension plus faible résulte a une luminosité inférieure, tandis qu'un moteur tourne plus lentement.

Quand un signal Pulse Width Modulation (PWM) à très haute fréquence est généré, le moteur a l’expérience d’une tension constante. En changeant la largeur d'impulsion ou duty cycle du signal PWM, l'amplitude de la tension moyenne peut être contrôlée. Ce sera accélère ou ralentit le moteur. Le même concept peut être appliqué pour la luminosité des LED. Bien que pour être exact: une LED a une capacité inférieure et verra donc les impulsions individuelles, et donc allumer et éteindre à haute fréquence. Nos yeux sont trop lents pour voir ca, de sorte que nous on l’impression d’un changement progressif de la luminosité.

PWM control of a DC motor

Connexion d'un moteur à courant continu

Quand nous prenons un coup d'oeil au Dwenguino, nous pouvons voir un connecteur(bleu) pour relier deux moteurs:

dwenguino motor connector

Les schémas du Dwenguino montrent que les moteur sont reliés à l’entraînement de moteur. Ceci est un composant qui convertit le signal de PWM du microcontrôleur en signaux qui sont adaptés pour entraîner le moteur. Cela est nécessaire parce que les moteurs ont besoin d'un courant beaucoup plus élevé que ce que le microcontrôleur peut directement délivrer. Et souvent la tension du moteur doit être supérieur au + 5V qui alimente le microcontrôleur PIC. Dans le cas de la Dwenguino, l’entraînement de moteur est relié directement à la tension d'entrée du Dwenguino.

Un robot de conduisant un carré

Nous commençons par le chargement des bibliothèques. Outre les bibliothèques standard nous incluons la bibliothèque DwenguinoMotor qui est responsable de la commande de moteurs DC standard.

  1. #include <LiquidCrystal.h>
  2. #include <Wire.h>
  3. #include <Dwenguino.h>
  4. #include <DwenguinoMotor.h> // the motor library

Ensuite, nous créons deux objets appelés dcMotor1 et dcMotor2 de la classe DCMotor. Ces objets représentent les moteurs DC que nous voulons contrôler. Nous attachons les broches MOTOR_1_0 et MOTOR_1_1 à dcMotor1 et MOTOR_2_0 et MOTOR_2_1 à dcMotor2. Jetez un oeil à l'summarising Dwenguino tableau resumant Dwenguino pin layout pour voir à quelles broches numérique ils sont connectés.

  1. DCMotor dcMotor1(MOTOR_1_0, MOTOR_1_1);
  2. DCMotor dcMotor2(MOTOR_2_0, MOTOR_2_1);

La fonction setup est facile, nous avons seulement besoin d'initialiser la fonctionnalité Dwenguino standard:

  1. void setup() {
  2. initDwenguino();
  3. }

Maintenant, nous pouvons commencer à contrôler chaque objet du moteur en utilisant la fonction setSpeed. L'argument est une chiffre qui doit être compris entre -255 et 255. Bien que le signe détermine le sens de rotation (sens horaire ou anti-horaire), la valeur détermine la tension appliquée au moteur (et donc sa vitesse de rotation). Notez que la vitesse maximale dépend de la tension de la batterie / adaptateur appliquée au connecteur d'alimentation du Dwenguino et la puissance maximale du moteur. Dans le cas de la vidéo, nous avons utilisé la batterie de 9.6V et des moteurs de 6V. Par conséquent, nous ne fixons pas la vitesse de la 255, ce qui signifierait que les moteurs reçoivent 9.6V au lieu de la 6V maximale, mais nous appliquons 150 qui résulterait en une tension appliquée de 5.6V (9.6V * 150/255):

  1. void loop() {
  2. dcMotor1.setSpeed(150);
  3. dcMotor2.setSpeed(150);
  4. delay(2500);
  5. dcMotor1.setSpeed(-150);
  6. dcMotor2.setSpeed(150);
  7. delay(1000);
  8. }

Le code ci-dessus rend notre robot suivant un carré. Adapter la vitesse et les délais pour rendre votre robot suivant un carré! Le programme complet peut être trouvé dans le File > Examples > Dwenguino > SquareServo.

Construire votre robot

Alors que vous pouvez commencer à partir de notre kit de robot, il est beaucoup plus amusant de construire votre propre robot. Cela peut être fait rapidement et facilement avec par exemple les pièces de Lego ™ vous pouvez avoir à la maison. En dehors du Lego ™ Technic et Lego Mindstorms ™, ces éléments sont essentiels:

  • Deux moteurs DC: par example deux Power Functions XL-Motors
  • Un support de batterie avec une tension de sortie plus élevée que 7V (et inférieure à 15 V) que vous pouvez connecter au Dwengo

Si vous ne disposez pas de suffisamment de pièces de Lego, vous pouvez les commander séparément par exemple sur BrickLink, ou d'essayer de trouver une bonne affaire sur eBay.

Rendre votre robot intelligent

En ajoutant des capteurs , vous pouvez faire votre robot détecter son environnement. Essayez par exemple de faire un robot mangeant la lumière en utilisant deux phototransistors ou un coureur de labyrinthe avec les capteurs sonar. Profitez-en!