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

FlatFlap - Créer un mouvement de battement

Ce guide explique comment le FlatFlap peut contrôler son mouvement de battement, comment la fréquence et la polarité affectent son mouvement et comment générer ses signaux d'entraînement.

Comment ça marche ?

Pour faire bouger le FlatFlap, un courant électrique est appliqué à sa bobine, générant un champ magnétique. En inversant la polarité à une fréquence donnée, on crée un mouvement de va-et-vient répétitif qui fait osciller le volet.

La fréquence de battement peut être contrôlée entre 1 Hz et 25 Hz, ce qui signifie que FlatFlap peut battre entre 1 et 25 fois par seconde, selon le signal d'entrée. Il peut atteindre des fréquences plus élevées, mais l'aimant n'a généralement pas le temps de réagir.

Génération d'une onde carrée pour le battement

UN Un signal carré est nécessaire pour actionner le clapet FlatFlap. Un pilote en pont en H, comme notre DriveCell, est nécessaire pour alimenter l'actionneur et inverser sa polarité. Les signaux d'entrée du signal carré peuvent être générés à l'aide d'une simple commande digitalWrite() dans Arduino :

 #define FLAP_PIN1 2
 #define FLAP_PIN2 3

 void setup() {
 pinMode(FLAP_PIN1, OUTPUT);
 pinMode(FLAP_PIN2, OUTPUT);
 }

 void loop() {
 digitalWrite(FLAP_PIN1, HIGH);
 digitalWrite(FLAP_PIN2, LOW);
 delay(100); // Adjust delay for desired flapping speed

 digitalWrite(FLAP_PIN1, LOW);
 digitalWrite(FLAP_PIN2, HIGH);
 delay(100);
 }

Ce code simple crée une oscillation carrée, provoquant un battement continu de FlatFlap. Vous pouvez ajuster le temps de retard pour modifier la fréquence de battement.

Mouvement et fréquence de battement

La fréquence que vous sélectionnez dépendra des exigences de votre projet :

  • Basses fréquences (1–10 Hz) : mouvement lent et contrôlé adapté aux applications délicates
  • Fréquences moyennes (10–18 Hz) : vitesse de battement modérée pour des effets de mouvement naturels
  • Hautes fréquences (18–25 Hz) : Oscillations rapides pour vibration ou actionnement rapide

En ajustant le temps de retard dans le code Arduino, vous pouvez affiner la fréquence pour qu'elle corresponde aux besoins de votre projet.

Facteurs affectant le mouvement de FlatFlap

Plusieurs facteurs influencent l’efficacité du mouvement de battement :

  1. Tension d'alimentation - Une tension plus élevée augmente la force du champ magnétique, ce qui entraîne des volets plus forts.
  2. Flux de courant - Une source de courant constante assure un mouvement stable
  3. Charge mécanique - Bien que FlatFlap ne puisse soulever qu'environ 2 g, tout poids ajouté au volet affecte son temps de réponse, sa fréquence maximale atteignable et sa fréquence de résonance.

Optimisation du battement PWM

L'exemple de code ci-dessus génère une onde carrée basique qui, comme vous l'avez peut-être observé, commande le volet de manière brutale, selon une approche tout ou rien, ce qui peut être indésirable à basses fréquences. Pour lisser ce phénomène, nous devons utiliser la modulation de largeur d'impulsion (MLI) sur les deux sorties. Cette méthode modifie progressivement l'intensité du champ magnétique, réduisant ainsi les contraintes mécaniques sur l'actionneur FlatFlap.

Cette fonction est gérée automatiquement dans notre bibliothèque DriveCell :

 # include <DriveCell.h>

 # define IN1_pin1 2 
# définir IN1_pin2 3
 # définir IN2_pin1 5
 # définir IN2_pin2 6

 DriveCell FlatFlap1 ( IN1_pin1 , IN1_pin2 ) ; 
DriveCell FlatFlap2 ( IN2_pin1 , IN2_pin2 ) ;

 uint16_t flap_counter = 0 ;

 configuration vide ( ) {
 FlatFlap1 .Init ( ) ; 
FlatFlap2 .Init ( ) ;

 FlatFlap1 . Tone ( ) ;
 FlatFlap2 . Tone ( ) ;
 }

 boucle vide ( ) { 
retard ( 1 ) ;
 compteur_volet ++ ;
 si ( compteur_flap < 2000U ) {
 FlatFlap1 . Run ( 0 , 100 , 100 ) ; // Mode onde carrée 
FlatFlap2 . Run ( 0 , 100 , 100 ) ; // Mode onde carrée
 }
 sinon si ( flap_counter < 8000U ) { 
FlatFlap1 . Run ( 1 , 100 , 1000 ) ; // Mode d'onde PWM lisse
 FlatFlap2 . Run ( 1 , 100 , 1000 ) ; // Mode d'onde PWM lisse
 } autre { 
compteur_flap = 0U ;
 FlatFlap1 . Drive ( 0 , 100 ) ; // Volet Sud à 100 % de puissance
 FlatFlap2 . Drive ( 1 , 100 ) ; // Volet Nord à 100 % de puissance 
retard ( 500 ) ;
 FlatFlap1 . Drive ( 1 , 100 ) ; // Volet Nord à 100 % de puissance
 FlatFlap2 . Drive ( 1 , 100 ) ; // Volet Nord à 100 % de puissance 
retard ( 500 ) ;
 FlatFlap1 . Drive ( 1 , 100 ) ; // Volet Nord à 100 % de puissance
 FlatFlap2 . Drive ( 0 , 100 ) ; // Volet Sud à 100 % de puissance 
retard ( 500 ) ;
 FlatFlap1 . Drive ( 1 , 50 ) ; // Volet Nord à 50 % de puissance
 FlatFlap2 . Drive ( 1 , 75 ) ; // Volet Nord à 75 % de puissance 
retard ( 500 ) ;
 FlatFlap1 . Drive ( 0 , 25 ) ; // Volet Sud à 25 % de puissance
 FlatFlap2 . Drive ( 0 , 50 ) ; // Volet Sud à 50 % de puissance
 }
 }

Comprendre les fonctions :

  • Init() → Initialise DriveCell et configure les broches d'entrée
  • Drive(direction, power) → Actionneur de commande :
    • direction → 1 (nord) / 0 (sud)
    • power → Intensité du champ magnétique (0 à 100 %)
  • Run(smooth, power, speed_ms) → Osciller le FlatFlap soit dans une onde carrée, soit dans une onde PWM plus douce.
    • smooth → 1 (onde pwm) / 0 (onde carrée)
    • power → Intensité du champ magnétique (0 à 100 %)
    • power → Vitesse de retournement en millisecondes

⚠ Remarque : la fonction Run() & Drive() utilise un Minuterie PWM haute vitesse, la rendant compatible uniquement avec les appareils basés sur CodeCell et ESP32.

Conclusion

Grâce à ces techniques, vous pouvez intégrer FlatFlap à la robotique, à l'haptique et à l'art ! Consultez le dépôt GitHub DriveCell 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.