M5StickC Plus2: Bygg ett cykelhastighetsdetekteringssystem

Vi har utvecklat ett spännande projekt för att mäta cykelhastighet med M5StickC Plus 2 och en Hall Effect Unit. När cykelhjulet roterar upptäcker Hall-sensorn förändringar i det magnetiska fältet, och hastighetsdata visas i realtid på M5StickC Plus 2-skärmen. Detta projekt är ett utmärkt sätt att lära sig hur man kombinerar sensorer med IoT-enheter och utforska möjligheterna med smart hårdvara. I denna guide går vi igenom de detaljerade stegen för att bygga din egen cykelhastighetsmätare.
  

Projektbeskrivning

Detta projekt använder M5Stack Hall Effect Unit-sensorn för att mäta cykelns hastighet. Vi började med att fästa tre små magneter på den inre fälgen av hjulet och säkert montera Hall-sensorn på ramen. När hjulet snurrar roterar magneterna med det, och varje gång en magnet passerar Hall-sensorn genererar den en elektrisk signal.

För att beräkna hastigheten mäter vi först hjulets omkrets. Sedan registrerar vi tidsintervallet mellan två signaler för att avgöra hur lång tid det tar för magneten att göra ett helt varv. Genom att dividera hjulomkretsen med den uppmätta tiden får vi cykelns hastighet.

Det är viktigt att införa en anti-skakningsmekanism i koden för att undvika flera utlösningar när hjulet roterar långsamt. Utan detta kan sensorn registrera falska signaler, vilket leder till felaktiga hastighetsavläsningar. Detta projekt visar hur man effektivt använder sensorer samtidigt som man säkerställer noggrannhet och tillförlitlighet genom genomtänkt implementering.

M5StickC PLUS2

M5StickC PLUS2

Visa produkt
Hall-effektenhet

Hall-effektenhet

Visa produkt
  

Funktionella egenskaper

  • Hastighetsvisning i realtid: Den aktuella hastigheten på cykeln visas i realtid på M5StickC Plus 2-skärmen och levererar exakta hastighetsmätningar för en korrekt cykelupplevelse.
  • Hall-effektsensordetektion: Systemet använder M5Stack Hall-effektsensor för att beräkna hastigheten genom att mäta frekvensen då en magnet passerar över sensorn, vilket säkerställer exakt och konsekvent hastighetsmätning.
  • Anti-skakningsmekanism: En inbyggd anti-skakningsalgoritm förhindrar flera signalutlösningar orsakade av långsamma hjulhastigheter eller väggupp, vilket förbättrar noggrannheten i hastighetsvisningen.
  • Lättviktsdesign: Med den kompakta och lätta M5StickC Plus 2 som styrenhet passar systemet perfekt på cyklar, tar minimal plats samtidigt som det erbjuder robust funktionalitet.

   

Installation och drift

Förutsättning

Programvaruberoende: Arduino IDE etc. Hårdvarukrav: USB-C kabel, M5StickCPlus2, Hall Effect Unit osv. Beroenden: M5StickCPlus2-bibliotek, Arduino-bibliotek osv.

Installation av beroenden

1. Efter att ha installerat Arduino IDE, öppna Inställningar-menyn, klistra in länken till M5 utvecklingskort i lämpligt fält och klicka på OK för att spara ändringarna.

2. Öppna Verktyg->Kort->Korthanteraren

3. Sök efter M5Stack i Arduino Library Manager och installera det. Eftersom det redan är installerat på detta system kommer jag inte att upprepa installationsprocessen.

4. Välj utvecklingsversion, Verktyg->Kort->M5Stack Arduino->M5StickCPlus2

5. Nästa steg är att installera M5StickCPlus2-biblioteket genom att välja Verktyg -> Hantera bibliotek, söka efter 'M5StickCPlus2' och klicka på Installera. Om biblioteket redan är installerat hoppas installationsprocessen över.

Motivering

1. Först får vi Hall-effektenheten och lär oss att när en magnet kommer nära tänds indikatorn på utgångspinnen och en elektrisk signal skickas från I-pinnen.

2. Först började vi med att definiera mottagarpinnarna för Hall-sensorns elektriska signaler.

#define WHEEL_CIRCUMFERENCE 2000  // Däckomkrets i mm
#define HALL_PIN 33  // Hall-sensorpinnar
#define DEBOUNCE_TIME 50  // Ditheringstid i millisekunder

#define INPUT_PIN 26
        

 3. Initierar Plus 2-displayen.

// 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. Antiskakningsdesign: Genom att upptäcka intervallet mellan elektriska signaler från Hall-sensorn kan vi avgöra om upprepade detektioner har inträffat.

int counter = 0;  // Registrera antalet hjulrotationer
unsigned long lastPulseTime = 0;  // Tid för senaste upptäckta pulsen
unsigned long lastDisplayTime = 0;  // Senaste gången uppdateringen visades
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++;  // Ökad räknare indikerar ett hjulvarv.
    lastPulseTime = currentTime;  // Uppdatera senaste pulstid
  }
        

 

5. Nyckeln till att få hastigheten är att beräkna den genom att mäta tidsintervallet mellan två signaler och kombinera det med hjulomkretsen, sedan visa resultatet på M5StickC Plus 2-skärmen.

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

 

Kompilera och kör

 1. Ladda först ner zip-arkivet. När nedladdningen är klar, packa upp det och öppna speed.ino fil.

2. Anslut M5StickC Plus 2 till din dator med en USB-C-kabel. Gå sedan till Verktyg -> Port och välj rätt port.

3. Klicka på Komplilera, och när kompileringen är klar, klicka på Ladda upp.

Projektvisning

 

 

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *

Sidopanel

Senaste inlägg

Denna sektion innehåller för närvarande inget innehåll. Lägg till innehåll i denna sektion med hjälp av sidofältet.

Registrera dig för vårt nyhetsbrev

Få den senaste informationen om våra produkter och specialerbjudanden.