» Temas » Ideas de bricolaje »Velocímetro para scooter

Velocímetro para scooter

Traigo a su atención mi próximo manualidadesa saber, el velocímetro para scooter.
El fondo es el siguiente: por el placer de superar la inactividad física, se compró la tabla Rollersurf. Dado que solo hay dos ruedas en el tablero, montar sobre él requiere una sensación de equilibrio, puede "pararse" sobre él solo en movimiento. Después de asegurarme de que después de un movimiento continuo a una distancia de aproximadamente 700 metros, las ruedas parecían atascarse en la arena y el movimiento era muy difícil, recurrí a Internet y a especialistas. Quedó claro que debido a la excesiva suavidad del material de la rueda para mi peso, el material de la rueda está muy caliente y ablandado, aumenta el contacto con la carretera y la mayor viscosidad de la rueda hace que sea difícil de controlar y crear torque. Después de reemplazar las ruedas con un rodillo más duro, las tablas aumentaron significativamente, al igual que la facilidad de operación. En la misma pista larga no se produjo el frenado familiar, la velocidad continuó aumentando, lo que condujo a una caída desagradable.
La idea de medir la velocidad y limitarse en la aceleración surgió, probablemente después de una caída :) Encontré un prototipo de 2014, donde se creó dicho dispositivo, pero para un tipo diferente de tablero, donde el plano de rotación de la rueda no se mueve mucho en relación con el tablero y electrónica se puede colocar en el tablero conectándolo al sensor de la rueda con un cable flexible.
En mi caso, tanto el sensor como la electrónica no deben colocarse en el soporte de la rueda, ya que el soporte (rueda giratoria) gira alrededor de su eje de forma circular en relación con el plano del tablero.
Apariencia de Roller Surf


Implementación La especificación de señal fue seleccionada por BlueTooth debido a la disponibilidad de esta tecnología y su presencia en el reloj inteligente Samsung SM-V700 disponible. El módulo BlueTooth fue seleccionado HC-05, el controlador Arduino Mini Pro, pero posteriormente reemplazado por el controlador desnudo AtMega168A, se seleccionó una batería Li-Pol de 500 mAh para cumplir con las dimensiones de la rueda y el consumo de energía estimado. Como sensor de rotación, se eligió el Hall Sensor SS49E, en contraste con el prototipo, como más estable operativamente. En consecuencia, el boceto fue ligeramente modernizado. El paso de un imán montado en el cubo de la rueda se analiza mediante dos puntos: el primer accionamiento - el imán entra en la zona de sensibilidad - "pelotón" y el segundo accionamiento - el imán sale de la zona de sensibilidad del sensor - "descenso".El controlador cuenta estos eventos dentro de un período de tiempo específico: 1 segundo y envía el número recibido a través del canal de comunicación al dispositivo Android, mientras analiza simultáneamente las señales entrantes. El programa para recibir, mostrar y administrar el módulo se creó en base al prototipo en el entorno de Android Studio. Proporciona algunas mejoras relacionadas con el aumento de la inmunidad al ruido. Al igual que el prototipo, calcula la velocidad y la distancia. La función útil de encender / apagar el "faro", un LED dirigido hacia adelante en movimiento, también se guarda, como parece.
Bloque sin tapa

Visible arriba a la izquierda: LED rojo de protección de inversión de carga, interruptor de carga de trabajo, batería; a continuación: el módulo VT verde, el microcontrolador AtMega168A con terminales de corte al ras está pegado en su parte posterior con la parte superior de la caja.
Tapa de bloque con sensor magnético

Ensamblado con la rueda, el módulo se ve así:
Bloque de ruedas

En la foto puede ver el interruptor de encendido, los contactos para conectar el cargador, en el otro lado de la unidad en la esquina superior - LED - "faro".
El programa prototipo se complementó con la capacidad de emitir señales de sonido y vibración en varios eventos (encender / apagar los faros, una señal de alarma cuando se excede el límite de velocidad máxima especificado).
Pruebas en la mesa: en la foto de abajo, aún no probadas en la carretera, esperando el verano :)
Prueba en la mesa

El proyecto de Android Studio tiene un gran volumen, lo publicaré en algún lugar con un enlace, si hay interés, traigo un boceto con comentarios.
En presencia de interés, estoy listo para compartir ideas, experiencias.
La pregunta \ tema se publica automáticamente en las redes sociales. red del sitio: esté atento a las respuestas allí:

Apto para tema

Temas relacionados

Agrega un comentario

    • sonriesonrisasxaxaokno sabesyahoonea
      jeferascarsetontosisi-siagresivosecreto
      lo sientobailardance2dance3perdónayudabebidas
      pararamigosbuenobuenosilbatodesmayarselengua
      fumaraplaudirllorardeclararburlóndon-t_mentiondescargar
      calorfuriosorisa1mdareuniónMoskingnegativo
      not_ipalomitas de maizcastigarleerasustarasustabuscar
      burlagraciasestoto_clueumnikagudode acuerdo
      malbeeeojo negroblum3ruborpresumiraburrimiento
      censuradocortesíasecreto2amenazarvictoriaYusun_bespectacled
      shokrespektjajajaPrevedbienvenidokrutoyya_za
      ya_dobryiayudantene_huliganne_othodigolpearprohibircerrar
1 comentario
El autor
Boceto de firmware ATMega168A:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int Polarity = -1; // polaridad del pulso de la señal de entrada (en mi caso, negativo
int Treshold = 500; // umbral de activación del pulso de lectura 1/2 Vcc = 512
int CountTurn = 0; // almacena el número de revoluciones para el período contable
int LED = 13; // LED conectado al pin PB5
int InputSignal = A5; // entrada para sensor Hall
int TurnNumber = 0; // número acumulado de revoluciones
int DeltaT = 28; // retraso desde el frente para determinar el final del pulso para estabilidad
bool Tick = falso; // valor inicial, sin marca todavía

configuración nula ()
{
Serial.begin (9600); // para depurar
timer_init_ISR_2Hz (TIMER_DEFAULT); // ¡obtenga un retraso de 1 segundo!
pinMode (LED, SALIDA); // salida de señal a la luz de fondo (faro)
pinMode (InputSignal, INPUT); // entrada para sensor Hall
}

void loop () // aquí procesamos las señales del sensor y el control de los faros
{
if (Tick) // permiso para ejecutar el bloque if en un intervalo de tiempo fijo
// envía el número de revoluciones
{
Serial.println (String (CountTurn) + ";"); // para depuración
Tick ​​= false; // prepara la traza. intervalo de tiempo
CountTurn = 0; // cero la cantidad de revoluciones después de transferir al teléfono inteligente
}

de lo contrario // si la marca aún no ha llegado, acumulamos el número de revoluciones, enciende y apaga el faro
{
// acumulación de revoluciones
if (analogRead (InputSignal) {
delay (DeltaT); // no lea nada todavía
if (analogRead (InputSignal)> Treshold) // ha llegado el borde final
{
CountTurn ++; // acumula el número de revoluciones al llegar al borde de salida
}
}

// control de faros
if (Serial.available ()> 0) // lee el carácter de BTSerial
{
comando char = Serial.read ();
interruptor (comando)
{
caso '0': digitalWrite (LED, BAJO); break; // enciende el faro
caso '1': digitalWrite (LED, ALTO); break; // Apaga el faro
}
}
}
}

void timer_handle_interrupts (int timer)
{
Marque = verdadero;
}

Le recomendamos que lea:

Pásalo por el teléfono inteligente ...