Interactive Sculpture (Talking Double Head by Touching Plasma Ball)
by anaisafranco in Circuits > Art
1870 Views, 19 Favorites, 0 Comments
Interactive Sculpture (Talking Double Head by Touching Plasma Ball)
Hello,
I am going to show the process of doing Confusion, an emotional sculpture in form of a head with two faces that talks confusions with the spectator when someone touches it´s neurotic brain, by touching it immediately starts sharing its confusion thoughts with you.
The sculpture is made with transparent acrylic layers laser and an interactive neurotic plasma brain that speaks when touched.
I will show step by step of the process: Beginning with 3d scan of my face and a plasma ball using 123d catch, editing the models using Meshmixer, laser cutting them. Producing an interactive plasma ball with mp3 player shield and Arduino.
3D Scan of the Face
I 3d scan my head using 123d catch software from autodesk.
Editing and Modifying 3d Shape in Mesmixer
I transformed and duplicate the head in order to create the shape I was looking for: A head with double faces.
3d Scanning the Plasma Ball
I was 3d scanning the plasma ball using the same process as the head.
Subtracting the Plasma Ball From the Head
I measured the plasma ball and subtracted it from the 3d head by using Meshmixer software of 123d catch.
You have to select both models / click on EDIT / Boolean difference.
Prepare for Laser Cut
I send the model to 123d Make and generated eps files to cut in the laser machine.
Interactive Plasma Ball
The plasma ball was modified to be able to be interactive. When someone touches in the plasma ball, it play a sound.
We used a circuit made with current sensor, an arduino, a mp3 shield and speakers.
Interactivity developed in collaboration with Achim Meyer and Aravinth Panchadcharam.
This is the code:
#include // SPI library
#include // SDFat Library #include // SDFat Util Library #include // Mp3 Shield Library
SdFat sd; // Create object to handle SD functions SFEMP3Shield MP3player; // Create Mp3 library object
const uint8_t volume = 0; // MP3 Player volume 0=max, 255=lowest (off) const uint16_t monoMode = 1; // Mono setting 0=off, 3=max int sensorPin = 5; // select the input pin for the potentiometer int ledPin = 13; // select the pin for the LED int sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // pinMode(sensorPin, INPUT); Serial.begin(9600); initSD(); // Initialize the SD card initMP3Player(); // Initialize the MP3 Shield }
int filterLength = 1000;
int treshold = 350; // 1. compare the value of the sensor and decide wether on or off 325 volume and 350 without volume
void loop() { long sensorSum = 0; for (int i=0; i treshold){ if (!MP3player.isPlaying()) { Serial.println("ON"); MP3player.playMP3("track001.mp3"); } /* else // /* 2. add { int d = (sensorValue - treshold); if (d > 50) d = 50; byte volume = 50 - d; Serial.println(volume); MP3player.setVolume(volume, volume); } // */ } else { Serial.println("OFF"); if (MP3player.isPlaying()) MP3player.stopTrack(); // MP3player.setVolume(254, 254); // switch of the volume } }
// to switch of the volume: 3 things
// initSD() initializes the SD card and checks for an error. void initSD() { //Initialize the SdCard. if(!sd.begin(SD_SEL, SPI_HALF_SPEED)) sd.initErrorHalt(); if(!sd.chdir("/")) sd.errorHalt("sd.chdir"); }
// initMP3Player() sets up all of the initialization for the // MP3 Player Shield. It runs the begin() function, checks // for errors, applies a patch if found, and sets the volume/ // stero mode. void initMP3Player() { uint8_t result = MP3player.begin(); // init the mp3 player shield if(result != 0) // check result, see readme for error codes. { // Error checking can go here! } MP3player.setVolume(volume, volume); MP3player.setMonoMode(monoMode); }
Assembling Plasma Ball, Speakers and Head
Now that everything is done, I assemble it and finish! :)