Descrição:
Nosso projeto consiste no desenvolvimento de uma casa de repouso para deficientes.A casa permite que deficientes visuais possam andar sem a utilização de 'bengalas', pois a casa possui sensores que informam o deficiente sua localização e o alerta sobre possíveis objetos em seu caminho. Como dito anteriormente, a casa tem um sistemas de sensores que ajudarão a economizar energia, ou seja, ao passar ou ao permanecer em um cômodo, a luz se acenderá e ao sair, ela se apagará. Como a movimentação é grande, devido aos deficientes, não só visuais, como mudo e surdo e até mesmo os familiares e auxiliares que andam pela casa.
Materiais necessários para a realização do projeto:
- Arduino- Protoboard
- LEDs
- LDRs
- Resistência de 10k
- Maquete
Etapas do projeto:
Apresentação do projeto em sala de aula:
Primeira semana(02/04-06/04): Análise para a compra dos materiais necessários para o desenvolvimento do projeto e da maquete.
Terceira semana(16/04-20/04): Pausa para a revisão e a P1 de Física.
Quarta semana(24/04-27/04): Etapa final para o desenvolvimento da maquete e do protoboard.
Quinta semana(30/04-04/05): Desenvolvimento inicial do código.
Sexta semana(07/05-11/05): Desenvolvimento intermediário do código, dúvidas sobre o projeto(em sala) e ajustes.
Sétima semana(14/05-18/05): Desenvolvimento final do código.
Oitava semana(21/05-25/05): Etapa INTERMEDIÁRIA do projeto.
Protótipo
Apresentação do projeto em sala de aula:
http://www.4shared.com/office/irtNGqLY/No_Light_Home1.html
- Entrega do pôster e do artigo
Artigo : clique aqui
Pôster : clique aqui
Nona semana(28/05-01/06): Aprimoramento final da maquete e do código.
Protótipo
Apresentação do projeto em sala de aula:
http://www.4shared.com/office/irtNGqLY/No_Light_Home1.html
- Entrega do pôster e do artigo
Artigo : clique aqui
Pôster : clique aqui
Nona semana(28/05-01/06): Aprimoramento final da maquete e do código.
Código :
Décima semana(04/06-08/06): Testes.
int s0,s1,s2;
int L0=0, L1=0,L2=0, L3=0,L4=0,L5 =0,L6 = 0;
int ledPin = 1,ledPin1 = 13,ledPin2 = 12;
int ctl_1 = 0,ctl_2 = 0;
int A=0;
int calibL4 = 400, calibL5=200,calibL6=300;//valores de base para sensores da porta
int calibD0=1000,calibD1=800, calibD2=800,calibD3=600;//valores de base para disparo de sensores da parede
void setup()
{
//4051 digital control pins
pinMode(8, OUTPUT); // s0
pinMode(9, OUTPUT); // s1
pinMode(10, OUTPUT); // s2
Serial.begin(9600);
}
int binario(int n, int b){
int r[3],a[3];
int m10=1;
int z=0;
int q=n,c=2;
for(int i=0;i<3;i++) r[i] = 0;
do{
r[c] = q%2;
q = q /2;
z = (r[c]*m10)+z;
m10 = m10 * 10;
c = c - 1;
}while(q!= 0);
return (r[b]);
}
void comodo(float LDR0,float LDR1,float LDR2,float LDR3,float LDR4, float LDR6) {
int media, desvio0, desvio1, desvio2, desvio3,desvio4;
media = (LDR0 + LDR1 + LDR2 + LDR3)/4;
Serial.print(" ");
Serial.print(" media: ");
Serial.print(media);
desvio0 = (LDR0/media)*1000;
desvio1 = (LDR1/media)*1000;
desvio2 = (LDR2/media)*1000;
desvio3 = (LDR3/media)*1000;
desvio4 = (LDR4/media)*1000;
Serial.print(" ");
Serial.print(" D0: ");
Serial.print(desvio0);
Serial.print(" D1: ");
Serial.print(desvio1);
Serial.print(" D2: ");
Serial.print(desvio2);
Serial.print(" D3: ");
Serial.print(desvio3);
if ((desvio0 < calibD0) ) {
digitalWrite(ledPin, HIGH);
tone(5,261.626);
}else if ((desvio1 < calibD1) ) {
digitalWrite(ledPin, HIGH);
tone(5,329.628);
}
else if ((desvio2 < calibD2) ) {
digitalWrite(ledPin, HIGH);
tone(5,391.995);
}
else if ((desvio3 < calibD3)) {
digitalWrite(ledPin, HIGH);
tone(5,440);
}else if(LDR6<calibL6){
tone(5,220);
tone(5,440);
}
else {
digitalWrite(ledPin, LOW);
tone(5,LOW);
}
}
int luz(int a){
int n1,n2,c1,c2;
////////////////////
if (a==0){
n1 = analogRead(A4); //le L5
if(n1<calibL5){
c1= 1;
}
if(c1==1){
n2 = analogRead(A5);//le L6
if(n2<calibL6){
c2 =1;
}else c2 = 0;
if (c2 == 1){
digitalWrite(ledPin1, HIGH); //ascende a luz
digitalWrite(ledPin, HIGH); //ascende a luz
c2=0;
c1 = 0;
a=1;
}
}
}
/////////////
if(a==1){
n2 = analogRead(A5);//le L6
if(n2<calibL6){
c2= 1;
}
if(c2==1){
//c2=0;
n1 = analogRead(A4); //le L5
if(n1<calibL5){
c1 =1;
}else c1=0;
if (c1 == 1){
digitalWrite(ledPin1, LOW);//desliga a luz
digitalWrite(ledPin, LOW);//desliga a luz
c1=0;
c2=0;
a=0;
}
}
}
/////////
return a;
}
void loop()
{
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
int readInZero = analogRead(0); // read the input pin
//Serial.print(readInZero); //use the result
for(int j=0; j<=7;j++){
s0 = binario(j,0);
s1 = binario(j,1);
s2 = binario(j,2);
digitalWrite(8, s0);//s0
digitalWrite(9, s1);//s1
digitalWrite(10, s2);//s2
int readInTwo= analogRead(0);
switch(j){
case 0:
L0 = readInTwo;
break;
case 4:
L1 = readInTwo;
break;
case 2:
L2 = readInTwo;
break;
case 6:
L3 = readInTwo;
break;
default:
break;
}
L4 = analogRead(A3);
L5 = analogRead(A4);//n1
L6 = analogRead(A5);//n2
if(L4<calibL4){
A = luz(A);
}
comodo(L0,L1,L2,L3,L4,L6);//controla sinais sonoros no comodo
Serial.print("\n L0 ");
Serial.print(L0);
Serial.print(" L1 ");
Serial.print(L1);
Serial.print(" L2 ");
Serial.print(L2);
Serial.print(" L3 ");
Serial.print(L3);
Serial.print(" L4 ");
Serial.print(L4);
Serial.print(" L5 ");
Serial.print(L5);
Serial.print(" L6 ");
Serial.print(L6);
}
}
//luz
//som
Décima semana(04/06-08/06): Testes.
Décima primeira semana(11/06-12/06): P2 - Apresentação FINAL do projeto.
Apresentação FINAL:
Clique aqui para download