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

CodeCell: Sensing Tap Detection

CodeCell : détection de tapotement

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.

Comment un tapotement est-il détecté ?

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.

Exemple 1 : Détection de tapotement de base

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
 }
 }
 }

Exemple 2 : Détection de tapotement + CoilCell

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.
 }
 }
 }

Conseils de personnalisation

  • Changer les couleurs des LED : expérimentez différentes couleurs de LED et utilisez les robinets pour augmenter la luminosité des LED.
  • Développer les actions : utilisez la détection de tapotement pour déclencher d’autres appareils, tels que des buzzers, des moteurs ou des écrans, afin d’ajouter davantage de couches d’interactivité.
  • Combinez avec d'autres capteurs : intégrez la détection de tapotement avec d'autres capteurs, comme la proximité ou la lumière, pour créer des projets réactifs multi-capteurs.

Conclusion

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 !

Voir l'article entier

CodeCell: Proximity Sensing

CodeCell : détection de proximité

Dans ce guide, nous explorerons comment utiliser le capteur de proximité intégré du CodeCell pour détecter des objets. et aussi des gestes de profondeur.

Comment détecte-t-il la proximité ?

Dans son boîtier compact, CodeCell intègre un VCNL4040 qui utilise la lumière infrarouge pour détecter les objets à sa portée. Il mesure la réflexion de la lumière infrarouge émise pour estimer la proximité d'un objet, vous permettant ainsi de créer des comportements réactifs basés sur la proximité. Cette fonctionnalité est particulièrement utile pour la création d'éclairages interactifs, de robots, d'interrupteurs sans contact ou d'autres actions basées sur la proximité.

Le capteur embarqué peut mesurer la proximité jusqu'à 20 cm de distance et utilise la communication I2C qui est automatiquement gérée par notre bibliothèque CodeCell.

Exemple 1 - Seuil de proximité

Dans cet exemple, le CodeCell surveille en permanence les données de proximité et allume une LED rouge lorsqu'un objet est détecté dans son seuil de proximité.

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(LIGHT); // Initializes light sensing, including proximity
 }

 void loop() {
 if (myCodeCell.Run(10)) {
 // Runs every 100ms to check proximity
 uint16_t proximity = myCodeCell.Light_ProximityRead();

 // Check if an object is within range
 if (proximity > 100) {
 myCodeCell.LED(0xFF, 0, 0); // Set LED to Red when proximity is detected
 delay(1000); // Keep the LED on for 1 second
 } else {
 // No action if the object is out of range
 }
 }
 }

Conseils de personnalisation

  • Ajuster le seuil de proximité : modifiez la valeur du seuil ( 100 dans l'exemple) pour ajuster la sensibilité de la détection de proximité en fonction de votre application.
  • Modifier les couleurs des LED : expérimentez différentes couleurs de LED à l’aide de la fonction myCodeCell.LED() pour créer des réponses multicolores à la proximité.
  • Ajouter plus : envisagez d'ajouter un buzzer ou un moteur pour fournir un retour audio ou de mouvement lorsque des objets sont détectés à portée.
  • Utilisez la proximité avec la détection de lumière : combinez la proximité et la détection de lumière pour créer des comportements plus complexes, tels que le réglage des lumières en fonction de la distance et des niveaux de lumière ambiante.

Exemple 2 - Gestes de profondeur

En rapprochant ou en éloignant votre main ou d'autres objets du capteur, vous pouvez créer des entrées dynamiques qui déclenchent diverses actions. Dans cet exemple, les données de proximité servent à contrôler l'angle de deux FlatFlaps , connectés à deux DriveCell (pilotes en pont en H).

Le rapport cyclique de modulation de largeur d'impulsion (MLI) de deux FlatFlaps est donc ajusté en fonction de la proximité de l'objet. À mesure que l'objet se rapproche ou s'éloigne, l'angle des FlatFlaps change, démontrant une méthode simple et efficace de contrôle gestuel de la profondeur. Suivez les commentaires du code pour comprendre chaque étape :

 #include <CodeCell.h>
 #include <DriveCell.h>

 #define IN1_pin1 2
 #define IN1_pin2 3
 #define IN2_pin1 5
 #define IN2_pin2 6

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

 CodeCell myCodeCell;

 void setup() { 
Serial.begin(115200); // Définissez le débit en bauds série sur 115200. Assurez-vous que Tools/USB_CDC_On_Boot est activé si vous utilisez Serial.

 myCodeCell.Init(LIGHT); // Initialise la détection de lumière

 FlatFlap1.Init();
 FlatFlap2.Init();

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

 boucle vide() {
 si (myCodeCell.Run(10)) {
 // S'exécute toutes les 100 ms
 uint16_t proximity = myCodeCell.Light_ProximityRead();
 Serial.println(proximité);
 si (proximité < 100) {
 // Si la proximité n'est pas détectée, le FlatFlaps se rabat
 FlatFlap1.Run(1, 100, 400);
 FlatFlap2.Run(1, 100, 400);
 } autre {
 // Ajuster l'angle du FlatFlap en fonction de la proximité
 proximité = proximité - 100 ;
 proximité = proximité / 10 ;
 si (proximité > 100) {
 proximité = 100;
 }
 FlatFlap1.Drive(0, proximité);
 FlatFlap2.Drive(0, proximité);
 }
 }
 }

Conseils de personnalisation

  • Ajuster les seuils : modifiez les seuils de proximité et les facteurs d’échelle dans le code pour affiner la réactivité des FlatFlaps en fonction de vos préférences.
  • Développez les fonctionnalités : envisagez d'ajouter davantage de fonctions de détection CodeCell , comme la détection de mouvement ou la détection de lumière pour ajouter davantage de fonctionnalités à votre projet !

Conclusion

Ce projet présente les bases de la détection de proximité avec CodeCell , ouvrant ainsi de nombreuses possibilités interactives. Expérimentez le code, ajustez les paramètres et consultez le dépôt GitHub de CodeCell pour plus d'exemples de code et de documentation technique !

Voir l'article entier

CodeCell: Brightness Detection

CodeCell : détection de luminosité

Dans ce guide, nous explorerons comment utiliser le CodeCell pour détecter la lumière blanche et ajuster automatiquement la luminosité d'une LED ou créer d'autres effets d'éclairage réactifs pour s'adapter aux conditions d'éclairage.

Comment détecte-t-il la lumière ?

Dans son boîtier compact, CodeCell intègre un VCNL4040 capable de mesurer précisément les niveaux de lumière ambiante grâce à sa photodiode intégrée. Cela lui permet de détecter les variations de luminosité, permettant ainsi des ajustements automatiques pour les systèmes d'éclairage économes en énergie ou des interactions sensibles à l'environnement.

Le capteur embarqué offre une détection de lumière haute résolution sur une large plage dynamique et communique via I2C, qui est géré de manière transparente par notre bibliothèque CodeCell.

Détection de lumière ambiante vs. détection de lumière blanche

Le capteur VCNL4040 du CodeCell est capable de détecter à la fois la lumière ambiante et la lumière blanche, chacune servant à des fins distinctes :

  • Détection de la lumière ambiante : ce mode mesure l'intensité lumineuse globale de toutes les sources de lumière ambiante, y compris la lumière naturelle et artificielle. Il est idéal pour les applications nécessitant une compréhension globale des niveaux de luminosité d'un espace, comme le réglage de la luminosité d'un écran ou l'activation du mode nuit sur les appareils.
  • Détection de lumière blanche : ce mode mesure spécifiquement l'intensité de la lumière blanche, ce qui est particulièrement utile pour évaluer des sources lumineuses similaires à la lumière du jour ou à l'éclairage LED. La détection de lumière blanche est utile pour distinguer différentes conditions d'éclairage, par exemple pour séparer la lumière blanche des autres lumières colorées, ou dans les situations où une température de couleur précise est essentielle.

Exemple de code

Dans cet exemple, nous utilisons la détection de lumière blanche pour influencer directement la luminosité de la LED intégrée au CodeCell. Cette fonction est basée sur les niveaux de lumière blanche détectés, ce qui crée une réponse plus ciblée que la détection de la lumière ambiante générale. À mesure que la pièce s'assombrit, la LED s'atténue, offrant une transition fluide que vous pouvez ajuster et personnaliser pour vos propres projets d'éclairage.

Assurez-vous que votre CodeCell est correctement connecté 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(LIGHT); // Initializes light sensing.
 }

 void loop() {
 delay(100); // Small delay - You can adjust it accordingly

 // Read white light from the sensor and adjust brightness for 8-bit
 uint16_t brightness = (myCodeCell.Light_WhiteRead()) >> 3;
 Serial.println(brightness); // Print the brightness value to the serial monitor for debugging.

 // Limit the sensor values to the LED's brightness range (1 to 254)
 if (brightness == 0U) {
 brightness = 1U; // Set a minimum brightness to avoid turning off the LED completely
 } else if (brightness > 254U) { 
luminosité = 254U; // Limitez la luminosité au niveau maximum de la LED
 }

 luminosité = 255U - luminosité ; // Inverser la luminosité pour que la LED diminue à mesure qu'elle devient plus lumineuse
 myCodeCell.LED(0, 0, brightness); // Faites briller la LED RVB bleue intégrée avec la nouvelle luminosité ajustée
 }

Conseils de personnalisation

  • Ajuster la sensibilité de la luminosité : ajustez les limites de luminosité en fonction des niveaux de lumière de votre pièce.
  • Modifier les couleurs des LED : la fonction myCodeCell.LED() vous permet de spécifier des valeurs RVB. Essayez différentes couleurs en fonction de la luminosité.
  • Ajoutez plus de LED : connectez plus de LED ou même des NeoPixels pour plus d'effets d'éclairage et ajustez leur luminosité avec la même technique.
  • Ajouter un contrôle de proximité : ajoutez le capteur de proximité pour ajouter des effets plus interactifs, comme des gestes de profondeur pour agir comme une commutation.

Conclusion

Cet exemple n'est qu'un point de départ pour exploiter les capacités de détection de lumière de CodeCell . Plongez dans le code, personnalisez-le et consultez le dépôt GitHub de CodeCell pour plus d'exemples de code et de documentation technique !

Voir l'article entier


« Précédent 1 2 3
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.