Indholdsfortegnelse:

Cykelsimulator med hastighedsjustering i realtid: 5 trin
Cykelsimulator med hastighedsjustering i realtid: 5 trin

Video: Cykelsimulator med hastighedsjustering i realtid: 5 trin

Video: Cykelsimulator med hastighedsjustering i realtid: 5 trin
Video: Сделал ВЕЧНЫЕ СИЛИКОНОВЫЕ ШВЫ! Спорим, что такого вы еще не видели? 2024, November
Anonim
Cykelsimulator med hastighedsjustering i realtid
Cykelsimulator med hastighedsjustering i realtid

Dette projekt bruger en magnetisk sivkontakt til at oprette et speedometer og styre videohastigheden på førstepersonscykelvideoer på YouTube eller andre medier. Arduino beregner km / t og bruger derefter disse oplysninger til at simulere et computertastetryk. Dette tryk på knappen, parret med en Google Chrome -udvidelse, fremskynder eller bremser videoen baseret på ændringen i hastighed. Det har en grundlæggende hardware-opsætning, som dem, der er begyndere til Arduino, nemt kan oprette på egen hånd.

Speedometer -koden er baseret på dette projekt:

Hardware liste:

1. Arduino Leonardo

2. Micro USB -kabel (Skal kunne overføres og <3ft)

3. Magnetisk Reed Switch

4. 10k Ohm modstand

5. 22 gauge Wire (<4ft)

6. Loddejern

7. Lodning

8. Elektrisk tape

9. Lynlåse

10. Stationær cykelstativ

11. Cykel

Trin 1: Download relevant software på din computer

1. Arduino IDE

2. Video Speed Controller (udvidelse af webbrowser)

en. Google Chrome

b. Firefox

Trin 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Alle forbindelser skal loddes sammen og tapes med elektrisk tape. Arduino kan monteres på cyklen ved hjælp af et plastikhus, der følger med Arduino (linket i delelisten ovenfor). Dette er vigtigt, fordi hvis cykelmetallet er i direkte kontakt med stifterne, kan det skabe uønskede forbindelser. Etuiet har også huller, der gør det let at binde sagen til cyklen med lynlås. 22 gauge ledningen skal vikles langs cykelrammen og fastgøres med tape eller lynlåse. Sørg for at undgå at vikle ledningen et sted, hvor den kan blive fanget af bevægelige mekanismer.

Trin 3: Placer cyklen på stationær cykelstativ

Fastgør cyklen i det stationære cykelstativ, og sørg for, at den er tæt nok på din computer, så mikro-USB-kablet kan nå din computer. Sørg også for, at synsafstanden for dig er egnet til komfortabelt at kunne se skærmen. En vejledning i, hvordan du sikkert placerer din cykel på stativet, kan findes her.

Trin 4: Upload og test Arduino -kode

Upload og test Arduino -kode
Upload og test Arduino -kode

Hvis du er ny på Arduino IDE, kan en introduktionsside findes her. Det er vigtigt at bemærke, at Leonardo kræver et mikro-USC-kabel for at uploade, der har filoverførselsfunktioner. Mange mikro-USB-kabler bruges kun til opladning, og de fungerer ikke. Når Arduino Leonardo genkendes af computeren, skal du kopiere og indsætte og uploade følgende kode:

// Denne kode finder en cykels hastighed og konverterer den til computerens tastaturpress

// beregninger

// dækradius ~ 13,5 tommer // omkreds = pi*2*r = ~ 85 tommer // maksimal hastighed på 35 mph = ~ 616 tommer/sekund // maks. rps = ~ 7,25

#omfatte

#define reed A0 // pin forbundet til læsekontakt

// lagringsvariabler

int reedVal; lang timer; // tid mellem en fuld rotation (i ms) float mph; flyde radius = 13,5; // dæk radius (i tommer) flyde omkreds; flyde vforrige; flydehastighed;

int maxReedCounter = 100; // min tid (i ms) for en rotation (til debouncing)

int reedCounter;

ugyldig opsætning () {

reedCounter = maxReedCounter; omkreds = 2*3,14*radius; pinMode (reed, INPUT); Keyboard.begin (); // TIMER SETUP- timerafbrydelsen tillader præcise tidsmålinger af reed-kontakten // for mere information om konfiguration af arduino-timere se https://arduino.cc/playground/Code/Timer1 cli (); // stop afbrydelser

// indstil timer1 -afbrydelse ved 1 kHz

TCCR1A = 0; // sæt hele TCCR1A -registeret til 0 TCCR1B = 0; // samme for TCCR1B TCNT1 = 0; // indstil timertælling for trin på 1 kHz OCR1A = 1999; // = (1/1000)/((1/(16*10^6))*8) - 1 // tænd for CTC -tilstand TCCR1B | = (1 < <WGM12); // Indstil CS11 -bit til 8 forcalkaler TCCR1B | = (1 << CS11); // aktivere timer sammenligne afbrydelse TIMSK1 | = (1 << OCIE1A); sei (); // tillade afbrydelser // END TIMER SETUP Serial.begin (9600); }

ISR (TIMER1_COMPA_vect) {// Afbryd ved frekvens på 1 kHz for at måle reed switch

reedVal = digitalRead (reed); // get val of A0 if (reedVal) {// if reed switch is closed if (reedCounter == 0) {// min time between pulses has passed vprevious = mph; forsinkelse (500); mph = (56,8*float (omkreds))/float (timer); // beregn timer i timen = 0; // nulstil timer reedCounter = maxReedCounter; // reset reedCounter} else {if (reedCounter> 0) {// lad ikke reedCounter gå negativ reedCounter -= 1; // reducere reedCounter}}} else {// hvis reed switch er åben, hvis (reedCounter> 0) {// ikke lad reedCounter gå negativ reedCounter -= 1;/ /decrement reedCounter}} if (timer> 2000) {mph = 0; // hvis der ikke stadig er nye impulser fra reed switch-dæk, skal du indstille mph til 0 vprevious = 0; } ellers {timer += 1; // stigningstimer}}

void controlComp () {

hvis (vforrige mph) // Sænk videohastigheden {Keyboard.press ('s'); Keyboard.releaseAll (); forsinkelse (750); } hvis (vprevious == mph) // ikke gør noget {; }} void loop () {// print mph to gange i sekundet Serial.print ("VForrige:"); Serial.print ("\ t"); Serial.println (tidligere);

Serial.print ("MPH:");

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

Når koden er uploadet, skal du åbne den serielle skærm. Uden bevægelse af baghjulet skal “MPH” og “VPrevious” læse 0,00. Drej hjulet, så det fremskynder et par omdrejninger og derefter sænker farten. Skærmen skal aflæse hastigheden og typen d’er for acceleration og s’er for deceleration. Hvis der ikke vises nogen værdier, når hjulet drejes, kan magneten muligvis ikke registreres af sivkontakten. Sørg for, at magneten er stærk nok ved at lytte efter en quin * clink * støj, når magneten passerer kontakten.

Trin 5: Konfigurer YouTube Controller

Opsæt YouTube Controller
Opsæt YouTube Controller

Det sidste trin er at hente de YouTube -videoer, du ønsker at bruge til at følge med på din cykel. Ideen er at have førstepersonsvideoer, som du helt kan fordybe dig i og nyde landskabet, mens du cykler. Jeg har overholdt en YouTube -afspilningsliste med en række forskellige videoindstillinger. De spænder fra en række kanaler, der uploader videoer, der matcher disse førstepersons kriterier. De er også videoer som at flyve gennem skyer og langrendstogture til nogle forskellige førstepersonseventyr.

Anbefalede: