Dans ce guide, nous découvrirons comment utiliser le capteur de mouvement intégré du CodeCell pour détecter les appuis. Ce projet montre comment utiliser la détection d'appuis pour des commandes interactives, idéales pour créer des actions réactives d'un simple appui sur l'appareil.
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 suivre des modèles de mouvement spécifiques et déterminer si un tapotement a été effectué, ce qui le rend idéal pour les commandes interactives telles que le basculement des lumières, le déclenchement d'effets sonores ou d'autres actions basées sur un simple geste de tapotement.
Dans le premier exemple, nous avons configuré notre CodeCell pour qu'il détecte en permanence un appui. Lorsqu'un appui est détecté, la LED intégrée s'allume en jaune pendant une seconde. Vous pouvez étendre cette fonctionnalité de base pour créer des interactions plus complexes, comme le contrôle de plusieurs LED, moteurs ou autres appareils connectés en fonction des appuis.
Assurez-vous que votre CodeCell est correctement connecté via USB-C et suivez les commentaires dans le code pour comprendre chaque étape.
#include <CodeCell.h>
CodeCell myCodeCell;
void setup() {
Serial.begin(115200); // Set Serial baud rate to 115200. Ensure Tools/USB_CDC_On_Boot is enabled if using Serial
myCodeCell.Init(MOTION_TAP_DETECTOR); // Initializes tap detection sensing
}
void loop() {
if (myCodeCell.Run(10)) {
// Runs every 100ms to check for taps
if (myCodeCell.Motion_TapRead()) {
// Si un appui est détecté, la LED s'allume en jaune pendant 1 seconde
myCodeCell.LED(0xA0, 0x60, 0x00); // Définir la LED sur jaune
delay(1000); // Garder la LED allumée pendant 1 seconde
}
}
}
Dans l'exemple suivant, nous utilisons une CoilCell pour inverser sa polarité et actionner un point de bascule. Cela étend l'interactivité en utilisant la détection de contact pour contrôler des appareils externes, créant ainsi une réponse plus dynamique.
#include <CoilCell.h>
#include <CodeCell.h>
#define IN1_pin1 5
#define IN1_pin2 6
CoilCell myCoilCell(IN1_pin1, IN1_pin2);
CodeCell myCodeCell;
void setup() {
Serial.begin(115200); // Set Serial baud rate to 115200. Ensure Tools/USB_CDC_On_Boot is enabled if using Serial.
myCodeCell.Init(MOTION_TAP_DETECTOR); // Initializes tap detection sensing.
myCoilCell.Init(); // Initializes the CoilCell.
myCoilCell.Tone(); // Plays a tone to confirm initialization.
}
void loop() {
if (myCodeCell.Run(10)) {
// S'exécute toutes les 100 ms pour vérifier les robinets.
si (myCodeCell.Motion_TapRead()) {
// Si un tapotement est détecté, faites briller la LED en jaune et inversez la polarité de la CoilCell.
myCodeCell.LED(0xA0, 0x60, 0x00); // Définir la LED sur jaune.
myCoilCell.Toggle(100); // Basculer la polarité de la CoilCell.
delay(1000); // Délai pour maintenir la LED allumée et la polarité inversée pendant 1 seconde.
}
}
}
Expérimentez avec le code, personnalisez les réponses et consultez le référentiel CodeCell GitHub pour plus d'exemples de code et de documentation technique !
Soyez le premier informé des nouveaux projets et bénéficiez d'offres intéressantes !
© 2025 Microbots.