Sei sulla pagina 1di 38

i-Viron Microclimate Tiles

The i-Viron Microclimate Tiles offer a radical


new potential for home environments. They suggest
a new approach to energy conservation and architec-
tural adaptability that could be applied to institutions
and homes alike.
Each pair of floor and ceiling tiles commu-
nicate directly with each other to register a human
presence. Their embedded technology is activated
(here it is lighting) by that presence and this proto-
type of a simple lighting-tile array demonstrates how
that response level can be customized. The light-
level is set by the user, and the dimming-speed is set Arc Attack in action
by the user. When that person enters the i-Viron Tile
array, the lights are activated to the user-determined
level. When the user leaves, a light-trail slowly dims
behind them.
With tiles that respond in this manner, we
can begin to imagine the implications of tiles that are
endowed with stereo speakers, heating and cooling
elements, humidifiers, etc. The i-Viron Tiles have
potential to determine a microclimate that follows the
user, rendering global HVAC systems obsolete and
opening up the possibility of micro-customization to
serve multiple users simultaneously. As a tile pair,
they could be implemented with off-the-shelf pur-
chase and installation.
i-Viron Microclimate Tiles

Ceiling Tiles

Each ceiling tile contains an IR Receiver and


one LED and corresponds directly with the tile below
that contains the IR Transmitter. Each ceiling tile has
four wires, a ground to the LED and the digital PWM
output to the LED, a ground to the IR Receiver and
5V power to the IR Receiver. The IR Receiver ground
wire goes through a resistor in the breadboard and
communicates with the associated digital pin.

Full array of Ceiling Tiles

Ceiling Tile Wiring - IR Receiver and LED


i-Viron Microclimate Tiles

Wiring

In the prototype, the number of tiles was dic-


tated by the available ports in the arduino board for
input and output. With wireless communication, mul-
tiplexers and embedded microchips, this wiring would
be virtually eliminated. Each tile would act as a stand-
alone agent requiring no hardwiring to a central cir-
cuitboard.

Over-Ceiling View

Breadboard and Arduino


i-Viron Microclimate Tiles

User Input - Slide Potentiator

For this prototype, the slide potentiator regis-


ters an analog input that customizes the microclimate.
In this case, it determines the maximum level of light
emitted by an LED at any time. In future scenarios,
this input would be determined by the user and would
dictate temperature, humidity, speaker volume, light,
etc. and would be embedded in an RFID that could be
worn on the person, transmitting those values wire-
lessly. Here, the slide potentiometer is hardwired to
the breadboard with a ground wire, a 5V power supply,
and a wire to an analog input pin.
Side View with Input Device

Slide Potentiometer
i-Viron Microclimate Tiles

Floor Tiles

The IR emitter in each floor tile is aligned with


the receiver in the ceiling tile. With self-contained bat-
teries, these tiles do not need to be hardwired to the
Arduino board. In this prototype, each floor tile has a
ground wire going to the breadboard and a wire to a
‘digital output pin’ as a source of power.

Floor Tile Array

Embedded Infrared Transmitters + wiring


i-Viron Microclimate Tiles

Hard-wiring

These images show all of the hard-wired con-


nections between the components, the breadboard
and the Arduino board. This prototype required the
use of every single input and output pin on the Arduino
board so the wiring is quite complicated and exten-
sive.

Hard Wiring

breadboard
Parts Catalog

i-Viron Prototype

Slide Potentiometer

IR Transmitter/Receiver Matched Pair

10K Resistor

22 Gauge wire

Arduino Demilanueve Board

External Power Supply to Arduino Board


Arduino Code - VOID SETUP

Actuating an Array of 6 Tile Pairs

int sndlv;
int sndlvMAX = 1023; //set this range to the desired ‘re-
sponse range’ for the microphones
int sndlvMIN =600;
int lightMAX = 255; //setting the light level range
int lightMIN = 0;
int IR_1; // when the IR receptors are interrupted they read
0
int IR_2;
int IR_3;
int IR_4;
int IR_5;
int IR_6;

float ledintensity1=0;
float ledIntensity2=0;
float ledIntensity3=0;
float ledIntensity4=0;
float ledIntensity5=0;
float ledIntensity6=0;
float mappedsndlv = 0;

float dim = 1; //adjust here for dimming speed. higher # =


faster dim.
int ambience = 980; // adjust this for the ambient IR being
received- threshold level!

void setup(){
pinMode(3,OUTPUT); // IR_1 connected to each of these
lights, which are in the PWM ports
pinMode(5,OUTPUT); // IR_2
pinMode(6,OUTPUT); // IR_3
pinMode(9,OUTPUT); // IR_4
pinMode(10,OUTPUT); // IR_5
pinMode(11,OUTPUT); // IR_6

pinMode(2, OUTPUT); //IR_1 this designates that output


power will be going to the IR Emitter
pinMode(4, OUTPUT); //IR_2
pinMode(7, OUTPUT); //IR_3
pinMode(8, OUTPUT); //IR_4
pinMode(12,OUTPUT); // IR_5
pinMode(13,OUTPUT); // IR_6

digitalWrite (2,HIGH); //IR_1. sending power to the IR


Transmitter pins
digitalWrite (4,HIGH); //IR_2
digitalWrite (7,HIGH); //IR_3
digitalWrite (8,HIGH); //IR_4
digitalWrite (12,HIGH); //IR_5
digitalWrite (13,HIGH); //IR_6
// soundlevel input (slide potentiometer) from port 5 analog

Serial.begin(9600); //Begining Serial Connection


}
Arduino Code - VOID LOOP else{
if (ledIntensity4 > 0 )ledIntensity4 = ledIntensity4 - dim;
ledIntensity4 = constrain(ledIntensity4,0,255);
}
Actuating an Array of 6 Tile Pairs ///////////////////////////////
if(IR_5 < ambience){ IR_5 = 0;}
if(IR_5 == 0){
ledIntensity5 = mappedsndlv;
}
void loop(){ else{
sndlv = analogRead(5); // Reading data from SoundLevel if (ledIntensity5 > 0 )ledIntensity5 = ledIntensity5 - dim;
in Analog 5 ledIntensity5 = constrain(ledIntensity5,0,255);
//IR_1 = digitalRead(2); //reading IR data from pins (OLD }
CODE FOLLOWED WITH PINS 4,7,8,12,13) ///////////////////////////////
IR_1 = analogRead(0); // reading the IR Receiver data, if(IR_6 < ambience){ IR_6 = 0;}
0=interupting presence, >0=transimissions received if(IR_6 == 0){
IR_2 = analogRead(1); ledIntensity6 = mappedsndlv;
IR_3 = analogRead(2); }
IR_4 = analogRead(3);
IR_5 = analogRead(4); else{
// IR_6 = analogRead(X); // I ran out of pins here to read if (ledIntensity6 > 0 )ledIntensity6 = ledIntensity6 - dim;
from. ledIntensity6 = constrain(ledIntensity6,0,255);
}
sndlv = constrain(sndlv, sndlvMIN,sndlvMAX); //setting an
upper and lower threshold for the sound input, no -#’s ///////////////////////////////
mappedsndlv = map(sndlv,sndlvMIN,sndlvMAX,lightMIN
,lightMAX); // mapping the designated sound range onto the light analogWrite(3,ledIntensity1);
range analogWrite(5,ledIntensity2);
////////////////////////////// analogWrite(6,ledIntensity3);
if(IR_1 < 990){ IR_1 = 0;} analogWrite(9,ledIntensity4);
if(IR_1 == 0){ //for IR interruption, light is ON at analogWrite(10,ledIntensity5);
level described below analogWrite(11,ledIntensity6);
ledIntensity1 = mappedsndlv;
} //diagnostics
else{ // Serial.print(“sound level in the room = “);
if (ledIntensity1 > 0 )ledIntensity1 = ledIntensity1 - dim; // // Serial.println(sndlv);// Writing Sensed Data to Serial
fadeout of light- speed based on dim value Port, sndlv =sound level in room
ledIntensity1 = constrain(ledIntensity1,0,255); //so light // delay(100);
level cannot go below 0 or above 255 // Serial.print(“people in zones = “);
} // if (IR_6 == 0) Serial.println(“6”);
/////////////////////////////// // if (IR_6 == 1) Serial.println(“ “);
if(IR_2 < ambience){ IR_2 = 0;} // delay(800);
if(IR_2 == 0){ // Serial.print(“ledIntensity = “);
ledIntensity2 = mappedsndlv; // Serial.print(ledIntensity1);// Writing Sensed Data to Se-
} rial Port, sndlv =sound level in room
else{ // delay(100);
if (ledIntensity2 > 0 )ledIntensity2 = ledIntensity2 - dim; // Serial.print(“:::::”);// Writing Sensed Data to Serial Port,
ledIntensity2 = constrain(ledIntensity2,0,255); sndlv =sound level in room
} // Serial.println(ledIntensity2);// Writing Sensed Data to Se-
/////////////////////////////// rial Port, sndlv =sound level in room
if(IR_3 < ambience){ IR_3 = 0;} // delay(100);
if(IR_3 == 0){
ledIntensity3 = mappedsndlv; Serial.println(IR_1);
}
else{ }
if (ledIntensity3 > 0 )ledIntensity3 = ledIntensity3 - dim;
ledIntensity3 = constrain(ledIntensity3,0,255);
}
/////////////////////////////////
if(IR_4 < ambience){ IR_4 = 0;}
if(IR_4 == 0){
ledIntensity4 = mappedsndlv;
}
i-Viron Application // Ubiquity

Off-the-Shelf Technology

As a tile pair with embedded senory technology


and actuators, this could be marketed as an off-the-
shelf technology. With wiring streamlined and user
RFID’s the tiles could be locally controlled by each
user. They would remain unconnected to the internet
so- unsuseptable outside hacking.

Tiles Packed for Transport

Potrebbero piacerti anche