Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Professor Orientador:
Salomo Chouri Jr.
So Caetano do Sul / SP
2015
6
So Caetano do Sul / SP
2015
RESUMO
LISTA DE FIGURAS
Figura 1 Pinagem do microcontrolador ..............................................................13
Figura 2 entradas e sadas do arduno ...............................................................14
Figura 3 Pinagem do arduno .............................................................................15
Figura 4 circuito do Arduno ...............................................................................15
Figura 5 partes do arduno .................................................................................16
Figura 6 Comunicao serial com arduno .........................................................17
Figura 7 - Forma de onda para "um.wav" .............................................................18
Figura 8 - Forma de onda para "dois.wav" ............................................................18
Figura 9 - Pinagem HM2007p ..............................................................................21
Figura 10 Diagrama de blocos ...........................................................................22
Figura 11 - fluxograma ..........................................................................................23
Figura 12 - croqui ..................................................................................................24
Figura 13 - cronograma .........................................................................................25
Sumrio
INTRODUO ......................................................................................................11
CAPTULO 1 FUNDAMENTAO TERICA .....................................................13
1.1 Microcontrolador .............................................................................................. 13
1.2 - Modulo de reconhecimento de voz ................................................................... 16
1.2.1 PRINCPIO BSICO DO RECONHECIMENTO DE VOZ .....................17
1.2.2 O CI DE RECONHECIMENTO DE VOZ ..............................................19
1.2.3 DESCRIO GERAL DA PLACA DE RECONHECIMENTO DE VOZ..20
2- PLANEJAMENTO .............................................................................................22
2.1 - Diagrama de blocos .......................................................................................... 22
2.2 - Fluxograma ....................................................................................................... 23
2.3 - Croqui................................................................................................................ 24
2.4 - Cronograma ...................................................................................................... 25
3 DESENVOLVIMENTO DO PROJETO ............................................................26
3.1 hardware .......................................................................................................... 26
3.2 Software ........................................................................................................... 27
3.2 Produto final ..................................................................................................... 28
3.3 - Previso de custos ............................................................................................ 29
CONCLUSO........................................................................................................30
IMPLEMENTAES FUTURAS ...........................................................................31
APENDICE A:........................................................................................................32
PROGRAMAO DO MICROCONTROLADOR...................................................33
10
Introduo
O projeto foi o escolhido de uma lista com vrias outra ideias do grupo, foi feita
uma votao entre os integrantes do grupo e os projetos mais votados foram:
Drone, substituio da bengala comum por uma eletrnica para deficientes visuais
e a automatizao residencial. Depois da votao separamos os mais votados, e
escolhemos em uma reunio o projeto da automatizao residencial porque seria
o mais vivel e o que tinha tecnologias que queramos pesquisar mais para
compreender melhor.
Este projeto tem como objetivo apresentar, simular e implementar uma soluo de
automao residencial de pequeno e mdio porte. Para tanto, sero utilizadas
tecnologias simples, procurando obter um resultado final de baixo custo e timo
funcionamento, e diminuir os requisitos de conhecimentos necessrios ao usurio
operante do sistema. O controle poder ser feito atravs de um comando de voz,
por exemplo, luz quarto a lmpada do quarto se acender, e com o mesmo
comando poder desligar a lmpada. Esse comando de voz ser reconhecido
pelo mdulo de comando de voz, e que este ser ligado ao microcontrolador, que
far o controle de como e o que ser acionado.
Alguns dos benefcios, aqueles que podem imediatamente ser apropriados pelo
proprietrio/morador so os seguintes:
Economia de energia
Economia de tempo e esforo
Segurana
Conforto
Acessibilidade
12
1.1 Microcontrolador
O microcontrolador um dispositivo de fcil utilizao, baixo custo e pode ser
utilizado em uma variedade imensa de aplicaes. Trata-se de um single chip
microcomputer, ou seja, microcomputador em um nico chip pois possui
internamente um microprocessador, memria de programa, memria de dados e
entradas e sadas. Esse microprocessador possui 28 pinos, sendo que 23 desses
podem ser utilizados como I/O . A imagem abaixo exibe a sua pinagem:
A placa Arduino UNO possui pinos de entrada e sadas digitais, assim como pinos
de entradas e sadas analgicas, abaixo exibido a pinagem conhecida como o
padro Arduino:
13
Conforme exibido na figura, a placa Arduino UNO possui 14 pinos que podem ser
usados como entrada ou sada digitias. Estes Pinos operam em 5 V, onde cada
pino pode fornecer ou receber uma corrente mxima de 40 mA. Cada pino possui
resistor de pull-up interno que pode ser habilitado por software. Alguns desse
pinos possuem funes especiais:
PWM : 3,5,6,9,10 e 11 podem ser usados como sadas PWM de 8 bits atravs da
funo analogWrite();
Comunicao serial: 0 e 1 podem ser utilizados para comunicao serial. Deve-se
observar que estes pinos so ligados ao microcontrolador responsvel pela
comunicao USB com o PC;
Interrupo externa: 2 e 3 . Estes pinos podem ser configurados para gera uma
interrupo externa, atravs da funo attachInterrupt().
Para interface com o mundo analgico, a placa Arduino UNO possui 6 entradas,
onde cada uma tem a resoluo de 10 bits. Por padro a referencia do conversor
AD est ligada internamente a a 5V, ou seja, quando a entrada estiver com 5V o
valor da converso analgica digital ser 1023. O valor da referncia pode ser
mudado atravs do pino AREF. A figura a seguir exibe a relao entre os pinos do
microcontrolador ATMEL ATMEGA328 e a pinagem do Arduino UNO:
14
Circuito eletrnico
15
17
Comando: Som
Oua "um"
(3594 bytes)
Oua "dois"
(3.287 bytes)
A diferena que voc v entre as formas de onda tambm pode ser detectada por
sistemas digitais atravs de um processamento das mesmas. Sistemas
denominados DSP's ("Processadores de Sinais Digitais") so especializados
neste tipo de tarefa, mas microprocessadores ou microcontroladores tambm
podem ser utilizados.
18
19
20
21
2- Planejamento
Para implementar o projeto foi realizado um planejamento do mesmo,
elaborando-se um diagrama de blocos para estruturar o hardware, um fluxograma
para estruturar o software, e um croqui para estruturar o projeto.
22
2.2 - Fluxograma
Figura 11 - fluxograma
23
2.3 - Croqui
Figura 12 - croqui
24
2.4 - Cronograma
Figura 13 cronograma
25
3 Desenvolvimento do projeto
3.1 hardware
Circuto eltrico
26
3.2 Software
O software foi desenvolvido na plataforma Arduno que utiliza uma linguagem bem
parecida com linguagen C.
A listagem completa encontra-se no apndice A.
27
28
Uno R3 (ARDUINO)
R$ 20,90
Total do projeto:
R$ 251,06
29
Concluso
30
Implementaes futuras
Para possibilitar a aplicao comercial deste produto, as perspectivas de
melhorias so:
31
Apendice A:
Programao do microcontrolador
32
Programao do microcontrolador
#include <SoftwareSerial.h>
#include "VoiceRecognitionV3.h"
VR myVR(2,3);
ligado = 6;
sinal = 7;
modulo = 5 ;
sala = 8;
quarto = 9;
cozinha = 10;
suite = 11;
banho = 12;
int
int
int
int
int
vmodulo = 0;
vsala = 0;
vquarto = 0;
vcozinha = 0;
vsinal = 0;
sa
qu
co
ap
me
ma
mo
(0)
(1)
(2)
(3)
(4)
(5)
(6)
33
Serial.print(buf[0]&(~0x80), DEC);
}
else{
Serial.print("SG ");
Serial.print(buf[0], DEC);
}
Serial.print("\t");
Serial.print(buf[1], DEC);
Serial.print("\t\t");
if(buf[3]>0){
printSignature(buf+4, buf[3]);
}
else{
Serial.print("NONE");
}
Serial.println("\r\n");
}
void setup()
{
/** initialize */
myVR.begin(9600);
Serial.begin(115200);
Serial.println("Elechouse Voice Recognition V3 Module\r\nControl LED sample");
pinMode(sala, OUTPUT);
pinMode(quarto, OUTPUT);
pinMode(cozinha, OUTPUT);
pinMode(suite, OUTPUT);
pinMode(banho, OUTPUT);
pinMode(sinal, OUTPUT);
pinMode(modulo, OUTPUT);
pinMode(ligado, OUTPUT);
digitalWrite(ligado, HIGH);
digitalWrite(sinal, LOW);
analogWrite(sala,0);
digitalWrite(quarto, LOW);
digitalWrite(cozinha, LOW);
digitalWrite(suite, LOW);
digitalWrite(banho, LOW);
digitalWrite(modulo, LOW);
if(myVR.clear() == 0){
Serial.println("Recognizer cleared.");
}else{
Serial.println("Not find VoiceRecognitionModule.");
Serial.println("Please check connection and restart Arduino.");
while(1);
}
if(myVR.load((uint8_t)sa) >= 0){
Serial.println("sala loaded");
}
if(myVR.load((uint8_t)qu) >= 0){
Serial.println("quarto loaded");
}
if(myVR.load((uint8_t)co) >= 0){
Serial.println("cozinha loaded");
}
if(myVR.load((uint8_t)ap) >= 0){
Serial.println("apagar loaded");
}
if(myVR.load((uint8_t)mo) >= 0){
Serial.println("modulo loaded");
}
if(myVR.load((uint8_t)me) >= 0){
34
Serial.println("menos loaded");
}
if(myVR.load((uint8_t)ma) >= 0){
Serial.println("mais loaded");
}
}
void loop()
{
if(vsinal == 1){
digitalWrite(sinal, HIGH);
delay(50);
digitalWrite(sinal, LOW);
delay(50);
digitalWrite(sinal, HIGH);
delay(50);
digitalWrite(sinal, LOW);
vsinal = 0;
}
int ret;
ret = myVR.recognize(buf, 50);
if(ret>0){
switch(buf[1]){
case sa:
vsinal = 1;
if(vsala == 0 && vmodulo == 1){
analogWrite(sala, 255);
digitalWrite(modulo, LOW);
valor = 255;
vsala = 1;
vmodulo = 0;
}
else{
if(vmodulo == 1){
vsinal = 1;
analogWrite(sala, 0);
digitalWrite(modulo, LOW);
vsala = 0;
valor = 0;
vmodulo = 0;
}
}
break;
case qu:
vsinal = 1;
if(vquarto == 0 && vmodulo == 1){
digitalWrite(quarto, HIGH);
digitalWrite(modulo, LOW);
vquarto = 1;
vmodulo = 0;
}
else{
vsinal = 1;
if(vmodulo == 1){
digitalWrite(quarto,LOW);
digitalWrite(modulo, LOW);
vquarto = 0;
vmodulo = 0;
}
}
break;
case co:
vsinal = 1;
if(vcozinha == 0 && vmodulo == 1){
digitalWrite(cozinha, HIGH);
digitalWrite(modulo, LOW);
vcozinha = 1;
vmodulo = 0;
}
else{
35
vsinal = 1;
if(vmodulo == 1){
digitalWrite(cozinha,LOW);
digitalWrite(modulo, LOW);
vcozinha = 0;
vmodulo = 0;
}
}
break;
case ap:
vsinal = 1;
if(vmodulo == 1){
analogWrite(sala, 0);
digitalWrite(quarto, LOW);
digitalWrite(cozinha, LOW);
digitalWrite(modulo, LOW);
vsala = 0;
vquarto = 0;
vcozinha = 0;
valor = 0;
vmodulo = 0;
}
break;
case mo:
vsinal = 1;
vmodulo = 1;
digitalWrite(modulo, HIGH);
break;
case me:
if(vmodulo == 1 & valor >= 50);
vsinal = 1;
valor = valor - 50;
analogWrite(sala, valor);
vsala = valor;
vmodulo = 0;
break;
case ma:
if(vmodulo == 1 & valor <= 200);
vsinal = 1;
valor = valor + 50;
analogWrite(sala, valor);
vsala = valor;
vmodulo = 0;
break;
default:
Serial.println("Record function undefined");
break;
}
}
printVR(buf);
}
36