M5StickC Plus2: Vytvořte systém detekce rychlosti jízdního kola

Vyvinuli jsme vzrušující projekt detekce rychlosti jízdního kola pomocí M5StickC Plus 2 a Hallova efektového senzoru. Jak se kolo jízdního kola otáčí, Hallův senzor detekuje změny v magnetickém poli a údaje o rychlosti jsou zobrazovány v reálném čase na obrazovce M5StickC Plus 2. Tento projekt je vynikajícím způsobem, jak se naučit kombinovat senzory s IoT zařízeními a prozkoumat možnosti chytrého hardwaru. V tomto průvodci vás provedeme podrobnými kroky k sestavení vlastního cyklistického rychloměru.
  

Popis projektu

Tento projekt používá senzor M5Stack Hall Effect Unit k měření rychlosti jízdního kola. Začali jsme připevněním tří malých magnetů na vnitřní okraj kola a pevnou montáží Hallova senzoru na rám. Když se kolo otáčí, magnety se s ním otáčejí a pokaždé, když magnet projde kolem Hallova senzoru, generuje elektrický signál.

Pro výpočet rychlosti nejprve změříme obvod kola. Poté zaznamenáme časový interval mezi dvěma signály, abychom určili, jak dlouho trvá magnetu dokončit jeden úplný oběh. Vydělením obvodu kola zaznamenaným časem získáme rychlost jízdního kola.

Je nezbytné začlenit do kódu mechanismus proti chvění, aby se zabránilo vícenásobným spouštěním při pomalém otáčení kola. Bez toho může senzor zaznamenávat falešné signály, což vede k nepřesným měřením rychlosti. Tento projekt ukazuje, jak efektivně používat senzory a zároveň zajistit přesnost a spolehlivost prostřednictvím promyšlené implementace.

M5StickC PLUS2

M5StickC PLUS2

Zobrazit produkt
Jednotka Hallova jevu

Jednotka Hallova jevu

Zobrazit produkt
  

Funkční vlastnosti

  • Zobrazení rychlosti v reálném čase: Aktuální rychlost jízdního kola je zobrazena v reálném čase na obrazovce M5StickC Plus 2, poskytující přesná měření rychlosti pro přesný zážitek z jízdy.
  • Detekce Hallova efektu: Systém využívá M5Stack Hall Effect Sensor k výpočtu rychlosti měřením frekvence, s jakou magnet prochází nad senzorem, což zajišťuje přesné a konzistentní sledování rychlosti.
  • Mechanismus proti chvění: Vestavěný algoritmus proti chvění zabraňuje opakovaným spouštěním signálu způsobeným nízkými rychlostmi kol nebo nerovnostmi na silnici, čímž zvyšuje přesnost zobrazení rychlosti.
  • Lehký design: Díky kompaktnímu a lehkému M5StickC Plus 2 jako řídicímu prvku systém dokonale sedí na jízdních kolech, zabírá minimum místa a přitom poskytuje robustní funkčnost.

   

Instalace a provoz

Předpoklad

Softwarová závislost: Arduino IDE atd. Hardwarové požadavky: USB-C kabel, M5StickCPlus2, Hall Effect Unit atd. Závislosti: Knihovna M5StickCPlus2, Arduino knihovna atd.

Instalace závislostí

1. Po instalaci Arduino IDE otevřete nabídku Nastavení, vložte odkaz na vývojovou desku M5 do příslušného pole a klikněte na OK pro uložení změn.

2. Otevřete Nástroje->Deska->Správce desek

3. Vyhledejte M5Stack v Arduino Library Manager a nainstalujte jej. Protože je již na tomto systému nainstalován, nebudu proces instalace opakovat.

4. Vyberte vývojovou verzi, Nástroje->Deska->M5Stack Arduino->M5StickCPlus2

5. Dále nainstalujte knihovnu M5StickCPlus2 výběrem Nástroje -> Spravovat knihovny, vyhledáním 'M5StickCPlus2' a kliknutím na Instalovat. Pokud je knihovna již nainstalována, proces instalace bude přeskočen.

Odůvodnění

1. Nejprve získáme Hallův efektový modul a zjistíme, že kdykoli se přiblíží magnet, indikátor na výstupním pinu se rozsvítí a z I pinu je odeslán elektrický signál.

2. Nejprve jsme začali definováním přijímacích pinů pro elektrické signály Hallova senzoru.

#define WHEEL_CIRCUMFERENCE 2000  // Obvod pneumatiky v mm
#define HALL_PIN 33  // Piny Hallova senzoru
#define DEBOUNCE_TIME 50  // Čas pro odstranění zákmitů v milisekundách

#define INPUT_PIN 26
        

 3. Inicializace displeje Plus 2.

// 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. Design proti chvění: Detekcí intervalu mezi elektrickými signály z Hallova senzoru můžeme určit, zda došlo k opakovaným detekcím.

int counter = 0;  // Zaznamenat počet otočení pneumatik
unsigned long lastPulseTime = 0;  // Čas posledního detekovaného pulzu
unsigned long lastDisplayTime = 0;  // Poslední čas, kdy bylo zobrazení aktualizováno
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++;  // Zvýšený počet znamená jedno otočení pneumatiky.
    lastPulseTime = currentTime;  // Aktualizovat čas posledního pulzu
  }
        

 

5. Klíčem k získání rychlosti je její výpočet měřením časového intervalu mezi dvěma signály a kombinací s obvodem kola, poté zobrazení výsledku na obrazovce M5StickC Plus 2.

// 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;
  }
        

 

Kompilace a spuštění

 1. Nejprve stáhněte zip archiv. Po dokončení stahování jej rozbalte a otevřete speed.ino soubor.

2. Připojte M5StickC Plus 2 k počítači pomocí USB-C kabelu. Poté přejděte na Nástroje -> Port a vyberte správný port.

3. Klikněte na Sestavit a jakmile je sestavení dokončeno, klikněte na Nahrát.

Prezentace projektu

 

 

Zanechte komentář

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *

Přihlaste se k odběru našeho newsletteru

Získejte nejnovější informace o našich produktech a speciálních nabídkách.