Menu
Microbots
0
  • Apprendre
  • Boutique
    • Modules et technologies
    • Maker-Packs
    • Outils et engrenages
    • Robots & Displays
    • Tous les produits
  • Communauté
    • Education
    • Software
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • français
  • Votre panier est vide
Microbots
  • Apprendre
  • Boutique
    • Modules et technologies
    • Maker-Packs
    • Outils et engrenages
    • Robots & Displays
    • Tous les produits
  • Communauté
    • Education
    • Software
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • Langue

  • 0 0

Les bases de DriveCell : vos premiers pas

DriveCell est un appareil petit mais puissant qui vous permet de contrôler facilement les moteurs, les actionneurs et les lumières LED haute puissance pour vos projets de bricolage. DriveCell facilite le contrôle de ces composants, même si vous débutez en programmation ou en électronique.

Dans ce tutoriel, nous expliquerons :

  • Qu'est-ce qu'un DriveCell et comment fonctionne-t-il ?
  • Démarrer avec sa bibliothèque de logiciels Arduino
  • Contrôlez deux moteurs à courant continu et entraînez-les à des vitesses différentes
  • Fabriquer le DriveCell plus interactif avec les capteurs CodeCell

Qu'est-ce que DriveCell ?
Imaginez que vous vouliez fabriquer un petit robot et contrôler la vitesse et la direction de son moteur. Cela peut être complexe pour les débutants et nécessite généralement des modules volumineux. DriveCell simplifie ce processus car :

  • C'est un pilote super petit (à peu près de la taille du bout de votre doigt)
  • Peut être facilement soudé avec des broches en forme de C
  • Fonctionne avec les microcontrôleurs Arduino et dispose de fonctions faciles à utiliser qui vous permettent de contrôler directement les moteurs, les actionneurs et les LED sans plonger dans une programmation compliquée.

Comment fonctionne DriveCell ?
DriveCell utilise une puce de pont en H DRV8837 intégrée pour contrôler le flux de courant à travers les broches de sortie, contrôlé par l'état des broches d'entrée :

  • Courant direct : IN1 = VCC/PWM, IN2 = GND
  • Courant inverse : IN1 = GND, IN2 = VCC/PWM
  • Désactivé: IN1 = MASSE, IN2 = MASSE

La puce DRV8837 offre une protection contre les surintensités, un verrouillage en cas de sous-tension et des fonctions d'arrêt thermique, garantissant un fonctionnement sûr.

    Premiers pas avec DriveCell
    Avant de pouvoir commencer à utiliser DriveCell , vous devez le configurer et le connecter à votre projet. Voici un guide simple pour vous aider à démarrer :

    • Connexion de DriveCell :
    Tout d'abord, soudez les broches de sortie du DriveCell à votre moteur ou actionneur, et les broches d'entrée et d'alimentation à votre microcontrôleur. Considérez ces broches comme la connexion des pièces d'un puzzle, permettant au DriveCell de faire passer le courant entre les broches de sortie. Ces broches de sortie sont contrôlées par l'état de la broche d'entrée ~ ainsi, tirer IN1 à l'état haut, mettra OUT1 à l'état haut, et tirer IN2 à l'état haut, mettra OUT2 à l'état haut. IN1 et IN2 sont généralement réglés sur des polarités opposées pour permettre le passage du courant. Ces détails techniques peuvent tous être gérés par la bibliothèque logicielle DriveCell.

    • Codage DriveCell :
    Le câblage d'une des broches d'entrée sur VCC allumera instantanément le DriveCell . Mais pour le rendre plus intelligent, nous avons également développé une bibliothèque de logiciels Arduino pour vous faciliter la tâche. Vous devrez écrire un code de base pour indiquer à DriveCell ce qu'il doit faire. Ne vous inquiétez pas, c'est assez simple ! Commencez par télécharger la bibliothèque « DriveCell » à partir du gestionnaire de bibliothèques de l'Arduino. Une fois celle-ci installée, nous sommes prêts à contrôler votre appareil. Il existe plusieurs exemples qui peuvent vous aider à démarrer, mais nous allons maintenant décomposer et comprendre toutes les fonctions.
    Avant de commencer, assurez-vous de connecter le DriveCell à votre microcontrôleur. Nous vous recommandons d'utiliser un CodeCell , compatible broche à broche, prend en charge toutes les fonctions de la bibliothèque et peut ajouter un contrôle sans fil + une détection interactive.


    1. Init()

    Nous avons d’abord besoin d’un code de configuration de base pour vous permettre de démarrer :

     #include <DriveCell.h> // This line includes the DriveCell library
    
     DriveCell myDriveCell(IN1, IN2); // Replace IN1 and IN2 with your specific pins
    
     void setup() {
     myDriveCell.Init(); // Initializes the DriveCell
     }
    

    Ce code indique au DriveCell de démarrer et de se préparer à contrôler votre moteur ou votre actionneur. La fonction Init s'assure que tous les périphériques nécessaires sont configurés.

    2. Impulsion (bool direction, uint8_t ms_duration)

    Cette commande envoie une courte rafale de puissance dans une polarité spécifiée, pour dynamiser rapidement l'actionneur et le réteindre.

     myDriveCell.Pulse(true, 10); // Short burst for 10 milliseconds
    

    3. Buzz (uint16_t us_buzz)
    Cela fait vibrer l'actionneur comme un buzzer. C'est idéal pour créer des sons de retour.

     myDriveCell.Buzz(100); // Creates a 100us buzzing sound

    4. Tonalité()
    Cette fonction émet une tonalité par défaut en faisant vibrer l'actionneur à différentes fréquences enregistrées.

     myDriveCell.Tone(); // Plays varying tones
    

    5. Basculer(uint8_t power_percent)
    Cette fonction change simplement le sens de rotation à 100 % de puissance, ce qui peut être utile pour inverser le sens de rotation d'un moteur à balais ou créer de simples mouvements de battement.

     myDriveCell.Toggle(); // Switches direction

    En utilisant le CodeCell ou tout autre microcontrôleur ESP32, vous pouvez également ajuster le rapport cyclique « power_percent ». Pour les actionneurs magnétiques, le « power_percent » contrôle la force magnétique, tandis que pour les moteurs à balais, il ajuste la vitesse.

    6. Exécuter(bool smooth, uint8_t power_percent, uint16_t flip_speed_ms)

    En utilisant le CodeCell ou tout autre microcontrôleur ESP32, cette fonction vous permet d'inverser la polarité d'un actionneur ou d'inverser un moteur toutes les « flip_speed_ms » au cycle de service « power_percent ». Le réglage de « smooth » sur 1 adoucit le mouvement, ce qui est idéal pour piloter le FlatFlap ou le CoilPad avec des mouvements lents (moins de 2 Hz).

     myDriveCell.Run(true, 50, 1000); // Smooth drive at 50% power every 1000 ms

    Pour les autres appareils Arduino, cette commande permet au moteur/actionneur d'inverser sa direction (vers l'avant et vers l'arrière) à pleine vitesse. Par exemple :

     myDriveCell.Run(500); // Motor changes direction every 500 milliseconds
    

    7. Drive(bool direction, uint8_t power_percent)
    En utilisant le CodeCell ou tout autre microcontrôleur ESP32, cette fonction vous permet de contrôler la vitesse et la direction de votre moteur. Vous pouvez faire avancer ou reculer le moteur et ajuster sa vitesse.

     myDriveCell.Drive(true, 75); // Moves forward at 75% power


    Exemples :

    En utilisant l'une de ces fonctions dans une boucle, vous pouvez créer la séquence souhaitée pour votre moteur, votre actionneur ou vos LED haute puissance. Voici un exemple où nous initialisons deux moteurs à courant continu et les pilotons à des vitesses différentes :

     #include <DriveCell.h>
    
     #define IN1_pin1 2
     #define IN1_pin2 3
     #define IN2_pin1 5
     #define IN2_pin2 6
    
     DriveCell Motor1(IN1_pin1, IN1_pin2);
     DriveCell Motor2(IN2_pin1, IN2_pin2);
    
     uint8_t mode = 0;
     uint8_t speed_percentage = 0;
    
     void setup() {
     Motor1.Init();
     Motor2.Init(); 
    speed_percentage = 80; /* Régler le moteur à 80 % de puissance */
     }
    
     boucle vide() {
     délai(3000);
     mode++;
     commutateur (mode) {
     cas 1:
     /* Avancer */
     Motor1.Drive(1, pourcentage_vitesse);
     Motor2.Drive(1, pourcentage_vitesse);
     casser;
     cas 2:
     /* Déplacer vers l'arrière */
     Motor1.Drive(0, pourcentage_vitesse);
     Motor2.Drive(0, pourcentage_vitesse);
     casser;
     cas 3:
     /* Tourner à gauche */
     Motor1.Drive(1, pourcentage_vitesse);
     Motor2.Drive(0, pourcentage_vitesse);
     casser;
     cas 4:
     /* Tournez à droite */
     Motor1.Drive(0, pourcentage_vitesse);
     Motor2.Drive(1, pourcentage_vitesse);
     casser;
     cas 5:
     /* Éteignez les deux moteurs */
     Moteur1.Drive(1, 0);
     Moteur2.Drive(1, 0);
     si (pourcentage_vitesse < 95) {
     speed_percentage += 5; /* Incrémenter la vitesse */
     } autre {
     speed_percentage = 50; /* Réinitialiser à 50 % de puissance */
     }
     mode = 0;
     casser;
     }
     }
    

    Dans l'exemple suivant, nous utilisons le capteur de proximité du CodeCell pour activer les moteurs. Ce capteur agira comme un interrupteur gestuel et s'activera lorsqu'une main se trouvera à moins de 5 cm.

     #include <CodeCell.h>
     #include <DriveCell.h>
    
     #define IN1_pin1 2
     #define IN1_pin2 3
     #define IN2_pin1 5
     #define IN2_pin2 6
    
     CodeCell myCodeCell;
     DriveCell Motor1(IN1_pin1, IN1_pin2);
     DriveCell Motor2(IN2_pin1, IN2_pin2);
    
     uint8_t speed_percentage = 0;
     bool on_flag = 0;
    
     void setup() {
     Serial.begin(115200); /* Set Serial baud rate to 115200. Ensure Tools/USB_CDC_On_Boot is enabled if using Serial. */
    
     myCodeCell.Init(LIGHT); /*Initializes Light Sensing*/
     Motor1.Init();
     Motor2.Init();
     speed_percentage = 100;
     }
    
     void loop() {
     if (myCodeCell.Run()) {
     /*Runs every 100ms - Put your code here*/
     if (myCodeCell.Light_ProximityRead() > 3000) { 
    /*Si un tapotement est détecté, la LED s'allume en jaune pendant 1 seconde*/
     monCodeCell.LED(0XA0, 0x60, 0x00U);
     Moteur1.Drive(0, 0);
     Moteur2.Drive(0, 0);
     délai(1000);
     sur_drapeau = !sur_drapeau;
     }
     si (sur_drapeau) {
     /*Avancer*/
     Motor1.Drive(1, pourcentage_vitesse);
     Motor2.Drive(1, pourcentage_vitesse);
     } autre {
     Moteur1.Drive(0, 0);
     Moteur2.Drive(0, 0);
     }
     }
     }
    

    Si vous avez d'autres questions sur le DriveCell, n'hésitez pas à nous envoyer un e-mail et nous serons heureux de vous aider !

    • Partager:

    Partage

    Github

    • À propos
    • Software
    • Education
    • Contact
    • FAQ
    • Termes
    • Politique de remboursement
    • politique de confidentialité

    Soyez le premier informé des nouveaux projets et bénéficiez d'offres intéressantes !

    © 2025 Microbots.