M5StickC Plus2: Byg et cykelhastighedsdetekteringssystem

Vi har udviklet et spændende projekt til måling af cykelhastighed ved hjælp af M5StickC Plus 2 og en Hall Effect Unit. Når cykelhjulet roterer, registrerer Hall-sensoren ændringer i det magnetiske felt, og hastighedsdata vises i realtid på M5StickC Plus 2-skærmen. Dette projekt er en fremragende måde at lære, hvordan man kombinerer sensorer med IoT-enheder og udforsker mulighederne med smart hardware. I denne vejledning guider vi dig gennem de detaljerede trin til at bygge din egen cykelhastighedsmåler.
  

Projektbeskrivelse

Dette projekt bruger M5Stack Hall Effect Unit-sensoren til at måle cyklens hastighed. Vi startede med at fastgøre tre små magneter på den indvendige fælg af hjulet og montere Hall-sensoren sikkert på stellet. Når hjulet drejer, roterer magneterne med det, og hver gang en magnet passerer Hall-sensoren, genererer den et elektrisk signal.

For at beregne hastigheden måler vi først hjulets omkreds. Derefter registrerer vi tidsintervallet mellem to signaler for at bestemme, hvor lang tid det tager for magneten at gennemføre en fuld omdrejning. Ved at dividere hjulets omkreds med den registrerede tid får vi cyklens hastighed.

Det er vigtigt at indarbejde en anti-rystemekanisme i koden for at undgå flere udløsninger, når hjulet drejer langsomt. Uden denne kan sensoren registrere falske signaler, hvilket fører til unøjagtige hastighedsaflæsninger. Dette projekt demonstrerer, hvordan man effektivt anvender sensorer samtidig med, at man sikrer nøjagtighed og pålidelighed gennem gennemtænkt implementering.

M5StickC PLUS2

M5StickC PLUS2

Se produkt
Hall-effektenhed

Hall-effektenhed

Se produkt
  

Funktionelle egenskaber

  • Realtids hastighedsvisning: Den aktuelle hastighed på cyklen vises i realtid på M5StickC Plus 2-skærmen og leverer præcise hastighedsmålinger for en nøjagtig køreoplevelse.
  • Hall-effektsensorregistrering: Systemet udnytter M5Stack Hall Effect Sensor til at beregne hastigheden ved at måle frekvensen, hvormed en magnet passerer over sensoren, hvilket sikrer præcis og konsekvent hastighedsregistrering.
  • Anti-rystemekanisme: En indbygget anti-rystealgoritme forhindrer flere signaludløsninger forårsaget af langsomme hjulhastigheder eller vejstød, hvilket forbedrer nøjagtigheden af hastighedsvisningen.
  • Letvægtsdesign: Med den kompakte og lette M5StickC Plus 2 som controller passer systemet perfekt på cykler, optager minimal plads og leverer samtidig robust funktionalitet.

   

Installation og drift

Forudsætning

Softwareafhængighed: Arduino IDE osv. Hardwarekrav: USB-C kabel, M5StickCPlus2, Hall Effect Unit osv. Afhængigheder: M5StickCPlus2-bibliotek, Arduino-bibliotek osv.

Installation af afhængigheder

1. Efter installation af Arduino IDE åbnes Indstillinger-menuen, indsæt M5-udviklingsboard-linket i det relevante felt, og klik på OK for at gemme ændringerne.

2. Åbn Værktøjer->Board->Boards Manager

3. Søg efter M5Stack i Arduino Library Manager og installer det. Da det allerede er installeret på dette system, gentager jeg ikke installationsprocessen.

4. Vælg udviklingsversion, Værktøjer->Board->M5Stack Arduino->M5StickCPlus2

5. Installer derefter M5StickCPlus2-biblioteket ved at vælge Værktøjer -> Administrer biblioteker, søge efter 'M5StickCPlus2' og klikke på Installer. Hvis biblioteket allerede er installeret, springes installationsprocessen over.

Begrundelse

1. Først får vi Hall Effect Unit og lærer, at når en magnet kommer tæt på, lyser indikatoren på outputpinnen, og et elektrisk signal sendes fra I-pinnen.

2. Først begyndte vi med at definere modtagelsespins til Hall-sensorens elektriske signaler.

#define WHEEL_CIRCUMFERENCE 2000  // Dæk-omkreds i mm
#define HALL_PIN 33  // Hall-sensorpins
#define DEBOUNCE_TIME 50  // Ditheringstid i millisekunder

#define INPUT_PIN 26
        

 3. Initialisering af Plus 2-displayet.

// 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-rystedesign: Ved at registrere intervallet mellem elektriske signaler fra Hall-sensoren kan vi afgøre, om der er sket gentagne registreringer.

int counter = 0;  // Registrer antallet af hjulrotationer
unsigned long lastPulseTime = 0;  // Tidspunkt for sidste registrerede puls
unsigned long lastDisplayTime = 0;  // Sidste gang opdateringen blev vist
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++;  // Øget tælling angiver én hjulrotation.
    lastPulseTime = currentTime;  // Opdater sidste pulstidspunkt
  }
        

 

5. Nøglen til at opnå hastigheden er at beregne den ved at måle tidsintervallet mellem to signaler og kombinere det med hjullets omkreds, og derefter vise 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;
  }
        

 

Kompilér og kør

 1. Først skal du downloade zip-arkivet. Når download er færdig, pak det ud og åbn speed.ino fil.

2. Tilslut M5StickC Plus 2 til din computer med et USB-C-kabel. Gå derefter til Værktøjer -> Port og vælg den korrekte port.

3. Klik på Compile, og når kompileringen er færdig, klik på Upload.

Projektudstilling

 

 

Efterlad en kommentar

Din e-mail-adresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

Sidebar

Seneste indlæg

Dette afsnit inkluderer i øjeblikket ikke noget indhold. Tilføj indhold til dette afsnit ved hjælp af sidebar'en.

Tilmeld dig vores nyhedsbrev

Få de seneste oplysninger om vores produkter og særlige tilbud.