Doorgaan naar artikel

+49 1626571232

info@openelab.io

🚀Gratis verzending vanaf 50€ in de EU / 80€ wereldwijd

M5StickC Plus2: Bouw een fietssnelheidsdetectiesysteem

16 Oct 2024 0 Opmerkingen
We hebben een spannend project voor detectie van fietssnelheid ontwikkeld met behulp van de M5StickC Plus 2 en een Hall-effecteenheid. Terwijl het fietswiel draait, detecteert de Hall-sensor veranderingen in het magnetische veld en worden de snelheidsgegevens in realtime weergegeven op het M5StickC Plus 2-scherm. Dit project is een uitstekende manier om te leren sensoren te combineren met IoT-apparaten en de mogelijkheden van slimme hardware te verkennen. In deze handleiding leiden we u door de gedetailleerde stappen om uw eigen fietssnelheidsmeter te bouwen.
  

Projectbeschrijving

Dit project maakt gebruik van de M5Stack Hall Effect Unit-sensor om de snelheid van de fiets te volgen. We zijn begonnen met het bevestigen van drie kleine magneten aan de binnenrand van het wiel en het stevig bevestigen van de Hall-sensor op het frame. Terwijl het wiel draait, draaien de magneten mee, en elke keer dat een magneet de Hall-sensor passeert, genereert deze een elektrisch signaal.

Om de snelheid te berekenen, meten we eerst de wielomtrek. Vervolgens registreren we het tijdsinterval tussen twee signalen om te bepalen hoe lang het duurt voordat de magneet een volledige omwenteling heeft voltooid. Door de omtrek van het wiel te delen door de geregistreerde tijd, verkrijgen we de snelheid van de fiets.

Het is essentieel om een ​​anti-schudmechanisme in de code op te nemen om meerdere triggers te voorkomen wanneer het wiel langzaam draait. Zonder dit kan de sensor valse signalen registreren, wat leidt tot onnauwkeurige snelheidsmetingen. Dit project laat zien hoe u sensoren effectief kunt toepassen en tegelijkertijd nauwkeurigheid en betrouwbaarheid kunt garanderen door middel van een doordachte implementatie.

M5StickC PLUS2

M5StickC PLUS2

Bekijk product
Hall Effect Unit

Hall-effecteenheid

Bekijk product
  

Functionele kenmerken

  • Realtime snelheidsweergave: De huidige snelheid van de fiets wordt in realtime weergegeven op het M5StickC Plus 2 scherm, waardoor nauwkeurige snelheidsmetingen voor een nauwkeurige rijervaring.
  • Hall Effect Sensor Detectie: Het systeem maakt gebruik van de M5Stack Hall Effect Sensor om de snelheid te berekenen door de frequentie te meten waarmee een magneet over de sensor passeert, zorgen voor nauwkeurige en consistente snelheidsregistratie.
  • Anti-schudmechanisme: een ingebouwd anti-schudalgoritme voorkomt meerdere signaaltriggers veroorzaakt door lage wielsnelheden of verkeersdrempels, waardoor de nauwkeurigheid van de snelheidsweergave.
  • Lichtgewicht ontwerp: Met de compacte en lichtgewicht M5StickC Plus 2 als controller past het systeem perfect op fietsen, neemt het minimale ruimte in beslag en biedt het robuuste functionaliteit.

   

Installatie en werking

Voorwaarde

Softwareafhankelijkheid: Arduino IDE enz. Hardwarevereisten: USB-C kabel, M5StickCPlus2 >, Hall Effect Unit, enz. Afhankelijkheden: M5StickCPlus2-bibliotheek, Arduino-bibliotheek, enz.

Installatie van afhankelijkheden

1. Open na het installeren van de Arduino IDE het menu Instellingen, plak de link naar het M5-ontwikkelbord in het juiste veld en klik op OK om de wijzigingen op te slaan.

2. Open Gereedschappen->Bord->Bordenbeheer

3. Zoek naar M5Stack in de Arduino Library Manager en installeer deze. Omdat het al op dit systeem is geïnstalleerd, zal ik het installatieproces niet herhalen.

4. Selecteer de ontwikkelingsversie, Tools->Board->M5Stack Arduino->M5StickCPlus2

5. Installeer vervolgens de M5StickCPlus2-bibliotheek door Extra -> Bibliotheken beheren te selecteren, te zoeken naar 'M5StickCPlus2' en op Installeren te klikken. Als de bibliotheek al is geïnstalleerd, wordt het installatieproces overgeslagen.

Reden

1. Eerst verkrijgen we de Hall Effect Unit en leren dat wanneer een magneet in de buurt komt, de indicator op de uitgangspin oplicht en er een elektrisch signaal wordt verzonden vanaf de I-pin.

2. Eerst zijn we begonnen met het definiëren van de ontvangstpinnen voor de elektrische signalen van de Hall-sensor.

#define WHEEL_CIRCUMFERENCE 2000 // Bandomtrek in mm
#define HALL_PIN 33 // Hall-sensorpinnen
#define DEBOUNCE_TIME 50 // Ditheringtijd in milliseconden

#define INPUT_PIN 26
        

 3. Het Plus 2-display initialiseren.

// 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-trillingsontwerp: door het interval tussen elektrische signalen van de Hall-sensor te detecteren, kunnen we bepalen of herhaalde detecties hebben plaatsgevonden.

int-teller = 0;  // Registreer het aantal bandomwentelingen
niet-ondertekend lang lastPulseTime = 0;  // Tijdstip van de laatst gedetecteerde puls
niet-ondertekend lang lastDisplayTime = 0;  // De laatste keer dat de update werd weergegeven
unsigned long currentTime = 0;

huidigeTijd = 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 == LAAG && (currentTime - lastPulseTime > DEBOUNCE_TIME)) {
    teller++;  // Een verhoogd aantal duidt op één bandomwenteling.
    laatstePulseTime = huidigeTijd;  // Update laatste pulstijd
  }
        

 

5. De sleutel tot het verkrijgen van de snelheid is het berekenen ervan door het tijdsinterval tussen twee signalen te meten en dit te combineren met de omtrek van het wiel, en vervolgens het resultaat weer te geven op het M5StickC Plus 2 scherm.

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

 

Compileren en uitvoeren

 1. Download eerst het zip-archief. Zodra het downloaden is voltooid, pakt u het uit en opent u het speed.ino bestand.

2. Sluit de M5StickC Plus 2 aan op uw computer met behulp van een USB-C-kabel. Ga vervolgens naar Extra -> Poort en selecteer de juiste poort.

3. Klik op Compileren en zodra de compilatie is voltooid, klikt u op Uploaden.

Project Showcase

 

 

Vorig bericht
Volgende bericht

laat een reactie achter

Alle blogreacties worden vóór publicatie gecontroleerd

Iemand heeft onlangs een gekocht

Bedankt voor het abonneren!

Deze e-mail is geregistreerd!

Shop de look

Kies opties

Bewerk optie
Terug op voorraad melding
this is just a warning
Log in
Winkelmand
0 artikelen
RuffRuff App RuffRuff App by Tsun