Sommario:
- Passaggio 1: scarica il software pertinente sul tuo computer
- Passaggio 2: hardware
- Passaggio 3: posizionare la bici sul supporto per bici stazionaria
- Passaggio 4: caricare e testare il codice Arduino
- Passaggio 5: configura il controller YouTube
Video: Simulatore di bici con regolazione della velocità in tempo reale: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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
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
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
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:
SIMULATORE DI GIOCHI DI CORSE FAI DA TE -- SIMULATORE F1: 5 passaggi
SIMULATORE DI GIOCHI DI CORSE FAI DA TE || SIMULATORE F1: Ciao a tutti Benvenuti nel mio canale, oggi vi mostrerò come costruisco un "Racing Game Simulator" con l'aiuto di Arduino UNO. questo non è un blog di build, è solo una panoramica e un test del simulatore. Blog di build completo in arrivo
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED - Dashboard Covid19 in tempo reale: 4 passaggi
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED | Dashboard Covid19 in tempo reale: visita il sito Web Techtronic Harsh: http://techtronicharsh.com Ovunque c'è un enorme focolaio del Novel Corona Virus (COVID19). È diventato necessario tenere d'occhio l'attuale scenario di COVID-19 nel mondo. Quindi, essendo a casa, questo è stato il p
Accendimi! un controllo della striscia LED multipiattaforma in tempo reale: 5 passaggi (con immagini)
Accendimi! un controllo della striscia LED multipiattaforma in tempo reale: LightMeUp! è un sistema che ho inventato per controllare una striscia LED RGB in tempo reale, mantenendo bassi i costi e alte le prestazioni. Il server è scritto in Node.js e quindi multipiattaforma. Nel mio esempio, utilizzo un Raspberry Pi 3B per un uso a lungo termine
Switch-it, uscita automatica con misurazione della corrente in tempo reale: 6 passaggi
Switch-it, presa automatica con misurazione della corrente in tempo reale: mi piace molto l'automazione, la capacità di controllare quando deve succedere qualcosa. Questo è ciò che mi ha fatto venire questa idea: uno sfogo autocostruito e automatico. Può essere utilizzato per pianificare quando è necessario accendere le luci, quando è necessario caricare i telefoni o
Ventola con regolazione PWM basata sulla temperatura della CPU per Raspberry Pi: 4 passaggi (con immagini)
Ventola regolata PWM basata sulla temperatura della CPU per Raspberry Pi: molte custodie per Raspberry Pi sono dotate di una piccola ventola da 5 V per aiutare a raffreddare la CPU. Tuttavia, queste ventole sono solitamente piuttosto rumorose e molte persone le collegano al pin 3V3 per ridurre il rumore. Questi ventilatori sono generalmente classificati per 200 mA, il che è piuttosto h