9. E-TEXTILES AND WEARABLES II#
An actuator is a component of a machine that is responsible for moving and controlling a mechanism or system. In a common language this would be the output. There are as many outputs as we can imagine but to be practical we will resume them in 3: visual, sound and motion.
Visual -LEDs -Neopixels -Optical fibers -Thermochromic ink + heated circuit/code
Sound -Fabric speakers + amplifier circuits/code
Motion
-Shape memory alloy + high load circuit/code -Flip dot -Flapping wing -Mini vibration motors -Powering circuits
Speaker#
The design#
The inspiration for this speaker was to generate a reflexion around how women and men communicate and trying to find new ways to connect to each other, for this reason I decided to take a feminine and masculine silhouette, abstract them a little and join them in one.
To create a spiral from any shape is easier to do it in Rhino, so, you may want to design your shape in Illustrator and afterwards save it as .obj so you can open in Rhino. Once you open your shape in Rhino, you can select the curve and do an offset with enough space between the lines that the conductive thread won´t touch itself. After you make the lines you will need to find a way to join them to create the spiral, be careful to follow the right path. Have fun! :)
The circuit#
Building the circuit is another story, you will need: Amplifier TIP120 Resistor 100 Ohm 9 Volts battery
You can follow the circuit bellow
The code#
For the code we tryied to simulate a heartbeat but I´m not sure if we meet the objective. It was fun though. You can find the code and try it yourself, here it is:
Heart Beat Code
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(8, OUTPUT);
randomSeed(analogRead(0));
}
// the loop function runs over and over again forever
void loop() {
tone(8, 50);
delay(750);
noTone(8);
delay(1000);
tone(8, 20);
delay(750);
noTone(8);
delay(1000);
}
White Noise Code
We made a code which responses to a capacitive sensor as you can see in the video. The code we use:
#define speakerPin 8
unsigned long lastClick;
void setup() {
// put your setup code here, to run once:
pinMode(speakerPin,OUTPUT);
lastClick = micros();
}
/* initialize with any 32 bit non-zero unsigned long value. */
#define LFSR_INIT 0xfeedfaceUL
/* Choose bits 32, 30, 26, 24 from http://arduino.stackexchange.com/a/6725/6628
* or 32, 22, 2, 1 from
* http://www.xilinx.com/support/documentation/application_notes/xapp052.pdf
* or bits 32, 16, 3,2 or 0x80010006UL per http://users.ece.cmu.edu/~koopman/lfsr/index.html
* and http://users.ece.cmu.edu/~koopman/lfsr/32.dat.gz
*/
#define LFSR_MASK ((unsigned long)( 1UL<<31 | 1UL <<15 | 1UL <<2 | 1UL <<1 ))
unsigned int generateNoise(){
// See https://en.wikipedia.org/wiki/Linear_feedback_shift_register#Galois_LFSRs
static unsigned long int lfsr = LFSR_INIT; /* 32 bit init, nonzero */
/* If the output bit is 1, apply toggle mask.
* The value has 1 at bits corresponding
* to taps, 0 elsewhere. */
if(lfsr & 1) { lfsr = (lfsr >>1) ^ LFSR_MASK ; return(1);}
else { lfsr >>= 1; return(0);}
}
void loop() {
/* ... */
if ((micros() - lastClick) > 10 ) { // Changing this value changes the frequency.
lastClick = micros();
digitalWrite (speakerPin, generateNoise());
}
}
Basic Frecuency Code
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(8, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(8, HIGH);
delay(100);
digitalWrite(8, LOW);
delay(100);
}
Working with the white board from Ana San Roman on Vimeo.
Unfortunately after many intempts, the human siluette speaker didn´t work, it could be either for the complexity of the shape or the fabric wasn´t the right one.
Thermochromic ink#
For my final proyect I decided to develope some patterns to work them with the termochromic ink, as it will stimulate touching.
Thermochromic ink at least for me is relatively new and it interests me so I make a little investigation to understand how it works more easily. In resume, Thermochromic pigment is a material that changes its molecular structure by heating. It would come from any color to transparent. It´s magic! There are pigments that reacts to different temperatures, in fact, you can personalice your own here but the most usual would be Chill at 15ºC Touch and Reveal at 27ª Rub and reveal at 31ª and heat and revear at 47ª
ATTiny 44
http://archive.fabacademy.org/2016/fablabbcn2016/students/434/Embeddedprogramming.html