Zum Inhalt springen

+49 1626571232

info@openelab.io

🚀 Kostenloser Versand ab 50€ in der EU / 80€ weltweit

M5StickC Plus2: Bauen Sie ein Fahrradgeschwindigkeitserkennungssystem

16 Oct 2024 0 Kommentare
Wir haben ein spannendes Fahrradgeschwindigkeitserkennungsprojekt mit dem M5StickC Plus 2 und einem Hall-Effekt-Einheit. Während sich das Fahrradrad dreht, erkennt der Hall-Sensor Änderungen im Magnetfeld und die Geschwindigkeitsdaten werden in Echtzeit auf dem Bildschirm des M5StickC Plus 2 angezeigt. Dieses Projekt ist eine hervorragende Möglichkeit zu lernen, wie man Sensoren mit IoT-Geräten kombiniert und die Möglichkeiten intelligenter Hardware erkundet. In dieser Anleitung führen wir Sie durch die detaillierten Schritte zum Bau Ihres eigenen Fahrradtachos.
  

Projektbeschreibung

Dieses Projekt verwendet den M5Stack Hall Effect Unit-Sensor, um die Geschwindigkeit des Fahrrads zu verfolgen. Wir begannen damit, drei kleine Magnete an der Innenfelge des Rads anzubringen und den Hall-Sensor sicher am Rahmen zu befestigen. Während sich das Rad dreht, rotieren die Magnete mit und jedes Mal, wenn ein Magnet den Hall-Sensor passiert, erzeugt er ein elektrisches Signal.

Um die Geschwindigkeit zu berechnen, messen wir zunächst den Radumfang. Anschließend zeichnen wir den Zeitabstand zwischen zwei Signalen auf, um zu bestimmen, wie lange es dauert, bis der Magnet eine volle Umdrehung durchführt. Indem wir den Radumfang durch die aufgezeichnete Zeit dividieren, erhalten wir die Geschwindigkeit des Fahrrads.

Es ist wichtig, einen Anti-Shaking-Mechanismus in den Code zu integrieren, um Mehrfachauslösungen zu vermeiden, wenn sich das Rad langsam dreht. Andernfalls registriert der Sensor möglicherweise falsche Signale, was zu ungenauen Geschwindigkeitsmesswerten führt. Dieses Projekt zeigt, wie man Sensoren effektiv einsetzt und gleichzeitig durch eine durchdachte Implementierung Genauigkeit und Zuverlässigkeit gewährleistet.

M5StickC PLUS2

M5StickC PLUS2

Produkt anzeigen
Hall Effect Unit

Hall-Effekt-Einheit

Produkt anzeigen
  

Funktionale Merkmale

  • Geschwindigkeitsanzeige in Echtzeit: Die aktuelle Geschwindigkeit des Fahrrads wird in Echtzeit auf dem Bildschirm des M5StickC Plus 2 angezeigt und liefert Präzise Geschwindigkeitsmessungen für ein genaues Fahrerlebnis.
  • Hall-Effekt-Sensor-Erkennung: Das System nutzt den M5Stack Hall-Effekt-Sensor, um die Geschwindigkeit zu berechnen, indem es die Frequenz misst, mit der ein Magnet über den Sensor läuft. Gewährleistung einer genauen und konsistenten Geschwindigkeitsverfolgung.
  • Anti-Shaking-Mechanismus: Ein integrierter Anti-Shaking-Algorithmus verhindert mehrere Signalauslösungen, die durch langsame Radgeschwindigkeiten oder Straßenunebenheiten verursacht werden, und verbessert so die
  • Leichtes Design: Mit dem kompakten und leichten M5StickC Plus 2 als Controller passt das System perfekt auf Fahrräder, nimmt nur wenig Platz ein und bietet gleichzeitig robuste Funktionalität.

   

Installation und Betrieb

Vorbedingung

Softwareabhängigkeit: ArduinoIDE usw. Hardwareanforderungen: USB-C-Kabel, M5StickCPlus2, Hall-Effekt-Einheit usw. Abhängigkeiten: M5StickCPlus2-Bibliothek, Arduino-Bibliothek usw.

Installation der Abhängigkeiten

1. Öffnen Sie nach der Installation der Arduino IDE das Menü Einstellungen, fügen Sie den Link zum M5-Entwicklungsboard in das entsprechende Feld ein und klicken Sie auf OK, um die Änderungen zu speichern.

2. Öffnen Sie Werkzeuge->Board->Boards-Verwaltung

3. Suchen Sie im Arduino Library Manager nach M5Stack und installieren Sie es. Da es auf diesem System bereits installiert ist, werde ich den Installationsvorgang nicht wiederholen.

4. Wählen Sie die Entwicklungsversion aus: Tools->Board->M5Stack Arduino->M5StickCPlus2

5. Als nächstes installieren Sie die M5StickCPlus2-Bibliothek, indem Sie Extras -> Bibliotheken verwalten auswählen, nach „M5StickCPlus2“ suchen und auf „Installieren“ klicken. Wenn die Bibliothek bereits installiert ist, wird der Installationsvorgang übersprungen.

Begründung

1. Zuerst erhalten wir die Hall-Effekt-Einheit und erfahren, dass immer dann, wenn sich ein Magnet nähert, die Anzeige am Ausgangspin aufleuchtet und ein elektrisches Signal vom I-Pin gesendet wird.

2. Zunächst definierten wir zunächst die Empfangspins für die elektrischen Signale des Hall-Sensors.

#define WHEEL_CIRCUMFERENCE 2000 // Reifenumfang in mm
#define HALL_PIN 33 // Hall-Sensor-Pins
#define DEBOUNCE_TIME 50 // Dithering-Zeit in Millisekunden

#define INPUT_PIN 26
        

 3. Initialisierung des Plus 2 Displays.

// Initialize M5StickC Plus2
  M5.begin();
  
  // Setting the orientation and font of the display
  M5.Lcd.setRotation(1);
  M5.Lcd.setTextSize(4);
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextColor(WHITE);
        

 

4. Anti-Shaking-Design: Durch die Erkennung des Intervalls zwischen elektrischen Signalen vom Hall-Sensor können wir feststellen, ob wiederholte Erkennungen aufgetreten sind.

int counter = 0;  // Notieren Sie die Anzahl der Reifenumdrehungen
unsigned long lastPulseTime = 0;  // Zeitpunkt des letzten erkannten Impulses
unsigned long lastDisplayTime = 0;  // Das letzte Mal, als das Update angezeigt wurde
unsigned long currentTime = 0;

currentTime = millis();
  // Read Hall sensor status
  bool hallState = digitalRead(HALL_PIN);

  // Changes in Hall sensors are detected and jitter has to be filtered out
  if (hallState == LOW && (currentTime - lastPulseTime > DEBOUNCE_TIME)) {
    counter++;  // Erhöhter Wert zeigt eine Reifenumdrehung an.
    lastPulseTime = currentTime;  // Letzte Impulszeit aktualisieren
  }
        

 

5. Der Schlüssel zum Ermitteln der Geschwindigkeit besteht darin, sie zu berechnen, indem das Zeitintervall zwischen zwei Signalen gemessen und mit dem Umfang des Rads kombiniert wird. Anschließend wird das Ergebnis auf dem Bildschirm des M5StickC Plus 2 angezeigt.

// Update screen display every 1 second
  if (currentTime - lastDisplayTime >= 1000) {
    M5.Lcd.fillScreen(BLACK);
    M5.Lcd.setCursor(20, 20);
    
    // Calculation of v'elocity in millimeters per second, converted to meters per second
    double speed = ((double)counter * (double)WHEEL_CIRCUMFERENCE) / 1000.0;
    
    // Create a character buffer to store the formatted speed value
    char buffer[20];
    snprintf(buffer, sizeof(buffer), ' Speed:     %.2f m/s', speed);

    // Prints formatted speed value to LCD
    M5.Lcd.print(buffer);
    
    // Reset Counter
    counter = 0;
    
    // Update the displayed time
    lastDisplayTime = currentTime;
  }
        

 

Kompilieren und Ausführen

 1. Laden Sie zunächst das Zip-Archiv herunter. Sobald der Download abgeschlossen ist, entpacken Sie ihn und öffnen Sie ihn speed.ino Datei.

2. Verbinden Sie den M5StickC Plus 2 über ein USB-C-Kabel mit Ihrem Computer. Gehen Sie dann zu Extras -> Port und wählen Sie den richtigen Port aus.

3. Klicken Sie auf Kompilieren und klicken Sie nach Abschluss der Kompilierung auf Hochladen.

Projektpräsentation

 

 

Vorheriger Beitrag
Nächster Beitrag

Hinterlasse einen Kommentar

Alle Blog-Kommentare werden vor der Veröffentlichung geprüft

Jemand kaufte vor kurzem ein

Danke fürs Abonnieren!

Diese E-Mail wurde registriert!

Shoppen Sie den Look

Wähle Optionen

Bearbeitungsoption
Benachrichtigung wieder vorrätig
this is just a warning
Anmeldung
Einkaufswagen
0 Artikel