Table des matières:

Simulateur de vélo avec réglage de la vitesse en temps réel : 5 étapes
Simulateur de vélo avec réglage de la vitesse en temps réel : 5 étapes

Vidéo: Simulateur de vélo avec réglage de la vitesse en temps réel : 5 étapes

Vidéo: Simulateur de vélo avec réglage de la vitesse en temps réel : 5 étapes
Vidéo: Les différentes façons de descendre de son vélo 2024, Novembre
Anonim
Simulateur de vélo avec réglage de la vitesse en temps réel
Simulateur de vélo avec réglage de la vitesse en temps réel

Ce projet utilise un interrupteur magnétique pour créer un compteur de vitesse et contrôler la vitesse vidéo des vidéos de cyclisme à la première personne sur YouTube ou d'autres médias. L'Arduino calcule le mph, puis utilise ces informations pour simuler une pression sur un bouton de l'ordinateur. Cette pression sur le bouton, associée à une extension Google Chrome, accélère ou ralentit la vidéo en fonction du changement de vitesse. Il a une configuration matérielle de base que ceux qui sont débutants en Arduino peuvent facilement créer eux-mêmes.

Le code du compteur de vitesse est basé sur ce projet:

Liste du matériel:

1. Arduino Leonardo

2. Câble micro USB (doit être capable de transférer des fichiers et < 3 pieds)

3. Interrupteur à lames magnétiques

4. Résistance 10k Ohm

5. Fil de calibre 22 (< 4 pi)

6. Fer à souder

7. Soudure

8. Ruban électrique

9. Cravates zippées

10. Support de vélo stationnaire

11. Vélo

Étape 1: Téléchargez le logiciel approprié sur votre ordinateur

1. IDE Arduino

2. Contrôleur de vitesse vidéo (extension de navigateur Web)

une. Google Chrome

b. Firefox

Étape 2: Matériel

Matériel
Matériel
Matériel
Matériel
Matériel
Matériel

Toutes les connexions doivent être soudées ensemble et recouvertes de ruban isolant. L'Arduino peut être monté sur le vélo à l'aide d'un boîtier en plastique inclus avec l'Arduino (lié dans la liste des pièces ci-dessus). Ceci est important car si le métal du vélo est en contact direct avec les broches, cela pourrait créer des connexions indésirables. L'étui a également des trous qui facilitent la fermeture éclair de l'étui au vélo. Le fil de calibre 22 doit être enroulé le long du cadre du vélo et fixé avec du ruban adhésif ou des attaches zippées. Assurez-vous d'éviter d'enrouler le fil à des endroits où il pourrait se coincer dans les mécanismes en mouvement.

Étape 3: placez le vélo sur un support de vélo stationnaire

Fixez le vélo dans le support pour vélo stationnaire et assurez-vous qu'il est suffisamment proche de votre ordinateur pour que le cordon micro-USB atteigne votre ordinateur. Assurez-vous également que la distance de visualisation est appropriée pour pouvoir voir confortablement l'écran. Un tutoriel sur la façon de placer votre vélo en toute sécurité sur le support peut être trouvé ici.

Étape 4: Téléchargez et testez le code Arduino

Télécharger et tester le code Arduino
Télécharger et tester le code Arduino

Si vous êtes nouveau sur Arduino IDE, une page d'introduction peut être trouvée ici. Il est important de noter que le Leonardo nécessite un câble micro-USC pour télécharger qui a des capacités de transfert de fichiers. De nombreux câbles micro-USB sont utilisés uniquement pour le chargement et ceux-ci ne fonctionneront pas. Une fois l'Arduino Leonardo reconnu par l'ordinateur, copiez-collez et téléchargez le code suivant:

//Ce code trouve la vitesse d'un vélo et la convertit en pression sur le clavier de l'ordinateur

//calculs

//rayon du pneu ~ 13,5 pouces //circonférence = pi*2*r = ~ 85 pouces // vitesse max de 35 mph = ~ 616 pouces/seconde // max rps = ~ 7,25

#comprendre

#define reed A0//pin connecté au commutateur de lecture

//variables de stockage

int ReedVal; minuterie longue; // temps entre une rotation complète (en ms) float mph; rayon du flotteur = 13,5; // rayon du pneu (en pouces) circonférence du flotteur; float vprécédent; taux flottant;

int maxReedCounter = 100; // temps min (en ms) d'une rotation (pour anti-rebond)

int reedCounter;

void setup(){

ReedCounter = maxReedCounter; circonférence = 2*3,14*rayon; pinMode(reed, INPUT); Keyboard.begin(); // CONFIGURATION DE LA MINUTERIE - l'interruption de la minuterie permet des mesures chronométrées précises du commutateur à lames // pour plus d'informations sur la configuration des minuteries arduino, voir https://arduino.cc/playground/Code/Timer1 cli(); // arrêter les interruptions

//définir l'interruption du timer1 à 1kHz

TCCR1A = 0;// mettre tout le registre TCCR1A à 0 TCCR1B = 0; // idem pour TCCR1B TCNT1 = 0; // régler le compteur de minuterie pour des incréments de 1 kHz OCR1A = 1999;// = (1/100) / ((1/(16*10^6))*8) - 1 // activer le mode CTC TCCR1B |= (1 < < WGM12); // Définir le bit CS11 pour 8 pré-échelonneurs TCCR1B |= (1 << CS11); // activer l'interruption de comparaison de minuterie TIMSK1 |= (1 << OCIE1A); sei();//autoriser les interruptions //FIN DE LA CONFIGURATION DU MINUTEUR Serial.begin(9600); }

ISR(TIMER1_COMPA_vect) {//Interruption à une fréquence de 1kHz pour mesurer le commutateur Reed

reedVal = digitalRead(reed);//obtenir la valeur de A0 si (reedVal){//si le commutateur Reed est fermé si (reedCounter == 0){//min le temps entre les impulsions s'est écoulé vprevious = mph; retard (500); mph = (56,8*float(circonférence))/float(timer);//calculer les miles par heure timer = 0;//reedcounter reedCounter = maxReedCounter;//reedCounter } else{ if (reedCounter > 0){// ne laissez pas reedCounter devenir négatif reedCounter -= 1;//décrémenter reedCounter } } } else{//si le commutateur Reed est ouvert if (reedCounter > 0){//ne laissez pas reedCounter devenir négatif reedCounter -= 1;/ /decrement reedCounter } } if (timer > 2000){ mph = 0;//si aucune nouvelle impulsion du commutateur Reed n'est toujours présente, régler mph à 0 vprevious = 0; } else{ timer += 1;//incrémenter le timer } }

void controlComp(){

if (vprevious mph) // Ralentir la vitesse de la vidéo { Keyboard.press('s'); Keyboard.releaseAll(); retard (750); } if (vprevious == mph) //ne rien faire {; } } void loop(){ //print mph deux fois par seconde Serial.print("VPrevious:"); Serial.print("\t"); Serial.println(vprécédent);

Serial.print("MPH:");

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

Une fois le code téléchargé avec succès, ouvrez le moniteur série. En l'absence de mouvement de la roue arrière, le « MPH » et le « VPrevious » devraient indiquer 0,00. Faites tourner la roue pour qu'elle accélère de quelques tours puis ralentisse. Le moniteur doit lire la vitesse et le type d pour l'accélération et s pour la décélération. Si aucune valeur n'apparaît lorsque la roue est tournée, l'aimant peut ne pas être détecté par le commutateur à lames. Assurez-vous que l'aimant est suffisamment puissant en écoutant un bruit d'arrêt *clink* lorsque l'aimant passe l'interrupteur.

Étape 5: Configurer le contrôleur YouTube

Configurer le contrôleur YouTube
Configurer le contrôleur YouTube

La dernière étape consiste à afficher les vidéos YouTube que vous souhaitez utiliser pour suivre sur votre vélo. L'idée est d'avoir des vidéos à la première personne dans lesquelles vous pouvez vous immerger complètement et profiter du paysage tout en faisant du vélo. J'ai respecté une liste de lecture YouTube d'une variété d'options vidéo. Ils vont d'un certain nombre de chaînes qui mettent en ligne des vidéos qui correspondent à ces critères à la première personne. Ce sont aussi des vidéos comme voler à travers les nuages et des voyages en train à travers le pays pour une variété d'aventures à la première personne.

Conseillé: