Menü
Microbots
0
  • Machen
    • Erste Schritte
    • Maker-Builds
    • Ausbildung
  • Geschäft
    • Maker-Module
    • Maker-Pakete
    • Werkzeuge und Ausrüstung
    • Roboter & Displays
  • Um
    • Unsere Geschichte
    • Kontakt
    • FAQs
  • Deutsch
  • Ihr Warenkorb ist leer
Microbots
  • Machen
    • Erste Schritte
    • Maker-Builds
    • Ausbildung
  • Geschäft
    • Maker-Module
    • Maker-Pakete
    • Werkzeuge und Ausrüstung
    • Roboter & Displays
  • Um
    • Unsere Geschichte
    • Kontakt
    • FAQs
  • Sprache

  • 0 0

CodeCell: Näherungssensor

In dieser Anleitung erfahren Sie, wie Sie den integrierten Näherungssensor der CodeCell zum Erkennen von Objekten und Tiefengesten verwenden.

Wie erkennt es Nähe?

CodeCell enthält in seinem winzigen Gehäuse einen VCNL4040, der Infrarotlicht zur Objekterkennung in seiner Reichweite nutzt. Er misst die Reflexion des emittierten IR-Lichts, um die Nähe eines Objekts zu ermitteln. So können Sie reaktionsfähiges Verhalten basierend auf der Nähe erstellen. Diese Funktion ist besonders nützlich für die Erstellung interaktiver Beleuchtung, Robotik, berührungsloser Schalter oder anderer annäherungsbasierter Aktionen.

Der integrierte Sensor kann die Nähe bis zu 20 cm messen und verwendet die I2C-Kommunikation, die automatisch von unserer CodeCell-Bibliothek verarbeitet wird.

Beispiel 1 – Näherungsschwelle

In diesem Beispiel überwacht die CodeCell kontinuierlich Näherungsdaten und schaltet eine rote LED ein, wenn ein Objekt innerhalb ihrer Näherungsschwelle erkannt wird.

Stellen Sie sicher, dass Ihre CodeCell ordnungsgemäß über USB-C verbunden ist, und folgen Sie den Kommentaren im Code, um jeden Schritt zu verstehen.

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

Tipps zur Anpassung

  • Näherungsschwellenwert anpassen: Ändern Sie den Schwellenwert (im Beispiel 100 ), um die Empfindlichkeit der Näherungserkennung basierend auf Ihrer Anwendung anzupassen.
  • LED-Farben ändern: Experimentieren Sie mit verschiedenen LED-Farben mithilfe der Funktion myCodeCell.LED() um mehrfarbige Reaktionen auf Annäherung zu erzeugen.
  • Mehr hinzufügen: Erwägen Sie das Hinzufügen eines Summers oder Motors, um Audio- oder Bewegungsfeedback bereitzustellen, wenn Objekte in Reichweite erkannt werden.
  • Näherungssensor mit Lichtsensor verwenden: Kombinieren Sie Näherungssensor und Lichtsensor, um komplexere Verhaltensweisen zu erzeugen, wie etwa die Anpassung der Beleuchtung basierend auf der Entfernung und der Helligkeit der Umgebung.

Beispiel 2 – Tiefengesten

Indem Sie Ihre Hand oder andere Objekte näher an den Sensor heranführen oder sich davon entfernen, können Sie dynamische Eingaben erzeugen, die verschiedene Aktionen auslösen. In diesem Beispiel werden die Näherungsdaten verwendet, um den Winkel zweier FlatFlaps zu steuern, die mit zwei DriveCells (H-Brücken-Treibern) verbunden sind.

Der Pulsweitenmodulations-(PWM)-Arbeitszyklus zweier FlatFlaps wird daher je nach Objektnähe angepasst. Bewegt sich das Objekt näher oder entfernt sich, ändert sich der Winkel der FlatFlaps . Dies stellt eine einfache, aber effektive Methode zur gestenbasierten Tiefensteuerung dar. Beachten Sie die Kommentare im Code, um die einzelnen Schritte zu verstehen:

 #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); // Stellen Sie die serielle Baudrate auf 115200 ein. Stellen Sie sicher, dass Tools/USB_CDC_On_Boot aktiviert ist, wenn Sie die serielle Schnittstelle verwenden.

 myCodeCell.Init(LIGHT); // Initialisiert die Lichterkennung

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

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

 void-Schleife() {
 wenn (myCodeCell.Run(10)) {
 // Läuft alle 100 ms
 uint16_t Nähe = myCodeCell.Light_ProximityRead();
 Serial.println(Nähe);
 wenn (Nähe < 100) {
 // Wenn keine Nähe erkannt wird, flattern die FlatFlaps
 FlatFlap1.Run(1, 100, 400);
 FlatFlap2.Run(1, 100, 400);
 } anders {
 // Passen Sie den FlatFlap-Winkel basierend auf der Nähe an
 Nähe = Nähe - 100;
 Nähe = Nähe / 10;
 wenn (Nähe > 100) {
 Nähe = 100;
 }
 FlatFlap1.Drive(0, Nähe);
 FlatFlap2.Drive(0, Nähe);
 }
 }
 }

Tipps zur Anpassung

  • Schwellenwerte anpassen: Ändern Sie die Näherungsschwellenwerte und Skalierungsfaktoren im Code, um die Reaktionsfähigkeit der FlatFlaps Ihren Wünschen entsprechend zu optimieren.
  • Erweitern Sie die Funktionalität: Erwägen Sie das Hinzufügen weiterer CodeCell- Sensorfunktionen, wie etwa Bewegungserkennung oder Lichtsensorik, um Ihrem Projekt mehr Funktionalität hinzuzufügen!

Abschluss

Dieses Projekt vermittelt die Grundlagen der Näherungssensorik mit CodeCell und eröffnet vielfältige interaktive Möglichkeiten. Experimentieren Sie mit dem Code, optimieren Sie die Einstellungen und entdecken Sie das CodeCell GitHub Repository für weitere Codebeispiele und technische Dokumentation!

  • Teilen:

Sozial

Github

  • Um
  • Software
  • Ausbildung
  • Kontakt
  • FAQs
  • Bedingungen
  • Rückerstattung-Politik
  • Datenschutzrichtlinie

Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!

© 2025 Microbots.