
L'idée de faire passer un joueur voûté dans des jeux informatiques n'est pas nouvelle, Microsoft a déjà longtemps Kinect, toutes sortes de capteurs de Sony, Nintendo, et maintenant aussi des accessoires pour casques de réalité virtuelle qui vous obligent à bouger vos bras et vos jambes pendant le jeu.
Cependant, l'expérience personnelle de l'utilisation de tels appareils a montré que:
1. Vous ne pouvez jouer qu'aux jeux clairement aiguisés par les détecteurs de mouvement. Et qu'en est-il de ceux dont le jeu préféré est "Funny Zombies on the Island of the Innocent", sorti au siècle dernier?
2. Les mouvements dans le jeu ne coïncident pas avec le niveau de charge confortable / nécessaire. Soit vous vous fatiguez rapidement, soit les muscles ne reçoivent pas la bonne charge.
Par conséquent, l'idée m'est venue à l'esprit de connecter le simulateur de sport compact le plus simple (stepper) à un ordinateur et de faire en sorte que l'ordinateur ne me permette de jouer que lorsque j'observe un certain rythme d'exercice.
En conséquence, le premier jour d'utilisation de l'appareil résultant, j'ai pris plus de mesures qu'en un an d'approches irrégulières et lentes vers un simulateur similaire pendant la pause déjeuner, et un mois plus tard, j'ai brisé les arrêts en caoutchouc à la poubelle. Eh bien, je n'ai toujours pas fait de trou dans le sol et je n'ai pas manqué aux voisins en dessous.
Qui se soucie de répéter mon expérience - lisez la suite.
En bref sur son fonctionnement
Lorsque vous marchez sur le stepper, un aimant s'y déplace, fermant et ouvrant le capteur intégré (interrupteur à lames), grâce auquel le nombre de pas est compté et affiché.
Nous allons installer un capteur similaire à côté, le fixer à la carte Arduino et même à l'ordinateur avec un câble USB. Arduino indiquera le programme sur l'ordinateur lorsque vous passerez à l'étape suivante. Si vous ne marchez pas trop fort, le programme demande à Arduino d'attirer d'abord votre attention sur les LED clignotantes (rouge, puis bleue, puis les deux), puis allumez le grincement ennuyeux. Si cela n'aide pas, le programme assombrit l'image sur l'écran de l'ordinateur.
Croyez-moi, cela fonctionne bien. Vous reprenez immédiatement la marche.
Au départ, j'ai essayé de bloquer la souris / le clavier pour punir la faible intensité de l'exercice physique. Mais cela s'est avéré inutile / ennuyeux, il suffit de réduire légèrement le confort de communication avec l'ordinateur, mais pas de bloquer du tout le contrôle.
Expérience et perspectives
J'ai commencé à bouger beaucoup plus, et c'est définitivement un plus. Mais il y a des subtilités.
Un stepper peu coûteux, malheureusement, change ses caractéristiques dans les premières minutes d'utilisation. L'huile dans les amortisseurs se réchauffe, devient plus mince et devient plus facile à déplacer. Il indique même sur ma boîte du stepper qu'il est conçu pour 20 minutes d'utilisation continue.
Le programme est actuellement configuré pour un rythme de chargement. Idéalement, il doit être ajusté manuellement et dans les délais. Mieux encore, selon le capteur de fréquence cardiaque.
De plus, les jambes s'entraînent assez bien. Mais qu'en est-il des mains et de tout le reste? Après tout, les mains sont occupées par le clavier et la souris?
J'ai essayé de libérer mes mains en utilisant les commandes de l'ordinateur en suivant mon regard et ma voix. Eh bien ... Vous pouvez jouer aux échecs comme ça sur un ordinateur, mais je n'ai pas réussi dans un jeu dynamique.
Regarder une vidéo sur le fait d'essayer de jouer sans les mains (en utilisant des programmes que j'ai écrits pour les personnes handicapées)Contrôle vocal dans le jeu:
Contrôle du jeu dans le jeu:
Ainsi, alors que la charge sur les mains est une question ouverte. J'essaierai peut-être de placer des boutons / capteurs de pression / gyroscopes directement sur les poignées des simulateurs.
En général, je pense que les centres de fitness, dans la forme où ils se trouvent actuellement, ont survécu. Le temps sera venu pour les centres de divertissement où l'activité physique sera stimulée par une sorte de divertissement, par exemple des jeux / compétitions informatiques.
En attendant, faisons-le à la maison.
De quoi avons-nous besoin?
1. Un ordinateur surélevé. C'est important. Debout sur le stepper, vous devriez avoir un accès confortable au clavier et à la souris. J'ai construit une étagère sur le mur suédois.
2. Le simulateur "stepper". J'ai pris le «Domyos Mini Stepper Essential» à Decathlon. Mais il a vu un modèle très similaire dans Sportmaster. En général, il semble que tous les steppers fassent selon les mêmes dessins, apportant des changements cosmétiques minimes.
3. Le kit avec la carte Arduino est le plus simple, si seulement il comprend:
- Carte Arduino (dans mon cas - l'analogue chinois d'Arduino Nano)
- Câble USB pour se connecter à un ordinateur
- circuit imprimé et fils
- 2 LED, 2 résistances 220 Ohms, 1 résistance 10 kOhm
Vous pouvez prendre tous ces éléments individuellement.
4. Un transducteur piézoélectrique conçu pour des tensions de 5 volts. Sur mon, il est écrit - HPM-14A.
5. interrupteur miniature à lames souples, par exemple MKA-10110A. Un interrupteur reed plus grand ne fonctionne pas bien ici! Vérifié!
6. long fil à deux fils pour connecter le commutateur à lames dans le simulateur et Arduino
7. un capuchon d'un vieux feutre pour y placer un interrupteur à lames
8. Fer à souder, perceuse, pince à épiler, pistolet à colle, testeur / multimètre.
Instructions étape par étape
1. Ajoutez le commutateur à lames au moteur pas à pas
Pliez doucement l'une des bornes de l'interrupteur à lames, en la tenant avec des pincettes à la base pour que le boîtier en verre ne se fissure pas lorsqu'il est plié! Je viens de perdre un interrupteur à lames.

Fils de soudure:

Nous mettons l'interrupteur à lames dans le capuchon du stylo-feutre et l'installons, de la même manière que le standard, mais de l'autre côté. Régler immédiatement au bon endroit ne fonctionnera pas. Le bon endroit est lorsque l'interrupteur à lames fonctionne exactement au milieu de l'étape, lorsque la pédale droite affleure la gauche. Par conséquent, nous le collons d'abord avec du ruban adhésif et le déplaçons à gauche et à droite jusqu'à ce que nous trouvions la bonne position (nous avons besoin d'un testeur pour voir quand le contact se ferme-s'ouvre):

Ensuite, nous fixons enfin le capuchon avec le capteur, en versant la colle du pistolet à colle. Jusqu'à ce que la colle ait finalement pris, vous pouvez toujours ajuster légèrement la position du capteur.
Il est logique d'équiper les fils du capteur à travers le trou percé de connecteurs facilement détachables (tirés d'un ensemble avec Arduino). Puis, plusieurs fois, il a touché le fil avec son pied, ce qui l'a sauvé d'une falaise.

2. Nous assemblons le circuit avec la carte Arduino

Pour moi, cela s'est transformé en une telle imbrication de fils:

3. Remplissez le programme en Arduino
Code de programme// , 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; } }
Nous vérifions que cela fonctionne - dans le moniteur série, qui se trouve dans l'environnement de développement Arduino, vous pouvez voir une gamme croissante de zéros et de uns lorsque vous montez sur le simulateur.

Et si vous conduisez en nombre et les envoyez à Arduino, alors il devrait réagir comme ceci:
5 - Les LED sont éteintes
4 - s'allume en rouge
3 - rouge clignotant
2 - bleu clignotant
1 - rouge, puis bleu clignote
0 - Le couineur couine. Les deux diodes sont allumées.
4. Exécutez le programme sur l'ordinateur
Le programme DimForce.exe peut être pris sur un github (y compris sous forme de codes sources):
https://github.com/MastaLomaster/DimForceActuellement, le programme est câblé qu'Arduino est connecté via le port COM9. Si ce n'est pas le cas avec vous, configurez le port Arduino en COM9. Ou recompilez le programme en corrigeant la ligne du fichier DFSerial.cpp qu'il contient:
Port = CreateFile(L"\\\\.\\COM9", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
Lorsque vous montez sur le simulateur, dans la fenêtre du programme, zéro devrait changer d'un et vice versa:

Si vous arrêtez de faire les cent pas, les LED devraient clignoter de façon plus agaçante, puis le grinceur s'allumera et, à la fin, l'écran s'assombrira un peu.
Ne t'arrête pas! Soyez en bonne santé!