Master By Project: Projector Motion

Posted on Posted in MA Creative Media Arts

The projectors motion has been a development of electronics and code based elements worked on throughout this project. The electronics as discussed have thrown me many issues which have been resolved by testing and researching using forums as my main source of insight. Being less experienced with electronic engineering I felt more time needed to spent here making sure the device worked correctly and consistently.

The projectors motion is driven by 4 key parts, electronics, Arduino and Processing and Mapping. The Arduino is a code base hardware application which can be programmed to drive electronic components such as motors, LEDs, pumps etc. In this case, I used them to drive 2 digital servo motors.

Controlling the Arduino was done using another code based application Processing, which can drive graphics, make web requests and many more interactive tasks using various additional libraries. Arduino and processing can be linked together using a library called Firmata. This library allows control of many of Arduinos features within Processing and USB. The reason for this is that I wanted Processing while driving the motor to send OSC (Open Sound Control) signals.

Using OSC signals, requests and interactions can be made to the application listening on the same channel as the OSC. MadMapper (Projection Mapping Application) by listening to OSC signals from Processing can turn on and off different layers and media content in response to this.

Altogether, Processing is the main components between the application allowing them to talk to one another. Processing does all these in a linear fashion. The code below is what I developed and used within the installation. Main points that are significant are.

  • Processing to MadMapper OSC link
  • Processing to Arduino Link
  • Time specific OSC and motor events.
  • Motor rotation direction and decision
  • OSC Control Events

Developing this allowed me to reach into my depth of knowledge using various application linking them together with a common goal which has remained constant throughout.