Menu
Microbots
0
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • Boutique
    • ProtoBot
    • Wavelit Display
    • Modules Maker
    • Outils et engrenages
    • Robots et écrans
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • Connexion
  • français
  • Votre panier est vide
Microbots
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • Boutique
    • ProtoBot
    • Wavelit Display
    • Modules Maker
    • 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 !

© 2026 Microbots.

★ Reviews

Let customers speak for us

83 reviews
Write a review
87%
(72)
5%
(4)
2%
(2)
2%
(2)
4%
(3)
77
21
G
Experiment in Progress Mug
Gerald Kendrick

I am enjoying my Experiment in Progress coffee mug. It fits in well in the lab.

K
12-in-1 Screwdriver (Pen-Size)
Klaas

Very useful fun little screwdriver for the all tiny stuff

f
ProtoBot
frederic marty

I don't have much time right now to test the micro bot, but it looks good.

f
MotorCell
frederic marty

I don't have much time right now to test it but it looks good.

M
ProtoBot
Mehmed Muslija

ProtoBot has met all my expectations.
Watching one of the videos on YouTube, I thought it would be interesting and educational to make a small project for my 8 year old cousin. ProtoBot has provided a wide range of experiences and encouraged my cousin to take on new projects.

User picture
123