top of page

PROCESSING & ARDUINO

Creative Interactions and Physical Computing

​

In second year of university, I had two modules run by the school of computing for a combination of computing and design students. These aimed to get both groups of students understanding where the two subject areas met.

​

Processing - 2D Image

​

Using Processing, a Java-based graphical IDE, I had an individual assignment to:

​

​

​

​

​

"For this assignment you will be applying what you have learned about programming fundamentals and 2D graphics to produce a computational picture. Using 2D primitives, you should build up an interesting image."

It was also outlined that this must be a non-interactive program, not taking in any user input. The expectation was also for it to be a static image with no animation, but this could be added as part of the mark for including something extra not covered in class.

 

I created a scene of a 'clock shop' which allowed me to most of the shape drawing functions to create an interesting image, featuring a grandfather clock, curved mantlepiece clock, a fireplace with fire, and a sign featuring text. For the 'something extra' mark I chose to animate the clocks so that they actually worked and showed the correct time.

I used the second(), minute() and hour() functions to import time from the computer to the program, then three map() functions to map the values in seconds, hours and minutes into numbers of degrees. Then a line() function to draw the hand from the centre point of the clock, to a calculated end point .

Processing - Interactive Installation

​

Another assignment I did using Processing was a group assignment with the brief:

​

"As part of the V&A Dundee opening, you have been asked to design and develop an interactive installation for in the museum that would reflect the City of Dundee in some way."​

​

​

​

​

My group decided to make an interactive map that a visitor could use to explore and find out about some of Dundee's landmarks.

​

We chose a fairly small map area that covers the City Centre, Dundee University Campus and landmarks as far West as Magdalen Green and as far North as Dudhope Park.

​

We chose a penguin as the character to explore Dundee, as Dundee has a historic connection with penguins. The ship 'RRS Discovery' which is docked right next to the V&A Dundee undertook its first ever mission to the Antarctic and allowed the first ever sighting of Emperor penguins. As a result penguins have become a Dundee mascot and there are various penguin statues throughout the city.

​

​

​

The penguin, we named Kengo, after the architects Kengo Kuma & Associates, who designed the V&A Dundee building.

​

In putting together our interactive program, one group member created the background map, another group member created the content for the 'About' pages, and I drew the penguin character and wrote the program.

​

In order to click on a landmark and have the info displayed, the penguin would have to be at the marker. It was coded this way so that a user would need to interact with the penguin and 'explore' instead of just clicking on the landmark markers.

​

The map was imported as a background image. The penguin is an image that is redrawn each time its moved by the arrow keys. The landmark markers are drawn after the penguin, and boundary detection is used to identify that a mouse-click is both within the boundaries of the penguin and the landmark marker.

Note: In order to display the working program on my website , I converted the Java-based Processing code into JavaScript-based p5.js code.

Arduino - Functionality for Fun

​

An assignment using Arduino, an electronics platform with programming written in Arduino code (based on C/C++). The brief for this assignment was to:

​

"Create an interactive Arduino artefact that fulfils the idea of functionality for fun. This could be a game or other interactive experience that can be used for entertainment. You must specify one main sensor within your artefact and this should feature heavily in your creation." The submission was to demonstrate both Arduino and general prototyping skills, using a variety of materials.

​

This was an assigned group project, with my group formed of a few design students and a computing student. We interpreted the brief and chose to make a tilting maze game, controlled by a joystick and two servo motors. I got involved mostly in the programming and wiring of this project, leaving most of the physical making to the product designers.

​

Functionality for Fun: The Maze

Functionality for Fun: The Maze

Play Video

Arduino - Functionality for Information

​

For this Arduino assignment, the brief was to:

​

"Create an interactive Arduino artefact that fulfils the idea of functionality for information. The purpose of this assignment is to give you an opportunity to create an artefact that takes complex information from the outside work and presents it back to the user in a unique and interesting way." This could be achieved from either taking information from a 3rd party online API, or by using a variety of sensors to gather information about the device's surroundings.

​

Despite being a module with other design students and computing students, my group for this assignment was formed of only members of my Digital Interaction Design class. This was an additional challenge set out by our course director to see what we came up with without the inputs of team members from other courses.

​

We decided to use an online API with information about the sunset and sunrise times to create an abstract clock, where a physical sun or moon would move across a skyline to show the time of day or night.

​

My main role in the group was coding the project and getting all of the Arduino components working and talking to the API. The other four group members took on the tasks of designing and laser-cutting the city skyline, creating a sun and moon, and constructing the outer box in the workshop.

DSC_0316crop.jpg
DSC_0280crop.jpg

How it Works

​

The Arduino circuit was made up of:

  • An ESP8266 (Feather Huzzah) which is a small Arduino board with built-in WiFi connectivity

  • A RTC (Real Time Clock) module which allows the Arduino to handle time and count in seconds, minutes, hours, etc. This contains a battery so it retains the time even when the Arduino is powered off

  • Two servo motors to move the sun and moon the 180 degrees across the skyline

  • A push button to run a demonstration cycle

  • Jumper wires to connect everything together

​

A brief outline of what makes up the code:

  • Including libraries for all of the components, Wi-Fi client library for connecting to Wi-Fi and Arduino JSON library for reading API.

  • Setting up pins for the servo motors and push button that correspond with where they are plugged in to the Arduino.

​​

​

bottom of page