Note

Bonjour, bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez au cœur de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques grâce à l’aide de notre communauté et de notre équipe.

  • Apprendre & Partager : Échangez des conseils et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et à des aperçus privilégiés.

  • Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.

  • Promotions festives et concours : Participez à des concours et des promotions durant les fêtes.

👉 Prêt à explorer et à créer avec nous ? Cliquez sur [ici] et rejoignez-nous dès aujourd’hui !

Leçon 4 : Maîtriser le moteur TT

Dans les leçons précédentes, nous avons exploré les rovers martiens et leurs systèmes de suspension. Dans ce cours passionnant, nous allons explorer le fonctionnement des moteurs, un composant clé qui entraîne les rovers martiens.

Note

Si vous suivez ce cours après avoir entièrement assemblé le GalaxyRVR, vous devez déplacer cet interrupteur vers la droite avant de téléverser le code.

../_images/camera_upload.png

Objectifs du cours

  • Comprendre les principes de base des moteurs et les caractéristiques du moteur TT.

  • Apprendre à contrôler la direction et la vitesse du moteur TT.

  • Comprendre comment le GalaxyRVR Shield contrôle six moteurs.

Matériel du cours

  • Carte SunFounder R3

  • Moteur TT

  • GalaxyRVR Shield

  • Batterie

  • Câble USB

  • Arduino IDE

  • Ordinateur

Étapes du cours

Étape 1 : Qu’est-ce qu’un moteur ?

Les moteurs font partie intégrante de notre vie quotidienne. Des ventilateurs électriques aux mixeurs en passant par les voitures électriques, les moteurs font bouger les choses !

../_images/motor_application.jpg

Un moteur convertit l’énergie électrique en énergie mécanique. Le principe derrière un moteur est l’induction électromagnétique : lorsque l’électricité alimente un moteur, elle génère un champ magnétique qui interagit avec d’autres aimants à l’intérieur du moteur, le faisant tourner.

../_images/motor_rotate.gif

Le type de moteur utilisé dans notre GalaxyRVR est un moteur TT à engrenages. Il combine un moteur standard avec une série d’engrenages dans une coque en plastique, ce qui augmente le couple pour déplacer des charges plus lourdes.

../_images/tt_motor_xh.jpg

Étape 2 : Explorer le fonctionnement du moteur

Si vous connectez un moteur directement à une batterie, il tourne. Inversez les connexions et il tourne dans la direction opposée ! Mais les broches de signal d’Arduino ne produisent qu’environ 20mA, ce qui est insuffisant pour entraîner un moteur. C’est là qu’intervient un driver de moteur - il prend le signal de commande à faible courant d’Arduino, l’amplifie et l’envoie au moteur.

../_images/motor_uno2.png

Étape 3 : Comment le moteur est contrôlé par le driver

Le GalaxyRVR Shield sert de centre de contrôle. Il comporte six ports moteur répartis en deux groupes : trois ports « Left » contrôlés par une puce (broches 2 et 3), et trois ports « Right » contrôlés par une autre (broches 4 et 5).

../_images/motor_shield.png

1. Connexion du circuit : Insérez le Shield dans la carte R3, connectez un moteur et branchez la batterie.

2. Écriture du code :

void setup() {
    pinMode(2, OUTPUT);
    pinMode(3, OUTPUT);
}
void loop() {
    digitalWrite(2, LOW);
    digitalWrite(3, HIGH);
}

3. Logique de pilotage : La table de vérité du driver :

INA

INB

Moteur

L

L

Veille

L

H

Horaire

H

L

Antihoraire

H

H

Frein

Étape 4 : Contrôle de la vitesse du moteur

La PWM (Modulation de Largeur d’Impulsion) permet de simuler une tension variable en commutant rapidement entre HIGH et LOW. Comme les broches 2-5 n’ont pas de PWM matérielle, nous utilisons la bibliothèque SoftPWM.

  1. Installez softpwm depuis le LIBRARY MANAGER.

#include <SoftPWM.h>
const int in1 = 2;
const int in2 = 3;
void setup() { SoftPWMBegin(); }
void loop() {
    SoftPWMSet(in1, 0);
    SoftPWMSet(in2, 255);
}

La vitesse est une valeur entre 0 (arrêt) et 255 (pleine vitesse). Vous pouvez utiliser une boucle for pour augmenter progressivement la vitesse :

for (int i = 0; i <= 255; i++) {
    SoftPWMSet(in2, i);
    delay(100);
}

Étape 5 : Réfléchir et s’améliorer

Vous savez maintenant contrôler la direction et la vitesse des moteurs. Mettez-vous au défi : comment modifier la boucle for pour diminuer progressivement la vitesse ? Comment contrôler le moteur en accélération/décélération en sens antihoraire ?