Sommario:

Graffiti virtuali: 8 passaggi
Graffiti virtuali: 8 passaggi

Video: Graffiti virtuali: 8 passaggi

Video: Graffiti virtuali: 8 passaggi
Video: Ed Sheeran - Overpass Graffiti [Official Video] 2024, Luglio
Anonim
Graffiti virtuali
Graffiti virtuali

Ho visto alcuni sistemi di graffiti virtuali sul web ma non sono riuscito a trovare alcuna informazione pubblicata su come realizzarne uno (anche se vedi la pagina finale dei link). Ho pensato che sarebbe stato fantastico per i miei laboratori di graffiti, quindi ne ho creato uno io stesso e ho pubblicato tutto il necessario per crearne uno tuo qui! Caratteristiche * tutto open source e hardware, * costo < £ 100 esclusi proiettore e computer, * rileva l'ugello della lattina pressione e distanza dallo schermo, * i modelli dipingono gocciolando se ti muovi troppo lentamente! Note * questo istruibile è di livello abbastanza alto, ma per favore fammi sapere se ho perso qualcosa di importante, * la configurazione del computer è per Linux. Se riesci a farlo funzionare su altri sistemi, pubblica le tue istruzioni! Abilità che ti serviranno * lavorazione del legno per realizzare lo schermo di retroproiezione in legno, * circuiti elettronici e programmazione di micro controller Atmel AVR (o arduino), * essere in grado di installare alcuni librerie sul tuo computer per consentire all'elaborazione di parlare con il wiimote.

Passaggio 1: come funziona

Come funziona
Come funziona

* La bomboletta spray ha un LED a infrarossi che brilla attraverso lo schermo del proiettore ed è visibile dalla fotocamera del wiimote. * Il wiimote invia le coordinate X e Y della lattina al computer tramite un collegamento radio bluetooth. * Il computer esegue un semplice programma di pittura che utilizza un proiettore per "dipingere" le linee mentre si disegna con la lattina. Si occupa anche di mappare la fotocamera del wiimote sullo schermo utilizzando un sistema di calibrazione a 4 punti. * Lo spray può anche rilevare la sua distanza dallo schermo e la pressione dell'ugello: più ci si allontana più grande è il punto disegnato, più si preme l'ugello, più opaco diventa il punto di vernice.

Passaggio 2: i componenti

I componenti
I componenti

Ecco tutti i bit necessari per unire:

* computer - deve essere di circa 1,4 Ghz, bluetooth e una porta USB, * ambiente di elaborazione, * software virtualGraffiti, scaricare dal passaggio "configurazione del computer", * nintendo wiimote - acquistare di seconda mano da ebay, * proiettore - sarà necessario sii luminoso se hai intenzione di utilizzare durante il giorno o all'interno con le luci accese, * schermo di retroproiezione - fai da te, * bomboletta spray virtuale - fai da te, * ricevitore bomboletta virtuale - fatti da te. Costo * arduino per ricevitore can (usb integrato->seriale) £ 21 * coppia radio rx/tx £ 9 * componenti per la costruzione di bomboletta spray £ 18 più custodia opzionale £ 12 * custodia opzionale per ricevitore £ 8 * nintendo wiimote - acquista di seconda mano da ebay £ 20

Passaggio 3: schermo di retroproiezione

Schermo di retroproiezione
Schermo di retroproiezione

Lo schermo deve avere la giusta quantità di trasparenza! Se non è sufficientemente trasparente, l'immagine non verrà visualizzata e il LED a infrarossi non sarà visibile alla fotocamera del wiimote. Se è troppo trasparente, il proiettore sarà accecante e l'immagine sarà sbiadita. (Anche se vedi l'ultima pagina per i modi per mitigare questo).

Ho usato la lycra, che è elastica così posso allungarla per renderla più trasparente. Al momento lo tengo con le puntine da disegno, ma sto passando al velcro quando avrò accesso a una macchina da cucire. Ho realizzato un telaio in legno con l'aiuto di un'officina e di un falegname (grazie Lou!) avevo bisogno che crollasse per poterlo trasportare sulla mia bici. Se ne stai realizzando uno per un luogo fisso, sarà più facile realizzarlo. Basta farlo con un rapporto di aspetto 4: 3 e abbastanza rigido da rimanere in posizione verticale. Ho scoperto che le persone tendono a spingere un po' sul materiale dello schermo, quindi deve essere un po' robusto.

Passaggio 4: bomboletta spray

Bombola spray
Bombola spray
Bombola spray
Bombola spray

Questa è la parte più complicata del progetto e ha richiesto più tempo per essere corretta. La buona notizia è che non hai bisogno di tutta questa roba per far funzionare un sistema divertente. La cosa più semplice è ottenere un circuito con un interruttore, un LED a infrarossi e un resistore. Quando premi l'interruttore, il LED si accende e viene visto e tracciato dalla fotocamera del wiimote.

Questa versione è più avanzata, perché misura anche la distanza dallo schermo e la pressione dell'ugello. Entrambe queste cose sono importanti quando stai effettivamente dipingendo a spruzzo. Volevo creare un sistema di allenamento, quindi era importante renderlo il più "reale" possibile (entro i miei limiti di costo). Il circuito è piuttosto semplice. Dai un'occhiata allo schema elettrico allegato per vedere di persona. Hai bisogno di abilità di saldatura di base e di essere in grado di mettere un circuito su veroboard. Inoltre, dovresti sentirti felice con la programmazione di microcontrollori. Costruire un circuito da zero rispetto all'utilizzo di una scheda arduino opzione 1: se si desidera utilizzare una scheda arduino in bomboletta spray. Usa arduino così com'è e dimezza la velocità di trasmissione della radio tx nel codice spray. opzione 2: vuoi risparmiare ma non hai un programmatore di fusibili. Costruisci la scheda e usa un cristallo esterno da 16 MHz. Dimezza il baud rate come nell'opzione 1. opzione 3: vuoi risparmiare ancora più denaro e hai un programmatore di fusibili. Costruisci il tabellone, ma ometti il cristallo esterno. Utilizzare il programmatore di fusibili per impostare l'atmel in modo che utilizzi il suo orologio interno. Credo che questo programmatore parallelo fai-da-te ti permetterà di programmare i fusibili. Io uso il programmatore olimex. Panoramica del circuito Il microcontrollore misura l'uscita dal sensore di distanza nitido 2d120x (ottime informazioni su questo sensore qui) e il potenziometro lineare. Misura anche l'uscita del potenziometro LED PWM. Viene utilizzato per regolare l'emissione luminosa del LED. Il LED IR che sto usando è 100 mA e la lunghezza d'onda di picco è 950 nm (ideale per wiimote). Il microcontrollore utilizza il PWM per far lampeggiare il LED molto velocemente. Usiamo un mosfet di potenza IRF720 in modo che il micro non bruci la sua uscita. Inoltre volevo aggiungere capacità per un LED più luminoso in futuro. È presente un LED di stato che lampeggia ogni volta che viene trasmesso un pacchetto dati sulla radio. Se tutto funziona bene, questa spia dovrebbe lampeggiare a circa 15Hz. Infine, il modulo trasmettitore radio è collegato al pin 3 (pin 1 digitale per arduino) del microcontrollore in modo da poter inviare le informazioni che stiamo misurando al computer. È NECESSARIA anche un'antenna collegata alla scheda del ricevitore. Ho usato un pezzo di filo lungo 12 cm. Questa è la metà di quanto consigliato in questa eccellente pagina di informazioni. Programmazione del microcontrollore Dopo aver costruito il circuito, sarà necessario caricare il programma (allegato). Io uso l'ambiente/librerie di programmazione arduino. Puoi compilarlo con l'IDE arduino e quindi programmarlo come fai di solito. Il mio circuito è reso più semplice utilizzando il clock interno a 8MHz del micro. Se lo usi, dovrai impostare le impostazioni dei fusibili per utilizzare l'RC interno calibrato a 8 MHz: 1111 0010 = 0xf2 Ciò significa che avrai bisogno di un programmatore in grado di scrivere fusibili../avrdude -C./avrdude.conf -V -p ATmega168 -P /dev/ttyACM0 -c stk500v2 -U lfuse:w:0xf2:m Se non hai questo tipo di programmatore (diciamo che hai solo l'arduino scheda), basta usare un cristallo da 16 MHz tra i pin 9 e 10 e dovrebbe funzionare tutto (non testato - potrebbe essere necessario un condensatore). Dovrai anche modificare il codice del programma in modo che il baud del trasmettitore sia dimezzato. Test Dopo che hai messo tutto insieme e il programma caricato, devi regolare la luminosità del LED IR. Volevo solo massimizzare l'emissione di luce senza tostare il LED, quindi ne ho esplosi alcuni e ho finito con una media di assorbimento di circa 120 mA. Se hai un multimetro puoi regolarlo abbastanza facilmente, altrimenti regola il potenziometro in modo che sia abbastanza alto ma non del tutto! È inoltre possibile controllare gli ingressi analogici sui pin 26, 27 e 28 del potenziometro di regolazione PWM, del sensore di distanza e del potenziometro dell'ugello. Se hai un oscilloscopio puoi controllare il treno di impulsi che esce dal pin 3 nel modulo radio TX. Controllare l'uscita pwm del LED sul pin 11. È possibile utilizzare una fotocamera del telefono cellulare (o la maggior parte delle fotocamere CCD) per vedere il LED IR accendersi quando si preme il pulsante dell'ugello.

Passaggio 5: ricevitore per bomboletta spray

Ricevitore per bomboletta spray
Ricevitore per bomboletta spray
Ricevitore per bomboletta spray
Ricevitore per bomboletta spray

Se stai seguendo il percorso della semplice bomboletta spray, non hai bisogno di questo pezzo.

Altrimenti, uso solo una scheda arduino, con il ricevitore radio collegato al pin 2. Questo rende facile ottenere i dati in un computer tramite il chip USB -> seriale sulla scheda arduino. Se dovessi realizzare un circuito personalizzato, probabilmente utilizzerei una scheda di valutazione FTDI USB -> UART seriale. È NECESSARIA anche un'antenna collegata alla scheda del ricevitore. Ho usato un pezzo di filo lungo 12 cm. Questa è la metà di ciò che è raccomandato in questa eccellente pagina di informazioni. Carica lo schizzo graffitiCanReader2.pde nell'arduino. Con la lattina accesa, dovresti vedere i LED di stato sulla lattina e la scheda del ricevitore lampeggiare velocemente. Ogni volta che il LED della lattina lampeggia, viene inviato un pacchetto di dati. Ogni volta che il LED della scheda ricevente lampeggia, viene ricevuto un pacchetto dati valido. Se non lo vedi, c'è qualcosa che non va con il collegamento radio. Qualcosa da provare è collegare il TX della lattina all'RX del ricevitore con un pezzo di filo. Se questo non funziona, probabilmente hai una mancata corrispondenza nella velocità di trasmissione di virtualwire (vedi il codice). Supponendo che tu abbia un sacco di lampeggi in corso sulla scheda del ricevitore, dovresti essere in grado di monitorarlo sulla tua porta seriale USB. Se monitori la porta seriale (di solito /dev/ttyUSB0) a 57600 dovresti vedere i dati che escono come Got: FF 02 Got: FF 03… Il primo numero è la pressione e il secondo è la distanza. Ora puoi eseguire l'elaborazione e utilizzare queste informazioni per creare belle immagini! Carica lo schizzo di elaborazione allegato (canRadioReader.pde). Avviare il programma e controllare l'output del programma. Dovresti ottenere una frequenza (che ti dice quanti aggiornamenti al secondo sta ricevendo il ricevitore - sicuramente vuoi che sia almeno 10Hz). Inoltre otterrai una misurazione della distanza e dell'ugello. Testare la bomboletta spostando il potenziometro dell'ugello e spostando un pezzo di carta davanti al sensore di distanza. Se funziona tutto, passa al passaggio successivo: preparare il computer per parlare con il wiimote!

Passaggio 6: configurazione del computer: elaborazione e Wiimote

Configurazione del computer: elaborazione e Wiimote
Configurazione del computer: elaborazione e Wiimote

Il nostro principale qui è ottenere l'elaborazione parlando con il wiimote. Queste istruzioni sono specifiche per Linux, ma dovrebbero funzionare tutte su Mac e Windows con alcune ricerche su come elaborare i dati del wiimote. Dopo aver installato l'elaborazione, ho trovato alcune istruzioni sul forum, ma ho ancora avuto dei problemi. Ecco cosa dovevo fare:

  1. installare l'elaborazione
  2. installa le librerie bluez: sudo apt-get install bluez-utils libbluetooth-dev
  3. create./processing/libraries/Loc e./processing/libraries/wrj4P5
  4. scarica bluecove-2.1.0.jar e bluecove-gpl-2.1.0.jar e mettili in./processing/libraries/wrj4P5/library/
  5. scarica wiiremoteJ v1.6 e metti il .jar in./processing/libraries/wrj4P5/library/
  6. scarica wrj4P5.jar (ho usato alpha-11) e mettilo in./processing/libraries/wrj4P5/library/
  7. scarica wrj4P5.zip e decomprimilo in./processing/libraries/wrj4P5/lll/
  8. scarica Loc.jar (ho usato beta-5) e mettilo in./processing/libraries/Loc/library/
  9. scarica Loc.zip e decomprimilo in./processing/libraries/Loc/lll/

Quindi ho usato il codice ispirato da Classiclll per far funzionare i pulsanti e la barra dei sensori. Il codice/schizzo allegato disegna semplicemente un cerchio in cui il wiimote trova la prima sorgente a infrarossi.

Per controllare il tuo bluetooth, premi i pulsanti uno e due sul wiimote, quindi prova $ hcitool scan al terminale. Dovresti vedere il wiimote nintendo rilevato. In caso contrario, dovrai esaminare ulteriormente la configurazione del tuo bluetooth. Se va tutto bene, carica il programma wiimote_sensor.pde (allegato) e avvialo. Nella parte inferiore dello schermo dovresti vedere: BlueCove versione 2.1.0 su bluez cercando di trovare un wii Premi i pulsanti 1 e 2 sul wiimote. Dopo che è stato rilevato, agita la sorgente a infrarossi (la bomboletta spray) davanti ad essa. Dovresti vedere un cerchio rosso che segue il tuo movimento! Assicurati che funzioni prima di andare avanti. Se non riesci a farlo funzionare, cerca nel forum di elaborazione.

Passaggio 7: impostare tutto

Preparare il tutto
Preparare il tutto

Scarica il software virtualGraffiti qui sotto. Estrailo nella directory del tuo album da disegno e poi segui questi passaggi!

* accendere la bomboletta spray, controllare che la spia LED di stato lampeggi. * accendere il computer, collegare il ricevitore della bomboletta spray, * schermata di configurazione e proiettore, * verificare che il LED di stato del ricevitore della bomboletta spray lampeggi, * avviare l'elaborazione e caricare il programma virtualGraffiti, * verificare che sia visualizzato l'indicatore seriale RX e TX I LED lampeggiano sulla scheda arduino, * premere entrambi i pulsanti sul wiimote, * eseguire la calibrazione a 4 punti quando richiesto (mettere a turno la bomboletta spray su ciascun bersaglio, quindi premere l'ugello finché la scritta non diventa rossa). * divertiti!

Passaggio 8: risorse, collegamenti, ringraziamenti, idee

Collegamenti Ecco i collegamenti che sono stati preziosi per far funzionare questo progetto: Info RF: https://narobo.com/articles/rfmodules.html Arduino: www.arduino.cc Elaborazione: www.processing.org Utilizzo di wii con l'elaborazione: 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 Calibrazione a 4 punti: https://www.zaunert.de/jochenz/wii/Grazie! Senza molte persone che pubblicano il loro lavoro, questo progetto sarebbe stato molto più difficile e costoso. Un enorme ringraziamento a tutto l'equipaggio dell'open source, alle persone che hanno hackerato il wiimote, Classiclll per aver reso il wiimote facile da usare con l'elaborazione, Jochen Zaunert per il codice per eseguire la calibrazione, l'equipaggio di elaborazione, l'equipaggio di arduino, Lou per l'aiuto di falegnameria e tutti coloro che esplorano, realizzano e poi pubblica le loro scoperte online! I sistemi di altre persone * Ho appena trovato https://friispray.co.uk/, con software open source e un howto * questo sistema consente l'uso di stencil: fantastico! https://www.wiispray.com/, nessun codice o howto * sistema di graffiti virtuali di yrwall, nessun codice o howto. Idee per l'esplorazione * usa 2 wiimote per tracciare il volume 3D ed elimina il sensore di distanza nella lattina: https://www.cl.cam.ac.uk/~sjeh3/wii/. Questo sarebbe positivo perché il sensore di distanza è attualmente la parte più debole del sistema. Significherebbe anche che potremmo utilizzare un adeguato schermo di retroproiezione per immagini più vivide. * utilizzare un wiimote nella bomboletta per rilevare l'angolo della bomboletta spray. Ciò aggiungerebbe realismo al modello di vernice spray.

Consigliato: