M5StickC Plus2: Zbuduj system wykrywania prędkości roweru

Opracowaliśmy ekscytujący projekt wykrywania prędkości roweru wykorzystujący M5StickC Plus 2 oraz czujnik efektu Halla. W miarę obracania się koła roweru, czujnik Halla wykrywa zmiany w polu magnetycznym, a dane o prędkości są wyświetlane w czasie rzeczywistym na ekranie M5StickC Plus 2. Ten projekt to doskonały sposób na naukę łączenia czujników z urządzeniami IoT oraz eksplorację możliwości inteligentnego sprzętu. W tym przewodniku przeprowadzimy Cię przez szczegółowe kroki, aby zbudować własny prędkościomierz rowerowy.
  

Opis projektu

Ten projekt wykorzystuje czujnik efektu Halla M5Stack do śledzenia prędkości roweru. Zaczęliśmy od przymocowania trzech małych magnesów do wewnętrznej obręczy koła i solidnego zamontowania czujnika Halla na ramie. Gdy koło się obraca, magnesy obracają się razem z nim, a za każdym razem, gdy magnes mija czujnik Halla, generuje on sygnał elektryczny.

Aby obliczyć prędkość, najpierw mierzymy obwód koła. Następnie rejestrujemy interwał czasowy między dwoma sygnałami, aby określić, ile czasu zajmuje magnesowi wykonanie pełnego obrotu. Dzieląc obwód koła przez zmierzony czas, otrzymujemy prędkość roweru.

Niezbędne jest wprowadzenie mechanizmu antydrganiowego w kodzie, aby uniknąć wielokrotnych wyzwalaczy podczas powolnego obracania się koła. Bez tego czujnik może rejestrować fałszywe sygnały, co prowadzi do nieprecyzyjnych odczytów prędkości. Ten projekt pokazuje, jak skutecznie stosować czujniki, zapewniając jednocześnie dokładność i niezawodność dzięki przemyślanej implementacji.

M5StickC PLUS2

M5StickC PLUS2

Zobacz produkt
Jednostka efektu Halla

Jednostka efektu Halla

Zobacz produkt
  

Funkcjonalne cechy

  • Wyświetlanie prędkości w czasie rzeczywistym: Aktualna prędkość roweru jest wyświetlana na ekranie M5StickC Plus 2 w czasie rzeczywistym, zapewniając dokładne pomiary prędkości dla precyzyjnego doświadczenia jazdy.
  • Wykrywanie czujnika efektu Halla: System wykorzystuje czujnik efektu Halla M5Stack do obliczania prędkości poprzez pomiar częstotliwości, z jaką magnes przechodzi nad czujnikiem, zapewniając dokładne i spójne śledzenie prędkości.
  • Mechanizm przeciwdrganiowy: Wbudowany algorytm przeciwdrganiowy zapobiega wielokrotnym wyzwoleniom sygnału spowodowanym niskimi prędkościami kół lub nierównościami drogowymi, zwiększając dokładność wyświetlania prędkości.
  • Lekka konstrukcja: Dzięki kompaktowemu i lekkiego M5StickC Plus 2 jako kontrolerowi, system idealnie pasuje do rowerów, zajmując minimalną przestrzeń, a jednocześnie zapewniając solidną funkcjonalność.

   

Instalacja i Obsługa

Warunek wstępny

Zależność oprogramowania: Arduino IDE itd. Wymagania sprzętowe: kabel USB-C, M5StickCPlus2, jednostka efektu Halla itd. Zależności: biblioteka M5StickCPlus2, biblioteka Arduino itd.

Instalacja zależności

1. Po zainstalowaniu Arduino IDE, otwórz menu Ustawienia, wklej link do płytki rozwojowej M5 w odpowiednie pole i kliknij OK, aby zapisać zmiany.

2. Otwórz Narzędzia->Płytka->Menedżer Płytek

3. Wyszukaj M5Stack w Menedżerze Bibliotek Arduino i zainstaluj ją. Ponieważ jest już zainstalowana na tym systemie, nie będę powtarzał procesu instalacji.

4. Wybierz wersję rozwojową, Narzędzia->Płytka->M5Stack Arduino->M5StickCPlus2

5. Następnie zainstaluj bibliotekę M5StickCPlus2, wybierając Narzędzia -> Zarządzaj bibliotekami, wyszukując 'M5StickCPlus2' i klikając Zainstaluj. Jeśli biblioteka jest już zainstalowana, proces instalacji zostanie pominięty.

Uzasadnienie

1. Najpierw uzyskujemy jednostkę efektu Halla i dowiadujemy się, że za każdym razem, gdy magnes zbliża się, wskaźnik na pinie wyjściowym się zapala, a sygnał elektryczny jest wysyłany z pinu I.

2. Najpierw zaczęliśmy od zdefiniowania pinów odbiorczych dla sygnałów elektrycznych czujnika Halla.

#define WHEEL_CIRCUMFERENCE 2000  // Obwód opony w mm
#define HALL_PIN 33  // Piny czujnika Halla
#define DEBOUNCE_TIME 50  // Czas eliminacji drgań w milisekundach

#define INPUT_PIN 26
        

 3. Inicjalizacja wyświetlacza 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. Projekt przeciwdziałający drganiom: Poprzez wykrywanie odstępu między sygnałami elektrycznymi z czujnika Halla, możemy określić, czy wystąpiły powtarzające się wykrycia.

int counter = 0;  // Zapisz liczbę rotacji opon
unsigned long lastPulseTime = 0;  // Czas ostatniego wykrytego impulsu
unsigned long lastDisplayTime = 0;  // Ostatni czas wyświetlenia aktualizacji
unsigned long currentTime = 0;

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

  // Changes in Hall sensors are detected and jitter has to be filtered out
  if (hallState == LOW && (currentTime - lastPulseTime > DEBOUNCE_TIME)) {
    counter++;  // Zwiększona liczba wskazuje na jedną rotację opony.
    lastPulseTime = currentTime;  // Aktualizuj czas ostatniego impulsu
  }
        

 

5. Kluczem do uzyskania prędkości jest jej obliczenie poprzez zmierzenie odstępu czasu między dwoma sygnałami i połączenie tego z obwodem koła, a następnie wyświetlenie wyniku na ekranie 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;
  }
        

 

Kompiluj i Uruchom

 1. Najpierw pobierz archiwum zip. Po zakończeniu pobierania rozpakuj je i otwórz speed.ino plik.

2. Podłącz M5StickC Plus 2 do komputera za pomocą kabla USB-C. Następnie przejdź do Narzędzia -> Port i wybierz odpowiedni port.

3. Kliknij Kompiluj, a po zakończeniu kompilacji kliknij Prześlij.

Prezentacja Projektu

 

 

Zostaw komentarz

Twój adres e-mail nie będzie opublikowany. Wymagane pola są oznaczone *

Zarejestruj się do naszego newslettera

Uzyskaj najnowsze informacje o naszych produktach i specjalnych ofertach.