Conectamos el simulador deportivo a la computadora y dejamos de engordar mientras jugamos juegos de computadora



La idea de lograr que un jugador encubierto se mueva a los juegos de computadora no es nueva, Microsoft ya ha tenido Kinect durante mucho tiempo, todo tipo de sensores de Sony, Nintendo, y ahora también accesorios para cascos de realidad virtual que requieren que muevas tus brazos y piernas durante el juego.

Sin embargo, la experiencia personal al usar tales dispositivos ha demostrado que:

1. Puedes jugar solo aquellos juegos que están claramente definidos por sensores de movimiento. ¿Y qué hay de aquellos cuyo juego favorito es "Funny Zombies en la Isla de los Inocentes", lanzado en el siglo pasado?
2. Los movimientos en el juego no coinciden con el nivel de carga cómodo / necesario. O te cansas rápidamente o los músculos no obtienen la carga correcta.

Por lo tanto, se me ocurrió la idea de conectar el simulador deportivo compacto más simple (paso a paso) con una computadora y hacer que la computadora me permita jugar solo cuando observo un cierto ritmo de ejercicio.

Como resultado, el primer día de usar el dispositivo resultante, tomé más pasos que en un año de aproximaciones lentas irregulares a un simulador similar durante la pausa para el almuerzo, y un mes después rompí los topes de goma en la basura. Bueno, todavía no hice un agujero en el piso y no les fallé a los vecinos de abajo.

¿A quién le importa repetir mi experiencia? Sigue leyendo.

Brevemente sobre cómo funciona


Cuando pisa el paso a paso, un imán se mueve en él, cerrando y abriendo el sensor incorporado (interruptor de láminas), debido a lo cual se cuenta y muestra el número de pasos.

Instalaremos un sensor similar al lado, lo conectaremos a la placa Arduino e incluso a la computadora con un cable USB. Arduino le dirá al programa en la computadora cuando dé el siguiente paso. Si no toma demasiados pasos, el programa le indica a Arduino que primero llame su atención sobre los LED parpadeantes (rojo, luego azul, luego ambos), y luego encienda el molesto chirrido. Si esto no ayuda, el programa oscurece la imagen en la pantalla de la computadora.

Créeme, esto funciona bien. Inmediatamente vuelves a caminar.

Inicialmente, traté de bloquear el mouse / teclado como castigo por la baja intensidad del ejercicio físico. Pero esto resultó ser innecesario / molesto, es suficiente para reducir ligeramente la comodidad de la comunicación con la computadora, pero no para bloquear el control en absoluto.

Experiencia y perspectivas


Comencé a moverme mucho más, y esto definitivamente es una ventaja. Pero hay sutilezas.

Un stepper económico, desafortunadamente, cambia sus características en los primeros minutos de uso. El aceite en los amortiguadores se calienta, se vuelve más delgado y se hace más fácil de mover. Incluso dice en mi caja del stepper que está diseñado para 20 minutos de uso continuo.

El programa está configurado actualmente para un ritmo de carga. Idealmente, debe ajustarse tanto manualmente como a tiempo. Mejor aún, dependiendo del sensor de frecuencia cardíaca.

Además, las piernas entrenan bastante bien. ¿Pero qué hay de las manos y todo lo demás? Después de todo, ¿las manos están ocupadas por el teclado y el mouse?

Traté de liberar mis manos usando los controles de la computadora siguiendo mi mirada y mi voz. Bueno ... Puedes jugar al ajedrez así en una computadora, pero no tuve éxito en un juego dinámico.

Mire un video sobre cómo intentar jugar sin manos (usando los programas que escribí para personas con discapacidades)
Control de voz en el juego:


Control del juego en el juego:


Entonces, mientras que la carga en las manos es una pregunta abierta. Quizás intentaré colocar botones / sensores de presión / giroscopios directamente en los mangos de los simuladores.

En general, creo que los gimnasios, en la forma en que están ahora, han sobrevivido a sí mismos. Llegará el momento de los centros de entretenimiento donde la actividad física será estimulada por algún tipo de entretenimiento, por ejemplo, juegos de computadora / competencias.

Mientras tanto, hagámoslo en casa.

Que necesitamos


1. Una computadora elevada. Esto es importante De pie en el paso a paso, debe tener un acceso cómodo al teclado y al mouse. Construí un estante en la pared sueca.

2. El simulador "paso a paso". Tomé el "Domyos Mini Stepper Essential" en Decathlon. Pero vio un modelo muy similar en Sportmaster. En general, parece que todos los steppers lo hacen de acuerdo con los mismos dibujos, haciendo cambios cosméticos mínimos.

3. El kit con la placa Arduino es el más fácil, si solo incluye:
- Placa Arduino (en mi caso, el análogo chino de Arduino Nano)
- Cable USB para conectar a una computadora
- placa de circuito y cables
- 2 LED, 2 resistencias 220 Ohms, 1 resistencia 10 kOhm

Puede tomar todos estos elementos individualmente.

4. Un transductor piezoeléctrico clasificado para voltajes de 5 voltios. En mi está escrito: HPM-14A.

5. Interruptor de láminas en miniatura, por ejemplo, MKA-10110A. ¡Un interruptor de láminas más grande no funciona bien aquí! Comprobado!

6. cable largo de dos hilos para conectar el interruptor de láminas en el simulador y Arduino

7. una tapa de un rotulador antiguo para colocar un interruptor de láminas

8. Soldador, taladro, pinzas, pistola de pegamento, probador / multímetro.

Instrucciones paso a paso


1. Agregue el interruptor de láminas al paso a paso


Doble suavemente uno de los terminales del interruptor de láminas, sosteniéndolo con unas pinzas en la base para que la carcasa de vidrio no se agriete cuando se dobla. Acabo de perder un interruptor de láminas.



Cables de soldadura:



Colocamos el interruptor de láminas en la tapa desde el rotulador y lo instalamos, de manera similar al estándar, pero desde el otro lado. Inmediatamente establecido en el lugar correcto no funcionará. El lugar correcto es cuando el interruptor de láminas funciona exactamente en el medio del paso, cuando el pedal derecho está al ras con el izquierdo. Por lo tanto, primero lo pegamos con cinta adhesiva y lo movemos hacia la izquierda y hacia la derecha hasta que encontremos la posición correcta (necesitamos un probador para ver cuándo se cierra-abre el contacto):



Luego finalmente arreglamos la tapa con el sensor, vertiendo pegamento de la pistola de pegamento. Hasta que el pegamento finalmente se haya establecido, aún puede ajustar ligeramente la posición del sensor.

Los cables del sensor, sacados a través del orificio perforado, tienen sentido equiparlos con conectores fácilmente desmontables (tomados de un conjunto con Arduino). Luego, muchas veces tocó el cable con el pie, y esto lo salvó de un acantilado.



2. Montamos el circuito con la placa Arduino




Para mí, esto se convirtió en un entrelazado de cables:



3. Rellene el programa en Arduino


Código del programa
//   ,     int brightnessB=LOW, brightnessR=LOW; int blinkingB=0; int blinkingR=0; int speakerPin=8; int BlueLED=10; int RedLED=11; int freq[]={3830,3038,2550,3038}; int cur_freq=0; int buzzer_value=0; volatile int stepper=0, old_stepper=0; //     pin void step() { stepper=!stepper; Serial.print(stepper); Serial.flush(); } void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(2,INPUT); Serial.begin(9600); //attachInterrupt(0,step,CHANGE); } void loop() { delay (200); // 1.        while(Serial.available()) { switch(Serial.read()) { case '0': //    ,   brightnessB=HIGH; blinkingB=0; brightnessR=HIGH; blinkingR=0; buzzer_value=1; break; case '1': //    . brightnessB=LOW; blinkingB=1; brightnessR=HIGH; blinkingR=1; buzzer_value=0; break; case '2': //   brightnessB=HIGH; blinkingB=1; brightnessR=LOW; blinkingR=0; buzzer_value=0; break; case '3'://   brightnessB=LOW; blinkingB=0; brightnessR=HIGH; blinkingR=1; buzzer_value=0; break; case '4': //   brightnessB=LOW; blinkingB=0; brightnessR=HIGH; blinkingR=0; buzzer_value=0; break; case '5': // . brightnessB=LOW; blinkingB=0; brightnessR=LOW; blinkingR=0; buzzer_value=0; break; } } //      , ,     if(1==blinkingB) { if(HIGH==brightnessB) brightnessB=LOW; else brightnessB=HIGH; } if(1==blinkingR) { if(HIGH==brightnessR) brightnessR=LOW; else brightnessR=HIGH; } digitalWrite(RedLED,brightnessR); digitalWrite(BlueLED,brightnessB); if(1==buzzer_value) { tone(speakerPin, freq[cur_freq], 200); cur_freq++; if(cur_freq>3) {cur_freq=0;} } stepper=digitalRead(2); if(old_stepper!=stepper) { Serial.print(stepper); Serial.flush(); old_stepper=stepper; } } 


Verificamos que funciona: en el Monitor de serie, que se encuentra en el entorno de desarrollo de Arduino, puede ver una línea cada vez mayor de ceros y unos cuando pisa el simulador.



Y si manejas en números y se los envías a Arduino, entonces él debería reaccionar así:

5 - Los LED están apagados
4 - se ilumina en rojo
3 - rojo parpadeante
2 - azul parpadeante
1 - rojo, luego azul parpadea
0 - El chirrido chirria. Ambos diodos están encendidos.

4. Ejecute el programa en la computadora


El programa DimForce.exe puede tomarse en un github (incluso en forma de códigos fuente):
https://github.com/MastaLomaster/DimForce

Actualmente, el programa está cableado que Arduino está conectado a través del puerto COM9. Si este no es su caso, configure el puerto Arduino como COM9. O recompile el programa corrigiendo la línea en el archivo DFSerial.cpp que contiene:

 Port = CreateFile(L"\\\\.\\COM9", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); 

Cuando pisa el simulador, en la ventana del programa, cero debería cambiar en uno y viceversa:



Si detiene el ritmo, los LED deberían parpadear de manera más molesta, y luego el chirrido se encenderá, y al final la pantalla se oscurecerá un poco.

¡No te detengas! ¡Ponte saludable!

Source: https://habr.com/ru/post/es404669/


All Articles