Inhaltsverzeichnis:

Virtuelles Graffiti - Gunook
Virtuelles Graffiti - Gunook

Video: Virtuelles Graffiti - Gunook

Video: Virtuelles Graffiti - Gunook
Video: I try VIRTUAL Graffiti (is it Better than REALITY?) 2024, November
Anonim
Virtuelle Graffiti
Virtuelle Graffiti

Ich habe ein paar virtuelle Graffiti-Systeme im Web gesehen, konnte aber keine veröffentlichten Informationen dazu finden, wie man eines macht (obwohl siehe letzte Seite mit Links). Ich dachte, es wäre großartig für meine Graffiti-Workshops, also habe ich selbst einen gemacht und hier alles veröffentlicht, was Sie brauchen, um Ihre eigenen zu machen! Funktionen * alle Open Source und Hardware, * Kosten < 100 € ohne Projektor und Computer, * erkennt Dosendüsen Druck und Abstand vom Bildschirm, * Modelle tropfende Farbe, wenn Sie sich zu langsam bewegen! Anmerkungen * Dieses instructable ist ziemlich hoch, aber bitte lassen Sie mich wissen, wenn ich etwas Wichtiges verpasst habe, * das Computing-Setup ist für Linux. Wenn Sie es auf anderen Systemen zum Laufen bringen, posten Sie bitte Ihre Anweisungen!Fähigkeiten, die Sie benötigen * Holzbearbeitung, um die Rückprojektionsleinwand aus Holz herzustellen, * elektronische Schaltungen und Programmierung von Atmel AVR-Mikrocontrollern (oder Arduino), * in der Lage sein, einige zu installieren Bibliotheken auf Ihrem Computer, damit die Verarbeitung mit der wiimote kommunizieren kann.

Schritt 1: Wie es funktioniert

Wie es funktioniert
Wie es funktioniert

* Die Spraydose hat eine Infrarot-LED, die durch die Projektionsfläche scheint und von der Kamera der Wiimote gesehen wird. * Die wiimote sendet die X- und Y-Koordinaten der Dose über eine Bluetooth-Funkverbindung an den Computer. * Der Computer führt ein einfaches Malprogramm aus, das einen Projektor verwendet, um die Linien zu "malen", während Sie mit der Dose zeichnen. Es kümmert sich auch um die Abbildung der wiimote-Kamera auf den Bildschirm mit einem 4-Punkt-Kalibrierungssystem. * Das Spray kann auch den Abstand zum Sieb und den Düsendruck erkennen: Je weiter Sie entfernt sind, desto größer wird der gezeichnete Punkt, je stärker Sie auf die Düse drücken, desto undurchsichtiger wird der Farbpunkt.

Schritt 2: Die Komponenten

Die Komponenten
Die Komponenten

Hier sind alle Bits, die Sie zusammenbringen müssen:

* Computer - muss ungefähr 1,4 GHz haben, Bluetooth und einen USB-Anschluss, * Verarbeitungsumgebung, * virtuelle Graffiti-Software, Download aus dem Schritt "Computereinrichtung", * Nintendo Wiimote - gebraucht bei ebay kaufen, * Projektor - es muss Seien Sie hell, wenn Sie tagsüber oder drinnen mit eingeschaltetem Licht verwenden möchten, * Rückprojektionsbildschirm - machen Sie sich selbst, * virtuelle Spraydose - machen Sie sich selbst, * virtueller Spraydosenempfänger - machen Sie sich selbst. Kosten * Arduino für Dosenempfänger (eingebauter USB->Seriell) £21 * Radio rx/tx Paar £9 * Komponenten für den Bau einer Spraydose £18 plus optionales Gehäuse £12 * optionales Gehäuse für Empfänger £8 * Nintendo Wiimote - gebraucht kaufen bei ebay £20

Schritt 3: Rückprojektionsbildschirm

Rückprojektionsleinwand
Rückprojektionsleinwand

Der Bildschirm muss genau das richtige Maß an Durchsichtigkeit haben! Wenn es nicht transparent genug ist, wird das Bild nicht gesehen und die Infrarot-LED ist für die Kamera der wiimote nicht sichtbar. Wenn es zu transparent ist, blendet der Projektor und das Bild wird verwaschen. (Aber auf der letzten Seite finden Sie Möglichkeiten, dies zu mildern).

Ich habe Lycra verwendet, das dehnbar ist, damit ich es dehnen kann, um es transparenter zu machen. Im Moment halte ich es mit Reißnägeln fest, aber ich steige auf Klettverschluss um, wenn ich Zugang zu einer Nähmaschine bekomme. Ich habe mit Hilfe einer Werkstatt und eines Schreiners einen Holzrahmen gebaut (danke Lou!) Ich musste ihn zusammenklappen, damit ich ihn auf meinem Fahrrad transportieren konnte. Wenn Sie einen für einen festen Veranstaltungsort erstellen, ist es einfacher, ihn zu erstellen. Machen Sie es einfach mit einem Seitenverhältnis von 4:3 und steif genug, um aufrecht zu bleiben. Ich habe festgestellt, dass die Leute dazu neigen, das Bildschirmmaterial ein wenig zu drücken, daher muss es etwas robust sein.

Schritt 4: Spraydose

Sprühdose
Sprühdose
Sprühdose
Sprühdose

Dies ist der komplizierteste Teil des Projekts und hat am längsten gedauert, bis er richtig war. Die gute Nachricht ist, dass Sie all diese Dinge nicht brauchen, um ein unterhaltsames System zum Laufen zu bringen. Am einfachsten ist es, eine Schaltung mit einem Schalter, einer Infrarot-LED und einem Widerstand zu erhalten. Wenn Sie den Schalter drücken, leuchtet die LED auf und wird von der Kamera der Wiimote gesehen und verfolgt.

Diese Version ist fortgeschrittener, da sie auch den Abstand zum Sieb und den Düsendruck misst. Diese beiden Dinge sind wichtig, wenn Sie tatsächlich sprühen. Ich wollte ein Trainingssystem erstellen, daher war es wichtig, das System so "real" wie möglich zu gestalten (innerhalb meiner Kostengrenzen). Die Schaltung ist ziemlich einfach. Sehen Sie sich den beigefügten Schaltplan an, um sich selbst davon zu überzeugen. Sie benötigen grundlegende Lötkenntnisse und können eine Schaltung auf das Veroboard legen. Außerdem sollten Sie mit der Programmierung von Mikrocontrollern zufrieden sein. Erstellen einer Schaltung von Grund auf im Vergleich zur Verwendung einer Arduino-Platine Option 1: Wenn Sie eine Arduino-Platine in einer Spraydose verwenden möchten. Verwenden Sie Arduino wie es ist und halbieren Sie die Baudrate des Radios im Spraycan-Code. Option 2: Sie möchten bares Geld sparen, haben aber keinen Sicherungsprogrammierer. Bauen Sie das Board und verwenden Sie einen externen 16-MHz-Quarz. Halbieren Sie die Baudrate wie in Option 1. Option 3: Sie möchten noch mehr Geld sparen und haben einen Sicherungsprogrammierer. Baue das Brett, aber lasse den externen Kristall weg. Verwenden Sie den Sicherungsprogrammierer, um den Atmel so einzustellen, dass er seine interne Uhr verwendet. Ich glaube, mit diesem DIY-Parallelprogrammierer können Sie Sicherungen programmieren. Ich benutze den olimex-Programmierer. Übersicht der Schaltung Der Mikrocontroller misst die Ausgabe des scharfen 2d120x-Abstandssensors (große Informationen zu diesem Sensor hier) und des linearen Potentiometers. Es misst auch den Ausgang des LED-PWM-Potentiometers. Dies wird verwendet, um die Lichtleistung der LED einzustellen. Die von mir verwendete IR-LED ist 100 mA und die Spitzenwellenlänge beträgt 950 nm (ideal für Wiimote). Der Mikrocontroller verwendet PWM, um die LED sehr schnell zu blinken. Wir verwenden einen IRF720-Power-Mosfet, damit das Mikro seine Leistung nicht ausbrennt. Außerdem wollte ich in Zukunft Kapazität für eine hellere LED hinzufügen. Es gibt eine Status-LED, die jedes Mal blinkt, wenn ein Datenpaket im Radio gesendet wird. Wenn alles gut funktioniert, sollte dieses Licht mit etwa 15 Hz blinken. Schließlich wird das Funksendermodul an Pin 3 (digitaler Pin 1 für Arduino) des Mikrocontrollers angeschlossen, damit wir die gemessenen Informationen an den Computer senden können. Sie BENÖTIGEN auch eine Antenne, die an der Empfängerplatine befestigt ist. Ich habe ein 12cm langes Stück Draht verwendet. Dies ist die Hälfte dessen, was auf dieser ausgezeichneten Infoseite empfohlen wird. Programmieren des Mikrocontrollers Nachdem Sie die Schaltung gebaut haben, müssen Sie das Programm hochladen (beigefügt). Ich verwende die Arduino-Programmierumgebung / Bibliotheken. Sie können dies mit der arduino-IDE kompilieren und dann so programmieren, wie Sie es normalerweise tun. Meine Schaltung wird durch die Verwendung des internen 8-MHz-Takts des Mikros vereinfacht. Wenn Sie dies verwenden, müssen Sie die Sicherungseinstellungen so einstellen, dass sie den internen 8-MHz-kalibrierten RC verwenden: 1111 0010 = 0xf2 Dies bedeutet, dass Sie einen Programmierer benötigen, der Sicherungen schreiben kann../avrdude -C./avrdude.conf -V -p ATmega168 -P /dev/ttyACM0 -c stk500v2 -U lfuse:w:0xf2:m Board), verwenden Sie einfach einen 16-MHz-Kristall zwischen den Pins 9 und 10 und alles sollte funktionieren (ungetestet - Sie benötigen möglicherweise einen Kondensator). Sie müssen auch den Programmcode ändern, damit die Baudrate des Senders halbiert wird. Testen Nachdem Sie alles zusammen haben und das Programm geladen haben, müssen Sie die IR-LED-Helligkeit anpassen. Ich wollte nur die Lichtleistung maximieren, ohne die LED zu rösten, also sprengte ich ein paar und landete bei einem Durchschnitt von 120 mA. Wenn Sie ein Multimeter haben, können Sie dies ganz einfach einstellen, ansonsten stellen Sie das Potentiometer einfach ziemlich hoch, aber nicht ganz! Sie können auch die analogen Eingänge an den Pins 26, 27 und 28 des PWM-Einstellpotentiometers, des Abstandssensors und des Düsenpotentiometers überprüfen. Wenn Sie ein Oszilloskop haben, können Sie die Impulsfolge überprüfen, die von Pin 3 in das Funk-TX-Modul kommt. Überprüfen Sie den PWM-Ausgang der LED an Pin 11. Sie können eine Handykamera (oder die meisten CCD-Kameras) verwenden, um zu sehen, wie die IR-LED aufleuchtet, wenn Sie die Düsentaste drücken.

Schritt 5: Spraydosenempfänger

Sprühdosenempfänger
Sprühdosenempfänger
Sprühdosenempfänger
Sprühdosenempfänger

Wenn Sie die einfache Spraydosenroute verwenden, benötigen Sie dieses Bit nicht.

Ansonsten verwende ich nur ein Arduino-Board, wobei der Funkempfänger an Pin 2 angeschlossen ist. Dies macht es einfach, die Daten über den USB -> seriellen Chip auf dem Arduino-Board in einen Computer zu übertragen. Wenn ich eine benutzerdefinierte Schaltung erstellen würde, würde ich wahrscheinlich ein FTDI USB -> serielles UART-Evaluierungsboard verwenden. Sie BENÖTIGEN auch eine Antenne, die an der Empfängerplatine befestigt ist. Ich habe ein 12cm langes Stück Draht verwendet. Dies ist die Hälfte dessen, was auf dieser ausgezeichneten Infoseite empfohlen wird. Laden Sie die Skizze graffitiCanReader2.pde in das Arduino. Wenn die Dose eingeschaltet ist, sollten Sie die Status-LEDs auf der Dose und der Empfängerplatine schnell blinken sehen. Jedes Mal, wenn die Dosen-LED blinkt, wird ein Datenpaket gesendet. Jedes Mal, wenn die LED der Empfängerplatine blinkt, wird ein gültiges Datenpaket empfangen. Wenn Sie dies nicht sehen, stimmt etwas mit der Funkverbindung. Etwas zu versuchen ist, den TX der Dose mit einem Stück Draht mit dem RX des Empfängers zu verbinden. Wenn dies nicht funktioniert, stimmt wahrscheinlich die Baudrate von Virtualwire nicht überein (siehe Code). Angenommen, Sie haben viel Flashen auf der Empfängerplatine, Sie sollten dies an Ihrem seriellen USB-Port überwachen können. Wenn Sie den seriellen Port (normalerweise /dev/ttyUSB0) bei 57600 überwachen, sollten Sie Daten wie Got: FF 02 Got: FF 03 ausspucken sehen… Die erste Zahl ist der Druck und die zweite die Distanz. Jetzt können Sie die Verarbeitung ausführen und diese Informationen verwenden, um schöne Bilder zu erstellen! Laden Sie die angehängte Verarbeitungsskizze (canRadioReader.pde). Starten Sie das Programm und überprüfen Sie die Ausgabe des Programms. Sie sollten eine Frequenz erhalten (die Ihnen sagt, wie viele Aktualisierungen pro Sekunde der Empfänger erhält - Sie möchten auf jeden Fall, dass dies mindestens 10 Hz beträgt). Außerdem erhalten Sie eine Abstands- und Düsenmessung. Testen Sie die Dose, indem Sie das Düsenpotentiometer bewegen und ein Stück Karton vor den Distanzsensor bewegen. Wenn alles funktioniert, fahren Sie mit dem nächsten Schritt fort - den Computer für die Kommunikation mit der Wiimote vorbereiten!

Schritt 6: Computer-Setup: Verarbeitung und die Wiimote

Computer-Setup: Verarbeitung und die Wiimote
Computer-Setup: Verarbeitung und die Wiimote

Unsere Hauptsache hier ist die Verarbeitung im Gespräch mit der Wiimote. Diese Anweisungen sind Linux-spezifisch, aber es sollte alles auf einem Mac und Windows funktionieren, mit einiger Recherche, wie man die Daten der Wiimote in die Verarbeitung bringt. Nach der Installation von Processing habe ich einige Anweisungen im Forum gefunden, aber ich hatte immer noch einige Probleme. Folgendes musste ich tun:

  1. Verarbeitung installieren
  2. Bluez-Bibliotheken installieren: sudo apt-get install bluez-utils libbluetooth-dev
  3. erstelle./processing/libraries/Loc und./processing/libraries/wrj4P5
  4. lade bluecove-2.1.0.jar und bluecove-gpl-2.1.0.jar herunter und lege sie in./processing/libraries/wrj4P5/library/
  5. Laden Sie wiiremoteJ v1.6 herunter und legen Sie die.jar-Datei in./processing/libraries/wrj4P5/library/
  6. Laden Sie wrj4P5.jar herunter (ich habe Alpha-11 verwendet) und legen Sie es in./processing/libraries/wrj4P5/library/
  7. laden Sie wrj4P5.zip herunter und entpacken Sie es in./processing/libraries/wrj4P5/lll/
  8. lade Loc.jar herunter (ich habe Beta-5) und lege es in./processing/libraries/Loc/library/
  9. Laden Sie Loc.zip herunter und entpacken Sie es in./processing/libraries/Loc/lll/

Dann habe ich von Classiclll inspirierten Code verwendet, um die Schaltflächen und die Sensorleiste zum Laufen zu bringen. Der angehängte Code/Skizze zeichnet nur einen Kreis, wo die erste Infrarotquelle von der Wiimote gefunden wird.

Um Ihr Bluetooth zu überprüfen, drücken Sie die Tasten eins und zwei auf der wiimote und versuchen Sie dann $ hcitool scan am Terminal. Sie sollten sehen, dass die Nintendo Wiimote erkannt wurde. Wenn Sie dies nicht tun, müssen Sie sich Ihr Bluetooth-Setup genauer ansehen. Wenn alles in Ordnung ist, laden Sie das Programm wiimote_sensor.pde (angehängt) und starten Sie es. Im unteren Statusteil des Bildschirms sollten Sie sehen: BlueCove Version 2.1.0 auf bluez versucht eine Wii zu finden Drücken Sie die Tasten 1 und 2 auf der Wiimote. Nachdem es erkannt wurde, schwenke deine Infrarotquelle (die Spraydose) davor herum. Sie sollten einen roten Kreis sehen, der Ihrer Bewegung folgt! Stellen Sie sicher, dass dies funktioniert, bevor Sie fortfahren. Wenn Sie es nicht zum Laufen bringen können, durchsuchen Sie das Verarbeitungsforum.

Schritt 7: Alles einrichten

Alles einrichten
Alles einrichten

Laden Sie unten die virtualGraffiti-Software herunter. Entpacken Sie es in Ihr Skizzenbuchverzeichnis und folgen Sie dann diesen Schritten!

* Sprühdose einschalten, Status-LED-Leuchte blinkt. * Computer einschalten, Spraydosenempfänger anschließen, * Bildschirm und Projektor einrichten, * Überprüfen Sie, ob die Status-LED des Spraydosenempfängers blinkt, * Starten Sie die Verarbeitung und laden Sie das virtuelle Graffiti-Programm, * Überprüfen Sie, ob Sie sowohl die serielle RX- als auch die TX-Anzeige erhalten LEDs blinken auf der Arduino-Platine, * drücken Sie beide Tasten auf Wiimote, * führen Sie eine 4-Punkt-Kalibrierung durch, wenn Sie dazu aufgefordert werden (sprühen Sie nacheinander über jedes Ziel und drücken Sie dann die Düse, bis die Schrift rot wird). * Spaß haben!

Schritt 8: Ressourcen, Links, Danke, Ideen

Links Hier sind die Links, die für das Funktionieren dieses Projekts von unschätzbarem Wert waren: RF-Info: https://narobo.com/articles/rfmodules.html Arduino: www.arduino.cc Verarbeitung: www.processing.org Wii mit Verarbeitung verwenden: 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 4-Punkt-Kalibrierung: https://www.zaunert.de/jochenz/wii/Danke! Ohne viele Leute, die ihre Arbeit veröffentlichen, wäre dieses Projekt viel schwieriger und teurer gewesen. Großen Dank an alle Open-Source-Crew, Leute, die die Wiimote gehackt haben, Classiclll für die einfache Verarbeitung von Wiimote, Jochen Zaunert für den Code zur Kalibrierung, die Processing-Crew, die Arduino-Crew, Lou für die Zimmermannshilfe und alle, die erforschen, machen und dann ihre Ergebnisse online veröffentlichen! Die Systeme anderer Leute * Ich habe gerade https://friispray.co.uk/ gefunden, mit Open-Source-Software und einem Howto * dieses System ermöglicht die Verwendung von Schablonen: cool! https://www.wiispray.com/, kein Code oder Howto * yrwalls virtuelles Graffiti-System, kein Code oder Howto. Ideen für die Erkundung * Verwenden Sie 2 Wiimotes, um 3D-Volumen-Tracking durchzuführen und verzichten Sie auf den Distanzsensor in der Dose: https://www.cl.cam.ac.uk/~sjeh3/wii/. Das wäre gut, denn der Abstandssensor ist derzeit der schwächste Teil des Systems. Es würde auch bedeuten, dass wir eine richtige Rückprojektionswand für lebendigere Bilder verwenden könnten. * Verwenden Sie eine Wiimote in der Dose, um den Winkel der Spraydose zu erkennen. Dies würde dem Sprühlackmodell Realismus verleihen.

Empfohlen: