Mundarija:

Virtual grafiti: 8 qadam
Virtual grafiti: 8 qadam

Video: Virtual grafiti: 8 qadam

Video: Virtual grafiti: 8 qadam
Video: Virtual Graffiti on Graffiti Studio 2024, Iyul
Anonim
Virtual grafiti
Virtual grafiti

Men Internetda bir nechta virtual grafiti tizimini ko'rdim, lekin uni qanday qilish haqida hech qanday ma'lumot topa olmadim (oxirgi havolalar sahifasiga qarang). Men grafiti ustaxonalari uchun juda yaxshi bo'lardi deb o'yladim, shuning uchun men o'zim yaratdim va bu erda o'zingiz qilishingiz uchun kerak bo'lgan hamma narsani nashr qildim! Xususiyatlar * barcha ochiq manba va uskunalar, * narxi <£ 100, proyektor va kompyuterdan tashqari * bosim va ekrandan masofa, * agar siz juda sekin harakat qilsangiz, modellar tomchilab tushadi! Eslatmalar * bu juda yuqori darajadagi ko'rsatma, lekin agar biror muhim narsani o'tkazib yuborgan bo'lsam, menga xabar bering, * hisoblash Linux uchun. Agar siz uni boshqa tizimlarda ishlasangiz, iltimos, o'z yo'riqnomangizni joylashtiring! Sizga ko'nikmalar kerak bo'ladi: yog'ochdan yasalgan orqa proektsion ekran, * elektron sxemalar va Atmel AVR mikrokontrollerlarini dasturlash (yoki arduino), Kompyuteringizdagi kutubxonalar qayta ishlashni wiimote bilan gaplashishga imkon beradi.

1 -qadam: Bu qanday ishlaydi

U qanday ishlaydi
U qanday ishlaydi

* Buzadigan amallar qutisi infraqizil LEDga ega, u proyektor ekranidan porlaydi va uni kameraning kamerasi ko'radi. * Wimimote bluetooth radio aloqasi orqali bankaning X va Y koordinatalarini kompyuterga yuboradi. * Kompyuterda rasm chizish paytida chiziqlarni "bo'yash" uchun proektor yordamida rasm chizish bo'yicha oddiy dastur ishlaydi. U, shuningdek, 4 nuqtali kalibrlash tizimidan foydalanib, wiimote kamerasini ekranga surish bilan shug'ullanadi. * Spray, shuningdek, uning ekrandan masofasini va ko'krak bosimini aniqlay oladi: siz qanchalik uzoqlashsangiz, chizilgan nuqta qanchalik katta bo'lsa, shtutserni qanchalik qattiq bossangiz, bo'yoq nuqtasi shaffof bo'ladi.

2 -qadam: Komponentlar

Komponentlar
Komponentlar

Bu erda siz birlashishingiz kerak bo'lgan barcha bitlar:

* kompyuter - taxminan 1,4 GGts, bluetooth va usb porti, * ishlov berish muhiti, * virtualGraffiti dasturi, "kompyuterni sozlash" bosqichidan yuklab olish, * nintendo wiimote - ebaydan ikkinchi qo'lni sotib olish, * proyektor - kerak bo'ladi. Agar siz kunduzi yoki ichkarida chiroqlar yonib turishni rejalashtirayotgan bo'lsangiz, yorqin bo'ling, * orqa proektsion ekran - o'zingizni yarating, * virtual purkagich - o'zingizni, * virtual buzadigan amallar qabul qilgich - o'zingizni yasang. usb-> serialda) £ 21 * radio rx/tx juftligi £ 9 * püskürtme uchun komponentlar £ 18 plus ixtiyoriy korpus £ 12 * qabul qilgich uchun ixtiyoriy korpus £ 8 * nintendo wiimote - ebaydan £ 20 dan ikkinchi qo'lni sotib oling

3 -qadam: Orqa proektsion ekran

Orqa proektsion ekran
Orqa proektsion ekran

Ekran kerakli darajada aniq bo'lishi kerak! Agar u etarli darajada shaffof bo'lmasa, tasvir ko'rinmaydi va infraqizil LED wiimote kamerasida ko'rinmaydi. Agar u juda shaffof bo'lsa, u holda proektor ko'r bo'ladi va tasvir yuviladi. (Buni kamaytirish yo'llari uchun oxirgi sahifaga qarang).

Men likra ishlatardim, u cho'zilib ketadi, shuning uchun uni shaffof qilish uchun cho'zishim mumkin. Hozir men uni bosh barmog'im bilan ushlab turaman, lekin men tikuv mashinasiga kirganimda velcro bitiraman. Men yog'och ustaxona va duradgor yordamida yog'och ramka yasadim (rahmat Lou!) Men uni velosipedda tashish uchun qulab tushishi kerak edi. Agar siz aniq joy uchun joy tayyorlayotgan bo'lsangiz, uni qilish osonroq bo'ladi. Buni 4: 3 nisbatda bajaring va tik turish uchun etarlicha qattiq. Men odamlar ekran materialini biroz bosishga moyilligini topdim, shuning uchun u biroz qo'pol bo'lishi kerak.

4 -qadam: Spray Can

Spray mumkin
Spray mumkin
Spray mumkin
Spray mumkin

Bu loyihaning eng murakkab qismi va uni tuzatish uchun eng uzoq vaqt kerak bo'ldi. Yaxshi xabar shundaki, sizga qiziqarli tizim ishlashi uchun bularning barchasi kerak emas. Eng oddiy narsa - bu kalitni, infraqizil LEDni va rezistorli sxemani olish. Kalitni bosganingizda, LED yonadi va uni wimote kamerasi kuzatadi.

Bu versiya yanada rivojlangan, chunki u ekrandan masofani va ko'krak bosimini ham o'lchaydi. Bularning ikkalasi ham, agar siz spreyi rasm chizganingizda, juda muhim. Men o'qitish tizimini yaratmoqchi edim, shuning uchun tizimni iloji boricha "haqiqiy" qilish juda muhim edi (xarajatlarim chegarasida). O'chirish sxemasi juda oddiy. O'zingiz ko'rish uchun biriktirilgan sxemaga qarang. Siz lehimlashning asosiy ko'nikmalariga ega bo'lishingiz va veroboardga sxemani o'rnatishingiz kerak. Bundan tashqari, siz mikrokontrollerlarni dasturlashdan baxtli bo'lishingiz kerak. 1 -variantdan foydalanib, noldan sxemani tuzish: agar siz purkagichda arduino taxtasidan foydalanmoqchi bo'lsangiz. Arduino -ni odatdagidek ishlating va purkagich kodidagi radio tx uzatish tezligini ikki baravar kamaytiring. 2 -variant: siz pulni tejashni xohlaysiz, lekin sizda sug'urta dasturchisi yo'q. Kengashni yarating va 16 MGts tashqi kristalldan foydalaning. 1 -variantda bo'lgani kabi, bod tezligini ikki baravar kamaytiring: 3 -variant: siz ko'proq pulni tejashni xohlaysiz va sizda sug'urta dasturchisi bor. Kengashni yarating, lekin tashqi kristallni qoldiring. Atmelni ichki soatidan foydalanishga sozlash uchun sug'urta dasturchisidan foydalaning. Menimcha, bu DIY parallel dasturchi sizga sigortalarni dasturlash imkonini beradi. Men olimex dasturchisidan foydalanaman. O'chirishning umumiy ko'rinishi Mikrokontroller 2d120x masofali aniqlik sensori (bu erda bu sensor haqida ajoyib ma'lumot) va chiziqli potentsiometrning chiqishini o'lchaydi. Shuningdek, u LED PWM potansiometrining chiqishini o'lchaydi. Bu LED yorug'lik chiqishini sozlash uchun ishlatiladi. Men foydalanadigan IQ LED - 100 mA va to'lqin uzunligi - 950 nm (wiimote uchun ideal). LEDni juda tez o'chirish uchun mikrokontroller PWMdan foydalanadi. Biz mikrofonning chiqishini yoqib yubormaslik uchun IRF720 quvvat mosfetidan foydalanamiz. Bundan tashqari, men kelajakda yanada yorqinroq LED quvvatini qo'shishni xohlardim. Ma'lumotlar to'plami radioda eshittirilganda har safar yonib turadigan LED holati mavjud. Agar hamma narsa yaxshi ishlayotgan bo'lsa, bu yorug'lik 15 Gts atrofida miltillashi kerak. Nihoyat, radio uzatuvchi moduli biz o'lchagan ma'lumotni kompyuterga yuborishimiz uchun mikrokontrollerning 3 -piniga (arduino uchun raqamli 1 -pin) ulangan. Bundan tashqari, qabul qilish paneliga biriktirilgan antenna kerak. Men uzunligi 12 sm uzunlikdagi simdan foydalanardim. Bu juda yaxshi ma'lumot sahifasida tavsiya etilganlarning yarmi. Mikrokontrollerni dasturlash Zanjirni qurganingizdan so'ng, dasturni yuklashingiz kerak bo'ladi (ilova qilingan). Men arduino dasturlash muhitidan/libariyalaridan foydalanaman. Siz buni arduino IDE bilan kompilyatsiya qilishingiz va keyin odatdagidek dasturlashingiz mumkin. Mikrosxemaning ichki 8MGts soati yordamida mening sxemam soddalashtirilgan. Agar siz bundan foydalansangiz, siz sigortalar sozlamalarini ichki 8 MGts kalibrlangan RC: 1111 0010 = 0xf2 dan foydalanish uchun o'rnatishingiz kerak bo'ladi, demak sizda sigortalar yozadigan dasturchi bo'lishi kerak../avrdude -C./avrdude.conf -V -p ATmega168 -P/dev/ttyACM0 -c stk500v2 -U lfuse: w: 0xf2: m Agar sizda bunday dasturchi bo'lmasa (aytaylik sizda faqat arduino bor) karta), 9 va 10 -pinlar orasidagi 16 MGtsli kristallni ishlating va u hammasi ishlashi kerak (tekshirilmagan - sizga kondansatör kerak bo'lishi mumkin). Shuningdek, siz dastur kodini o'zgartirishingiz kerak, shunda uzatuvchi uzatgichi ikki baravarga kamayadi. Testing Hammasini yig'ib, dasturni yuklagandan so'ng, siz IQ LED yorqinligini sozlashingiz kerak bo'ladi. Men faqat LEDni tushirmagan holda yorug'lik chiqishini maksimal darajada oshirishni xohlardim, shuning uchun men bir nechtasini portlatib, o'rtacha 120ma chizish bilan yakunladim. Agar sizda multimetr bo'lsa, uni osongina sozlashingiz mumkin, aks holda potansiyometrni juda baland qilib sozlang, lekin umuman emas! Bundan tashqari, PWM sozlash potentsiometrining 26, 27 va 28 -pinlaridagi analog kirishni, masofa sensori va ko'krak potentsiometrini tekshirishingiz mumkin. Agar sizda imkoniyatlar bo'lsa, siz 3 -pindan chiqadigan pulsli poezdni radio TX moduliga tekshirishingiz mumkin. 11 -pinli LEDning pwm chiqishini tekshiring. Siz ko'krak tugmachasini bosganingizda IQ LEDining yonishini ko'rish uchun mobil telefon kamerasidan (yoki ko'pchilik CCD kameralaridan) foydalanishingiz mumkin.

5 -qadam: buzadigan amallar qabul qiluvchi

Qabul qilish mumkin bo'lgan buzadigan amallar
Qabul qilish mumkin bo'lgan buzadigan amallar
Qabul qilgich spreyi
Qabul qilgich spreyi

Agar siz oddiy purkagichni yo'naltirmoqchi bo'lsangiz, sizga bu bit kerak emas.

Aks holda, men faqat arduino kartasidan foydalanaman, 2 -pinli radio qabul qilgichga ulanganman. Bu ma'lumotni kompyuterga USB -> ketma -ket chipi orqali arduino kartasida olishni osonlashtiradi. Agar men maxsus sxemani tuzmoqchi bo'lsam, ehtimol FTDI USB -> ketma -ket UART baholash kartasidan foydalanardim. Bundan tashqari, qabul qilish paneliga biriktirilgan antenna kerak. Men uzunligi 12 sm uzunlikdagi simdan foydalanardim. Bu ajoyib ma'lumot sahifasida tavsiya etilganlarning yarmi. GraffitiCanReader2.pde eskizini arduino -ga yuklang. Quvvat yoqilganda, siz qutidagi holat LEDlarini va qabul qilgich paneli tez yonib turishini ko'rishingiz kerak. Har safar chiroq yonib turganda, ma'lumotlar to'plami yuboriladi. Qabul qilgich paneli har safar yonib turganda, tegishli ma'lumotlar to'plami olinadi. Agar siz buni ko'rmasangiz, unda radio aloqasi bor. Sinash kerak bo'lgan narsa - qutining TX -ni qabul qiluvchining RX -ga sim bilan ulash. Agar bu ishlamasa, ehtimol siz virtual simning uzatilish tezligiga mos kelmasligingiz mumkin (kodni ko'ring). Qabul qiluvchilar panelida juda ko'p yonib -o'chib turadi, deb taxmin qilsangiz, buni USB seriyali portingizda kuzatib borishingiz kerak. Agar siz ketma -ket portni (odatda /dev /ttyUSB0) 57600 da kuzatayotgan bo'lsangiz, Got: FF 02 Got: FF 03 kabi chiqayotgan ma'lumotlarni ko'rishingiz kerak… Birinchi raqam - bosim, ikkinchisi - masofa. Endi siz ishlov berishni ishga tushirishingiz va bu ma'lumotdan foydalanib, chiroyli suratlar olishingiz mumkin! Qo'shilgan ishlov berish eskizini yuklang (canRadioReader.pde). Dasturni ishga tushiring va dasturning chiqishini tekshiring. Siz chastotani olishingiz kerak (bu sizga qabul qiluvchining soniyasiga qancha yangilanishlar borligini bildiradi - siz buni kamida 10 Gts bo'lishini xohlaysiz). Shuningdek, siz masofa va ko'krak o'lchovini olasiz. Naychaning potentsiometrini siljitish va masofa sensori oldidagi kartochkaning bir qismini harakatlantirish orqali bankani sinab ko'ring. Agar hammasi ishlayotgan bo'lsa, keyingi bosqichga o'ting - kompyuterni wiimote bilan gaplashishga tayyorlang!

6 -qadam: Kompyuterni sozlash: ishlov berish va Wiimote

Kompyuterni sozlash: ishlov berish va Wiimote
Kompyuterni sozlash: ishlov berish va Wiimote

Bu erda bizning asosiy vazifamiz - wiimote bilan gaplashish. Bu yo'riqnomalar Linuxga xosdir, lekin u hammasi Mac va Windows -da ishlashi kerak, wiimote ma'lumotlarini qayta ishlashga qanday erishish mumkinligi haqida ba'zi tadqiqotlar. Qayta ishlashni o'rnatgandan so'ng, men forumda ba'zi ko'rsatmalarni topdim, lekin men hali ham ba'zi muammolarga duch keldim. Mana nima qilishim kerak edi:

  1. ishlov berishni o'rnatish
  2. bluez kutubxonalarini o'rnating: sudo apt-get install bluez-utils libbluetooth-dev
  3. yaratish./processing/libraries/Loc va./processing/libraries/wrj4P5
  4. bluecove-2.1.0.jar va bluecove-gpl-2.1.0.jar-ni yuklab oling va./processing/libraries/wrj4P5/library/ ga joylashtiring.
  5. wiiremoteJ v1.6 -ni yuklab oling va.jar -ni./processing/libraries/wrj4P5/library/ ga joylashtiring.
  6. wrj4P5.jar-ni yuklab oling (men alfa-11 ishlatardim) va./processing/libraries/wrj4P5/library/ ga joylashtiring.
  7. wrj4P5.zip -ni yuklab oling va oching./processing/libraries/wrj4P5/lll/
  8. Loc.jar-ni yuklab oling (men beta-5 ishlatardim) va./processing/libraries/Loc/library/ ga joylashtiring.
  9. Loc.zip -ni yuklab oling va oching./processing/libraries/Loc/lll/

Keyin tugmalar va sensor paneli ishlashi uchun Classiclll -dan ilhomlangan koddan foydalandim. Ilova qilingan kod/eskiz faqat bitta infraqizil manbani wimimote topgan doirani chizadi.

Bluetooth -ni tekshirish uchun wiimote -dagi bir va ikki tugmachalarni bosing, so'ng terminalda $ hcitool skanerini sinab ko'ring. Siz nintendo wiimote aniqlanganini ko'rishingiz kerak. Agar yo'q bo'lsa, bluetooth sozlamalarini batafsil ko'rib chiqishingiz kerak bo'ladi. Agar hammasi yaxshi bo'lsa, wiimote_sensor.pde (biriktirilgan) dasturini yuklang va ishga tushiring. Ekranning pastki holatida siz quyidagilarni ko'rishingiz kerak: Bluez -da BlueCove 2.1.0 versiyasi wii -ni topmoqchi, wiimote -dagi 1 va 2 -tugmalarni bosing. Aniqlangandan so'ng, uning oldida infraqizil manbasini (purkagich) to'lqinlang. Sizning harakatingizdan keyin qizil doirani ko'rishingiz kerak! Davom etishdan oldin bu ishlayotganiga ishonch hosil qiling. Agar uni ishga kirita olmasangiz, qayta ishlash forumini qidiring.

7 -qadam: Hammasini sozlash

Hammasini sozlash
Hammasini sozlash

Quyida virtualGraffiti dasturini yuklab oling. Uni eskiz daftarchangizga chiqarib oling va keyin quyidagi amallarni bajaring!

* purkagichni yoqing, LED chiroq yonib turishini tekshiring. * kompyuterni yoqing, purkagichni qabul qilgichni ulang, * sozlash ekrani va proyektor, * purkagichning qabul qilish holati LEDining yonib turishini tekshiring, * virtualGraffiti dasturini qayta ishga tushiring va yuklang, * siz RX va TX seriyali indikatorini olganingizni tekshiring. LEDlar arduino taxtasida miltillaydi, * wiimote -dagi ikkala tugmani bosing, * so'ralganda 4 ballli kalibrlashni bajaring (har bir nishonga navbat bilan purkagich qo'ying, so'ngra yozuv qizil bo'lguncha ko'krakni bosing). * maza qiling!

8 -qadam: Resurslar, havolalar, rahmat, fikrlar

Ishoratlar Mana bu loyihani amalga oshirishda bebaho havolalar: RF ma'lumotlari: https://narobo.com/articles/rfmodules.html Arduino: www.arduino.cc ishlov berish: www.processing.org wii -dan ishlov berishda foydalanish: 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#To'lqin uzunligi 4 nuqtali kalibrlash: https://www.zaunert.de/jochenz/wii/Tashakkur! Ko'p odamlar o'z asarlarini nashr qilmaganlarida, bu loyiha ancha qiyin va qimmatroq bo'lar edi. Ochiq manbali barcha ekipajga, wiimote -ni buzganlarga, Classiclll -ga ishlov berishda foydalanishni osonlashtirish uchun, kalibrlash uchun kod uchun Jochen Zaunertga, ishlov berish guruhiga, arduino ekipajiga, Luga duradgorlik yordami va kashf qilganlarning barchasiga katta rahmat. va keyin o'z topilmalarini Internetda chop eting! Boshqa odamlarning tizimlari * Men faqat https://friispray.co.uk/ ni topdim, ochiq manbali dasturiy ta'minot va qanday qilib * bu tizim shablonlardan foydalanishga imkon beradi: ajoyib! https://www.wiispray.com/, hech qanday kod yoki qanday qilib * yrwall virtual grafiti tizimi, qanday kod yoki qanday. Kashfiyotlar uchun ideyalar * 3D hajmini kuzatish va qutidagi masofa sensori yo'q qilish uchun 2 ta wimimotdan foydalanadi: https://www.cl.cam.ac.uk/~sjeh3/wii/. Bu yaxshi bo'lardi, chunki masofa sensori hozirda tizimning eng zaif qismi hisoblanadi. Bu, shuningdek, biz yanada aniq tasvirlar uchun to'g'ri orqa proektsion ekranni ishlatishimiz mumkin degan ma'noni anglatadi. * purkagichning burchagini aniqlash uchun qutidagi simdan foydalaning. Bu buzadigan amallar bo'yoq modeliga realizm qo'shadi.

Tavsiya: