A Super Artsy Stencil Machine, aka "how to take something so simple as the creation of a stencil and make it complex by using a machine".
produced by: Valerio Viperino
I've been a fan of the works of Banksy since my early adolescence, and when I recently had the chance to watch "Exit through the gift shop" - the documentary that narrates the early stages of the street art movement - I couldn't help but think about adding a computational dimension to this awesome genre.
I thought that interesting developments could come out when mixing the raw, quick and dirty skills of the street artists with the precise, rational and repeatable metholodogy that working with machines requires. In addition to that I was also exploring the role of the machine as a collaborator, rather than as a substitute of the artist, which is something that can more easily be achieved when creating computational works in the physical world.
Designing the machine took a lot of time. I had some ideas about how it could work but I knew that I had to test and validate each one of them, as you can see also in the video. I initially thought of several different options: using brushes, spray cans and rollers in order to paint through the stencil. I had to do some manual tests in order to understand the complexity of the required movements, and after testing many alternatives it turned out that using a roller was the best way to go in terms of expressiveness, ease, budget and time.
Here are some of the initial sketches:
How it works
The basic idea - once all of the bad ones are removed - is quite simple. Take the action of spreading paint on a canvas using a roller and strip every unnecessary movement.
Here are the only two movements that you will need:
For this reason I'm using a stepper motor that rotates a threaded rod on which the roller is hosted. The roller can be lifted up and moved down by rotating a small trimpot that controls the rotation of the actual two servos holding the roller. Codewise I'm using two libraries for controlling the stepper and servos.
So the setup goes like this: an Arduino uno controls both an L298N driver - responsible for the stepper motor - and a PCA9685 driver - which controls the two servos. The PCA9685 is not really required, you could control two servos with just the Arduino, but I always prefer to have a dedicated driver with its own power supply and circuit. Two buttons (read as digital inputs) are used to make the motor go forward or backward.
I must say that I had quite a lot of fun in building this little helper machine and I can see some directions which could be worthy of exploring. Increasing the size of the canvas is the simplest of them, and using another stepper motor instead of the two servos would be a nice step forward in order to increase the adherence of the roller on the canvas.
I now feel a little bit more confident in creating small CNC machines and I may try to build some more of them, maybe little drones, vertical plotters and machines for painting on the asphalt of the road, always with the aim of expanding the boundaries of both the street art and digital art.
Final image created:
Exit throught the gift shop: https://www.imdb.com/title/tt1587707/plotsummary?ref_=tt_ov_pl
Adafruit PWM Servo Driver Library - https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library
Arduino Stepper Motor Library.