Bu, Arduino ve Processing kullanarak sanal gerçekliğin nasıl uygulanacağını öğreneceğimiz çok ilginç bir proje. Çoğumuz için Jon Favreau'nun Iron man filmi, hayatımızı kolaylaştıracak ve daha eğlenceli hale getirecek yeni şeyler inşa etmek için her zaman bir ilham kaynağı olmuştur. Filmde gösterilen Techs'i şahsen takdir ettim ve her zaman buna benzer bir şey inşa etmek istemişimdir. Bu yüzden, bu projede, filmde meydana gelen Sanal gerçeklik olaylarını taklit etmeye çalıştım, sanki elimizi bilgisayarın önünde sallayabilir ve işaretçiyi istenen yere hareket ettirebilir ve bazı görevleri gerçekleştirebiliriz.
Burada size web kamerasının önünde elinizi nasıl sallayabileceğinizi ve bilgisayarınızda bir şeyler çizebileceğinizi göstereceğim. Ayrıca, sanal olarak elinizi hareket ettirerek ve parmaklarınızla havada klik yaparak ışıkları nasıl değiştirebileceğinizi de göstereceğim.
Konsept:
Bunu gerçekleştirmek için Arduino ve Processing'in gücünden yararlanmalıyız. Çoğu Arduino'ya aşinadır, ancak Processing sizin için yeni olabilir. Processing, tıpkı Arduino gibi bir uygulamadır ve ayrıca Açık kaynaklıdır ve indirmesi ücretsizdir. İşleme'yi kullanarak basit sistem uygulamaları, Android uygulamaları ve çok daha fazlasını oluşturabilirsiniz. Ayrıca Görüntü İşleme ve Ses tanıma yapabilme özelliğine sahiptir. Tıpkı Arduino gibi ve öğrenmesi çok kolay, ancak işlemede tamamen yeniyseniz endişelenmeyin çünkü bu öğreticiyi oldukça basit yazdım, böylece ilgilenen herkes bunu anında yapabilir.
Bu eğitimde, bize bir kullanıcı arayüzü sağlayan ve Görüntü işlemeyi kullanarak elimizin konumunu takip eden basit bir Sistem uygulaması oluşturmak için İşleme'yi kullanıyoruz. Şimdi, parmaklarımızı kullanarak sol tıklama ve sağ tıklama yapmalıyız. Bunun gerçekleşmesi için Arduino Nano tarafından okunacak iki salon sensörü (biri işaret parmağımda, diğeri orta parmağımda) kullandım. Arduino ayrıca tıklama durumunu Bluetooth aracılığıyla kablosuz olarak Bilgisayara iletir.
Kulağa karmaşık gelebilir ama, Güven bana; göründüğü kadar zor değil. Öyleyse, bu projenin çalışır durumda olması için gereken malzemelere bir göz atalım.
Gerekli malzemeler:
- Arduino Nano
- Hall sensörü (A3144) - 2Nos
- Küçük bir mıknatıs parçası
- Bluetooth Modülü (HC-05 / HC-06)
- 9V pil
- Bağlantı Telleri Nokta kartı.
- Bir çift eldiven
- Arduino IDE (Yazılım)
- IDE işleniyor (Yazılım)
- Web Kamerası ve Bluetooth'a Sahip Bir Bilgisayar (ayrıca bilgisayarınız için harici Bluetooth veya Web Kamerası da kullanabilirsiniz)
Şemalar ve Donanım:
Bu projenin donanım kısmı çok basit ve yapımı kolaydır. Tam şematik aşağıda gösterilmiştir.
Arduino, dirençler ve berg stick pimleri aşağıda gösterildiği gibi bir nokta kartına lehimlenmiştir.
Hall sensörü ve Bluetooth modülü, aşağıda gösterildiği gibi bir konektör teline lehimlenmiştir.
Bu iki bölüm hazır olduğunda, kullanımı kolay olacak şekilde eldivenlere monte edilebilir. Yakınınızdaki herhangi bir tıp mağazasından satın alabileceğiniz tek kullanımlık plastik eldivenler kullandım. Mıknatısın baş parmağınıza geldiğinden ve hall sensörü 1 ve salon sensörü 2'nin sırasıyla işaret ve orta parmağınızdan önce bulunduğundan emin olmalısınız. Bileşenleri yerinde sabitlemek için ördek bantları kullandım. Bileşenler monte edildikten sonra şuna benzer görünmelidir.
Şimdi Arduino IDE'yi açalım ve programlamaya başlayalım.
Arduino için Program:
Bu Arduino kodunun amacı, salon sensörünün durumunu okumak ve bunları Bluetooth modülünü kullanarak yayınlamaktır. Ayrıca Bluetooth'tan veri almalı ve gelen değere göre yerleşik LED'i değiştirmelidir. Programın tamamı bu eğitimin sonunda verilmiştir; Ayrıca aşağıda birkaç satırı da açıkladım.
if (Phs1! = HallState_1 - Phs2! = HallState_2) // Yeni tuşlara basılıp basılmadığını kontrol edin {if (HallState_1 == LOW && HallState_2 == LOW) Aisha.write (1); eğer (HallState_1 == HIGH && HallState_2 == LOW) Aisha.write (2); eğer (HallState_1 == LOW && HallState_2 == HIGH) Aisha.write (3); eğer (HallState_1 == HIGH && HallState_2 == HIGH) Aisha.write (4); }
Hall sensörünün durumuna bağlı olarak yukarıdaki satırlarda gösterildiği gibi, Bluetooth belirli bir değer yazacaktır. Örneğin, salon sensörü 1 yüksek ve salon sensörü 2 düşükse, Bluetooth modülü aracılığıyla “2” vadisini yayınlayacağız. Değerleri BT modülüne yazdığınızdan ve yazdırmadığınızdan emin olun. Çünkü sadece İşleme tarafında yazılırsa okunması kolay olacaktır. Ayrıca, değer yalnızca önceki değerle aynı değilse gönderilecektir.
eğer (BluetoothData == 'y') digitalWrite (ledpin, HIGH); eğer (BluetoothData == 'n') digitalWrite (ledpin, LOW);
Bu hatlar, BT modülü tarafından alınan değere bağlı olarak Pin 13'e bağlı yerleşik LED'i değiştirmek için kullanılır. Örneğin, modül bir 'y' alırsa LED açılır ve bir 'n' alırsa kapanır.
İşleme programı:
İşleme programının amacı, bir UI (Kullanıcı arayüzü) olarak hareket edebilen ve ayrıca belirli bir nesneyi izlemek için görüntü işleme gerçekleştirebilen bir sistem uygulaması oluşturmaktır. Bu durumda yukarıdaki eldivenlerimize yapıştırdığımız mavi nesneyi izliyoruz. Program temelde dört ekrana sahiptir.
- Kalibrasyon Ekranı
- Ana ekran
- Boya Ekranı
- LED geçiş Ekranı
Ellerimizi sallayarak ve ekranları havada sürükleyerek bir ekrandan diğerine geçebiliriz. Ayrıca LED'i değiştirmek ve hatta ekranda bir şey çizmek için istenen yerlere tıklayabiliriz.
İşleme programını (sonunda verilmiştir) kopyalayıp yapıştırabilir ve yaratıcılığınıza göre değiştirebilir veya EXE dosyalarını buradan basit bir şekilde indirebilir ve uygulamayı başlatmak için aşağıdaki adımları takip edebilirsiniz.
- Daha önce yüklemediyseniz, JAVA'yı bilgisayarınıza yükleyin.
- You Cam perfect'i bilgisayarınıza kurun
- Arduino'nuzu açın ve Bilgisayarınızı Bluetooth Modülü ile eşleştirin
- Uygulama dosyasını başlatın
Her şey yolunda giderse, Bluetooth modülünüzdeki LED'in sabitlendiğini ve web kamerası ışığınızın Yandığını fark edebilirsiniz. Herhangi bir sorun yaşarsanız yorum bölümünden bana ulaşın, size yardımcı olacağım.
Uygulamanızı nasıl kalibre edeceğinizi ve kullanacağınızı öğrenmek için en sondaki videoyu izleyin.
Kodu değiştirmek ve buna daha fazla özellik eklemek istiyorsanız, programın aşağıdaki içgörülerini kullanabilirsiniz.
İşlem IDE'si buradan indirilebilir. İşleme hakkında daha fazla bilgi edinmek ve daha ilginç projeler oluşturmak istiyorsanız, buradaki eğitimleri ziyaret edebilirsiniz.
İşleme, Seri verileri okuma yeteneğine sahiptir, bu programda seri veriler Bluetooth COM bağlantı noktasından gelir. Aşağıdaki bu satırı kullanarak Bluetooth'unuzun hangi COM bağlantı noktasına bağlanacağını seçmelisiniz.
port = new Serial (this, Serial.list (), 9600);
İşte benim 1 seçmiş st benim durumumda COM5 olan COM portu (aşağıdaki resme bakın) ve sözünü ettiğim o 9600 baudhızı Bluetooth modülü koşuyla.
Daha önceki işlemlerde de belirtildiği gibi görüntü işleme yeteneği vardır, bu eğitimde görüntüler taslak içinde bir web kamerası kullanılarak gönderilir. Her görüntüde belirli bir nesne için izliyoruz. Bununla ilgili daha fazla bilgi edinmek için bu öğreticiyi ziyaret edebilirsiniz.
Programı (sonunda verilen) yorum satırları aracılığıyla açıklamaya çalıştım. Dosyaları buradan indirebilirsiniz.
Eskiz hakkında daha fazla bilgi edinmek isterseniz yorum bölümünden bana ulaşabilirsiniz, size yardımcı olacağım.
Çalışma:
Donanım ve yazılım hazır olduğunda, eldivenleri giyin ve biraz harekete geçmeye hazırlanın. Şimdi, sadece Arduino'yu çalıştırın ve ardından Uygulamayı başlatın. Bluetooth modülündeki led sabit kalmalıdır. Şimdi bu, Sistem uygulamanızın Arduino ile bir Bluetooth bağlantısı kurduğu anlamına gelir.
İzlenecek nesneyi seçmeniz gereken aşağıdaki ekranı göreceksiniz. Bu izleme, nesneye tıklayarak kolayca yapılabilir. Bu durumda nesne Mavi disktir. Artık nesnenizi hareket ettirebilir ve işaretçinin nesnenizi takip ettiğini fark edebilirsiniz. En iyi sonuçlar için benzersiz bir renkli nesne ve parlak bir oda kullanın.
Şimdi baş parmağınıza işaret parmağınızla dokunun ve "Tuş 1 Basıldı" mesajını görmelisiniz ve baş parmağınızı orta parmağınızla bastığınızda "Tuş 2 Basıldı" ifadesini görmelisiniz, bu her şeyin yolunda gittiğini ve kalibrasyonun bittiğini gösterir. Şimdi Bitti düğmesine tıklayın.
Bitti düğmesine basıldıktan sonra, aşağıdaki Videoda gösterildiği gibi Arduino Board üzerindeki havayı boyayabileceğiniz veya LED'i değiştirebileceğiniz ana ekrana yönlendirileceksiniz.