Talaan ng mga Nilalaman:

Bike Simulator Na May Pagsasaayos ng Bilis na Real-time: 5 Mga Hakbang
Bike Simulator Na May Pagsasaayos ng Bilis na Real-time: 5 Mga Hakbang

Video: Bike Simulator Na May Pagsasaayos ng Bilis na Real-time: 5 Mga Hakbang

Video: Bike Simulator Na May Pagsasaayos ng Bilis na Real-time: 5 Mga Hakbang
Video: Grabe! Umulan na pala ng mga AHAS! | 7 Pinaka Kakaibang Pag-Ulan sa Mundo 2024, Nobyembre
Anonim
Bike Simulator Na May Pagsasaayos ng Bilis na Real-time
Bike Simulator Na May Pagsasaayos ng Bilis na Real-time

Gumagamit ang proyektong ito ng isang magnetic reed switch upang lumikha ng isang speedometer at makontrol ang bilis ng video ng mga video ng first-person na pagbibisikleta sa YouTube o iba pang media. Kinakalkula ng Arduino ang mph at pagkatapos ay ginagamit ang impormasyong iyon upang gayahin ang isang pindutan ng computer button. Ang press button na ito, na ipinares sa isang extension ng Google Chrome, ay nagpapabilis o nagpapabagal ng video batay sa pagbabago sa bilis. Mayroon itong pangunahing pag-set up ng hardware na ang mga nagsisimula sa Arduino ay madaling lumikha ng kanilang sarili.

Ang code ng speedometer ay batay sa proyektong ito:

Listahan ng Hardware:

1. Arduino Leonardo

2. Micro USB Cable (Kailangan na may kakayahang maglipat ng file at <3ft)

3. Magnetic Reed Switch

4. 10k Ohm Resistor

5. 22 Gauge Wire (<4ft)

6. Panghinang na Bakal

7. maghinang

8. Electrical Tape

9. Mga Tapos ng Zip

10. Nakatayo sa Bike Stand

11. Bisikleta

Hakbang 1: Mag-download ng May-katuturang Software Sa Iyong Computer

1. Arduino IDE

2. Controller ng Bilis ng Video (Extension ng Web Browser)

a. Google Chrome

b. Firefox

Hakbang 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Ang lahat ng mga koneksyon ay dapat na magkadikit at mai-tape gamit ang electrical tape. Ang Arduino ay maaaring mai-mount papunta sa bisikleta gamit ang isang plastic case na kasama sa Arduino (naka-link sa listahan ng mga bahagi sa itaas). Mahalaga ito sapagkat kung ang metal na bisikleta ay direktang nakikipag-ugnay sa mga pin, maaari itong lumikha ng mga hindi nais na koneksyon. Ang kaso ay mayroon ding mga butas na ginagawang simple ang pag-zip sa kaso sa bisikleta. Ang 22 gauge wire ay dapat na balot sa frame ng bisikleta at i-secure sa mga tape o zip na kurbatang. Siguraduhing maiwasan ang pambalot ng kawad anumang mga lugar kung saan mahuhuli ito sa mga gumagalaw na mekanismo.

Hakbang 3: Ilagay ang Bisikleta sa Nakatayo sa Bike Stand

I-secure ang bisikleta sa nakatigil na stand ng bisikleta at tiyaking sapat itong malapit sa iyong computer para maabot ng micro-USB cord ang iyong computer. Gayundin, siguraduhin na ang distansya ng pagtingin para sa iyo ay angkop upang maginhawang makita ang screen. Ang isang tutorial sa kung paano ligtas na ilagay ang iyong bisikleta sa stand ay matatagpuan dito.

Hakbang 4: Mag-upload at Subukan ang Arduino Code

Mag-upload at Subukan ang Arduino Code
Mag-upload at Subukan ang Arduino Code

Kung bago ka sa Arduino IDE, ang isang pahina ng pagpapakilala ay matatagpuan dito. Mahalagang tandaan na ang Leonardo ay nangangailangan ng isang micro-USC cable upang mag-upload na may mga kakayahan sa paglipat ng file. Maraming mga micro-USB cable ang ginagamit lamang para sa pagsingil at hindi gagana ang mga iyon. Kapag ang Arduino Leonardo ay kinilala ng computer, kopyahin at i-paste at i-upload ang sumusunod na code:

// Nahahanap ng code na ito ang bilis ng isang bisikleta at kino-convert iyon sa computer keyboard press

// kalkulasyon

// radius ng gulong ~ 13.5 pulgada // paligid = pi * 2 * r = ~ 85 pulgada // max na bilis ng 35mph = ~ 616inches / segundo // max rps = ~ 7.25

# isama

#define reed A0 // pin na konektado upang mabasa ang switch

// variable ng imbakan

int reedVal; mahabang timer; // oras sa pagitan ng isang buong pag-ikot (sa ms) float mph; float radius = 13.5; // radius ng gulong (sa pulgada) float sirkulasyon; lumutang vprevious; rate ng float;

int maxReedCounter = 100; // min time (sa ms) ng isang pag-ikot (para sa pag-debog)

int reedCounter;

walang bisa ang pag-setup () {

reedCounter = maxReedCounter; paligid = 2 * 3.14 * radius; pinMode (tambo, INPUT); Keyboard.begin (); // TIMER SETUP- ang timer makagambala ay nagbibigay-daan sa eksaktong tumpak na mga sukat ng switch ng tambo // para sa karagdagang impormasyon tungkol sa pagsasaayos ng mga timer ng arduino tingnan ang https://arduino.cc/playground/Code/Timer1 kli (); // stop interrupts

// set timer1 makagambala sa 1kHz

TCCR1A = 0; // itakda ang buong rehistro ng TCCR1A sa 0 TCCR1B = 0; // pareho para sa TCCR1B TCNT1 = 0; // set timer count for 1khz increment OCR1A = 1999; // = (1/1000) / ((1 / (16 * 10 ^ 6)) * 8) - 1 // turn on CTC mode TCCR1B | = (1 < <WGM12); // Set CS11 bit for 8 prescaler TCCR1B | = (1 << CS11); // paganahin ang timer ihambing ang abala TIMSK1 | = (1 << OCIE1A); sei (); // payagan ang mga nakakagambala // END TIMER SETUP Serial.begin (9600); }

ISR (TIMER1_COMPA_vect) {// Makagambala sa freq ng 1kHz upang sukatin ang switch ng tambo

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; pagkaantala (500); mph = (56.8 * float (circumference)) / float (timer); // calcul mile per hour timer = 0; // reset timer reedCounter = maxReedCounter; // reset reedCounter} else {if (reedCounter> 0) {// huwag hayaan ang reedCounter na maging negatibong reedCounter - = 1; // decrement reedCounter}}} iba pa {// kung ang reed switch ay bukas kung (reedCounter> 0) {// huwag hayaan ang reedCounter na maging negatibong reedCounter - = 1; / / decrement reedCounter}} kung (timer> 2000) {mph = 0; // kung walang bagong pulso mula sa reed switch- tire pa rin, itakda ang mph sa 0 vprevious = 0; } iba pa {timer + = 1; // increment timer}}

void controlComp () {

kung (vprevious mph) // Slow Down Video Speed {Keyboard.press ('s'); Keyboard.releaseAll (); pagkaantala (750); } kung (vprevious == mph) // walang gawin {; }} void loop () {// print mph dalawang beses sa isang segundo Serial.print ("VPrevious:"); Serial.print ("\ t"); Serial.println (vprevious);

Serial.print ("MPH:");

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

Kapag matagumpay na na-upload ang code, buksan ang serial monitor. Nang walang paggalaw ng likurang gulong, ang "MPH" at "VPrevious" ay dapat na basahin ang 0.00. Paikutin ang gulong upang ito ay mapabilis ng ilang mga rebolusyon at pagkatapos ay bumagal. Dapat basahin ng monitor ang bilis at i-type ang mga d para sa pagbilis at ang mga para sa pagbagsak. Kung walang mga halagang lilitaw kapag pinaikot ang gulong, maaaring hindi makita ang magnet sa pamamagitan ng switch ng tambo. Siguraduhin na ang magnetic ay sapat na malakas sa pamamagitan ng pakikinig para sa isang quit * clink * ingay kapag ipinasa ng magnet ang switch.

Hakbang 5: I-set up ang Controller ng YouTube

I-set up ang Controller ng YouTube
I-set up ang Controller ng YouTube

Ang pangwakas na hakbang ay upang ilabas ang mga video sa YouTube na nais mong gamitin upang sundin sa iyong bisikleta. Ang ideya ay magkaroon ng mga video ng unang tao na maaari mong ganap na isawsaw ang iyong sarili at masiyahan sa tanawin habang nagbibisikleta. Sumunod ako sa isang playlist sa YouTube ng iba't ibang mga pagpipilian sa video. Saklaw ang mga ito mula sa isang bilang ng mga channel na nag-a-upload ng mga video na tumutugma sa pamantayang ito ng unang tao. Mga video din sila tulad ng paglipad sa mga ulap at mga cross-country train trip para sa ilang pagkakaiba-iba ng mga pakikipagsapalaran sa unang tao.

Inirerekumendang: