3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

virtual graffiti

virtual graffiti
I've seen a few virtual graffiti systems on the web but couldn't find any information published on how to make one (though see final links page). I thought it would be great for my graffiti workshops, so I made one myself and have published everything you need to make your own here!



Features

* all open source and hardware,
* cost < £100 excluding projector and computer,
* detects can's nozzle pressure and distance from the screen,
* models paint dripping if you move too slowly!

Notes

* this instructable is quite high level, but please let me know if I've missed something important,
* the computing setup is for Linux. If you get it working on other systems, please post your instructions!

Skills you'll need

* wood working to make the wooden rear projection screen,
* electronic circuits and programming Atmel AVR micro controllers (or arduino),
* be able to install some libraries on your computer to allow processing to talk to the wiimote.


 
Remove these adsRemove these ads by Signing Up
 

Step 1How it works

how it works
* The spray can has an infra red LED that shines through the projector screen and is seen by the wiimote's camera.
* The wiimote sends the X and Y co-ordinates of the can to the computer via a bluetooth radio link.
* The computer is running a simple painting program that uses a projector to "paint" the lines as you draw with the can. It also takes care of mapping the wiimote camera to the screen using a 4 point calibration system.
* The spray can also detect its distance from the screen and the nozzle pressure: the further you are away the bigger the dot drawn, the harder you press the nozzle, the more opaque the paint dot becomes.

« Previous StepDownload PDFView All StepsNext Step »
13 comments
Jan 18, 2012. 1:46 PMSeeDoubleYouNL says:
Hey Matthew, thanks for you work. I tried your steps but when I run wiimote_sensor.pde processing gives me the following error:

Native Library bluecove not available
!! There may be no USB dongle/device. !!
java.lang.IllegalStateException: Bluetooth failed to initialize. There is probably a problem with your local Bluetooth stack or API.
at wiiremotej.WiiRemoteJ.(WiiRemoteJ.java:74)
at lll.wrj4P5.Wrj4P5.connect(Wrj4P5.java:301)
at lll.wrj4P5.Wrj4P5.connect(Wrj4P5.java:290)
at lll.wrj4P5.Wrj4P5.connect(Wrj4P5.java:284)
at lll.wrj4P5.Wrj4P5.connect(Wrj4P5.java:278)
at wiimotetest.setup(wiimotetest.java:30)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.bluetooth.BluetoothStateException: BlueCove library bluecove not available
at com.intel.bluetooth.BlueCoveImpl.loadNativeLibraries(BlueCoveImpl.java:381)
at com.intel.bluetooth.BlueCoveImpl.detectStack(BlueCoveImpl.java:429)
at com.intel.bluetooth.BlueCoveImpl.access$500(BlueCoveImpl.java:65)
at com.intel.bluetooth.BlueCoveImpl$1.run(BlueCoveImpl.java:1020)
at java.security.AccessController.doPrivileged(Native Method)
at com.intel.bluetooth.BlueCoveImpl.detectStackPrivileged(BlueCoveImpl.java:1018)
at com.intel.bluetooth.BlueCoveImpl.getBluetoothStack(BlueCoveImpl.java:1011)
at javax.bluetooth.LocalDevice.getLocalDeviceInstance(LocalDevice.java:75)
at javax.bluetooth.LocalDevice.getLocalDevice(LocalDevice.java:95)
at wiiremotej.WiiRemoteJ.(WiiRemoteJ.java:67)
... 8 more

When I run $ hcitool scan it dows see the wiimote so the dongle is probably not the problem. Any suggestions?
Apr 14, 2010. 7:11 AMulfilas says:
 Having trouble with this :( should this be run in processing? If so - do I need to rename this as another file name? I did try - but I get errors. Was it an earlier version of processing than the one currently available.. do I use the withoiut java one?
Feb 14, 2011. 7:59 PMsanspaper says:
rename it to a .pde file.
Apr 14, 2010. 2:50 PMulfilas says:
 okay so I managed to work out ow to extract the file by changing its name from a tmp file to a tar.gz and extracting it using 7-zip !  I now have the file open in processing - I'm getting a thing saying that "package III does not exist. You might be missing a library"
Jan 12, 2010. 9:14 AMsc_r says:
Hey! This is cool, just got all of the bits together but struggling to download the .pde file - it just links to a .tmp file.

What gives? Could you upload it again please? or mail the code over to stuchilds [at] gmail.com

Nice one, good work Matthew :)
Jan 13, 2010. 9:00 AMsc_r says:
Thanks for this - I downloaded the .tmp file, renamed to spraycan.pde and looks like arduino code. Will have a play later.

For others: this pinout of the atmega/arduino will help:

http://arduino.cc/en/Hacking/PinMapping168

Next thing I'm struggling with is the external crystal osc:

I don't have the facilities to reset the fuse / timing on the atmega chip so thought would try to use an external 16MHz crystal.
[this one: http://uk.farnell.com/jsp/search/productdetail.jsp?CMP=i-ddd7-00001003&sku=9712526 ]

Now, as I am trying to build this circuit around an actual Arduino board I can't see a way of connecting the external osc. as pins 9/10 of the atmega chip do not have an external connection, they are linked to the onboard crystal.

Will keep updating progress.. Trying to use a pressure sensitive resistor instead of a linear pot. for the cap assembly instead in the hope that it will be a little more durable [plus I have some lying around to play with]

Lovely.
stuart
Jan 9, 2010. 7:23 AMDIIILIIII says:
Hey man this is awesome, we made a simpler version in 2008, link here http://friispray.co.uk/infra-red-spray-can/ and we've been looking to implement the arduino and the pressure and distance sensors for the past year, would it be cool to blog about this on our site? we've ordered all the bits and are going to try out a new version based on your findings next week, were massive believers in open source so everything will be credited as you. 

Weve taken the one we made all round the UK and originally made it for back projecting on windows. were also taking it to NY in march time and would be great to see you there.

Super Nice

Dave
JamJarcollective.com

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
23
Followers
8
Author:matthewvenn
I'm an artist/engineer excited about making cool stuff!