- Genel Bakış:
- Gerekli Bileşenler:
- Devre Açıklaması:
- İvme Ölçerin Çalışması:
- Arduino Programlama:
- Programlama İşlemi:
- Test yapmak:
Artırılmış Gerçeklik ve Sanal Oyun, oyun endüstrisinde yeni bir trend haline geldi. Bir bilgisayar oyunu oynamak için klavye / Joystick ve fare kullanma zamanları geride kaldı. Artık her oyun konsolu, vücut hareketlerimizi ve jestlerimizi kullanarak oyunu oynamamıza yardımcı olan bir Sanal Denetleyici ile birlikte gelir; bu şekilde oyun deneyimi çok arttı ve kullanıcı oyuna daha fazla dahil oldu.
Bu projede, proje üzerinden öğrenirken eğlenmeye çalışalım. Bir oyun yaratalım (Evet beni doğru duydunuz, bir oyun yaratacağız) ve elinizin hareketini kullanarak oynayalım. Klasik Ping Pong Topu Oyununu Arduino ve Accelerometer kullanarak yaratıyoruz.
Genel Bakış:
Bu günlerde, bizim gibi hobiler için pek çok mutluluk getiren tonlarca açık kaynaklı yazılım var ve Processing bunlardan biri. Bu JAVA tabanlı uygulama ile kendi yazılımımızı (.exe formatında) ve ayrıca bir android uygulamasını (.apk dosyası) oluşturabiliriz. Bu yüzden oyunumuzu oluşturmak için bu yazılımı kullanacağız, daha önce Arduino Sohbet Odası oluştururken İşleme'yi kullandık.
Donanım bölümü, girdiyi bir İvmeölçerden bilgisayarımıza / Dizüstü bilgisayarımıza seri olarak besleyecek bir Arduino'dan oluşacaktır.
Öyleyse alışverişe gidelim !!!!
Gerekli Bileşenler:
- Arduino (herhangi bir sürüm veya model)
- İvmeölçer
- Bağlantı telleri
- Faiz (Lolz)
İvmeölçer ve Arduino Nano
Devre Açıklaması:
Arduino Ping Pong Ball Oyunu Projesi Devre herhangi bir karmaşık bağlantı içermez. İvmeölçerli bir Arduino Nano kullandım . Ancak aşağıda belirtildiği gibi halledilmesi gereken birkaç şey var:
1. İvmeölçeriniz 5V'yi kaldıramaz, bu nedenle her zaman ivmeölçerin Vcc'sini Arduino'nun 3.3V pinine bağlayın.
2. Her İvmeölçer, programlama sırasında (sadece bir filtre kullanarak) ele alınması gereken yerçekimi etkisinden muzdariptir.
Bunu aklımızda tutarak bir İvmeölçerin çalışmasına ve onu nasıl kullandığımıza bakalım.
İvme Ölçerin Çalışması:
Bir İvme ölçer, ilgili değişken gerilim için herhangi bir yönde ivme dönüştüren bir cihazdır. Bu, kapasitörler (resme bakın) kullanılarak gerçekleştirilir, Accel hareket ettikçe, içinde bulunan kondansatör de harekete bağlı olarak değişikliklere (resme bakın) maruz kalır, çünkü kapasitans değiştiğinden, değişken bir voltaj da elde edilebilir.
Bu nedenle, yukarıda belirtildiği gibi her ivmeölçer, yerçekimi etkisi sorunundan muzdariptir. Sensörünüz ne kadar hassas kalibre edilirse edilsin (hatta apple telefonlarınız Accel.), Yer çekiminden etkilenecektir. Bu sorun için daha teknik bir açıklama aşağıda verilmiştir.
Şimdi, Arduino'da Basit Filtre kullanarak yerçekiminin etkisini azaltabiliriz. Bu filtre iki diziden oluşacaktır; biri sensörden örnek değerleri saklamak için, diğeri ise örnek değerleri sıralamak ve en çok tekrarlanan değeri bulmak için kullanılır. Bu algoritmayı Arduino'muza uygulayalım ve donanımımızı hazırlayalım.
Arduino Programlama:
Arduino programı aşağıda Kod bölümünde verilmiştir. Değiştirilmesi gereken kritik veri yoktur. Ancak şunları düşünmek isteyebilirsiniz:
Accel'iniz hala rastgele değerler gösteriyorsa örnek boyutunu artırın.
#define Samplesize 13 // filtreÖrnek numarası
Arduino ve Processing arasındaki iletişim hızını artırmak için 9600 baud hızı ile oynayın. Ancak bunları her iki yazılımda (Programlar) değiştirdiğinizden emin olun.
geçersiz kurulum () {Serial.begin (9600); }
X eksenindeki İvmeölçerim en sol uçta 193 ve en sağ uçta 280 verir, Hızlanmanız için ölçün ve değeri güncelleyin.
toSend = harita (smoothData1, 193, 280, 0, 255);
Değerler, seri iletişim için tek bir veri baytında eşleştirilir.
Açıkça anlamak için aşağıda verilen Koddaki Yorumları daha fazla kontrol edin.
Programlama İşlemi:
İşleme, sanatçılar tarafından Grafik tasarımı için kullanılan açık kaynaklı bir yazılımdır. Bu yazılım, yazılım ve Android uygulamaları geliştirmek için kullanılır. Geliştirilmesi oldukça kolaydır ve Android Geliştirme IDE'sine çok benzer. Dolayısıyla açıklamayı kısalttım.
Ping Pong Oyunu için İşlem Kodu burada verilmiştir:
- Arduino Ping Ball Oyunu için İşlem Kodu
Kod dosyasını indirmek için sağ tıklayın ve 'Bağlantıyı farklı kaydet..' seçeneğini tıklayın. Ardından dosyayı 'İşleme' yazılımında açın ve Oyunu oynamak için 'Çalıştır' düğmesine tıklayın. *.Pde dosyalarını açmak için 'İşleme' yazılımını yüklemeniz gerekir. Yorum bölümü sorgulara açıktır ve daha iyi anlamak için Programdaki yorumları da kontrol edin.
Aşağıdaki satırda, İşleme kodunun void setup () fonksiyonunda, verinin hangi porttan alınacağına karar verdiği için önemlidir.
port = new Serial (this, Serial.list (), 9600); // 4. PORT'u 9600 baud hızında okur
Burada Arduino'mdan 4. porttan veri okudum.
Örneğin, COM COM COM COM COM'a sahipseniz
Daha sonra yukarıdaki kod, COM'dan veri okuyacaktır.
Test yapmak:
İşleme ve Arduino taslağımız hazır olduğundan, aşağıda verilen programı Arduino'ya yükleyin ve Arduino'nuzu kullanıcı PC'sine eksiksiz programlama kablosuna bağlayın ve İşleme kod dosyasını (.pde) çalıştırarak oyunu başlatın. Bu kadar! İvme Ölçerinizi hareket ettirin ve Ping Pong Oyununuzu oynayın. Video tam proje boyunca size rehberlik edecektir.
Programı anladıktan sonra, birçok benzer oyun oluşturabilir ve bunları Arduino'nuzu kullanarak oynayabilirsiniz.Ayrıca Y ekseni ve Z ekseni de oyun oynamak için dahil edilebilir.