Menu
Microbots
0
  • Robots & Kits
    • ProtoBot
    • CubeBot
    • Robot Parts
  • Modules & Parts
    • CodeCell ESP32 Modules
    • Motors & Actuators
    • LiPo Batteries
  • Gear
    • Tools
    • Merch
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • Connexion
  • Votre panier est vide
Microbots
  • Robots & Kits
    • ProtoBot
    • CubeBot
    • Robot Parts
  • Modules & Parts
    • CodeCell ESP32 Modules
    • Motors & Actuators
    • LiPo Batteries
  • Gear
    • Tools
    • Merch
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • 0 0

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 !

  • 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

86 reviews
Write a review
87%
(75)
5%
(4)
2%
(2)
2%
(2)
3%
(3)
80
21
A
ProtoBot
Anonymous

This is a great product for beginners who want hands-on experience with Arduino and 3D printing. The Protobot has a sleek, solid design, and the software is just as polished. I’ve bought several educational robotics kits, and this is the best one so far. Looking forward to more awesome products!

Thank you so much for your kind review! 😊

F
ProtoBot
Francis van Uyten

Really love this robot. I like that is simple to assemble and I like that you guys prepares it easy to start programming with examples and libraries. My opinion on what to improve is more like a add-on, can you guys develop a localisation sensor or function so it will know where the bot is. Expecting only great things coming from you guys. Succes

Thank you so much for your thoughtful review! Glad you’re enjoying ProtoBot 😊 A localisation sensor is a great suggestion! The I²C connection lets you add compatible sensors, so there’s room to explore this. Thanks for your support!

G
Experiment in Progress Mug
Gerald Kendrick

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

Hi Gerald, we’re so glad you’re enjoying it! Thanks for sharing your kind review.

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

Very useful fun little screwdriver for the all tiny stuff

Hi Klaas, thanks for the great review! We’re glad you’re enjoying your screwdriver!

f
ProtoBot
frederic marty

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