Programming for Sculptors

ARTS-A0407 – Digital Sculpture 3 (2cr)

Lecture 1, 8.1.2020

Today:

  • Introductions
  • Practical things
  • Goals
  • What's an Arduino? What can you do with one?
  • Arduino hello world

Introductions

Share (for example) your:

  • Name
  • Study background
  • Expectations and hopes about the course

Otso Havanto

  • MSc at Information Networks, finishing MA at Media Lab
  • Co-founder at Mehackit, UX-designer at Columbia Road, freelance art technician and media artist
  • Experimental audio/video instruments and electronics, digital media
  • I'm interested in how altering a medium can create new context and content
  • otsohavanto.net

Discussion

  • Have you programmed before?
  • Have you built any electronics before?
  • Do you have any examples of artwork that utilizes techniques such as programming or electronics?
  • Do you already have something in your own practice where you might need techniques related to this course?

Practical things

Course schedule

2op = 54h, Lectures = 22h, Independent work = 32h

  • 08.01. Wednesday 17-19: Introduction, discussion, Arduino: hello world
  • 09.01. Thursday 17-19: Arduino: first beeps, simple input and output. Assignment 1.
  • 15.01. Wednesday 17-19: Working on assignment 1
  • 16.01. Thursday 17-19: NO CLASS - Independent work: find an used electronic toy
  • 22.01. Wednesday 17-19: Arduino and Motors. Assignment 2.
  • 23.01. Thursday 17-19: Arduino and Motors II
  • 29.01. Wednesday 17-19: Toy Hacking
  • 30.01. Thursday 17-19: TBA, project discussion
  • 05.02. Wednesday 17-19: Project tutoring
  • 06.02. Thursday 15-19: Project tutoring (extra for cancelled class)
  • 12.02. Wednesday 15-19: Project tutoring (extra for cancelled class)
  • 13.02. Thursday 17-19: Exhibition

Assignments

  1. Short poem built with simple input and output (9.1.-22.1.)
  2. Optional but recommended: find an used electronic toy
  3. Optional: Visit an exhibition with interactive/kinetic/media art
  4. Short poem built with an input and a motor (22.1.-29.1.)
  5. Course project (30.1.-13.2.)

 

Submission: short video and written description submitted with mycourses or WeTransfer (or link to google drive etc...)

Communication

  • All necessary information will be on MyCourses
  • Actual content might be on my website or other sites but you can find the links on MyCourses
  • Submissions trough WeTransfer or MyCourses. Instructions will be on MyCourses
  • Do you use Slack? Should we have a Slack channel for this course?
  • BTW it is encouraged to work together during the course and on the assignments.

Wednesdays and Thursdays 8.1.-13.2. at G014 Mekatroniikka, Väre (Mechatronics lab)

 

Can you bring a laptop to class?

Programming for Sculptors – goals

How to program physical things in order to fulfill your creative goals

My hopes for the course

  • Fun, inspiring, sense of accomplishment
  • Going beyond technical demonstrations – poems not demos
  • You have more means for self expression: You know names for things, you can estimate what is possible, what is simple and what is complex, you know what you want to learn more about, you can more easily collaborate
  • It's an introduction. The aim is not to become an engineer or learn programming professionally.

Challenges

  • Learn programming and electronics in 12 lectures – don't be too hard on your selves!
  • 17-19 ☠️
  • Balance between technical stuff and meaningful content
  • Individual support and support during independent work

Disclaimers about learning programming

  • I did a CS1 course way back. Task after task of grinding trough all the relevant concepts. Programming exercises demonstrating each concept, graded by computer.
  • You will have to work with examples you can't fully understand yet. That might be frustrating, but eventually it will make some sense!
  • Reading is a great way to understand code. Use paper and pen to execute the code by your self.
  • Programming is all about dividing a complex sequence to simple instructions. Start with paper and pen and figure out the sequence of instructions. Start small, see that it works and only then move on.
  • Breakthroughs happen when you face an obstacle and work your way trough it.
  • Programming is difficult but not hard!

What's an Arduino? What can you do with one?

Arduino

  • Programmable electronics. Open source circuit boards and a code editor (IDE) for programming micro controller chips
  • Control physical things (lights, motors, speakers...)
  • Read physical things (buttons, knobs, distance/light/heat sensors, microphones...)
  • Send sensor data to computer or receive instructions from computer

Examples

Niklas Roy - My little piece of Privacy

Chris Eckert - Blink

Examples 2

Marloes Van Son - Devices

LMNC - Animatronic Face For 30 Quid

Koka Nikoladze - Koka’s Stepper Miniature

Few examples of my work

Hello world

Install and open Arduino IDE

arduino.cc -> software

 

Open Arduino IDE and let's go trough the different elements

Let's write code to blink the built in LED (light emitting diode)

// Arduino Hello World!
// Simple test program to blink the built in LED
// These lines starting with forward slashes are comments
// Comments are for humans and computer ignores these so no need to copy comment
// There's one mistake in the following code. Can you spot it?
// Also, the led is only turned on. How could we also turn the led off so that it blinks?


int LED_PIN = 13; // A line of code, ending in semicolon
// Here we define an integer variable named 'LED_PIN' and assign a value '13'

// A function named 'setup' that doesn't take arguments
// This is a special function that is executed when the arduino starts
void setup() {
	pinMode(LED_PIN, OUTPUT);
    // https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/
    // Here we call a function called 'pinMode'
    // The function takes two arguments: pin number, and mode
    // We set the pin 13 as an output pin
}

// A function named 'loop' that doesn't take arguments
// This is a special function that is executed over and over again
void loop() {
	
}

Other links

Tomorrow: input and sound