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

CodeCell: Sensing Tap Detection

CodeCell: Sensorische Tap-Erkennung

In dieser Anleitung erfahren Sie, wie Sie den integrierten Bewegungssensor von CodeCell zur Erkennung von Berührungen nutzen. Dieses Projekt demonstriert die Verwendung der Berührungserkennung für interaktive Steuerelemente und eignet sich perfekt für die Erstellung reaktionsfähiger Aktionen durch einfaches Tippen auf das Gerät.

Wie wird ein Tippen erkannt?

CodeCell ist mit einem BNO085-Bewegungssensor ausgestattet, der die Daten eines Beschleunigungsmessers, Gyroskops und Magnetometers zusammenführt, um bestimmte Bewegungsmuster zu verfolgen und festzustellen, ob ein Tippvorgang ausgeführt wurde. Dadurch eignet es sich ideal für interaktive Steuerungen wie das Ein- und Ausschalten von Lichtern, das Auslösen von Soundeffekten oder andere Aktionen, die auf einer einfachen Tippgeste basieren.

Beispiel 1: Einfache Tipperkennung

Im ersten Beispiel richten wir unsere CodeCell so ein, dass sie kontinuierlich auf ein Tippen prüft. Wenn ein Tippen erkannt wird, leuchtet die integrierte LED eine Sekunde lang gelb. Sie können diese grundlegende Funktionalität erweitern, um komplexere Interaktionen zu ermöglichen, beispielsweise die Steuerung mehrerer LEDs, Motoren oder anderer angeschlossener Geräte basierend auf Tippeingaben.

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(MOTION_TAP_DETECTOR); // Initializes tap detection sensing
 }

 void loop() {
 if (myCodeCell.Run(10)) {
 // Runs every 100ms to check for taps
 if (myCodeCell.Motion_TapRead()) { 
// Wenn ein Tippen erkannt wird, leuchtet die LED 1 Sekunde lang gelb
 myCodeCell.LED(0xA0, 0x60, 0x00); // LED auf gelb setzen
 delay(1000); // LED 1 Sekunde lang anlassen
 }
 }
 }

Beispiel 2: Tap-Erkennung + CoilCell

Im nächsten Beispiel verwenden wir eine CoilCell, um ihre Polarität umzukehren und einen Flip-Dot zu aktivieren. Dies erweitert die Interaktivität durch die Nutzung der Tipperkennung zur Steuerung externer Geräte und sorgt so für eine dynamischere Reaktion.

 
#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)) { 
// Wird alle 100 ms ausgeführt, um nach Taps zu suchen.
 if (myCodeCell.Motion_TapRead()) {
 // Wenn ein Tippen erkannt wird, leuchtet die LED gelb und die Polarität der CoilCell wird umgekehrt.
 myCodeCell.LED(0xA0, 0x60, 0x00); // LED auf Gelb setzen.
 myCoilCell.Toggle(100); // Schaltet die Polarität der CoilCell um.
 Verzögerung (1000); // Verzögerung, um die LED 1 Sekunde lang eingeschaltet und die Polarität umgekehrt zu lassen.
 }
 }
 }

Tipps zur Anpassung

  • LED-Farben ändern: Experimentieren Sie mit verschiedenen LED-Farben und erhöhen Sie die Helligkeit der LED durch Antippen.
  • Aktionen erweitern: Verwenden Sie die Tipperkennung, um andere Geräte wie Summer, Motoren oder Displays auszulösen und so weitere Interaktivitätsebenen hinzuzufügen.
  • Mit anderen Sensoren kombinieren: Integrieren Sie die Tipperkennung mit anderen Sensoren, wie Näherungs- oder Lichtsensoren, um Projekte mit mehreren Sensoren zu erstellen.

Abschluss

Experimentieren Sie mit dem Code, passen Sie die Antworten an und sehen Sie sich das CodeCell GitHub Repository für weitere Codebeispiele und technische Dokumentation an!

Vollständigen Artikel anzeigen

CodeCell: Proximity Sensing

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!

Vollständigen Artikel anzeigen

CodeCell: Brightness Detection

CodeCell: Helligkeitserkennung

In dieser Anleitung erfahren Sie, wie Sie mit der CodeCell weißes Licht erfassen und die Helligkeit einer LED automatisch anpassen oder andere reaktionsfähige Lichteffekte erzeugen, um sich an die Lichtverhältnisse anzupassen.

Wie erkennt es Licht?

In seinem winzigen Gehäuse enthält CodeCell einen VCNL4040, der mithilfe seiner integrierten Fotodiode die Umgebungshelligkeit präzise messen kann. Dadurch erkennt er Helligkeitsänderungen und ermöglicht so automatische Anpassungen energiesparender Beleuchtungssysteme oder umgebungsabhängige Interaktionen.

Der integrierte Sensor bietet hochauflösende Lichterfassung über einen weiten Dynamikbereich und kommuniziert über I2C, das nahtlos von unserer CodeCell-Bibliothek verwaltet wird.

Umgebungslichtsensor vs. Weißlichtsensor

Der VCNL4040-Sensor auf der CodeCell kann sowohl Umgebungslicht als auch Weißlicht erfassen, wobei jeder Sensor unterschiedliche Zwecke erfüllt:

  • Umgebungslichtmessung: Dieser Modus misst die Gesamtlichtintensität aller Umgebungsquellen, einschließlich natürlichem und künstlichem Licht. Er eignet sich ideal für Anwendungen, die ein allgemeines Verständnis der Lichtverhältnisse in einem Raum erfordern, wie z. B. das Anpassen der Bildschirmhelligkeit oder das Aktivieren des Nachtmodus auf Geräten.
  • Weißlichtmessung: Dieser Modus misst speziell die Intensität von Weißlicht. Dies ist besonders nützlich, wenn es darum geht, Lichtquellen zu beurteilen, die Tageslicht oder LED-Beleuchtung ähneln. Die Weißlichtmessung ist nützlich, wenn zwischen verschiedenen Lichtverhältnissen unterschieden werden muss, z. B. zwischen Weißlicht und anderen farbigen Lichtern oder wenn eine genaue Farbtemperatur wichtig ist.

Beispielcode​

In diesem Beispiel nutzen wir die Weißlichterkennung, um die Helligkeit der integrierten LED der CodeCell direkt zu beeinflussen. Dies basiert auf den erkannten Weißlichtstärken und ermöglicht eine gezieltere Reaktion im Vergleich zur allgemeinen Umgebungslichterkennung. Bei zunehmender Dunkelheit im Raum dimmt die LED und sorgt so für einen sanften Übergang, den Sie für Ihre eigenen Beleuchtungsprojekte optimieren und anpassen können.

Stellen Sie sicher, dass Ihre CodeCell richtig 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.
 }

 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) { 
Helligkeit = 254U; // Begrenzen Sie die Helligkeit auf das maximale Niveau der LED
 }

 Helligkeit = 255U - Helligkeit; // Invertiert die Helligkeit, sodass die LED dunkler wird, wenn sie heller wird
 myCodeCell.LED(0, 0, Helligkeit); // Lasse die integrierte blaue RGB-LED mit der neu eingestellten Helligkeit leuchten
 }

Tipps zur Anpassung

  • Helligkeitsempfindlichkeit anpassen: Passen Sie die Helligkeitsgrenzen an die Lichtverhältnisse in Ihrem Raum an.
  • LED-Farben ändern: Mit der Funktion myCodeCell.LED() können Sie RGB-Werte festlegen. Experimentieren Sie mit verschiedenen Farben je nach Lichtstärke.
  • Weitere LEDs hinzufügen: Schließen Sie weitere LEDs oder sogar NeoPixels für mehr Lichteffekte an und passen Sie deren Helligkeit mit derselben Technik an.
  • Näherungssteuerung hinzufügen: Fügen Sie den Näherungssensor hinzu, um weitere interaktive Effekte hinzuzufügen, beispielsweise Tiefengesten, die wie ein Umschalten wirken.

Abschluss

Dieses Beispiel ist nur der Ausgangspunkt für die Nutzung der Lichtsensorfunktionen von CodeCell . Tauchen Sie ein in den Code, passen Sie ihn an Ihren eigenen an und besuchen Sie das CodeCell GitHub Repository für weitere Codebeispiele und technische Dokumentation!

Vollständigen Artikel anzeigen


« Vorherige 1 2 3
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.