İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu proje, bir hız göstergesi oluşturmak ve YouTube veya diğer medyadaki birinci şahıs bisiklet videolarının video hızını kontrol etmek için manyetik bir kamış anahtarı kullanır. Arduino mph'yi hesaplar ve ardından bu bilgiyi bir bilgisayar düğmesine basılmasını simüle etmek için kullanır. Bir Google Chrome uzantısıyla eşleştirilmiş bu düğmeye basılması, hızdaki değişime bağlı olarak videoyu hızlandırır veya yavaşlatır. Arduino'ya yeni başlayanların kolaylıkla kendi başlarına oluşturabilecekleri temel bir donanım kurulumuna sahiptir.
Hız göstergesi kodu şu projeye dayanmaktadır:
Donanım Listesi:
1. Arduino Leonardo
2. Mikro USB Kablosu (Dosya aktarımı yapabilmelidir ve < 3ft)
3. Manyetik Reed Anahtarı
4. 10k Ohm Direnç
5. 22 Ayar Tel (<4ft)
6. Havya
7. Lehim
8. Elektrik Bandı
9. Zip Bağları
10. Sabit Bisiklet Sehpası
11. Bisiklet
1. Adım: İlgili Yazılımı Bilgisayarınıza İndirin
1. Arduino IDE'si
2. Video Hız Denetleyicisi (Web Tarayıcı Uzantısı)
a. Google Chrome
B. Firefox
2. Adım: Donanım
Tüm bağlantılar birlikte lehimlenmeli ve elektrik bandı ile bantlanmalıdır. Arduino, Arduino ile birlikte verilen plastik bir kasa kullanılarak bisiklete monte edilebilir (yukarıdaki parça listesinde bağlantılıdır). Bu önemlidir, çünkü bisiklet metali pimlerle doğrudan temas halindeyse istenmeyen bağlantılar oluşturabilir. Çantada ayrıca çantayı bisiklete fermuarla bağlamayı kolaylaştıran delikler var. 22 gauge tel, bisikletin çerçevesi boyunca sarılmalı ve bant veya fermuarlarla sabitlenmelidir. Kabloyu hareketli mekanizmalara takılabileceği yerlere sarmamaya dikkat edin.
Adım 3: Bisikleti Sabit Bisiklet Standına Yerleştirin
Bisikleti sabit bisiklet sehpasına sabitleyin ve mikro USB kablosunun bilgisayarınıza ulaşması için bilgisayarınıza yeterince yakın olduğundan emin olun. Ayrıca, izleme mesafesinin ekranı rahatça görebilmeniz için uygun olduğundan emin olun. Bisikletinizi güvenli bir şekilde sehpaya nasıl yerleştireceğinize dair bir eğitim burada bulunabilir.
Adım 4: Arduino Kodunu Yükleyin ve Test Edin
Arduino IDE'de yeniyseniz, burada bir tanıtım sayfası bulunabilir. Leonardo'nun karşıya yüklemek için dosya aktarım özelliklerine sahip bir mikro-USC kablosu gerektirdiğini unutmamak önemlidir. Birçok mikro USB kablosu sadece şarj için kullanılır ve bunlar çalışmaz. Arduino Leonardo bilgisayar tarafından tanındığında, aşağıdaki kodu kopyalayıp yapıştırın ve yükleyin:
//Bu kod bir bisikletin hızını bulur ve bunu bilgisayar klavyesine basar
//hesaplamalar
//lastik yarıçapı ~ 13,5 inç //çevre = pi*2*r =~85 inç //maksimum 35mph hız =~ 616 inç/saniye //maks rps =~7,25
#Dahil etmek
#define reed A0//pin okuma anahtarına bağlı
// depolama değişkenleri
int reedVal; uzun zamanlayıcı;// bir tam dönüş arasındaki süre (ms cinsinden) kayan mil mph; şamandıra yarıçapı = 13,5;// lastik yarıçapı (inç olarak) şamandıra çevresi; yüzer vönceki; şamandıra oranı;
int maxReedCounter = 100;//dak süre (ms cinsinden) bir dönüş (geri sıçrama için)
int reedCounter;
geçersiz kurulum(){
reedCounter = maxReedCounter; çevre = 2*3.14*yarıçap; pinMode(kamış, GİRİŞ); klavye.başla(); // ZAMANLAYICI KURULUMU- zamanlayıcı kesintisi, manyetik anahtarın kesin zamanlı ölçümlerine izin verir // arduino zamanlayıcılarının konfigürasyonu hakkında daha fazla bilgi için bkz. https://arduino.cc/playground/Code/Timer1 cli();//interruptları durdur
//zamanlayıcı1 kesmesini 1kHz'de ayarla
TCCR1A = 0;// TCCR1A kaydının tamamını 0'a ayarlayın TCCR1B = 0;// TCCR1B için aynı TCNT1 = 0; // 1khz'lik artışlar için zamanlayıcı sayısını ayarla OCR1A = 1999;// = (1/1000) / ((1/(16*10^6))*8) - 1 // CTC modunu aç TCCR1B |= (1 < < WGM12); // 8 ön ölçekleyici için CS11 bitini ayarlayın TCCR1B |= (1 << CS11); // zamanlayıcı karşılaştırmasını etkinleştir TIMSK1 |= (1 << OCIE1A); sei();//kesmelere izin ver // ZAMANLAYICI AYARLARINI SONLANDIR Serial.begin(9600); }
ISR(TIMER1_COMPA_vect) {//Ayar anahtarı ölçmek için 1kHz frekansında kesinti
reedVal = digitalRead(reed);//(reedVal){//kamış anahtarı kapalı ise (reedCounter == 0){//darbeler arasındaki süre geçmişse A0 değerini al vprevious = mph; gecikme(500); mph = (56.8*float(circumference))/float(timer);//saatte mil hesapla timer = 0;//reset timer reedCounter = maxReedCounter;//reedCounter } else{ if (reedCounter > 0){// reedCounter'ın negatif olmasına izin verme reedCounter -= 1;//decreas reedCounter } } } else{//eğer reed anahtarı açık ise (reedCounter > 0){//reedCounter'ın negatif olmasına izin verme reedCounter -= 1;/ /decreas reedCounter } } if (timer > 2000){ mph = 0;//saz anahtarından yeni darbe yoksa, mph değerini 0 olarak ayarlayın vönceki = 0; } başka{ zamanlayıcı += 1;//zamanlayıcıyı artır } }
void controlComp(){
if (vönceki mil) //Video Hızını Yavaşlat { Keyboard.press('s'); Keyboard.releaseAll(); gecikme(750); } if (vönceki == mph) //hiçbir şey yapma {; } } void loop(){ // mph'yi saniyede iki kez yazdır Serial.print("VPÖnceki:"); Seri.print("\t"); Serial.println(vönceki);
Serial.print("MPH:");
Seri.print("\t"); Seri.println(mph); kontrolComp(); }
Kod başarıyla yüklendikten sonra seri monitörü açın. Arka tekerleğin hareketi olmadığında, "MPH" ve "VPÖnceki" değerleri 0,00 olarak okunmalıdır. Tekerleği birkaç devir hızlanacak ve ardından yavaşlayacak şekilde çevirin. Monitör hızı okumalı ve hızlanma için d'leri ve yavaşlama için s'yi yazmalıdır. Tekerlek döndürüldüğünde hiçbir değer görünmezse, manyetik anahtar tarafından mıknatıs algılanmayabilir. Mıknatıs anahtarı geçtiğinde bir çıkma *tıkırtı* sesi dinleyerek manyetik gücün yeterince güçlü olduğundan emin olun.
5. Adım: YouTube Denetleyicisini Kurun
Son adım, bisikletinizde takip etmek için kullanmak istediğiniz YouTube videolarını getirmektir. Buradaki fikir, kendinizi tamamen içine çekebileceğiniz ve bisiklet sürerken manzaranın tadını çıkarabileceğiniz birinci şahıs videolarına sahip olmaktır. Çeşitli video seçeneklerinden oluşan bir YouTube oynatma listesine uydum. Bu birinci şahıs kriterlerine uyan videolar yükleyen birkaç kanaldan oluşurlar. Bunlar aynı zamanda bulutların arasından uçmak ve çeşitli birinci şahıs maceraları için şehirlerarası tren gezileri gibi videolar.