Spisu treści:

Wirtualne Graffiti: 8 kroków
Wirtualne Graffiti: 8 kroków

Wideo: Wirtualne Graffiti: 8 kroków

Wideo: Wirtualne Graffiti: 8 kroków
Wideo: Co grozi za graffiti? 2024, Lipiec
Anonim
Wirtualne Graffiti
Wirtualne Graffiti

Widziałem kilka wirtualnych systemów graffiti w sieci, ale nie mogłem znaleźć żadnych opublikowanych informacji o tym, jak je stworzyć (choć zobacz stronę z końcowymi linkami). Pomyślałem, że świetnie nada się na warsztaty graffiti, więc sam je stworzyłem i opublikowałem tutaj wszystko, czego potrzebujesz, aby stworzyć własne! Cechy * cały open source i sprzęt, * koszt < 100 GBP bez projektora i komputera, * wykrywa dyszę puszki nacisk i odległość od ekranu, * farba kapie z modeli, jeśli poruszasz się zbyt wolno! Uwagi * ta instrukcja jest na dość wysokim poziomie, ale daj mi znać, jeśli coś ważnego przegapiłem, * konfiguracja obliczeniowa jest dla Linuksa. Jeśli sprawisz, że będzie działał na innych systemach, opublikuj swoje instrukcje! Umiejętności, których będziesz potrzebować * obróbka drewna do wykonania drewnianego ekranu do tylnej projekcji, * układy elektroniczne i programowanie mikrokontrolerów Atmel AVR (lub arduino), * możliwość zainstalowania niektórych biblioteki na twoim komputerze, aby umożliwić przetwarzanie do rozmowy z wiimote.

Krok 1: Jak to działa

Jak to działa
Jak to działa

* Puszka ze sprayem ma podczerwoną diodę LED, która świeci przez ekran projektora i jest widoczna przez kamerę Wiimote. * Wiimote wysyła współrzędne X i Y puszki do komputera za pośrednictwem łącza radiowego Bluetooth. * Komputer uruchamia prosty program do malowania, który używa projektora do „malowania” linii podczas rysowania za pomocą puszki. Zajmuje się również mapowaniem kamery Wiimote na ekranie za pomocą 4-punktowego systemu kalibracji. * Spray może również wykryć odległość od ekranu i ciśnienie dyszy: im dalej jesteś, tym większa jest rysowana kropka, im mocniej naciskasz dyszę, tym bardziej nieprzezroczysta staje się kropka farby.

Krok 2: Składniki

Części
Części

Oto wszystkie elementy potrzebne do zebrania:

* komputer - musi mieć około 1,4 Ghz, bluetooth i port usb, * środowisko przetwarzania, * oprogramowanie virtualGraffiti, pobierz z kroku "konfiguracja komputera", * nintendo wiimote - kup second hand z ebay, * projektor - będzie musiał bądź jasny, jeśli planujesz używać w dzień lub w środku przy włączonych światłach, * ekran do tylnej projekcji - zrób sam, * wirtualny spray - zrób sam, * wirtualny odbiornik sprayu - zrób sam. wbudowane usb->szeregowe) 21£ * para radio rx/tx 9£ * elementy do budowy puszki ze sprayem 18£ plus opcjonalna obudowa 12£ * opcjonalna obudowa do odbiornika 8£ * nintendo wiimote - kup z drugiej ręki z ebay 20£

Krok 3: Ekran do projekcji tylnej

Tylny ekran projekcyjny
Tylny ekran projekcyjny

Ekran musi mieć odpowiednią przezroczystość! Jeśli nie jest wystarczająco przezroczysty, obraz nie będzie widoczny, a dioda podczerwieni nie będzie widoczna dla kamery Wiimote. Jeśli jest zbyt przezroczysty, projektor będzie oślepiał, a obraz rozmyty. (Chociaż zobacz ostatnią stronę, aby dowiedzieć się, jak to złagodzić).

Użyłem lycry, która jest rozciągliwa, więc mogę ją rozciągnąć, aby była bardziej przezroczysta. W tej chwili trzymam go pineskami, ale przechodzę na rzep, gdy mam dostęp do maszyny do szycia. Zrobiłem drewnianą ramę przy pomocy warsztatu i stolarza (dzięki Lou!) Musiałem się zwinąć, żeby móc go przewieźć na rowerze. Jeśli robisz jeden na stałe miejsce, będzie łatwiej go zrobić. Po prostu ustaw go w proporcjach 4:3 i wystarczająco sztywny, aby pozostać w pozycji pionowej. Zauważyłem, że ludzie mają tendencję do naciskania na materiał ekranu, więc musi być trochę wytrzymały.

Krok 4: Puszka ze sprayem

Spray
Spray
Spray
Spray

Jest to najbardziej skomplikowana część projektu i najdłużej trwała, zanim się udało. Dobrą wiadomością jest to, że nie potrzebujesz tego wszystkiego, aby fajny system działał. Najprostszą rzeczą jest po prostu zaopatrzenie się w układ z przełącznikiem, diodą podczerwieni i rezystorem. Po naciśnięciu przełącznika dioda LED zapala się i jest widziana i śledzona przez kamerę Wiimote.

Ta wersja jest bardziej zaawansowana, ponieważ mierzy również odległość od ekranu i ciśnienie w dyszy. Obie te rzeczy są ważne podczas malowania natryskowego. Chciałem stworzyć system szkoleniowy, dlatego ważne było, aby system był jak najbardziej „prawdziwy” (w granicach moich limitów kosztów). Obwód jest dość prosty. Spójrz na załączony schemat obwodu, aby się przekonać. Potrzebujesz podstawowych umiejętności lutowania i umieć umieścić obwód na veroboard. Ponadto powinieneś czuć się zadowolony z programowania mikrokontrolerów. Budowanie obwodu od zera vs używanie płytki arduino opcja 1: jeśli chcesz użyć płytki arduino w sprayu. Użyj arduino w takim stanie, w jakim jest i zmniejsz o połowę szybkość transmisji radia tx w kodzie sprayu. opcja 2: chcesz zaoszczędzić pieniądze, ale nie masz programatora bezpieczników. Zbuduj płytkę i użyj zewnętrznego kryształu 16 MHz. Zmniejsz o połowę szybkość transmisji jak w opcji 1. opcja 3: chcesz zaoszczędzić jeszcze więcej gotówki i masz programator bezpieczników. Zbuduj planszę, ale pomiń zewnętrzny kryształ. Użyj programatora bezpieczników, aby ustawić atmel, aby używał swojego wewnętrznego zegara. Wierzę, że ten programator równoległy DIY pozwoli ci zaprogramować bezpieczniki. Używam programatora firmy olimex. Przegląd układu Mikrokontroler mierzy sygnał wyjściowy z czujnika odległości sharp 2d120x (świetna informacja o tym czujniku tutaj) oraz potencjometru liniowego. Mierzy również moc potencjometru LED PWM. Służy do regulacji strumienia świetlnego diody LED. Dioda IR, której używam, to 100mA, a szczytowa długość fali to 950nm (idealna do wiimote). Mikrokontroler wykorzystuje PWM do bardzo szybkiego migania diody LED. Używamy mosfetu mocy IRF720, aby mikro nie wypalał swojej mocy. Chciałem również w przyszłości zwiększyć pojemność jaśniejszej diody LED. Dioda LED stanu miga za każdym razem, gdy w radiu jest nadawany pakiet danych. Jeśli wszystko działa dobrze, to lampka powinna migać z częstotliwością około 15 Hz. Na koniec moduł nadajnika radiowego jest podłączony do pinu 3 (cyfrowy pin 1 dla arduino) mikrokontrolera, dzięki czemu możemy przesyłać mierzone informacje do komputera. POTRZEBUJESZ również anteny przymocowanej do płytki odbiornika. Użyłem kawałka drutu o długości 12 cm. To połowa tego, co jest zalecane na tej doskonałej stronie informacyjnej. Programowanie mikrokontrolera Po zbudowaniu układu musisz wgrać program (w załączeniu). Korzystam ze środowiska programistycznego/bibliotek arduino. Możesz to skompilować za pomocą arduino IDE, a następnie zaprogramować tak, jak zwykle. Mój obwód jest prostszy dzięki zastosowaniu wewnętrznego zegara mikroprocesora 8 MHz. Jeśli tego użyjesz, będziesz musiał ustawić bezpieczniki tak, aby używały wewnętrznego kalibrowanego na 8MHz RC: 1111 0010 = 0xf2 Oznacza to, że będziesz potrzebował programatora, który potrafi pisać bezpieczniki../avrdude -C./avrdude.conf -V -p ATmega168 -P /dev/ttyACM0 -c stk500v2 -U lfuse:w:0xf2:m Jeśli nie masz tego rodzaju programatora (powiedzmy, że masz tylko arduino płytki), wystarczy użyć kryształu 16 MHz między pinami 9 i 10 i wszystko powinno działać (nietestowane - może być potrzebny kondensator). Będziesz także musiał zmodyfikować kod programu, aby prędkość nadajnika spadła o połowę. Testowanie Po zebraniu wszystkich elementów i załadowaniu programu należy dostosować jasność diody podczerwieni. Chciałem po prostu zmaksymalizować moc światła bez opiekania diody LED, więc wysadziłem kilka i skończyło się na średnim naciągu około 120 ma. Jeśli masz multimetr, możesz to dość łatwo wyregulować, w przeciwnym razie po prostu ustaw potencjometr tak, aby był dość wysoki, ale nie do końca! Można również sprawdzić wejścia analogowe na pinach 26, 27 i 28 potencjometru regulacji PWM, czujnika odległości i potencjometru dyszy. Jeśli masz oscyloskop, możesz sprawdzić ciąg impulsów wychodzący z pinu 3 do modułu radiowego TX. Sprawdź wyjście PWM diody LED na pinie 11. Możesz użyć kamery telefonu komórkowego (lub większości kamer CCD), aby zobaczyć, jak dioda podczerwieni włącza się po naciśnięciu przycisku dyszy.

Krok 5: Odbiornik w sprayu

Odbiornik w sprayu
Odbiornik w sprayu
Odbiornik w sprayu
Odbiornik w sprayu

Jeśli wybierasz się na prostą trasę sprayu, nie potrzebujesz tego kawałka.

W przeciwnym razie po prostu używam płyty arduino, z odbiornikiem radiowym podłączonym do pinu 2. Ułatwia to pobieranie danych do komputera przez USB -> układ szeregowy na płycie arduino. Jeśli miałbym wykonać układ na zamówienie, prawdopodobnie użyłbym płytki ewaluacyjnej FTDI USB -> szeregowy UART. POTRZEBUJESZ również anteny przymocowanej do płytki odbiornika. Użyłem kawałka drutu o długości 12 cm. To połowa tego, co jest zalecane na tej doskonałej stronie informacyjnej. Załaduj szkic graffitiCanReader2.pde do arduino. Po włączeniu puszki powinieneś zobaczyć szybko migające diody LED stanu na puszce i płytce odbiornika. Za każdym razem, gdy dioda puszki miga, wysyłany jest pakiet danych. Za każdym razem, gdy dioda LED na płycie odbiornika miga, odebrany jest ważny pakiet danych. Jeśli tego nie widzisz, to coś jest nie tak z łączem radiowym. Coś do wypróbowania to podłączenie TX puszki do RX odbiornika za pomocą kawałka drutu. Jeśli to nie zadziała, prawdopodobnie masz niezgodność w szybkości transmisji virtualwire (patrz kod). Zakładając, że masz dużo flashowania na płycie odbiornika, powinieneś być w stanie monitorować to na swoim porcie szeregowym USB. Jeśli monitorujesz port szeregowy (zwykle /dev/ttyUSB0) w 57600, powinieneś zobaczyć wyrzucane dane jak Got: FF 02 Got: FF 03… Pierwsza liczba to ciśnienie, a druga to odległość. Teraz możesz uruchomić przetwarzanie i wykorzystać te informacje do zrobienia ładnych zdjęć! Załaduj załączony szkic przetwarzania (canRadioReader.pde). Uruchom program i sprawdź wyjście programu. Powinieneś otrzymywać częstotliwość (która mówi ci, ile aktualizacji na sekundę otrzymuje odbiornik - zdecydowanie chcesz, aby była to co najmniej 10 Hz). Otrzymasz również pomiar odległości i dyszy. Przetestuj puszkę, przesuwając potencjometr dyszy i przesuwając kawałek kartonu przed czujnik odległości. Jeśli wszystko działa, przejdź do następnego kroku - przygotowania komputera do rozmowy z wiimote!

Krok 6: Konfiguracja komputera: przetwarzanie i Wiimote

Konfiguracja komputera: przetwarzanie i Wiimote
Konfiguracja komputera: przetwarzanie i Wiimote

Naszym głównym zadaniem jest przetwarzanie rozmowy z wiimote. Te instrukcje są specyficzne dla Linuksa, ale wszystko powinno działać na Macu i Windowsie z pewnymi badaniami, jak przetworzyć dane Wiimote. Po zainstalowaniu przeróbki znalazłem na forum jakieś instrukcje, ale nadal miałem pewne problemy. Oto, co musiałem zrobić:

  1. zainstaluj przetwarzanie
  2. zainstaluj biblioteki bluez: sudo apt-get zainstaluj bluez-utils libbluetooth-dev
  3. utwórz./processing/libraries/Loc i./processing/libraries/wrj4P5
  4. pobierz bluecove-2.1.0.jar i bluecove-gpl-2.1.0.jar i umieść w./processing/libraries/wrj4P5/library/
  5. pobierz wiremoteJ v1.6 i umieść plik.jar w./processing/libraries/wrj4P5/library/
  6. pobierz wrj4P5.jar (użyłem alpha-11) i umieść w./processing/libraries/wrj4P5/library/
  7. pobierz wrj4P5.zip i rozpakuj do./processing/libraries/wrj4P5/lll/
  8. pobierz Loc.jar (ja korzystałem z wersji beta-5) i umieść w./processing/libraries/Loc/library/
  9. pobierz Loc.zip i rozpakuj do./processing/libraries/Loc/lll/

Następnie użyłem kodu zainspirowanego przez Classiclll, aby przyciski i pasek czujników działały. Załączony kod/szkic rysuje po prostu okrąg, w którym wiimote znajduje pierwsze źródło podczerwieni.

Aby sprawdzić Bluetooth, naciśnij przyciski jeden i dwa na wiimote, a następnie spróbuj $ hcitool scan na terminalu. Powinieneś zobaczyć wykryte nintendo wiimote. Jeśli nie, musisz dokładniej przyjrzeć się konfiguracji Bluetooth. Jeśli wszystko jest w porządku, załaduj program wiimote_sensor.pde (w załączeniu) i uruchom go. W dolnej części ekranu powinieneś zobaczyć: BlueCove wersja 2.1.0 na bluez próbuje znaleźć wii Naciśnij przyciski 1 i 2 na wiimote. Po wykryciu pomachaj przed nim źródłem podczerwieni (puszką ze sprayem). Powinieneś zobaczyć czerwone kółko podążające za twoim ruchem! Upewnij się, że to działa, zanim przejdziesz dalej. Jeśli nie możesz go uruchomić, przeszukaj forum przetwarzania.

Krok 7: Konfiguracja wszystkiego

Konfiguracja wszystkiego
Konfiguracja wszystkiego

Pobierz oprogramowanie virtualGraffiti poniżej. Wypakuj go do katalogu szkicownika, a następnie wykonaj następujące kroki!

* włącz spray, sprawdź, czy dioda LED stanu miga. * włącz komputer, podłącz odbiornik sprayu, * ekran konfiguracji i projektor, * sprawdź, czy dioda LED stanu odbiornika sprayu miga, * rozpocznij przetwarzanie i załaduj program virtualGraffiti, * sprawdź, czy otrzymujesz zarówno wskaźnik szeregowy RX, jak i TX Diody LED migają na płytce arduino, * naciśnij oba przyciski na wiimote, * wykonaj 4-punktową kalibrację po wyświetleniu monitu (nałóż spray na każdy cel po kolei, a następnie naciśnij dyszę, aż napis stanie się czerwony). * baw się dobrze!

Krok 8: Zasoby, linki, podziękowania, pomysły

Linki Oto linki, które były nieocenione w tworzeniu tego projektu: Informacje RF: https://narobo.com/articles/rfmodules.html Arduino: www.arduino.cc Przetwarzanie: www.processing.org Używanie wii z przetwarzaniem: 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#Wavelengths Kalibracja 4-punktowa: https://www.zaunert.de/jochenz/wii/Dzięki! Bez wielu osób publikujących swoje prace ten projekt byłby o wiele trudniejszy i droższy. Ogromne podziękowania dla całej załogi open source, ludzi, którzy zhakowali wiimote, Classicllla za ułatwienie obsługi wiimote z przetwarzaniem, Jochena Zaunerta za kod do kalibracji, ekipy zajmującej się przetwarzaniem, ekipy arduino, Lou za pomoc stolarską i wszystkich, którzy odkrywają, robią a następnie opublikuj swoje odkrycia online! Systemy innych ludzi * Dopiero co znalazłem https://friispray.co.uk/, z oprogramowaniem open source i howto * ten system pozwala na używanie szablonów: super! https://www.wiispray.com/, bez kodu ani howto * Wirtualny system graffiti yrwall, bez kodu lub howto. Pomysły na eksplorację * użyj 2 wiimotów do śledzenia objętości 3D i pozbądź się czujnika odległości w puszce: https://www.cl.cam.ac.uk/~sjeh3/wii/. Byłoby dobrze, ponieważ czujnik odległości jest obecnie najsłabszą częścią systemu. Oznaczałoby to również, że moglibyśmy użyć odpowiedniego ekranu do tylnej projekcji, aby uzyskać żywsze obrazy. * użyj wiimote w puszce, aby wykryć kąt sprayu. Dodałoby to realizmu modelowi farby w sprayu.

Zalecana: