İçindekiler:

Sanal Grafiti: 8 Adım
Sanal Grafiti: 8 Adım

Video: Sanal Grafiti: 8 Adım

Video: Sanal Grafiti: 8 Adım
Video: Grafiti nasil yapilir !!! 2024, Temmuz
Anonim
Sanal Grafiti
Sanal Grafiti

Web'de birkaç sanal grafiti sistemi gördüm ama nasıl yapılacağına dair yayınlanmış herhangi bir bilgi bulamadım (yine de son bağlantılar sayfasına bakın). Grafiti atölyelerim için harika olacağını düşündüm, bu yüzden kendim bir tane yaptım ve kendin yapmak için ihtiyacın olan her şeyi burada yayınladım! Özellikler * tüm açık kaynak ve donanımlar, * projektör ve bilgisayar hariç < 100 £ maliyet, * kutunun başlığını algılar baskı ve ekrandan uzaklık, * modeller çok yavaş hareket ederseniz damlayan boya! Notlar * Bu talimat oldukça yüksek düzeydedir, ancak önemli bir şeyi kaçırdıysam lütfen bana bildirin, * bilgi işlem kurulumu Linux içindir. Diğer sistemlerde çalıştırırsanız, lütfen talimatlarınızı yazınız!İhtiyacınız olan beceriler *Ahşap arka projeksiyon perdesi yapmak için ahşap işçiliği, *Elektronik devreler ve Atmel AVR mikro kontrolörleri (veya arduino) programlama, *Bazılarını yükleyebilme Wiimote ile konuşmanıza izin vermek için bilgisayarınızdaki kütüphaneler.

Adım 1: Nasıl Çalışır?

Nasıl çalışır
Nasıl çalışır

* Sprey kutusu, projektör ekranından parlayan ve wiimote'nin kamerası tarafından görülen bir kızılötesi LED'e sahiptir. * Wiimote, kutunun X ve Y koordinatlarını bluetooth radyo bağlantısı ile bilgisayara gönderir. * Bilgisayar, siz teneke kutuyla çizerken çizgileri "boyamak" için bir projektör kullanan basit bir boyama programı çalıştırıyor. Ayrıca 4 noktalı bir kalibrasyon sistemi kullanarak wiimote kameranın ekrana eşlenmesini de sağlar. * Sprey ayrıca ekrandan mesafesini ve meme basıncını da algılayabilir: ne kadar uzaklaşırsanız çizilen nokta o kadar büyük olur, memeye ne kadar sert basarsanız boya noktası o kadar opak olur.

2. Adım: Bileşenler

Bileşenler
Bileşenler

İşte bir araya getirmeniz gereken tüm parçalar:

* bilgisayar - yaklaşık 1.4Ghz, bluetooth ve usb bağlantı noktası olmalı, * işlem ortamı, * virtualGraffiti yazılımı, "bilgisayar kurulumu" adımından indirme, * nintendo wiimote - ebay'den ikinci el satın alma, * projektör - gerekli olacak gündüz veya içeride ışıklar açıkken kullanmayı planlıyorsanız parlak olun, *arkadan projeksiyon perdesi - kendin yap, *sanal sprey kutu -kendin yap, *sanal sprey kutu alıcısı -kendin yap. Maliyetlendirme *kutu alıcısı için arduino (dahili usb->serial) £21 * radyo rx/tx çifti £9 * bina spreyi için bileşenler 18 £ artı isteğe bağlı muhafaza 12 £ * alıcı için isteğe bağlı muhafaza £8 * nintendo wiimote - ebay'den ikinci el satın alın £20

Adım 3: Arkadan Projeksiyon Perdesi

Arkadan Projeksiyon Perdesi
Arkadan Projeksiyon Perdesi

Ekranın tam olarak doğru miktarda şeffaflık olması gerekiyor! Yeterince şeffaf değilse, görüntü görülmeyecek ve kızılötesi LED wiimote'un kamerası tarafından görülemeyecektir. Çok şeffafsa, projektör kör olacak ve görüntü soluk olacaktır. (Bunu azaltmanın yolları için son sayfaya bakın).

Esnek olan likra kullandım, böylece daha şeffaf hale getirmek için uzatabilirim. Şu anda raptiye ile tutuyorum, ancak bir dikiş makinesine eriştiğimde cırt cırtlıdan mezun oluyorum. Bir atölye ve bir marangoz yardımıyla ahşap bir çerçeve yaptım (teşekkürler Lou!) Bisikletimle taşıyabilmek için yıkılması gerekiyordu. Sabit bir mekan için bir tane yapıyorsanız, yapmak daha kolay olacaktır. Sadece 4:3 en boy oranında ve dik duracak kadar sert yapın. İnsanların ekran malzemesini biraz zorlama eğiliminde olduğunu gördüm, bu yüzden biraz sağlam olması gerekiyor.

Adım 4: Sprey Kutusu

Sprey Kutusu
Sprey Kutusu
Sprey Kutusu
Sprey Kutusu

Bu, projenin en karmaşık kısmıdır ve doğru olması en uzun zaman almıştır. İyi haber şu ki, eğlenceli bir sistemin çalışması için tüm bunlara ihtiyacınız yok. En basit şey, sadece bir anahtar, kızılötesi LED ve bir direnç ile bir devre elde etmektir. Düğmeye bastığınızda LED yanar ve wiimote'un kamerası tarafından görülür ve izlenir.

Bu versiyon daha gelişmiştir, çünkü ekrandan olan mesafeyi ve meme basıncını da ölçer. Aslında sprey boyama yaparken bu iki şey önemlidir. Bir eğitim sistemi yapmak istedim, bu yüzden sistemi mümkün olduğunca "gerçek" hale getirmek önemliydi (maliyet sınırlarım dahilinde). Devre oldukça basit. Kendiniz görmek için ekteki devre şemasına bakın. Temel lehimleme becerilerine ve veroboard'a bir devre koyabilmeye ihtiyacınız var. Ayrıca, mikrodenetleyicileri programlamaktan da mutlu olmalısınız. Sıfırdan bir devre kurmak veya bir arduino kartı kullanmak yerine 1. seçenek: sprey kutusunda bir arduino kartı kullanmak istiyorsanız. Arduino'yu olduğu gibi kullanın ve sprey kutusu kodundaki radyo tx'inin baud hızını yarıya indirin. Seçenek 2: Paradan tasarruf etmek istiyorsunuz ancak sigorta programlayıcınız yok. Kartı oluşturun ve 16MHz harici kristal kullanın. Baud hızını seçenek 1'deki gibi yarıya indirin: Seçenek 3: Daha da fazla para biriktirmek istiyorsunuz ve bir sigorta programlayıcınız var. Tahtayı oluşturun, ancak harici kristali atlayın. Atmel'i dahili saatini kullanacak şekilde ayarlamak için sigorta programlayıcıyı kullanın. Bu DIY paralel programlayıcının sigortaları programlamanıza izin vereceğine inanıyorum. Olimex programlayıcıyı kullanıyorum. Devreye genel bakış Mikrodenetleyici, keskin 2d120x mesafe sensöründen (bu sensör hakkında büyük bilgi burada) ve lineer potansiyometreden gelen çıkışı ölçer. Ayrıca LED PWM potansiyometresinin çıkışını da ölçer. Bu, LED'in ışık çıkışını ayarlamak için kullanılır. Kullandığım IR LED 100mA ve tepe dalga boyu 950nm (wiimote için ideal). Mikrodenetleyici, LED'i çok hızlı yakmak için PWM kullanır. Mikro'nun çıkışını yakmaması için bir IRF720 güç mosfeti kullanıyoruz. Ayrıca gelecekte daha parlak bir LED için kapasite eklemek istedim. Radyoda her veri paketi yayınlandığında yanıp sönen bir durum LED'i vardır. Her şey yolunda gidiyorsa, bu ışık 15Hz civarında yanıp sönüyor olmalıdır. Son olarak, radyo verici modülü mikrodenetleyicinin 3 numaralı pinine (arduino için dijital pin 1) takılır, böylece ölçtüğümüz bilgiyi bilgisayara gönderebiliriz. Ayrıca alıcı kartına bağlı bir antene de İHTİYACINIZ VAR. 12 cm uzunluğunda bir tel kullandım. Bu, bu mükemmel bilgi sayfasında önerilenin yarısı kadardır. Mikrodenetleyicinin programlanması Devreyi kurduktan sonra, programı (ekte) yüklemeniz gerekir. Arduino programlama ortamını/kütüphanelerini kullanıyorum. Bunu arduino IDE ile derleyebilir ve ardından genellikle yaptığınız şekilde programlayabilirsiniz. Devrem, mikronun dahili 8MHz saatini kullanarak daha basit hale getirildi. Bunu kullanırsanız, dahili 8MHz kalibreli RC'yi kullanmak için sigorta ayarlarını yapmanız gerekir: 1111 0010 = 0xf2 Bu, sigorta yazabilen bir programlayıcıya ihtiyacınız olacağı anlamına gelir../avrdude -C./avrdude.conf -V -p ATmega168 -P /dev/ttyACM0 -c stk500v2 -U lfuse:w:0xf2:m Eğer bu tür bir programlayıcınız yoksa (diyelim ki sadece arduino'nuz var kart), sadece 9 ve 10 pinleri arasında 16MHz kristal kullanın ve hepsi çalışmalıdır (denenmemiş - bir kapasitöre ihtiyacınız olabilir). Ayrıca program kodunu, verici baud'unun yarıya indirilmesi için değiştirmeniz gerekecektir. Test Etme Hepsini bir araya getirdikten ve program yüklendikten sonra, IR LED parlaklığını ayarlamanız gerekir. Sadece LED'i yakmadan ışık çıkışını en üst düzeye çıkarmak istedim, bu yüzden birkaçını patlattım ve yaklaşık 120ma beraberlik ortalaması ile bitirdim. Bir multimetreniz varsa bunu kolayca ayarlayabilirsiniz, aksi takdirde potansiyometreyi oldukça yüksek olacak şekilde ayarlayın, ancak tamamen değil! Ayrıca PWM ayar potansiyometresinin 26, 27 ve 28 numaralı pinlerindeki analog girişleri, mesafe sensörünü ve meme potansiyometresini kontrol edebilirsiniz. Kapsamınız varsa, pin 3'ten radyo TX modülüne gelen darbe katarını kontrol edebilirsiniz. Pin 11'deki LED'in pwm çıkışını kontrol edin. Nozul düğmesine bastığınızda IR LED'inin yandığını görmek için bir cep telefonu kamerasını (veya çoğu CCD kamerasını) kullanabilirsiniz.

Adım 5: Sprey Kutusu Alıcısı

Sprey Kutusu Alıcısı
Sprey Kutusu Alıcısı
Sprey Kutusu Alıcısı
Sprey Kutusu Alıcısı

Basit spreyle gidiyorsanız, bu parçaya ihtiyacınız yoktur.

Aksi takdirde, radyo alıcısı pim 2'ye takılıyken sadece bir arduino kartı kullanırım. Bu, verileri arduino kartındaki USB -> seri çip aracılığıyla bir bilgisayara almayı kolaylaştırır. Özel bir devre yapacak olsaydım, muhtemelen bir FTDI USB -> seri UART değerlendirme kartı kullanırdım. Ayrıca alıcı kartına bağlı bir antene de İHTİYACINIZ VAR. 12 cm uzunluğunda bir tel kullandım. Bu, bu mükemmel bilgi sayfasında önerilenin yarısıdır. GrafitiCanReader2.pde taslağını arduino'ya yükleyin. Kutu açıldığında, kutudaki durum LED'lerinin ve alıcı kartının hızla yanıp söndüğünü görmelisiniz. Kutu LED'i her yanıp söndüğünde, bir veri paketi gönderilir. Alıcı kartı LED'i her yanıp söndüğünde, geçerli bir veri paketi alınır. Bunu göremiyorsanız, radyo bağlantısıyla ilgili bir sorun var. Denenecek bir şey, kutunun TX'ini bir parça tel ile alıcının RX'ine bağlamaktır. Bu işe yaramazsa, muhtemelen sanal telin baud hızında bir uyumsuzluk var demektir (koda bakın). Alıcı kartında çok fazla yanıp sönme olduğunu varsayarsak, bunu usb seri bağlantı noktanızdan izleyebilmelisiniz. Seri bağlantı noktasını (genellikle /dev/ttyUSB0) 57600'de izlerseniz, Got: FF 02 Got: FF 03 gibi veri yayıldığını görmelisiniz… İlk sayı basınç, ikincisi mesafedir. Artık işlemeyi çalıştırabilir ve bu bilgileri güzel resimler yapmak için kullanabilirsiniz! Ekli işleme taslağını yükleyin (canRadioReader.pde). Programı başlatın ve programın çıktısını kontrol edin. Bir frekans alıyor olmalısınız (bu, alıcının saniyede kaç güncelleme aldığını söyler - kesinlikle bunun en az 10Hz olmasını istersiniz). Ayrıca bir mesafe ve meme ölçümü alırsınız. Nozul potansiyometresini hareket ettirerek ve mesafe sensörünün önüne bir parça kartı hareket ettirerek kutuyu test edin. Her şey yolundaysa, bir sonraki adıma geçin - bilgisayarı wiimote ile konuşmaya hazırlamak!

Adım 6: Bilgisayar Kurulumu: İşleme ve Wiimote

Bilgisayar Kurulumu: İşleme ve Wiimote
Bilgisayar Kurulumu: İşleme ve Wiimote

Buradaki ana işimiz wiimote ile konuşurken işleme almak. Bu talimatlar Linux'a özgüdür, ancak hepsi bir mac ve windows üzerinde çalışmalı ve wiimote'un verilerinin nasıl işleneceği konusunda biraz araştırma yapmalıdır. İşlemi yükledikten sonra forumda bazı talimatlar buldum, ancak yine de bazı sorunlar yaşadım. İşte yapmam gerekenler:

  1. yükleme işlemi
  2. bluez kitaplıklarını kurun: sudo apt-get install bluez-utils libbluetooth-dev
  3. ./processing/libraries/Loc ve./processing/libraries/wrj4P5 oluşturun
  4. bluecove-2.1.0.jar ve bluecove-gpl-2.1.0.jar'ı indirin ve./processing/libraries/wrj4P5/library/ içine koyun
  5. wiiremoteJ v1.6'yı indirin ve.jar dosyasını./processing/libraries/wrj4P5/library/ içine koyun
  6. wrj4P5.jar dosyasını indirin (alfa-11 kullandım) ve./processing/libraries/wrj4P5/library/ içine koyun
  7. wrj4P5.zip dosyasını indirin ve sıkıştırmayı./processing/libraries/wrj4P5/lll/ içine açın
  8. Loc.jar'ı indirin (beta-5 kullandım ve./processing/libraries/Loc/library/ içine koyun)
  9. Loc.zip dosyasını indirin ve sıkıştırmayı./processing/libraries/Loc/lll/ içine açın

Ardından, düğmelerin ve sensör çubuğunun çalışmasını sağlamak için Classiclll'den ilham alan kodu kullandım. Ekli kod/çizim, wiimote tarafından 1. kızılötesi kaynağın bulunduğu bir daire çiziyor.

Bluetooth'unuzu kontrol etmek için wiimote üzerindeki bir ve iki butonlara basın, ardından terminalde $ hcitool taramasını deneyin. Nintendo wiimote'un algılandığını görmelisiniz. Bunu yapmazsanız, bluetooth kurulumunuza daha fazla bakmanız gerekir. Her şey yolundaysa, wiimote_sensor.pde (ekli) programını yükleyin ve başlatın. Ekranın alt durum bölümünde şunları görmelisiniz: bluez üzerinde BlueCove sürüm 2.1.0 wii bulmaya çalışıyor Wiimote üzerindeki 1 ve 2 düğmelerine basın. Tespit edildikten sonra, kızıl ötesi kaynağınızı (sprey kutusu) önünde sallayın. Hareketinizi takiben kırmızı bir daire görmelisiniz! Devam etmeden önce bunun çalıştığından emin olun. Çalıştıramazsanız, işleme forumunda arama yapın.

7. Adım: Her Şeyi Ayarlamak

Her Şeyi Ayarlamak
Her Şeyi Ayarlamak

Aşağıdan virtualGraffiti yazılımını indirin. Eskiz defteri dizininize çıkarın ve ardından şu adımları izleyin!

* sprey kutusunu açın, durum LED ışığının yanıp söndüğünü kontrol edin. * bilgisayarı açın, sprey kutusu alıcısını takın, * kurulum ekranı ve projektör, * sprey kutusu alıcı durum LED'inin yanıp söndüğünü kontrol edin, * işlemeye başlayın ve sanal Graffiti programını yükleyin, * Hem RX hem de TX seri göstergesini aldığınızı kontrol edin Arduino kartında ledler yanıp sönüyor, * wiimote üzerinde her iki tuşa basın, * istendiğinde 4 nokta kalibrasyon yapın (sırasıyla her hedefin üzerine sprey kutusunu koyun, ardından yazı kırmızı olana kadar memeye basın). * iyi eğlenceler!

8. Adım: Kaynaklar, Bağlantılar, Teşekkürler, Fikirler

Bağlantılar Bu projenin çalışması için paha biçilmez olan bağlantılar: RF bilgisi: https://narobo.com/articles/rfmodules.html Arduino: www.arduino.cc İşleme: www.processing.org Wii'yi işleme ile kullanma: https://processing.org/discourse/yabb2/YaBB.pl?num=1186928645/15 Linux: www.ubuntu.org Wiimote: https://www.wiili.org/index.php/Wiimote, https://wiki.wiimoteproject.com/IR_Sensor#Dalga Boyları 4 noktalı kalibrasyon: https://www.zaunert.de/jochenz/wii/Teşekkürler! Çalışmalarını yayınlayan çok sayıda insan olmasaydı, bu proje çok daha zor ve daha pahalı olurdu. Tüm açık kaynak ekibine, wiimote'yi hackleyen kişilere, wiimote'u işleme ile kullanımı kolay hale getiren Classiclll'e, kalibrasyon yapmak için kod için Jochen Zaunert'e, işleme ekibine, arduino ekibine, marangozluk yardımı için Lou'ya ve keşfeden, yapan herkese çok teşekkür ederiz. ve sonra bulgularını çevrimiçi olarak yayınlayın!Diğer kişilerin sistemleri * Sadece https://friispray.co.uk/ buldum, açık kaynaklı yazılım ve nasıl yapılır * bu sistem şablonların kullanımına izin verir: harika! https://www.wiispray.com/, kod yok veya nasıl yapılır * yrwall'un sanal grafiti sistemi, kod veya nasıl yapılır. Keşif için fikirler * 3D hacim takibi yapmak için 2 wiimote kullanın ve kutudaki mesafe sensörünü ortadan kaldırın: https://www.cl.cam.ac.uk/~sjeh3/wii/. Bu iyi olurdu çünkü mesafe sensörü şu anda sistemin en zayıf parçası. Bu aynı zamanda daha canlı görüntüler için uygun bir arkadan projeksiyon perdesi kullanabileceğimiz anlamına gelir. * sprey kutusunun açısını tespit etmek için kutuda bir wiimote kullanın. Bu, sprey boya modeline gerçekçilik katacaktır.

Önerilen: