HOME
characters to the Arduino, which lets you create an
instrument that plays fragrances, live. Just make
sure to avoid using pins D0 and D1, which share
their function with the serial port.
For example, the following code reads an input
character and uses it to select which of 4 different
Wisps to puff. Typing the 2 key commands the
Wisp that’s connected to pin D2, while typing 3
commands pin D3, and so on.
void setup () {
DDRD = 0xFF;
Serial.begin(9600);
}
void atomize (char pins) {
unsigned int ii;
char kk;
for (ii = 0; ii < 2000; ii++) {
PORTD |= pins;
for (kk = 0; kk < 12; kk++)
;
PORTD &= !pins;
for (kk = 0; kk < 12; kk++)
;
}
}
void loop() {
char cc = Serial.read();
switch (cc) {
case ‘ 2’:
atomize(0x04);
break;
case ‘ 3’:
atomize(0x08);
break;
case ‘ 4’:
atomize(0x10);
break;
case ‘ 5’:
atomize(0x20);
break;
}
}
To set this up, load the code to the Arduino board,
then click the Serial Monitor button, which is the
rightmost button at the top of the Arduino’s development environment.
164 Make: Volume
16
Olfactory Displays
Scentovision (1939) movie theater scents
introduced at New York World’s Fair
Aroma-Rama (1959) movie theater scents from
Behind the Great Wall
Smell-O-Vision (1960) movie theater scents from
Scents of Mystery
Odorama (1981) movie scratch-and-sniff cards
from John Waters’ Polyester
iSmell (2001) computer peripheral developed by
DigiScents, never marketed
Scent Dome (2004) computer peripheral from
TriSenx, trisenx.com
Fragrance Communication System (2005)
networked aroma emitters and services for
homes, hotels, and theaters, in development
at NTT Communications,
ntt.com
CineScent (2006) movie theater scents, in
development,
cinescent.com
This will display a set of controls near the bottom
of the window. Select 9,600 baud, then type a number ( 2–5) into the text box and press Send. This
should trigger the corresponding pin, and the Wisp
it’s connected to.
By using a variation of this code, you can program
a set of Wisps to play your own home-theater version of John Waters’ notorious Odorama, triggering
a “smelltrack” that’s synchronized with pictures or
scenes of different aromatic subjects appearing
onscreen. A small fan that blows the aromas toward
the audience might be helpful here.
With some additional work, you can create more
advanced scent-enabled applications, such as a
network-controlled aroma generator that could
receive fragrance-based “mood” messages. It’s all
up to your imagination and ingenuity.
Meanwhile, Belle and I will be busy working on the
device she’s designing for Panda, but we hope you’ll
have fun with this idea, too!
Find the project code and other resources at
makezine.com/16/diyhome_aroma.
Wayne Holder has a classical education in computers,
tinkering, and building.