Table des matières:

Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle : 7 étapes (avec images)
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle : 7 étapes (avec images)

Vidéo: Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle : 7 étapes (avec images)

Vidéo: Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle : 7 étapes (avec images)
Vidéo: Ergomètre les écrans de l'application ERGZONE, How to use ErgZone: basic screens and settings 2024, Novembre
Anonim
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle

Le cardio-entraînement est ennuyeux, en particulier lorsque l'on fait de l'exercice à l'intérieur. Plusieurs projets existants tentent d'atténuer cela en faisant des trucs sympas comme coupler l'ergomètre à une console de jeu, ou même simuler une vraie balade à vélo en VR. Aussi excitants qu'ils soient, techniquement, ils n'aident pas vraiment: l'entraînement est toujours ennuyeux. Au lieu de cela, j'aimerais pouvoir simplement lire un livre ou regarder la télévision pendant l'entraînement. Mais ensuite, il est difficile de maintenir un rythme soutenu.

L'idée, ici, est de se concentrer sur ce dernier problème et de fournir une rétroaction directe, indiquant si votre niveau actuel de formation est assez bon ou si vous devriez faire plus d'efforts. Cependant, le niveau « assez bon » variera non seulement par personne, mais aussi dans le temps (à long terme, au fur et à mesure que vous vous améliorez, mais aussi au cours d'une séance d'entraînement: par exemple, il est presque impossible d'aller à toute vitesse avant d'avoir réchauffé). Par conséquent, l'idée derrière ce projet est simplement d'enregistrer a) la course précédente et b) la meilleure course (alias highscore), puis de fournir un retour direct sur la façon dont vous vous en sortez actuellement par rapport à ces courses.

Si cela semble un peu abstrait, passez à l'étape 7 pour plus de détails sur ce que l'affichage terminé affichera

Un autre objectif de ce projet est de garder les choses vraiment simples et bon marché. Selon l'endroit où vous commandez vos pièces, vous pouvez réaliser ce projet pour environ 5 $ (ou environ 30 $ lors de la commande auprès de vendeurs nationaux premium), et si vous avez déjà joué avec l'environnement Arduino, il y a de fortes chances que vous ayez déjà avoir la plupart ou toutes les pièces dont vous avez besoin.

Étape 1: Liste des pièces

Liste des pièces
Liste des pièces

Passons en revue la liste des choses dont vous avez besoin:

Un microprocesseur compatible Arduino

Pratiquement tous les Arduino vendus au cours des dernières années feront l'affaire. La variante exacte (Uno / Nano / Pro Mini, 8 ou 16 MHz, 3.3. ou 5V) n'a pas d'importance. Cependant, vous aurez besoin d'un processeur ATMEGA328 ou mieux, car nous utiliserons près de 2k de RAM et 1k d'EEPROM. Si vous connaissez les tenants et aboutissants du monde Arduino, je vous recommande d'utiliser un Pro Mini à 3,3 V, car il sera le moins cher et le plus économe en batterie. Si vous êtes (relativement) nouveau sur Arduino, je recommande un "Nano" car il offre les mêmes fonctionnalités qu'un "Uno" dans un boîtier plus petit et moins cher.

Notez que cette instructable ne vous expliquera pas les bases. Vous devez au moins avoir installé le logiciel Arduino et savoir comment connecter votre Arduino et télécharger un croquis. Si vous n'avez aucune idée de ce dont je parle, lisez d'abord ces deux didacticiels simples: Premièrement, deuxièmement.

Un écran OLED 128*64 pixels SSD1306 (variante I2C, c'est-à-dire quatre broches)

C'est l'un des écrans les moins chers et les plus faciles disponibles aujourd'hui. D'accord, c'est petit, mais assez bon. Bien sûr, si vous avez déjà un écran de résolution similaire ou supérieure, il sera possible de l'utiliser à la place, mais cette instructable est écrite pour un SSD1306.

  • Une "planche à pain sans soudure" et du fil de liaison, pour construire votre prototype
  • Un condensateur en céramique de 100 nF (peut être nécessaire ou non; voir l'étape 4)
  • Soit des pinces crocodiles, soit un aimant, un interrupteur à lames et du câble (voir étape 4)
  • Une LED rouge et une LED verte, chacune (facultatif; voir l'étape 5)
  • Deux résistances de 220Ohm (si vous utilisez les LED)
  • Un bouton poussoir (également en option)
  • Une batterie adaptée (voir étape 6)

Étape 2: connexion de l'écran

Connexion de l'écran
Connexion de l'écran

Comme première chose, nous allons connecter l'écran à l'Arduino. Des instructions détaillées sont disponibles. Cependant, le SSD1306 est vraiment facile à brancher:

  1. Affichage VCC -> Arduino 3.3V ou 5V (l'un ou l'autre fera l'affaire)
  2. Afficher Gnd -> Arduino Gnd
  3. Affichage SCL -> Arduino A5
  4. Affichage SCA -> Arduino A4

Ensuite, dans votre environnement Arduino, accédez à Sketch-> Inclure la bibliothèque-> Gérer les bibliothèques et installez "Adafruit SSD1306". Malheureusement, vous devrez éditer la bibliothèque afin de la configurer pour la variante 128*64 pixels: localisez votre dossier "libraries" arduino et éditez "Adafruit_SSD1306/Adafruit_SSD1306.h". Recherchez "#define SSD1306_128_32", désactivez cette ligne et activez "#define SSD1306_128_64", à la place.

À ce stade, vous devez charger File->Examples->Adafruit SSD1306->ssd1306_128x64_i2c afin de tester que votre écran est correctement connecté. Notez que vous devrez peut-être ajuster l'adresse I2C. 0x3C semble être la valeur la plus courante.

En cas de problème, reportez-vous aux instructions plus détaillées.

Étape 3: Téléchargez le croquis

Si tout a fonctionné jusqu'à présent, il est maintenant temps de télécharger le croquis réel sur votre Arduino. Vous trouverez une copie du croquis ci-dessous. Pour une version potentiellement plus récente, reportez-vous à la page du projet github. (Puisqu'il s'agit d'un croquis à un seul fichier, il suffit de copier le fichier erogmetrino.ino dans votre fenêtre Arduino).

Si vous avez dû modifier l'adresse I2C à l'étape précédente, vous devrez faire le même ajustement, encore une fois, maintenant, dans la ligne commençant par "display.begin".

Après le téléchargement, vous devriez voir des zéros apparaître sur votre écran. Nous examinerons la signification des différentes sections de l'affichage, une fois que tout le reste sera connecté.

Notez qu'au tout premier démarrage, l'affichage sera plutôt lent à s'allumer (cela peut prendre jusqu'à dix secondes environ), car le croquis mettra d'abord à zéro toutes les données stockées dans l'EEPROM.

Étape 4: connexion de l'ergomètre

Connexion de l'ergomètre
Connexion de l'ergomètre

Cette étape ne peut pas vraiment être décrite de manière universelle, car tous les ergomètres ne sont pas identiques. Cependant, ils ne sont pas tous différents non plus. Si votre ergomètre comprend un affichage électronique de la vitesse, il doit avoir un capteur électronique pour détecter les révolutions des pédales, ou un volant (éventuellement interne), quelque part. Dans de nombreux cas, cela consistera simplement en un aimant passant à proximité d'un interrupteur à lames (voir aussi, ci-dessous). Chaque fois que l'aimant passe, l'interrupteur se ferme, signalant un tour à l'affichage de la vitesse.

La première chose que vous devez faire est d'examiner l'affichage de la vitesse sur votre ergomètre pour les câbles entrants. Si vous trouvez un câble à deux fils venant quelque part à l'intérieur de l'ergomètre, vous avez presque certainement trouvé la connexion au capteur. Et avec un peu de chance, vous pouvez simplement le débrancher et le connecter à votre Arduino avec des pinces crocodiles (je vous dirai à quelles broches vous connecter dans une minute).

Cependant, si vous ne trouvez pas un tel câble, si vous n'êtes pas sûr d'avoir trouvé le bon ou si vous ne pouvez pas le déconnecter sans endommager quoi que ce soit, vous pouvez simplement coller un petit aimant sur l'une des pédales et fixer un interrupteur à lames au cadre de votre éromètre., de sorte que l'aimant passera à côté de lui de très près. Connectez deux fils au commutateur et conduisez-les à votre Arduino.

Connectez les deux fils (que ce soit les vôtres ou ceux d'un capteur existant) iront à Arduino Gnd et à la broche Arduino D2. Si vous en avez un sous la main, connectez également le condensateur 100nF entre les broches D2 et Gnd pour un "anti-rebond". Cela peut être nécessaire ou non, mais aide à stabiliser les lectures.

Une fois terminé, il est temps de mettre votre Arduino sous tension et de monter sur le vélo pour un premier test rapide. Le nombre en haut à gauche devrait commencer à afficher une mesure de vitesse. Si cela ne fonctionne pas, vérifiez tout le câblage et assurez-vous que l'aimant est suffisamment proche du commutateur à lames. Si la mesure de la vitesse semble constamment trop élevée ou trop faible, ajustez simplement la définition "CM_PER_CLICK" près du haut de l'esquisse (remarque: l'esquisse utilise des noms métriques, mais aucune unité n'est affichée ou enregistrée, n'importe où, alors ignorez cela, et fournir 100 000e de mile par clic).

Étape 5: LED d'état rapide en option

LED d'état rapide en option
LED d'état rapide en option

Les LED décrites dans cette étape sont facultatives, mais intéressantes: si vous voulez vraiment lire un livre / regarder la télévision pendant l'exercice, vous ne voulez pas trop regarder l'écran. Mais deux LED de couleurs différentes seront facilement perceptibles en vision périphérique, et suffiront à vous donner une idée approximative de la façon dont vous vous débrouillez.

  • Connectez la première LED (rouge) à la broche D6 (la branche la plus longue de la LED va à l'Arduino). Connectez la branche courte de la LED à Gnd via une résistance de 220 Ohms. Cette LED s'allumera lorsque vous êtes 10% ou plus en dessous de votre meilleure vitesse dans la phase actuelle de l'entraînement. Il est temps de faire un peu plus d'efforts !
  • Connectez la deuxième LED (verte) à la broche D5, à nouveau avec une résistance à Gnd. Cette LED s'allumera lorsque vous serez à moins de 1% ou au-dessus de votre meilleur run. Tu t'en sors bien!

Vous voulez que les LED s'allument en fonction de votre performance par rapport à votre course précédente, ou d'une vitesse moyenne arbitraire ? Eh bien, connectez simplement un bouton-poussoir entre la broche D4 et Gnd. En utilisant ce bouton, vous pouvez basculer la référence entre "votre meilleure course", "votre course précédente" ou "votre vitesse actuelle". Une petite lettre "P" ou "C" dans le coin inférieur gauche signifiera les deux derniers modes.

Étape 6: Alimenter l'affichage de votre ergomètre

Alimenter l'affichage de votre ergomètre
Alimenter l'affichage de votre ergomètre

Il existe de nombreuses façons d'alimenter votre écran, mais je vais en souligner deux qui semblent plutôt plus pratiques que d'autres:

  1. Lorsque vous utilisez un Arduino Uno ou Nano, vous souhaiterez probablement l'alimenter à l'aide d'une banque d'alimentation USB avec indication de batterie faible intégrée.
  2. Lorsque vous utilisez un Arduino Pro Mini @ 3,3 V (ma recommandation pour les utilisateurs avancés), vous pouvez l'alimenter directement à partir d'une seule batterie LiPo ou de trois cellules NiMH. Comme l'ATMEGA tolère des tensions d'alimentation jusqu'à 5,5 V, vous pouvez le connecter directement à "VCC/ACC", en contournant le régulateur de tension embarqué. Dans cette configuration, il y aura également un avertissement de "batterie faible" à environ 3,4 V, sans aucun matériel supplémentaire (affiché dans le coin inférieur droit). Comme on peut s'attendre à ce que l'ATMEGA fonctionne correctement, au moins jusqu'à 3,0 V environ, cela devrait vous laisser suffisamment de temps pour terminer votre unité d'entraînement avant de la recharger.

Étape 7: Utilisation de l'affichage de votre ergomètre

Utilisation de l'affichage de votre ergomètre
Utilisation de l'affichage de votre ergomètre
Utilisation de l'affichage de votre ergomètre
Utilisation de l'affichage de votre ergomètre

Examinons de plus près les différents chiffres sur votre écran. Le plus grand nombre en haut à gauche est simplement votre vitesse actuelle, et le plus grand nombre en haut à droite est la distance totale de votre entraînement actuel.

La ligne suivante est votre vitesse moyenne depuis le début de l'entraînement (à gauche) et le temps écoulé depuis le début de l'entraînement (à droite). Notez que le chronométrage est arrêté pendant que le vélo est à l'arrêt.

Jusqu'ici banal. Les deux autres lignes sur le côté droit sont là où cela devient intéressant: elles comparent votre timing actuel à votre entraînement précédent et à votre meilleur entraînement, respectivement. C'est à dire. un "- 0:01:23" en haut de ces lignes signifiera que vous avez atteint votre distance actuelle 1 minute et 23 secondes plus tôt que lors de votre course précédente. Bon. Une ligne inférieure de "+ 0:00:12" signifie que jusqu'au point actuel, vous avez 12 secondes de retard sur votre meilleur run. (Notez que ces temps différentiels ne seront pas exacts à 100%. Les points de temps sont stockés tous les 0,5 km / miles et interpolés entre eux.) Inévitablement, bien sûr, lors de votre première course, aucune référence de temps n'a encore été enregistrée, et donc les deux lignes ci-dessus afficheront simplement "--:--:--".

Enfin, la zone inférieure gauche de l'écran contient un graphique de votre vitesse au cours de la dernière minute. Cela vous permet de voir d'un coup d'œil si vous roulez régulièrement ou si vous ralentissez. (Notez que cette ligne sera beaucoup plus fluide lors d'un entraînement réel - mais il n'est tout simplement pas facile de maintenir un rythme constant tout en essayant de prendre une photo…) Les lignes horizontales indiquent la vitesse précédente / meilleure que vous avez atteinte près du point actuel de votre précédente formations.

Les LED montées près du sommet comparent votre vitesse actuelle à votre meilleure vitesse pendant cette phase de l'entraînement. Le vert indique que vous êtes à moins de 1% de votre meilleur entraînement, le rouge indique que vous êtes plus de 10% plus lent que votre meilleur entraînement. Lorsque vous voyez le feu rouge, il est temps de redoubler d'efforts. Notez que contrairement aux temps différentiels décrits ci-dessus, ceux-ci se réfèrent uniquement à la partie actuelle de l'entraînement, c'est-à-dire qu'il est possible que vous soyez en retard en temps absolu, mais le vert indique que vous rattrapez votre retard, et vice versa.

La vitesse de référence utilisée pour les deux LED peut être modifiée à l'aide du bouton poussoir. Une pression le fera passer du meilleur à l'entraînement enregistré précédent (une petite lettre "P" apparaîtra en bas à gauche). Une autre pression et votre vitesse actuelle au moment de la pression sur le bouton deviendra la nouvelle vitesse de référence (une petite lettre "C" apparaîtra). Ce dernier est particulièrement utile lors de votre premier entraînement avec votre nouvel affichage d'ergomètre, lorsqu'aucune référence n'a encore été enregistrée.

Une fois votre entraînement terminé, débranchez simplement la batterie. Votre formation a déjà été enregistrée dans l'EEPROM interne de votre Arduino.

Comme vous pouvez le voir, j'ai fini par souder mon prototype. Signe certain que j'ai aimé le résultat, moi-même. J'espère que vous le trouverez utile aussi. Bon exercice !

Conseillé: