Menu
Microbots
0
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • Boutique
    • Modules Maker
    • Packs de création
    • Outils et engrenages
    • Robots et écrans
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • français
  • Votre panier est vide
Microbots
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • Boutique
    • Modules Maker
    • Packs de création
    • Outils et engrenages
    • Robots et écrans
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • Langue

  • 0 0

CodeCell : Contrôle d'un servomoteur

Dans ce guide, nous explorerons comment utiliser le CodeCell pour contrôler un servomoteur. Nous verrons également comment contrôler la position angulaire du servomoteur grâce à la fonction de positionnement angulaire du CodeCell, particulièrement utile pour les applications robotiques comme les cardans ou le contrôle de la stabilité angulaire.

Qu'est-ce qu'un servomoteur ?

Un servomoteur est un actionneur rotatif permettant un contrôle précis de la position angulaire. Il est composé d'un moteur couplé à des engrenages et à un capteur de position. Il est couramment utilisé dans les applications de robotique, d'automatisation et de stabilisation.

Comment lire l'angle ?

CodeCell est équipé d'un capteur de mouvement BNO085 qui fusionne les données d'un accéléromètre, d'un gyroscope et d'un magnétomètre pour calculer les vecteurs de rotation. Ces vecteurs sont traités par CodeCell pour obtenir les angles de roulis, de tangage et de lacet en fonction de l'orientation de l'appareil dans l'espace.

Dans cet exemple, notre CodeCell surveille en continu l'angle d'inclinaison pour contrôler la position d'un servomoteur, lui permettant ainsi de réagir dynamiquement aux changements d'orientation. La valeur d'inclinaison permet de définir la position du servomoteur, lui permettant ainsi de pivoter en fonction de l'inclinaison de l'appareil.

Exemple de code

Vous trouverez ci-dessous un exemple de code pour vous aider à démarrer. Assurez-vous que votre CodeCell est correctement connecté via USB-C. Vérifiez également que votre servomoteur peut être alimenté via USB-C (CodeCell peut fournir jusqu'à 500 mA via USB-C et jusqu'à 1 500 mA avec une batterie). Ajustez les limites angulaires du code en conséquence.

Pour cet exemple, vous devez installer la bibliothèque « ESP32Servo » pour contrôler le servomoteur avec votre CodeCell. Suivez les commentaires du code pour comprendre chaque étape.

 #include <codecell.h>
 #include <ESP32Servo.h>

 CodeCell myCodeCell;
 Servo myservo;

 float Roll = 0.0;
 float Pitch = 0.0;
 float Yaw = 0.0;
 int servo_angle = 0;

 void setup() {
 Serial.begin(115200); // Set Serial baud rate to 115200. Enable Tools/USB_CDC_On_Boot if using Serial
 myCodeCell.Init(MOTION_ROTATION); // Initializes rotation sensing
 myservo.attach(1); // Attaches the servo on pin 1 to the servo object
 }

 void loop() {
 if (myCodeCell.Run(10)) {
 // Read rotation angles from the BNO085 sensor
 myCodeCell.Motion_RotationRead(Roll, Pitch, Yaw);

 // Convert the pitch angle to a servo angle
 servo_angle = abs((int)Pitch);
 servo_angle = (180 - servo_angle);

 // Limit the servo angle to the range 0-60 degrees
 if (servo_angle > 60) { 
servo_angle = 60;
 } sinon si (servo_angle < 0) {
 servo_angle = 0;
 }
 autre{
 //Sauter
 }

 Serial.println(servo_angle); // Imprimer l'angle du servo pour le débogage
 myservo.write(servo_angle); // Définir la position du servo
 }
 }

Conseils de personnalisation

Cette fonctionnalité de base peut être étendue pour créer des interactions plus complexes, telles que :

  • Contrôle de plusieurs servos : étendez le code pour contrôler plusieurs servos simultanément.
  • Ajuster la plage : Modifiez la plage de mouvement du servomoteur pour l'adapter à votre servomoteur en ajustant les limites définies pour servo_angle dans le code. Dans cet exemple, nous utilisons un micro-servomoteur avec une plage de 60 degrés. Certains servomoteurs ne sont pas linéaires ; il peut donc être nécessaire de compenser les erreurs angulaires et mécaniques.
  • Combinez avec d'autres capteurs : utilisez des capteurs supplémentaires, comme les capteurs de proximité et de lumière de CodeCell, pour créer des projets interactifs et réactifs.
  • Utilisation pour la stabilisation : implémentez cette configuration pour stabiliser les plates-formes telles que les cardans pour la stabilisation de la caméra et du capteur.

    Conclusion

    Ce projet montre comment contrôler un servomoteur avec CodeCell grâce à ses capacités de détection de mouvement. Expérimentez avec le code, créez vos propres projets et consultez le dépôt GitHub de CodeCell pour plus d'exemples de code et de documentation technique !

    • Partager:

    Partage

    Github

    • À propos
    • Logiciel
    • Éducation
    • 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.