Sommario:

Simulatore di bici con regolazione della velocità in tempo reale: 5 passaggi
Simulatore di bici con regolazione della velocità in tempo reale: 5 passaggi

Video: Simulatore di bici con regolazione della velocità in tempo reale: 5 passaggi

Video: Simulatore di bici con regolazione della velocità in tempo reale: 5 passaggi
Video: Maranza cerca di prendermi la moto 2024, Novembre
Anonim
Simulatore di bici con regolazione della velocità in tempo reale
Simulatore di bici con regolazione della velocità in tempo reale

Questo progetto utilizza un interruttore magnetico a lamella per creare un tachimetro e controllare la velocità video dei video di ciclismo in prima persona su YouTube o altri media. L'Arduino calcola le miglia orarie e quindi utilizza tali informazioni per simulare la pressione di un pulsante del computer. Questa pressione del pulsante, abbinata a un'estensione di Google Chrome, accelera o rallenta il video in base alla variazione di velocità. Ha una configurazione hardware di base che chi è alle prime armi con Arduino può creare facilmente da solo.

Il codice del tachimetro si basa su questo progetto:

Elenco hardware:

1. Arduino Leonardo

2. Cavo micro USB (deve essere in grado di trasferire file e < 3 piedi)

3. Interruttore magnetico reed

4. Resistenza da 10k Ohm

5. Cavo calibro 22 (< 4 piedi)

6. Saldatore

7. Saldare

8. Nastro elettrico

9. Fascette

10. Cavalletto per bicicletta stazionaria

11. Bicicletta

Passaggio 1: scarica il software pertinente sul tuo computer

1. Arduino IDE

2. Controller velocità video (estensione del browser Web)

un. Google Chrome

B. Firefox

Passaggio 2: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Tutte le connessioni devono essere saldate insieme e fissate con nastro isolante. L'Arduino può essere montato sulla bici utilizzando una custodia in plastica inclusa con l'Arduino (collegata nell'elenco delle parti sopra). Questo è importante perché se il metallo della bici è a diretto contatto con i perni, potrebbe creare connessioni indesiderate. La custodia ha anche dei fori che rendono semplice la chiusura della custodia alla bici. Il cavo calibro 22 deve essere avvolto lungo il telaio della bicicletta e fissato con nastro o fascette. Assicurati di evitare di avvolgere il filo in punti in cui può impigliarsi nei meccanismi in movimento.

Passaggio 3: posizionare la bici sul supporto per bici stazionaria

Fissa la bici nel supporto per bici stazionaria e assicurati che sia abbastanza vicino al tuo computer da consentire al cavo micro-USB di raggiungere il tuo computer. Inoltre, assicurati che la distanza di visualizzazione per te sia adatta per poter vedere comodamente lo schermo. Un tutorial su come posizionare in modo sicuro la bicicletta sul cavalletto è disponibile qui.

Passaggio 4: caricare e testare il codice Arduino

Carica e testa il codice Arduino
Carica e testa il codice Arduino

Se non conosci l'IDE di Arduino, puoi trovare una pagina introduttiva qui. È importante notare che il Leonardo richiede un cavo micro-USC per il caricamento con capacità di trasferimento file. Molti cavi micro-USB vengono utilizzati solo per la ricarica e non funzioneranno. Una volta riconosciuto Arduino Leonardo dal computer, copia, incolla e carica il seguente codice:

//Questo codice trova la velocità di una bici e la converte in pressione della tastiera del computer

//calcoli

//raggio pneumatico ~ 13,5 pollici //circonferenza = pi*2*r =~85 pollici //velocità massima di 35mph =~ 616 pollici/secondo //RPS max =~7,25

#includere

#define reed A0//pin collegato all'interruttore di lettura

//variabili di memoria

int reedVal; timer lungo; // tempo tra una rotazione completa (in ms) float mph; raggio del galleggiante = 13,5; // raggio del pneumatico (in pollici) circonferenza del galleggiante; galleggiante vprecedente; tasso variabile;

int maxReedCounter = 100;//min tempo (in ms) di una rotazione (per antirimbalzo)

int contatore di canne;

void setup(){

reedCounter = maxReedCounter; circonferenza = 2*3,14*raggio; pinMode(reed, INPUT); Keyboard.begin(); // IMPOSTAZIONE DEL TIMER- l'interruzione del timer consente misurazioni temporizzate precise dell'interruttore reed //per maggiori informazioni sulla configurazione dei timer arduino vedere https://arduino.cc/playground/Code/Timer1 cli();//stop interrupts

//imposta l'interruzione del timer1 a 1kHz

TCCR1A = 0;// imposta l'intero registro TCCR1A a 0 TCCR1B = 0;// lo stesso per TCCR1B TCNT1 = 0; // imposta il conteggio del timer per incrementi di 1khz OCR1A = 1999;// = (1/1000) / ((1/(16*10^6))*8) - 1 // attiva la modalità CTC TCCR1B |= (1 < < WGM12); // Imposta il bit CS11 per 8 prescaler TCCR1B |= (1 << CS11); // abilita l'interruzione di confronto del timer TIMSK1 |= (1 << OCIE1A); sei();//consenti interruzioni //CONFIGURAZIONE DEL TIMER DI FINE Serial.begin(9600); }

ISR(TIMER1_COMPA_vect) {//Interrompi alla frequenza di 1kHz per misurare l'interruttore reed

reedVal = digitalRead(reed);//ottene il valore di A0 if (reedVal){//se l'interruttore reed è chiuso if (reedCounter == 0){//min il tempo tra gli impulsi è trascorso vprevious = mph; ritardo (500); mph = (56.8*float(circonferenza))/float(timer);//calcola miglia orarie timer = 0;//reimposta timer reedCounter = maxReedCounter;//reset reedCounter } else{ if (reedCounter > 0){// non lasciare che reedCounter diventi negativo reedCounter -= 1;//decrementa reedCounter } } } else{//se l'interruttore reed è aperto if (reedCounter > 0){//non lasciare che reedCounter diventi negativo reedCounter -= 1;/ /decrement reedCounter } } if (timer > 2000){ mph = 0;//se nessun nuovo impulso dall'interruttore reed-pneumatico è fermo, imposta mph a 0 vprevious = 0; } else{ timer += 1;//incrementa il timer } }

void controlComp(){

if (vprecedente mph) //Rallenta la velocità del video { Keyboard.press('s'); Keyboard.releaseAll(); ritardo(750); } if (vprecedente == mph) //non fare nulla {; } } void loop(){ //stampa mph due volte al secondo Serial.print("VPrevious:"); Serial.print("\t"); Serial.println(vprecedente);

Serial.print("MPH:");

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

Una volta che il codice è stato caricato con successo, apri il monitor seriale. Senza movimento della ruota posteriore, "MPH" e "VPrevious" dovrebbero leggere 0.00. Ruotare la ruota in modo che acceleri per alcuni giri e poi rallenti. Il monitor dovrebbe leggere la velocità e digitare d per l'accelerazione e s per la decelerazione. Se non vengono visualizzati valori quando la ruota viene ruotata, il magnete potrebbe non essere rilevato dall'interruttore reed. Assicurati che il magnete sia abbastanza forte ascoltando un rumore di *clink* quando il magnete passa l'interruttore.

Passaggio 5: configura il controller YouTube

Configura il controller di YouTube
Configura il controller di YouTube

Il passaggio finale è visualizzare i video di YouTube che desideri utilizzare per seguirli sulla tua bici. L'idea è di avere video in prima persona in cui puoi immergerti completamente e goderti il paesaggio mentre vai in bicicletta. Ho rispettato una playlist di YouTube di una varietà di opzioni video. Si va da una serie di canali che caricano video che corrispondono a questo criterio in prima persona. Sono anche video come volare tra le nuvole e viaggi in treno attraverso il paese per una varietà di avventure in prima persona.

Consigliato: