Kinect Laser Arp: 10 Adım (Resimlerle)

Kinect Laser Arp: 10 Adım (Resimlerle)

İçindekiler:

Anonim

Bu proje, Xbox Kinect'i düşük maliyetli bir lazer arp oluşturmak için "İşleme" programıyla birlikte kullanıyor. Arp, sekiz nota çalıyor ve herhangi bir ses dosyası.wav formatında olabilir, ya da "İşlemede" bulunan ses kütüphanesinden notalar olabilir.

Gereçler:

1. Adım: Java'yı yükleyin

Lazer arpın çalışması için gereken programların bilgisayarınızda "Java" yüklü olması gerekir. Zaten "Java" yınız varsa, bir sonraki adıma geçebilirsiniz. Yüklemek için http://www.java.com/en/download/ web sitesine gidin. Bu web sitesinde "Ücretsiz Java İndirme" düğmesini ve ardından "Kabul Et ve Ücretsiz İndirmeyi Başlat" düğmesini tıklayın. Bu tamamlandığında, bilgisayarınıza kaydedebilirsiniz. Dosyayı açmaya başladığınızda, yükleme işlemini yapmanız için talimatlar verilecektir.

Adım 2: OpenNI'yi indirin

İndirilmesi gereken bir sonraki şey "OpenNI". Bunun için gerekli tüm dosyalar bir defada web sitesinden indirilebilir: http://zigfu.com/tr/downloads/browserplugin/. Bunu bilgisayarınıza kaydedin ve indirmeyi tamamlamanız için verilen talimatları izleyin.

Adım 3: SDK'yı indirin

Xbox Kinect'i çalıştırmak için, daha sonra SDK'yı şu adresten indirmelisiniz: http://www.microsoft.com/en-us/kinectforwindowsdev/start.aspx. Bu, bilgisayarınızın Kinect'i bulmasına yardımcı olur. Bunu indirmek için, "En Son SDK'yı İndir" etiketli düğmeyi tıklayın ve bilgisayarınıza kaydedin. Verilen talimatları izleyin ve bilgisayarınızda çalıştırın.

Adım 4: İşlemi Kur

Bilgisayarınıza "Java" yüklendikten sonra, "İşleme" yi kurmanın zamanı gelmiştir. Bunu yapmak için web sitesine gidin: http://processing.org/download/?processing. Bu web sitesinde, Windows için "İşleme" nin 32-bit sürümünü indirmek istiyorsunuz. İndirmeyi seçtikten sonra programı bilgisayarınıza kaydedin; kurulumu tamamlamanız için talimatlar verecektir.

5. Adım: Kitaplıklar Ekleme

Kinect'i kullanmaya başlamak için "İşleme" yi açın. Açıldıktan sonra "Kitaplığı İçe Aktar" bölümüne gidin ve sonra "Kitaplığı Ekle" yi seçin. "Open Kinect" ve "SimpleOpenNI" kütüphanelerini eklemeyi seçmelisiniz. Bunlar kurulduktan sonra Kinect'i programlamaya başlayabilirsiniz.

Adım 6: Programlama

Kinect'te nota çalmanın en kolay yolu programı kullanmaktır:

SimpleOpenNI dosyasını içe aktarın. *;

ddf.minim dosyasını içe aktarın *;

ddf.minim.ugens dosyasını içe aktarın. *;

SimpleOpenNI kinect;

int en yakın Değer;

int closestX;

en yakın int;

Minim minim;

Ses Çıkışı çıkışı;

geçersiz kurulum () {

boyut (640, 480);

kinect = new SimpleOpenNI (bu);

kinect.enableDepth ();

minim = yeni Minim (bu);

out = minim.getLineOut ();

}

void draw () {

en yakın Değer = 8000;

kinect.update ();

int depthValues ​​= kinect.depthMap ();

(int y = 0; y <480; y ++) {

(int x = 0; x <640; x ++) {

int i = x + y * 640;

int currentDepthValue = depthValues ​​i;

if (currentDepthValue> 0 && currentDepthValue <en yakınValue) {

en yakınValue = currentDepthValue;

closestX = x;

en yakın Y = y;

}

}

}

görüntü (kinect.depthImage (), 0, 0);

dolgu (255, 0, 0, 155);

rect (20, 0, 40, 480);

dolgu (255, 128, 0, 155);

rect (100, 0, 40, 480);

dolgu (255, 255, 0, 155);

rect (180, 0, 40, 480);

dolgu (0, 255, 0, 155);

rect (260, 0, 40, 480);

dolgu (0, 255, 255, 155);

rect (340, 0, 40, 480);

dolgu (0, 0, 255, 155);

rect (420, 0, 40, 480);

dolgu (128, 0, 255, 155);

rect (500, 0, 40, 480);

dolgu (255, 0, 255, 155);

rect (580, 0, 40, 480);

(155) doldurmak;

elips (en yakın X, en yakın Y, 20, 20);

if (en yakınX <60 ve& en yakınX> 20) {

out.playNote ("C4");

}

if (en yakınX <140 ve& en yakınX> 100) {

out.playNote ("D4");

}

eğer (en yakınX <220 ve& en yakınX> 180) {

out.playNote ("E4");

}

eğer (en yakın X <300 ve en yakın X> 260) {

out.playNote ("F4");

}

if (en yakınX <380 ve& en yakınX> 340) {

out.playNote ("G4");

}

if (en yakınX <460 ve& en yakınX> 420) {

out.playNote ("A4");

}

if (en yakınX <540 ve& en yakınX> 500) {

out.playNote ("B4");

}

if (en yakınX <620 ve& en yakınX> 580) {

out.playNote ("C5");

}

}

void stop () {

minim.stop ();

super.stop ();

}

Bu programda notu ve oktavı basitçe yeni bir tane yazarak seçebilirsiniz. Örneğin, son notu bir oktav yukarıya çıkarmak istiyorsanız, ("C5") yerine ("C6") yazmalısınız.

Adım 7: Programlama 2

Kullandığım diğer program şuydu:

SimpleOpenNI dosyasını içe aktarın. *;

ddf.minim dosyasını içe aktarın *;

SimpleOpenNI kinect;

int en yakın Değer;

int closestX;

en yakın int;

Minim minim;

AudioSnippet oynatıcı;

geçersiz kurulum () {

boyut (640, 480);

kinect = new SimpleOpenNI (bu);

kinect.enableDepth ();

}

void draw () {

en yakın Değer = 8000;

kinect.update ();

int depthValues ​​= kinect.depthMap ();

(int y = 0; y <480; y ++) {

(int x = 0; x <640; x ++) {

int i = x + y * 640;

int currentDepthValue = depthValues ​​i;

if (currentDepthValue> 0 && currentDepthValue <en yakınValue) {

en yakınValue = currentDepthValue;

closestX = x;

en yakın Y = y;

}

}

}

görüntü (kinect.depthImage (), 0, 0);

dolgu (255, 0, 0, 155);

rect (20, 0, 40, 480);

dolgu (255, 128, 0, 155);

rect (100, 0, 40, 480);

dolgu (255, 255, 0, 155);

rect (180, 0, 40, 480);

dolgu (0, 255, 0, 155);

rect (260, 0, 40, 480);

dolgu (0, 255, 255, 155);

rect (340, 0, 40, 480);

dolgu (0, 0, 255, 155);

rect (420, 0, 40, 480);

dolgu (128, 0, 255, 155);

rect (500, 0, 40, 480);

dolgu (255, 0, 255, 155);

rect (580, 0, 40, 480);

(155) doldurmak;

elips (en yakın X, en yakın Y, 20, 20);

eğer (en yakın X <60) {

eğer (en yakınX> 20) {

minim = yeni Minim (bu);

oyuncu = minim.loadSnippet ("Sound1.wav");) (Player.play;

}

}

eğer (en yakın X <140) {

eğer (en yakınX> 100) {

minim = yeni Minim (bu);

oyuncu = minim.loadSnippet ("Sound2.wav");) (Player.play;

}

}

eğer (en yakın X <220) {

eğer (en yakınX> 180) {

minim = yeni Minim (bu);

oyuncu = minim.loadSnippet ("Sound3.wav");) (Player.play;

}

}

eğer (en yakın X <300) {

eğer (en yakınX> 260) {

minim = yeni Minim (bu);

oyuncu = minim.loadSnippet ("Sound4.wav");) (Player.play;

}

}

eğer (en yakınX <380) {

eğer (en yakınX> 340) {

minim = yeni Minim (bu);

oyuncu = minim.loadSnippet ("Sound5.wav");) (Player.play;

}

}

eğer (en yakın X <460) {

eğer (en yakınX> 420) {

minim = yeni Minim (bu);

oyuncu = minim.loadSnippet ("Sound6.wav");) (Player.play;

}

}

eğer (en yakın X <540) {

eğer (en yakınX> 500) {

minim = yeni Minim (bu);

oyuncu = minim.loadSnippet ("Sound7.wav");) (Player.play;

}

}

eğer (en yakın X <620) {

eğer (en yakınX> 580) {

minim = yeni Minim (bu);

oyuncu = minim.loadSnippet ("Sound8.wav");) (Player.play;

}

}

}

void stop () {) (Player.close;

minim.stop ();

super.stop ();

}

Bu program ile sesleri herhangi bir.wav dosyasına değiştirebilirsiniz. Altına gidin, "Çizim", "Dosya Ekle" yi seçin ve istediğiniz sesleri seçin.Örneğin seslerden birini (örneğin, "Sound8.wav") istediğiniz yeni sesin ismiyle değiştirin ve program bu isim altında indirdiğiniz sesi çalacaktır. Bu program ile sesleri mümkün olduğunca kısa tutmayı denemek istersiniz. Sesler birkaç saniyeden uzunsa, program donacaktır. Bu, "Dosya" ve sonra "Tercihler" altında belli bir dereceye kadar düzeltilebilir, ancak bilgisayar gerçekten uzun kliplerle mücadele eder.

Adım 8: Arp'ın Kullanımı

Kinect'i bilgisayarınıza bağlamak için, USB / Güç adaptörüne ihtiyacınız vardır. Bu, Kinect'e güç vermenizi ve bilgisayara bilgi vermesini sağlar. Kinect'iniz bir Xbox ile kullanım için satın alındıysa, bu dahil edilmeyecektir. Bunu çevrimiçi olarak kolayca bulabilir ve satın alabilirsiniz. Programlardan birini çalıştırmak için, programlama kısmını "İşlem Yap" olarak kopyalayın ve sol üstteki "Çalıştır" üçgenini tıklayın. Kinect takılıysa ve gerekli tüm programlar kuruluysa, girişteki resimdeki gibi bir şey görmelisiniz. Siz hareket ettikçe, program size en yakın noktanızda gri bir elips gösterir. Bu renkli bir çubuğa dokunduğunda, o nota çalacaktır.

Adım 9: Lazerler

Bu projenin son adımı bir lazer dizisi oluşturmaktır. Lazerlerin, her bir lazerin renkli bir ışının ortasına sığacağı şekilde yerleştirilmesi gerekir. Ayrıca, lazer dizisinin, ışınlar arasındaki boşluğa uyan bir şey yapması gerekir. Arp, hangi nota çalınacağını belirlemek için Kinect'e en yakın olan noktayı kullandığından, bir şeyin yanlışlıkla olması gereken bir alanda olması gerekir. Bu nesneyi ne zaman geçirirsen, not oynayacak. Şu anda, dizi henüz bitmedi çünkü ben oynarken bir sandalyenin yanında duruyorum. Bu projeyi tamamladığımda, bu Eğitilebilir Öğeye daha fazla eklenecek. O zamana kadar bir hava harpım var ama lazer ilavesi gelecek.

10. Adım: Daha Fazla Bilgi

Bu projeyi oluşturmak için kullandığım bilgiler, "Şeyleri Görmek" kitabında, Yazan: Greg Borenstein ve internetteki çeşitli ders kitaplarında bulundu. Bu projeyi daha da geliştirmek veya Kinect ile başka projeler oluşturmak istiyorsanız, bunlar kontrol edilmesi gereken harika kaynaklar. Ayrıca, Güç Adaptöründe bulunabilir: