Chimères Orchestra

As a software developer at Reso-nance Numérique, I built a system to control five or more robotic drummers. As a tribe, they tap on poles in the city to create sound rhythms: an echo of human activites in primitive rhythms.

TYPEArt, Robotic, Software
DATE
STACKPure Data, Arduino, Udoo, OSC
Chimères Orchestra project

Our cities are made up of materials, surfaces and textures which vibrate and produce possibilities for aesthetic and musical intervention. What would happen if we could play these surfaces and hear their shapes and sounds? What if across our cities musical robots played upon these surfaces, turning the city into a live automatic orchestra ?

Shaped like insects, Chimères Orchestra is a robotic sound installation, which is attached to metallic structures around the city. As a group, these robotic instruments form a tribe or family, and when organised together play rhythms using their spidery arms. Their sounds resonate through space, calling to passers-by, disrupting their rhythm and walk; they invite us to hit, play and explore the physicality of our urban surfaces.

The project is maintained by Reso-nance numérique. It has been exhibited around twenty times in Europe.

The problem

The solution

1. Secure the triggering of electric motors

To be heard, motors must have sufficient power. The first attempts damaged them and made them unusable! It took a while to find the solution, which involves securing the on/off time to allow the engine to not be turned on for a certain amount of time before it can be reactivated.

I’ve developed “PwmMotor”, a minimal Arduino library with these on/off methods:

// Motor Class to control PWM of DC motors
#include "PwmMotor.h"

// ...

void PwmMotor::on(unsigned long _current, int _pwm, int _time){
    if( _current - last >= (time_on + 10) ) {
        state = true;
        last = _current;
        time_on = constrain(_time, 0, time_on_max);
        analogWrite(pin, _pwm);
        if (debug) Serial.println("ON ");
    }
}

void PwmMotor::off(unsigned long _current) {
    if( _current - last >= time_on ) { 
        state = false;
        analogWrite(pin, 0);
        if (debug) Serial.println("OFF");
    }
}

This saved us a lot of motors!

2. Software to control and setup robots

The software must reflect these two use cases:

Setup 32 Arms - Chimères Orchestra

Also, the software must handle a variety of configuration:

The software was written in Pure Data and could be used by the main robot controller in installation mode or by a remote laptop. It allows to create any number of robots and arms and associate them with an ID.

Pure Data Patch Chimères Orchestra

The setup process was quite complex to tune. It took years. The two main concerns was:

3. Wireless remote with a mobile app

As robots are often placed quite high from the ground, I’ve built a mobile app with PdDroidParty. It allows easy access to robots during exhibition.

Pure Data Patch on mobile phone

4. Hardware design

The hardware design reflects aesthetics of insects and waterproof concerns.

Blueprints for building metal pieces and electronics box

Things I’ve learned