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.
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.
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
}
}
}
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.
}
}
}
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!
In dieser Anleitung erfahren Sie, wie Sie den integrierten Näherungssensor der CodeCell zum Erkennen von Objekten und Tiefengesten verwenden.
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.
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
}
}
}
100
), um die Empfindlichkeit der Näherungserkennung basierend auf Ihrer Anwendung anzupassen.myCodeCell.LED()
um mehrfarbige Reaktionen auf Annäherung zu erzeugen.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);
}
}
}
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!
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.
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.
Der VCNL4040-Sensor auf der CodeCell kann sowohl Umgebungslicht als auch Weißlicht erfassen, wobei jeder Sensor unterschiedliche Zwecke erfüllt:
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
}
myCodeCell.LED()
können Sie RGB-Werte festlegen. Experimentieren Sie mit verschiedenen Farben je nach Lichtstärke.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!
Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!
© 2025 Microbots.