Isi kandungan:

Bike Simulator Dengan Penyesuaian Kelajuan Masa Nyata: 5 Langkah
Bike Simulator Dengan Penyesuaian Kelajuan Masa Nyata: 5 Langkah

Video: Bike Simulator Dengan Penyesuaian Kelajuan Masa Nyata: 5 Langkah

Video: Bike Simulator Dengan Penyesuaian Kelajuan Masa Nyata: 5 Langkah
Video: knalpot ninja h2 lepas karena ngebut ngejar beat 2024, November
Anonim
Bike Simulator Dengan Pelarasan Kelajuan Masa Nyata
Bike Simulator Dengan Pelarasan Kelajuan Masa Nyata

Projek ini menggunakan suis reed magnetik untuk membuat speedometer dan mengawal kelajuan video video berbasikal orang pertama di YouTube atau media lain. Arduino mengira mph dan kemudian menggunakan maklumat tersebut untuk mensimulasikan penekanan butang komputer. Tekan butang ini, dipasangkan dengan sambungan Google Chrome, mempercepat atau memperlahankan video berdasarkan perubahan halaju. Ia mempunyai susunan perkakasan asas yang dapat dibuat oleh mereka yang baru memulakan Arduino dengan sendiri.

Kod speedometer berdasarkan projek ini:

Senarai Perkakasan:

1. Arduino Leonardo

2. Kabel USB Mikro (Perlu mampu memindahkan fail dan <3 kaki)

3. Suis Buluh Magnetik

4. Perintang 10k Ohm

5. 22 Kawat Tolok (<4 kaki)

6. Besi Pematerian

7. Pateri

8. Pita elektrik

9. Zip Ikatan

10. Berdiri Basikal Bergerak

11. Basikal

Langkah 1: Muat turun Perisian yang Berkaitan ke Komputer Anda

1. Arduino IDE

2. Pengawal Kelajuan Video (Sambungan Penyemak Imbas Web)

a. Google Chrome

b. Firefox

Langkah 2: Perkakasan

Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan

Semua sambungan hendaklah disolder bersama dan dilekatkan dengan pita elektrik. Arduino boleh dipasang ke basikal menggunakan kotak plastik yang disertakan dengan Arduino (dihubungkan dalam senarai bahagian di atas). Ini penting kerana jika logam basikal bersentuhan langsung dengan pin, ia boleh membuat sambungan yang tidak diingini. Casing ini juga mempunyai lubang yang menjadikan zip pada tali basikal menjadi mudah. Kawat pengukur 22 harus dibalut di sepanjang bingkai basikal dan diikat dengan pita atau tali zip. Pastikan untuk mengelakkan membungkus wayar di mana-mana tempat yang terkena mekanisme bergerak.

Langkah 3: Letakkan Basikal di Stasion Bike Stand

Pasang basikal ke dudukan basikal pegun dan pastikan jaraknya cukup dekat dengan komputer anda agar kabel mikro-USB sampai ke komputer anda. Juga, pastikan jarak tontonan anda sesuai untuk dapat melihat layar dengan selesa. Tutorial mengenai cara meletakkan basikal anda dengan selamat boleh didapati di sini.

Langkah 4: Muat naik dan Uji Kod Arduino

Muat Naik dan Uji Kod Arduino
Muat Naik dan Uji Kod Arduino

Sekiranya anda baru mengenal Arduino IDE, halaman pengenalan boleh didapati di sini. Penting untuk diperhatikan bahawa Leonardo memerlukan kabel mikro-USC untuk memuat naik yang mempunyai kemampuan pemindahan fail. Banyak kabel mikro-USB digunakan hanya untuk mengecas dan kabel tersebut tidak akan berfungsi. Setelah Arduino Leonardo dikenali oleh komputer, salin dan tampal dan muat naik kod berikut:

// Kod ini mencari kelajuan basikal dan menukarnya ke tekan papan kekunci komputer

// pengiraan

// jejari tayar ~ 13.5 inci // lilitan = pi * 2 * r = ~ 85 inci // kelajuan maksimum 35mph = ~ 616 inci / saat // maksimum rps = ~ 7.25

#sertakan

#define reed A0 // pin disambungkan ke suis baca

// pemboleh ubah penyimpanan

int reedVal; pemasa panjang; // masa antara satu putaran penuh (dalam ms) float mph; jejari apungan = 13.5; // jejari tayar (dalam inci) lilitan apungan; float vpre sebelumnya; kadar apungan;

int maxReedCounter = 100; // min masa (dalam ms) satu putaran (untuk menolak)

int reedCounter;

batal persediaan () {

reedCounter = maxReedCounter; lilitan = 2 * 3.14 * jejari; pinMode (buluh, INPUT); Papan kekunci.begin (); // TIMER SETUP- pemasa pemisah membolehkan pengukuran tepat masa suis buluh // untuk maklumat lebih lanjut mengenai konfigurasi pemasa arduino lihat https://arduino.cc/playground/Code/Timer1 cli (); // hentikan gangguan

// tetapkan pemasa1 mengganggu pada 1kHz

TCCR1A = 0; // tetapkan keseluruhan daftar TCCR1A ke 0 TCCR1B = 0; // sama untuk TCCR1B TCNT1 = 0; // tetapkan kiraan pemasa untuk kenaikan 1khz OCR1A = 1999; // = (1/1000) / ((1 / (16 * 10 ^ 6)) * 8) - 1 // hidupkan mod CTC TCCR1B | = (1 < <WGM12); // Tetapkan bit CS11 untuk 8 prescaler TCCR1B | = (1 << CS11); // aktifkan pemasa membandingkan gangguan TIMSK1 | = (1 << OCIE1A); sei (); // izinkan gangguan // SETUP TIMER TAMAT Serial.begin (9600); }

ISR (TIMER1_COMPA_vect) {// Selang pada frekuensi 1kHz untuk mengukur suis reed

reedVal = digitalRead (reed); // dapatkan nilai A0 jika (reedVal) {// jika suis reed ditutup jika (reedCounter == 0) {// masa min antara denyutan telah berlalu vpre sebelumnya = mph; kelewatan (500); mph = (56.8 * float (circumference)) / float (timer); // hitung batu per jam pemasa = 0; // reset timer reedCounter = maxReedCounter; // reset reedCounter} other {if (reedCounter> 0) {// jangan biarkan reedCounter pergi negatif reedCounter - = 1; // decrement reedCounter}}} lain {// jika suis reed terbuka jika (reedCounter> 0) {// jangan biarkan reedCounter pergi negatif reedCounter - = 1; / / decrement reedCounter}} if (timer> 2000) {mph = 0; // jika tidak ada denyutan baru dari tayar suis reed, tetapkan mph ke 0 vpre sebelumnya = 0; } lain {pemasa + = 1; // pemasa kenaikan}}

void controlComp () {

if (vpre sebelumnya mph) // Kelajuan Kelajuan Video {Keyboard.press ('s'); Papan Kekunci.releaseAll (); kelewatan (750); } jika (vprevious == mph) // tidak melakukan apa-apa {; }} gelung kekosongan () {// cetak mph dua kali kedua Serial.print ("VPre sebelumnya:"); Serial.print ("\ t"); Serial.println (vpre sebelumnya);

Serial.print ("MPH:");

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

Setelah kod berjaya dimuat naik, buka monitor bersiri. Tanpa pergerakan roda belakang, "MPH" dan "VPre sebelumnya" harus membaca 0,00. Putar roda sehingga berpusing untuk beberapa putaran dan kemudian perlahan. Monitor harus membaca kelajuan dan ketik d untuk pecutan dan s untuk perlambatan. Sekiranya tidak ada nilai yang muncul ketika roda diputar, magnet mungkin tidak dapat dikesan oleh suis buluh. Pastikan magnet cukup kuat dengan mendengar bunyi berhenti * klink * semasa magnet melewati suis.

Langkah 5: Sediakan Pengawal YouTube

Sediakan Pengawal YouTube
Sediakan Pengawal YouTube

Langkah terakhir adalah memunculkan video YouTube yang ingin anda gunakan untuk mengikuti basikal anda. Ideanya adalah untuk mempunyai video orang pertama yang dapat anda tanamkan sepenuhnya dan menikmati pemandangan sambil berbasikal. Saya telah mematuhi senarai main YouTube dengan pelbagai pilihan video. Mulai dari sejumlah saluran yang memuat naik video yang sesuai dengan kriteria orang pertama ini. Mereka juga merupakan video seperti terbang melalui awan dan perjalanan kereta api merentas desa untuk beberapa jenis pengembaraan orang pertama.

Disyorkan: