Tabla de contenido:

Simulador de bicicleta con ajuste de velocidad en tiempo real: 5 pasos
Simulador de bicicleta con ajuste de velocidad en tiempo real: 5 pasos

Video: Simulador de bicicleta con ajuste de velocidad en tiempo real: 5 pasos

Video: Simulador de bicicleta con ajuste de velocidad en tiempo real: 5 pasos
Video: cómo usar los cambios de tu bici! ciclismo de ciudad 2024, Noviembre
Anonim
Simulador de bicicleta con ajuste de velocidad en tiempo real
Simulador de bicicleta con ajuste de velocidad en tiempo real

Este proyecto utiliza un interruptor de lengüeta magnético para crear un velocímetro y controlar la velocidad de video de videos de ciclismo en primera persona en YouTube u otros medios. El Arduino calcula la mph y luego usa esa información para simular la presión de un botón de la computadora. La pulsación de este botón, junto con una extensión de Google Chrome, acelera o ralentiza el vídeo en función del cambio de velocidad. Tiene una configuración básica de hardware que aquellos que son principiantes en Arduino pueden crear fácilmente por su cuenta.

El código del velocímetro se basa en este proyecto:

Lista de hardware:

1. Arduino Leonardo

2. Cable micro USB (debe ser capaz de transferir archivos y <3 pies)

3. Interruptor de lengüeta magnético

4. Resistencia de 10k ohmios

5. Cable de calibre 22 (<4 pies)

6. Soldador

7. Soldar

8. Cinta aislante

9. Cremalleras

10. Soporte de bicicleta estacionario

11. Bicicleta

Paso 1: descargue el software relevante en su computadora

1. IDE de Arduino

2. Controlador de velocidad de video (extensión del navegador web)

una. Google Chrome

B. Firefox

Paso 2: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Todas las conexiones deben soldarse y pegarse con cinta aislante. El Arduino se puede montar en la bicicleta usando una caja de plástico incluida con el Arduino (vinculado en la lista de piezas anterior). Esto es importante porque si el metal de la bicicleta está en contacto directo con los pines, podría crear conexiones no deseadas. El estuche también tiene orificios que facilitan el atar con cremallera el estuche a la bicicleta. El cable de calibre 22 debe enrollarse a lo largo del cuadro de la bicicleta y asegurarse con cinta o bridas. Asegúrese de evitar enrollar el cable en cualquier lugar donde pueda quedar atrapado en los mecanismos en movimiento.

Paso 3: coloque la bicicleta en un soporte fijo para bicicletas

Asegure la bicicleta en el soporte para bicicletas estacionario y asegúrese de que esté lo suficientemente cerca de su computadora para que el cable micro-USB llegue a su computadora. Además, asegúrese de que la distancia de visualización sea adecuada para poder ver la pantalla cómodamente. Aquí puede encontrar un tutorial sobre cómo colocar de forma segura su bicicleta en el soporte.

Paso 4: Cargue y pruebe el código Arduino

Cargar y probar el código Arduino
Cargar y probar el código Arduino

Si es nuevo en Arduino IDE, puede encontrar una página de introducción aquí. Es importante tener en cuenta que Leonardo requiere un cable micro-USC para cargar que tenga capacidades de transferencia de archivos. Muchos cables micro-USB se utilizan solo para cargar y no funcionarán. Una vez que la computadora reconozca el Arduino Leonardo, copie y pegue y cargue el siguiente código:

// Este código encuentra la velocidad de una bicicleta y la convierte en presionar el teclado de la computadora

// cálculos

// radio del neumático ~ 13,5 pulgadas // circunferencia = pi * 2 * r = ~ 85 pulgadas // velocidad máxima de 35 mph = ~ 616 pulgadas / segundo // rps máx. = ~ 7,25

#incluir

#define reed A0 // pin conectado al interruptor de lectura

// variables de almacenamiento

int reedVal; temporizador largo; // tiempo entre una rotación completa (en ms) flotador mph; radio de flotación = 13,5; // radio del neumático (en pulgadas) circunferencia de flotación; flotar vprevious; tasa de flotación;

int maxReedCounter = 100; // tiempo mínimo (en ms) de una rotación (para supresión de rebotes)

int reedCounter;

configuración vacía () {

reedCounter = maxReedCounter; circunferencia = 2 * 3,14 * radio; pinMode (lengüeta, ENTRADA); Keyboard.begin (); // CONFIGURACIÓN DEL TEMPORIZADOR: la interrupción del temporizador permite mediciones cronometradas precisas del interruptor de láminas // para obtener más información sobre la configuración de los temporizadores arduino, consulte https://arduino.cc/playground/Code/Timer1 cli (); // detener interrupciones

// establece la interrupción del timer1 a 1kHz

TCCR1A = 0; // establece todo el registro TCCR1A en 0 TCCR1B = 0; // lo mismo para TCCR1B TCNT1 = 0; // establece el conteo del temporizador para incrementos de 1khz OCR1A = 1999; // = (1/1000) / ((1 / (16 * 10 ^ 6)) * 8) - 1 // activa el modo CTC TCCR1B | = (1 < <WGM12); // Establecer el bit CS11 para 8 prescaler TCCR1B | = (1 << CS11); // habilita la interrupción de comparación del temporizador TIMSK1 | = (1 << OCIE1A); sei (); // permitir interrupciones // FIN DE LA CONFIGURACIÓN DEL TEMPORIZADOR Serial.begin (9600); }

ISR (TIMER1_COMPA_vect) {// Interrumpe a una frecuencia de 1 kHz para medir el interruptor de láminas

reedVal = digitalRead (reed); // obtiene el valor de A0 if (reedVal) {// si el interruptor reed está cerrado if (reedCounter == 0) {// ha pasado el tiempo mínimo entre pulsos vprevious = mph; retraso (500); mph = (56.8 * float (circunferencia)) / float (temporizador); // calcular millas por hora timer = 0; // reiniciar el temporizador reedCounter = maxReedCounter; // restablecer reedCounter} else {if (reedCounter> 0) {// no dejes que reedCounter sea negativo reedCounter - = 1; // disminuya reedCounter}}} else {// si el interruptor de lengüeta está abierto if (reedCounter> 0) {// no permitas que reedCounter sea negativo reedCounter - = 1; / / decrement reedCounter}} if (timer> 2000) {mph = 0; // si no hay nuevos pulsos de reed switch-tire está quieto, establezca mph en 0 vprevious = 0; } else {temporizador + = 1; // incremento del temporizador}}

void controlComp () {

if (v mph anterior) // Reducir la velocidad del video {Keyboard.press ('s'); Keyboard.releaseAll (); retraso (750); } if (vprevious == mph) // no hacer nada {; }} void loop () {// imprime mph dos veces por segundo Serial.print ("VPrevious:"); Serial.print ("\ t"); Serial.println (vprevious);

Serial.print ("MPH:");

Serial.print ("\ t"); Serial.println (mph); controlComp (); }

Una vez que el código se haya cargado correctamente, abra el monitor en serie. Sin movimiento de la rueda trasera, las "MPH" y "VPrevious" deben leer 0.00. Gire la rueda para que se acelere durante algunas revoluciones y luego disminuya la velocidad. El monitor debe leer la velocidad y escribir d para aceleración y s para desaceleración. Si no aparecen valores cuando se gira la rueda, es posible que el interruptor de lengüeta no detecte el imán. Asegúrese de que el magnético sea lo suficientemente fuerte escuchando un ruido de * tintineo * cuando el imán pasa el interruptor.

Paso 5: configura el controlador de YouTube

Configurar el controlador de YouTube
Configurar el controlador de YouTube

El último paso es mostrar los videos de YouTube que desea usar para seguir en su bicicleta. La idea es tener videos en primera persona en los que puedas sumergirte por completo y disfrutar del paisaje mientras andas en bicicleta. He compilado una lista de reproducción de YouTube con una variedad de opciones de video. Van desde varios canales que suben videos que coinciden con este criterio en primera persona. También son videos como volar a través de las nubes y viajes en tren a campo traviesa para una variedad de aventuras en primera persona.

Recomendado: