Mündəricat:

Virtual Graffiti: 8 addım
Virtual Graffiti: 8 addım

Video: Virtual Graffiti: 8 addım

Video: Virtual Graffiti: 8 addım
Video: Virtual Graffiti on Graffiti Studio 2024, Iyul
Anonim
Virtual Graffiti
Virtual Graffiti

İnternetdə bir neçə virtual graffiti sistemini gördüm, amma necə ediləcəyi ilə bağlı heç bir məlumat tapa bilmədim (son bağlantılar səhifəsinə bax). Qraffiti emalatxanalarım üçün əla olacağını düşündüm, buna görə özüm hazırladım və öz əlinizlə etmək üçün lazım olan hər şeyi burada dərc etdim! Xüsusiyyətlər * bütün açıq mənbə və aparatlar, * qiyməti <100 funt proyektor və kompüter istisna olmaqla, * qutunun ucunu aşkar edir təzyiq və ekrandan məsafə, * modellər çox yavaş hərəkət etsəniz damlayır! Qeydlər * bu təlimat olduqca yüksək səviyyədədir, amma vacib bir şeyi qaçırmışamsa mənə bildirin, * hesablama qurğusu Linux üçündür. Başqa sistemlərdə işləsəniz, təlimatlarınızı göndərin! Bacarıqlara ehtiyacınız var * taxta arxa proyeksiya ekranı hazırlamaq üçün ağac, * elektron sxemlər və proqramlaşdırma Atmel AVR mikro idarəediciləri (və ya arduino), kompüterinizdəki kitabxanalar emalın wiimote ilə danışmasına imkan verir.

Addım 1: Necə Çalışır

Bu necə işləyir
Bu necə işləyir

* Sprey qutusunda proyektorun ekranından parlayan və wiimote kamerası tərəfindən görünən bir infraqırmızı LED var. * Wiimote, qutunun X və Y koordinatlarını bluetooth radio bağlantısı vasitəsi ilə kompüterə göndərir. * Kompüter, qutu ilə çəkdiyiniz zaman xətləri "boyamaq" üçün proyektordan istifadə edən sadə bir rəsm proqramı ilə işləyir. Ayrıca, 4 nöqtəli bir kalibrləmə sistemindən istifadə edərək, wiimote kamerasının ekrana çıxarılması ilə məşğul olur. * Sprey ekrandan olan məsafəni və burun təzyiqini də müəyyən edə bilər: nə qədər uzaq olsanız, çəkilmiş nöqtə nə qədər böyükdürsə, başlığı nə qədər sıxarsanız, boya nöqtəsi bir o qədər qeyri -şəffaf olur.

Addım 2: Komponentlər

Komponentlər
Komponentlər

Bir araya gəlməyiniz üçün lazım olan bütün bitlər:

* kompüter - təxminən 1.4Ghz, bluetooth və usb portu, * işləmə mühiti, * virtualGraffiti proqramı, "kompüter qurma" addımından yükləmə, * nintendo wiimote - ebaydan ikinci əl almaq, * proyektor olmalıdır - buna ehtiyac olacaq Gündüz və ya içəridə işıqları istifadə etməyi planlaşdırırsınızsa, parlaq olun, * arxa proyeksiya ekranı - özünüzü düzəldin, * virtual sprey edə bilərsiniz - özünüz olun, * virtual sprey qəbulediciniz - özünüz edin. usb-> serialda) £ 21 * radio rx/tx cütü £ 9 * bina spreyi üçün komponentlər 18 funt sterlinq əlavə 12 kilo * alıcı üçün isteğe bağlı korpus £ 8 * nintendo wiimote - ebaydan 20 avrodan ikinci əl al

Addım 3: Arxa Projeksiyon Ekranı

Arxa Projeksiyon Ekranı
Arxa Projeksiyon Ekranı

Ekran lazım olan qədər görmə qabiliyyətinə malik olmalıdır! Kifayət qədər şəffaf deyilsə, görüntü görünməyəcək və infraqırmızı LED wiimote kamerasına görünməyəcək. Çox şəffaf olarsa, proyektor kor olacaq və görüntü yuyulacaq. (Bunu azaltmağın yolları üçün son səhifəyə baxın).

Daha şəffaf etmək üçün uzana biləcəyim üçün elastik olan likra istifadə etdim. Hal -hazırda barmağımla tuturam, amma tikiş maşını əldə edəndə velcro bitirirəm. Bir emalatxananın və bir dülgərin köməyi ilə taxta bir çərçivə düzəltdim (Lou -a təşəkkür edirəm!) Velosipedimlə daşımaq üçün yıxılmalı idi. Sabit bir yer üçün bir şey hazırlayırsınızsa, daha asan olacaq. Yalnız 4: 3 nisbətində olun və dik qalmaq üçün kifayət qədər sərt olun. İnsanların ekran materialını kifayət qədər itələməyə meylli olduğunu gördüm, buna görə bir az möhkəm olmalıdır.

Addım 4: Sprey qutusu

Sprey qutusu
Sprey qutusu
Sprey qutusu
Sprey qutusu

Bu, layihənin ən mürəkkəb hissəsidir və düzəlmək üçün ən uzun zaman tələb olunur. Yaxşı xəbər budur ki, əyləncəli bir sistemin işləməsi üçün bütün bunlara ehtiyacınız yoxdur. Ən sadə şey, yalnız bir keçid və bir infraqırmızı LED və bir rezistor olan bir dövrə əldə etməkdir. Düyməni basdığınız zaman LED yanır və wiimote kamerası tərəfindən izlənilir.

Bu versiya daha inkişaf etmişdir, çünki ekrandan olan məsafəni və burun təzyiqini də ölçür. Hər ikisi də əslində boyama spreyi çəkdiyiniz zaman vacibdir. Bir təlim sistemi qurmaq istədim, buna görə də sistemi mümkün qədər "real" etmək vacib idi (xərc limitlərim daxilində). Dövrə olduqca sadədir. Özünüz görmək üçün əlavə edilmiş sxemə baxın. Əsas lehimləmə bacarıqlarına və veroboarda bir dövrə qoya bilmək üçün lazımdır. Arduino lövhəsi 1 -dən istifadə edərək, sıfırdan bir dövrə qurmaq: bir sprey qutusunda bir arduino lövhəsi istifadə etmək istəyirsinizsə. Arduino -nu olduğu kimi istifadə edin və sprey tarama kodunda radio tx -in baud sürətini yarıya endirin. seçim 2: nağd pula qənaət etmək istəyirsən, amma qoruyucu proqramçınız yoxdur. Lövhəni qurun və 16MHz xarici kristal istifadə edin. Seçim 1 -də olduğu kimi baud nisbətini yarıya endirin: daha çox pula qənaət etmək istəyirsiniz və bir qoruyucu proqramçınız var. Lövhəni qurun, ancaq xarici kristal buraxın. Atmelin daxili saatından istifadə etməsini təmin etmək üçün qoruyucu proqramçıdan istifadə edin. İnanıram ki, bu DIY paralel proqramçı qoruyucuları proqramlaşdırmağa imkan verəcəkdir. Mən olimex proqramçısından istifadə edirəm. Dövrə ümumi baxış Mikrokontrolör, kəskin 2d120x məsafə sensorundan (burada bu sensor haqqında əla məlumat) və xətti potensiometrdən çıxışı ölçür. LED PWM potansiyometrinin çıxışını da ölçür. Bu, LED -in işıq çıxışını tənzimləmək üçün istifadə olunur. İstifadə etdiyim IR LED 100mA və pik dalğa uzunluğu 950nm -dir (wiimote üçün idealdır). LED -i çox tez yandırmaq üçün mikrokontrolör PWM -dən istifadə edir. Mikro çıxışını yandırmamaq üçün IRF720 güc mosfetindən istifadə edirik. Gələcəkdə daha parlaq bir LED üçün güc əlavə etmək istədim. Məlumat paketi radioda hər dəfə yayımlandıqda yanıb -sönən bir vəziyyət LED -i var. Hər şey yaxşı işləyirsə, bu işıq 15Hz ətrafında yanıb -sönməlidir. Nəhayət, radio ötürücü modulu, ölçdüyümüz məlumatları kompüterə göndərə bilmək üçün mikrokontrolörün 3 -cü pininə (arduino üçün rəqəmsal pin 1) bağlanır. Alıcı lövhəsinə bağlı bir antenə də ehtiyacınız var. 12 sm uzunluğunda bir tel istifadə etdim. Bu əla məlumat səhifəsində tövsiyə olunanların yarısıdır. Mikro nəzarətçini proqramlaşdırmaq Dövr qurduqdan sonra proqramı yükləməlisiniz (əlavə olunur). Arduino proqramlaşdırma mühitindən/libariyalarından istifadə edirəm. Bunu arduino IDE ilə tərtib edə və sonra adətən etdiyiniz kimi proqramlaşdıra bilərsiniz. Daxili 8MHz mikro saat istifadə edərək dövrəm daha da asanlaşdırılmışdır. Bunu istifadə etsəniz, sigorta parametrlərini daxili 8MHz kalibrli RC -dən istifadə etmək üçün qurmalısınız: 1111 0010 = 0xf2 Bu, sigortalar yaza bilən bir proqramçıya ehtiyacınız olacaq deməkdir../avrdude -C./avrdude.conf -V -p ATmega168 -P/dev/ttyACM0 -c stk500v2 -U lfuse: w: 0xf2: m Əgər belə bir proqramçı yoxdursa (deyin ki, yalnız arduino var lövhə), 9 və 10 sancaqlar arasında 16 MHz bir kristal istifadə edin və hamısı işləməlidir (sınanmamışdır - bir kondansatörə ehtiyacınız ola bilər). Proqram kodunu da ötürücünün yarısını yarıya endirmək üçün dəyişdirməlisiniz. Bütün bunları bir araya gətirdikdən və proqramı yüklədikdən sonra, IR LED parlaqlığını tənzimləməlisiniz. Sadəcə LED -i qızarmadan işıq çıxışını maksimuma çatdırmaq istədim, buna görə də bir neçəsini uçurdum və təxminən 120ma çəkmə ortalaması ilə başa vurdum. Bir multimetriniz varsa, bunu asanlıqla tənzimləyə bilərsiniz, əks halda potensiometrini kifayət qədər yüksək hala gətirin, amma hər şəkildə deyil! PWM tənzimləmə potansiyometrinin, məsafə sensoru və nozzle potensiometrinin 26, 27 və 28 pinlərindəki analoq girişləri də yoxlaya bilərsiniz. Əgər əhatə dairəniz varsa, pin 3 -dən çıxan nəbz qatarını radio TX moduluna yoxlaya bilərsiniz. Pin 11 -də LED -in pwm çıxışını yoxlayın. Burun düyməsini basdığınız zaman IR LED -in yandığını görmək üçün mobil telefon kamerasından (və ya əksər CCD kameralarından) istifadə edə bilərsiniz.

Addım 5: Sprey Alıcı Qəbulu

Alıcı sprey
Alıcı sprey
Alıcı sprey
Alıcı sprey

Sadə bir spreylə gedə bilsəniz, bu bitə ehtiyacınız yoxdur.

Əks təqdirdə, radio qəbuledicisi pin 2 -yə qoşulmuş bir arduino lövhəsindən istifadə edirəm. Bu, məlumatların arduino lövhəsindəki USB -> seriyalı çip vasitəsilə kompüterə daxil edilməsini asanlaşdırır. Xüsusi bir dövrə düzəltmək istəsəydim, ehtimal ki, FTDI USB -> serial UART qiymətləndirmə lövhəsindən istifadə edərdim. Alıcı lövhəsinə bağlı bir antenə də ehtiyacınız var. 12 sm uzunluğunda bir tel istifadə etdim. Bu əla məlumat səhifəsində tövsiyə olunanların yarısıdır. GraffitiCanReader2.pde eskizini arduinoya yükləyin. Qutu işə salındıqda, qutudakı vəziyyət LED -lərini və alıcı lövhəsinin tez bir zamanda yanıb -sönməsini görməlisiniz. Hər dəfə LED lampası yanıb -sönəndə bir məlumat paketi göndərilir. Alıcı lövhəsinin LED -ləri hər dəfə yanıb -sönəndə etibarlı bir məlumat paketi alınır. Bunu görmürsənsə, radio bağlantısı ilə bağlı bir şey var. Bir şeyi sınamaq lazım olan şey, qutunun TX -ni alıcının RX -ə bir tel parçası ilə bağlamaqdır. Bu işləmirsə, ehtimal ki, virtual telin ötürmə sürətində uyğunsuzluq var (kodu baxın). Alıcı lövhəsində çoxlu yanıb -sönənlərin olduğunu düşünürsənsə, bunu usb serial portunda izləyə bilməlisən. 57600 -də serial portunu (adətən /dev /ttyUSB0) izləsəniz, Got: FF 02 Got: FF 03 kimi məlumatların çıxdığını görməlisiniz… Birinci rəqəm təzyiqdir, ikincisi isə məsafədir. İndi emal edə bilərsiniz və bu məlumatlardan istifadə edərək gözəl şəkillər çəkə bilərsiniz! Əlavə edilmiş emal eskizini yükləyin (canRadioReader.pde). Proqramı başladın və proqramın çıxışını yoxlayın. Bir tezlik almalısınız (bu, alıcının saniyədə neçə yeniləmə aldığını söyləyir - bunun ən azı 10Hz olmasını istərdiniz). Həm də bir məsafə və nozzle ölçüsü alacaqsınız. Burun potensiometrini hərəkət etdirərək və məsafə sensoru qarşısında bir kart parçası hərəkət etdirərək bankanı sınayın. Hər şey işləyirsə, növbəti mərhələyə keçin - kompüteri wiimote ilə danışmağa hazırlayın!

Addım 6: Kompüter Quraşdırması: İşləmə və Wiimote

Kompüter Quraşdırması: İşləmə və Wiimote
Kompüter Quraşdırması: İşləmə və Wiimote

Buradakı əsas işimiz, wiimote ilə danışmaqdır. Bu təlimatlar Linux -a xasdır, lakin hamısı wiimote məlumatlarının işlənməsinə necə daxil ediləcəyi ilə bağlı bir araşdırma aparan bir Mac və Windows üzərində işləməlidir. İşləmə qurduqdan sonra forumda bəzi təlimatlar tapdım, amma yenə də bəzi problemlərim var idi. Budur etməli olduğum şey:

  1. emal qurun
  2. bluez kitabxanalarını quraşdırın: sudo apt-get bluez-utils libbluetooth-dev qurun
  3. yaradın./processing/libraries/Loc və./processing/libraries/wrj4P5
  4. bluecove-2.1.0.jar və bluecove-gpl-2.1.0.jar fayllarını yükləyin və./processing/libraries/wrj4P5/library/ saytına daxil edin
  5. wiiremoteJ v1.6 -ı yükləyin və.jar -ı./processing/libraries/wrj4P5/library/ daxil edin
  6. wrj4P5.jar yükləyin (alfa-11 istifadə etdim) və./processing/libraries/wrj4P5/library/
  7. wrj4P5.zip yükləyin və./processing/libraries/wrj4P5/lll/ ünvanına açın.
  8. Loc.jar-ı yükləyin (beta-5 istifadə etdim) və./processing/libraries/Loc/library/
  9. Loc.zip -i yükləyin və açın./processing/libraries/Loc/lll/

Sonra düymələrin və sensor çubuğunun işləməsi üçün Classiclll -dən ilhamlanan koddan istifadə etdim. Əlavə edilmiş kod/eskiz, 1 -ci infraqırmızı mənbənin wiimote tərəfindən tapıldığı bir dairə çəkir.

Bluetooth -u yoxlamaq üçün wiimote üzərindəki bir və iki düyməni basın, sonra terminalda $ hcitool taramasını sınayın. Nintendo wiimote -un aşkarlandığını görməlisiniz. Bunu etməsəniz, bluetooth quruluşunuza daha çox baxmalısınız. Hər şey yaxşıdırsa, wiimote_sensor.pde (əlavə olunur) proqramını yükləyin və işə salın. Ekranın aşağı status hissəsində görmək lazımdır: Bluez -də BlueCove versiyası 2.1.0 wii tapmağa çalışır wiimote -də 1 və 2 düymələrinə basın. Aşkar edildikdən sonra, infraqırmızı mənbəyinizi (sprey qutusu) qabağına yelləyin. Hərəkətinizi izləyən qırmızı bir dairə görməlisiniz! Davam etməzdən əvvəl bunun işlədiyinə əmin olun. İşə yarada bilmirsinizsə, emal forumunda axtarın.

Addım 7: Hər şeyi qurun

Hər şeyi qurmaq
Hər şeyi qurmaq

Aşağıdakı virtualGraffiti proqramını yükləyin. Bunu eskiz kitabçanıza çıxarın və sonra bu addımları izləyin!

* Sprey qutusunu işə salın, LED işığının yanıb sönməsini yoxlayın. * kompüteri yandırın, sprey qutusu qəbuledicisini qoşun, * quraşdırma ekranı və proyektor, * çiləyicinin qəbuledici vəziyyətinin LEDinin yanıb -sönmədiyini yoxlayın, * virtualGraffiti proqramını emal edin və yükləyin, * həm RX, həm də TX serial göstəricisi əldə etdiyinizi yoxlayın LEDlər arduino lövhəsində yanıb -sönür, wiimote üzərindəki hər iki düyməyə basın, * istənildikdə 4 nöqtə kalibrləşdirmə aparın (hər bir hədəfə növbə ilə püskürtmə qabı qoyun, sonra yazı qırmızı olana qədər başlığı basın). * əylənin!

Addım 8: Resurslar, Bağlantılar, Təşəkkürlər, Fikirlər

Bağlantılar Bu layihənin işləməsi üçün əvəzolunmaz olan bağlantılar bunlardır: RF məlumatı: https://narobo.com/articles/rfmodules.html Arduino: www.arduino.cc Qenerasiya: www.processing.org İşlənmədə wii istifadə: 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#Dalğa Boyları 4 nöqtəli kalibrləmə: https://www.zaunert.de/jochenz/wii/Təşəkkürlər! Çox adam əsərlərini nəşr etməsəydi, bu layihə daha çətin və daha bahalı olardı. Bütün açıq mənbə heyətinə, wiimote -nu sındıran insanlara, işlənmə zamanı istifadəni asanlaşdırdığına görə Classiclll -ə, kalibrləmə kodu üçün Jochen Zaunertə, emal qrupuna, arduino heyətinə, dülgərlik yardımı üçün Lou -ya və kəşf edən hər kəsə təşəkkür edirəm. və sonra tapıntılarını internetdə dərc edin! Başqalarının sistemləri * Mən yalnız https://friispray.co.uk/ tapdım, açıq mənbə proqram təminatı və howto * ilə bu sistem şablonlardan istifadə etməyə imkan verir: sərin! https://www.wiispray.com/, nə kod, nə də * yrwall -ın virtual qraffiti sistemi, heç bir kod və ya necə. Kəşfiyyat ideyaları * 3D həcmi izləmə etmək və qutudakı məsafə sensörünü yox etmək üçün 2 wiimotes istifadə edir: https://www.cl.cam.ac.uk/~sjeh3/wii/. Məsafə sensoru hazırda sistemin ən zəif hissəsidir, çünki bu yaxşı olar. Bu, daha parlaq şəkillər üçün uyğun bir arxa proyeksiya ekranından istifadə edə biləcəyimiz mənasına gəlir. * Püskürtmə qutusunun açısını aşkar etmək üçün qutuda bir wimimote istifadə edin. Bu, sprey boya modelinə realizm qatacaq.

Tövsiyə: