When a code-controlled drawing arm is Art
About the Project: Harlen Cruz's A Crash
Although the screws and sturdy materials
suggest the artwork is stable, the drawing it
creates says the opposite. It moves aggressively
on the paper and it taps the paper frequently,
demanding attention as if the artwork itself
needs help.
The image created looks similar to a wave
crashing. A smooth stream of water makes
people think of tranquility and peace, a violent
wave is a crash of thoughts and emotions.
Choosing a blue marker and teal structure
is supposed to connect with feeling “blue,” theproject releases its stress and frustration
through its motion on the paper.
import RPi.GPIO as GPIO
import time
servoPIN = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(servoPIN, GPIO.OUT)
p = GPIO.PWM(servoPIN, 50) # GPIO 18 for PWM with 50Hz
p.start(2.5) # Initialization
try:
while True:
p.ChangeDutyCycle(5)
time.sleep(0.5)
p.ChangeDutyCycle(10)
time.sleep(0.5)
p.ChangeDutyCycle(2)
time.sleep(0.5)
p.ChangeDutyCycle(12.5)
time.sleep(0.5)
p.ChangeDutyCycle(1)
time.sleep(0.5)
p.ChangeDutyCycle(7.5)
time.sleep(0.5)
p.ChangeDutyCycle(12)
time.sleep(0.5)
p.ChangeDutyCycle(2.5)
time.sleep(0.5)
p.ChangeDutyCycle(11)
#plus many more
p.ChangeDutyCycle(12)
time.sleep(0.5)
p.ChangeDutyCycle(5)
time.sleep(0.5)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
To get the idea across that this was going to be a healthy learning environment for what is essentially a child. I surrounded it with children’s storybooks, colorful toys, and different art materials (paints, crayons, markers, etc.). I painted my armature baby blue and built it to be around the size and length of a child’s arm. For the paper, I had my two-year-old cousin draw whatever he wanted with paint and paid attention to how he drew (scribbled, really) on it. When he was done, I edited my coding to somewhat simulate his arm movements; how often did he go off the paper, how rigid his arm was, how sporadic his brushstrokes were, and so on.
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
IN1 = 11 # pin11
IN2 = 12
IN3 = 13
IN4 = 15
def setStep(w1, w2, w3, w4):
GPIO.output(IN1, w1)
GPIO.output(IN2, w2)
GPIO.output(IN3, w3)
GPIO.output(IN4, w4)
def stop():
setStep(0, 0, 0, 0)
def forward(delay, steps):
for i in range(0, steps):
setStep(1, 0, 0, 0)
time.sleep(delay)
setStep(0, 1, 0, 0)
time.sleep(delay)
setStep(0, 0, 1, 0)
time.sleep(delay)
setStep(0, 0, 0, 1)
time.sleep(delay)
def backward(delay, steps):
for i in range(0, steps):
setStep(0, 0, 0, 1)
time.sleep(delay)
setStep(0, 0, 1, 0)
time.sleep(delay)
setStep(0, 1, 0, 0)
time.sleep(delay)
setStep(1, 0, 0, 0)
time.sleep(delay)
def setup():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location
GPIO.setup(IN1, GPIO.OUT) # Set pin's mode is output
GPIO.setup(IN2, GPIO.OUT)
GPIO.setup(IN3, GPIO.OUT)
GPIO.setup(IN4, GPIO.OUT)
def loop():
while True:
print ("backward...")
backward(0.003, 64) # 512 steps --- 360 angle
print ("stop...")
stop() # stop
time.sleep(1) # sleep 3s
print ("forward...")
forward(0.005, 64)
print ("stop...")
stop()
time.sleep(1)
print ("backward...")
forward(0.005, 32)print ("stop...")
stop()
time.sleep(1)
print ("forward...")
forward(0.005, 16)
print ("stop...")
stop()
time.sleep(1)
print ("backward...")
forward(0.005, 16)
print ("stop...")
stop()
time.sleep(1)
def destroy():
GPIO.cleanup() # Release resource
if __name__ == '__main__': # Program start from here
setup()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child function destroy() will be executed.
destroy()
The Conceptual Barber is a drawing machine designed to create potential
hairstyles. The styles created by the barber, in almost an act of divination, continue to
match up to various hair styles I have had throughout my life, and even some hair styles
reminiscent of those prominently seen in contemporary politics. The machine is
programmed to have a similar rhythm to a barber, with bursts of movement and a pause.
The barberly movement is compounded by the methodical repositioning of the drawing
machine, while in use, by the artist. The machine can create potential hairstyles, but it is
up to each individual's interpretation to show what these truly are.
import RPi.GPIO as GPIO
import time
servoPIN = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(servoPIN, GPIO.OUT)
p = GPIO.PWM(servoPIN, 50) # GPIO 18 for PWM with 50Hz
p.start(2.5) # Initialization
try:
while True:
p.ChangeDutyCycle(5)
time.sleep(0.5)
p.ChangeDutyCycle(7.5)
time.sleep(0.5)
p.ChangeDutyCycle(10)
time.sleep(1.5)
p.ChangeDutyCycle(12.5)
time.sleep(0.5)
p.ChangeDutyCycle(10)
time.sleep(0.5)
p.ChangeDutyCycle(7.5)
time.sleep(1.5)
p.ChangeDutyCycle(5)
time.sleep(0.5)
p.ChangeDutyCycle(2.5)
time.sleep(0.5)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
Mounira Elsamra's American School System:
My drawing arm is a representation of the current American school system. The system is very robotic and does not allow much room for creativity or growth. The current public school system in the US is structured around test taking and making children memorize and regurgitate information learned in the classroom. The robot featured in the video represents that system while the permanent marker represents the teacher. The fine #2 pencil, with its path prepaved, represents the student. If there is no freedom there will be no growth only predictable lines that mirror that of the teachers.
Comments