saltar al contenido

+49 1626571232

info@openelab.io

🚀 Envío gratuito a partir de 50€ en la UE / 80€ en todo el mundo

M5StickC Plus2: cree un sistema de detección de velocidad para bicicletas

16 Oct 2024 0 Comentarios
Hemos desarrollado un interesante proyecto de detección de velocidad de bicicletas utilizando el M5StickC Plus 2 y un Unidad de efecto Hall. A medida que gira la rueda de la bicicleta, el sensor Hall detecta cambios en el campo magnético y los datos de velocidad se muestran en tiempo real en la pantalla del M5StickC Plus 2. Este proyecto es una excelente manera de aprender a combinar sensores con dispositivos IoT y explorar las posibilidades del hardware inteligente. En esta guía, lo guiaremos a través de los pasos detallados para construir su propio velocímetro de bicicleta.
  

Descripción del Proyecto

Este proyecto utiliza el sensor de unidad de efecto Hall M5Stack para rastrear la velocidad de la bicicleta. Comenzamos colocando tres imanes pequeños en el borde interior de la rueda y montando de forma segura el sensor Hall en el marco. A medida que la rueda gira, los imanes giran junto con ella y cada vez que un imán pasa por el sensor Hall, genera una señal eléctrica.

Para calcular la velocidad, primero medimos la circunferencia de la rueda. Luego, registramos el intervalo de tiempo entre dos señales para determinar cuánto tiempo le toma al imán completar una revolución completa. Dividiendo la circunferencia de la rueda por el tiempo registrado obtenemos la velocidad de la bicicleta.

Es imprescindible incorporar en el código un mecanismo antivibración para evitar múltiples disparos cuando la rueda gira lentamente. Sin esto, el sensor puede registrar señales falsas, lo que provocará lecturas de velocidad inexactas. Este proyecto demuestra cómo aplicar sensores de manera efectiva y al mismo tiempo garantizar precisión y confiabilidad mediante una implementación cuidadosa.

M5StickC PLUS2

M5StickC PLUS2

Ver el producto
Hall Effect Unit

Unidad de Efecto Hall

Ver el producto
  

Características funcionales

  • Visualización de velocidad en tiempo real: la velocidad actual de la bicicleta se muestra en tiempo real en la pantalla del M5StickC Plus 2, ofreciendo mediciones de velocidad precisas para una experiencia de conducción precisa.
  • Detección del sensor de efecto Hall: el sistema aprovecha el sensor de efecto Hall M5Stack para calcular la velocidad midiendo la frecuencia a la que un imán pasa sobre el sensor, asegurando un seguimiento de velocidad preciso y consistente.
  • Mecanismo antivibración: un algoritmo antivibración incorporado evita que se activen múltiples señales causadas por velocidad lenta de las ruedas o baches en la carretera, mejorando el mecanismo antivibración. fuerte>precisión de la indicación de velocidad.
  • Diseño liviano: Con el compacto y liviano M5StickC Plus 2 como controlador, el sistema se adapta perfectamente a las bicicletas, ocupando un espacio mínimo y brindando una funcionalidad robusta.

   

Instalación y Operación

Precondición

Dependencia del software: Arduino IDE, etc. Requisitos de hardware: cable USB-C, M5StickCPlus2, Unidad de efecto Hall, etc. Dependencias: biblioteca M5StickCPlus2, biblioteca Arduino, etc.

Instalación de Dependencias

1. Después de instalar el IDE de Arduino, abra el menú Configuración, pegue el enlace de la placa de desarrollo M5 en el campo correspondiente y haga clic en Aceptar para guardar los cambios.

2. Abre Herramientas->Placa->Administrador de Placas

3. Busque M5Stack en Arduino Library Manager e instálelo. Como ya está instalado en este sistema, no repetiré el proceso de instalación.

4. Seleccione la versión de desarrollo, Herramientas->Placa->M5Stack Arduino->M5StickCPlus2

5. A continuación, instale la biblioteca M5StickCPlus2 seleccionando Herramientas -> Administrar bibliotecas, buscando 'M5StickCPlus2' y haciendo clic en Instalar. Si la biblioteca ya está instalada, se omitirá el proceso de instalación.

Razonamiento

1. Primero, obtenemos la unidad de efecto Hall y aprendemos que cada vez que se acerca un imán, el indicador en el pin de salida se enciende y se envía una señal eléctrica desde el pin I.

2. Primero, comenzamos por definir los pines receptores de las señales eléctricas del sensor Hall.

#define WHEEL_CIRCUMFERENCE 2000 // Circunferencia del neumático en mm
#define HALL_PIN 33 // Pines del sensor Hall
#define DEBOUNCE_TIME 50 // Tiempo de tramado en milisegundos

#define INPUT_PIN 26
        

 3. Inicializando la pantalla 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. Diseño antivibración: al detectar el intervalo entre señales eléctricas del sensor Hall, podemos determinar si se han producido detecciones repetidas.

contador int = 0;  //Registra el número de rotaciones de neumáticos.
lastPulseTime largo sin firmar = 0;  // Hora del último pulso detectado
lastDisplayTime largo sin firmar = 0;  // La última vez que se mostró la actualización
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 && (hora actual - última hora de pulso > DEBOUNCE_TIME)) {
    contador++;  // El aumento del recuento indica una rotación de neumático.
    últimotiempodepulso = tiempoactual;  // Actualizar la hora del último pulso
  }
        

 

5. La clave para obtener la velocidad es calcularla midiendo el intervalo de tiempo entre dos señales y combinándolo con la circunferencia de la rueda, luego mostrando el resultado en la pantalla del 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;
  }
        

 

Compilar y Ejecutar

 1. Primero, descargue el archivo zip. Una vez que se complete la descarga, descomprímala y abra el speed.ino archivo.

2. Conecte el M5StickC Plus 2 a su computadora usando un cable USB-C. Luego, vaya a Herramientas -> Puerto y seleccione el puerto correcto.

3. Haga clic en Compilar y, una vez completada la compilación, haga clic en Cargar.

Exhibición de Proyectos

 

 

Publicación anterior
Siguiente publicación

Deja un comentario

Todos los comentarios del blog se revisan antes de publicarlos.

Alguien compró recientemente un

¡Gracias por suscribirte!

¡Este correo electrónico ha sido registrado!

Compra el look

Elija opciones

Editar opción
Notificación de nuevo disponible
this is just a warning
Acceso
Carro de la compra
0 elementos
RuffRuff App RuffRuff App by Tsun