Вы находитесь на странице: 1из 31

Centro Estadual de Educao Tecnolgica Paula Souza

GOVERNO DO ESTADO DE SO PAULO

Etec JORGE STREET

PROJETO DO TRABALHO DE CONCLUSO DO CURSO TCNICO EM


ELETRNICA

AUTOMAO RESIDENCIAL USANDO MICROCONTROLADOR E


MDULO DE RECONHECIMENTO DE VOZ

Francisco Marcelo Alves Borges


Fabio Stankevicius
Fernando Alves de Souza
Denis Soares Alves

Professor Orientador:
Salomo Chouri Jr.

So Caetano do Sul / SP
2015
6

AUTOMAO RESIDENCIAL USANDO MICROCONTROLADOR E


MDULO DE RECONHECIMENTO DE VOZ

Projeto do trabalho de Concluso


de Curso apresentado como prrequisito para obteno do Diploma
de Tcnico em eletrnica.

So Caetano do Sul / SP
2015

RESUMO

A realidade de sistemas automatizados cada vez mais aparente na vida


moderna. Casas e prdios j contam com sistemas integrados de controle que
possibilitam a realizao de inmeras atividades com facilidade e, em alguns
casos, sem haver a necessidade de presena fsica. Sistemas automatizados tm
o custo muito elevado e poucas pessoas tm acesso. Sendo assim, o presente
trabalho tem como justificativa pesquisar, implementar e simular uma soluo de
baixo custo utilizando microcontroladores e mdulos de reconhecimento de voz
que foi alcanado com xito.

Palavras-chave: reconhecimento de voz, automao residencial e Arduno

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.

Este projeto vai atuar direto na automatizao de residncias, podendo ser


utilizado tambm em outras reas como comrcios, empresas e reas comuns de
condomnios.
O setor de automatizao residencial est em grande crescimento, pois os
proprietrios/moradores esto se tornando mais e mais conscientes dos
benefcios da Automao Residencial.

Estes benefcios geram demanda enquanto suprem razes para que os


construtores incluam a automao residencial em suas novas construes e ao
mesmo tempo ainda ofeream servios da readequao para residncias j
existentes.
11

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

Este projeto segue uma linha de pesquisa bibliogrfica baseada em


consultas a livros e sites da internet. Com base nessas pesquisas, o projeto tem
finalidade aplicada, ou seja, aplicao prtica e experimental de seu objeto de
estudo.
A primeira etapa do projeto o desenvolvimento da programao do
arduno, atravs do software arduino-1.6.0.
A etapa seguinte constitui-se na construo do aparelho que vai conter os
hardwares todos utilizados e suas respectivas conexes de comunicaes
externas.

12

CAPTULO 1 Fundamentao Terica

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:

Figura 1 Pinagem do microcontrolador

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

Figura 2 entradas e sadas do arduno

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

Figura 3 Pinagem do arduno

Circuito eletrnico

Figura 4 circuito do Arduno

15

Figura 5 partes do arduno

1.2 - Modulo de reconhecimento de voz


O mdulo VR3 (Voice Recognition V3) uma verso compacta para
reconhecimento de voz. Este produto suporta at 80 comandos, sendo 7
funcionando simultaneamente. Alm disso, qualquer som pode ser utilizado como
comando de voz.
16

Para conectar o VR3 no Arduino usamos o circuito abaixo:

Figura 6 Comunicao serial com arduno

1.2.1 PRINCPIO BSICO DO RECONHECIMENTO DE VOZ


O conceito fundamental aqui que um som emitido pode ser convertido
em impulsos eltricos com o uso de um microfone, e estes impulsos podem ser
processados em sistemas digitais, como um computador, um microcontrolador.
Na forma digital, podem ser armazenados em memrias digitais. Veja abaixo
como ficaram armazenados em arquivos de computador os vocbulos "um" e
"dois". Os oscilogramas mostrados foram obtidos do programa "Wave Studio", da
Creative Labs Inc.

17

Comando: Som

Comando: Forma de Onda

Oua "um"
(3594 bytes)

Figura 7 - Forma de onda para "um.wav"

Oua "dois"
(3.287 bytes)

Figura 8 - Forma de onda para "dois.wav"

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

Um sistema simples de reconhecimento de voz recebe durante um


treinamento um conjunto de comandos (na forma de palavras ou expresses) e
os armazena. Posteriormente, em modo de recohecimento, sons sero recebidos
e comparados com os padres de comando programados. Onde houver alguma
semelhana razovel, um comando obedecido.

O reconhecimento de voz dito "dependente do usurio" quando exige


uma semalhana bastante grande entre os padres emitido e gravado para cada
comando, de modo que s deve reconhecer comandos de quem o treinou. Um
sistema independente do usurio mais complexo, pois analisa e detecta
padres de comando de modo a reconhec-los, no importando quem os emitiu.

1.2.2 O CI DE RECONHECIMENTO DE VOZ

O HM2007 um circuito integrado que j tem algum tempo de projeto. Sua


aplicao em sistemas comandados por voz descrita em algumas pginas
interessantes da internet.

No CEFET/SC, foi utilizado na segunda verso da

Cadeira de Rodas Comandada por Voz.

O HM2007 dependente de usurio, j inclue em sua construo o


sistema de udio, com entrada para microfone.

A capacidade do sistema para at 40 comandos de voz, de durao 0,96s,


ou at 20 comandos de 1,92s, com padres armazenados em um ci auxiliar de
memria, de organizao 8x x 8 bits. Esquemas de ampliao desta memria,
para um aumento do nmero de comandos, poderiam ser utilizados.

19

O ci pode ser controlado de duas formas:


no "modo manual", o treinamento dos comandos feito com o auxlio de um
pequeno teclado numrico externo ou
no "modo CPU", o chip comandado por um microcontrolador, que pode acionar
o processo de treinamento dos comandos e configurar outras opes de
funcionamento do sistema.

1.2.3 DESCRIO GERAL DA PLACA DE RECONHECIMENTO DE VOZ


O CI HM2007 o centro do sistema, e se conecta a uma memria de 8k x 8,
uma entrada de microcofone, e a um latch de sada, implementado com um
74LS373. Este CI armazena o ltimo comando reconhecido ou treinado, ou ainda
cdigos de erro do sistema.
Para uso com um dos kits centrais, a alimentao do mdulo feita atravs
dos pinos "Vcc" e "GND" do conector de sada de comando. Opcionalmente, um
regulador pode ser montado na placa, provendo uma fonte de alimentao que
permite o uso da placa com outros sistemas, que podem mesmo ser alimentados
por ela. A bateria que prov armazenamento dos padres de voz quando a placa
desconectada da alimentao externa composta por duas pilhas de 1,5V.

Para uso com kits de microcontrolador, um "jumper" permite o controle da


sada "tri-state" do latch de comandos, de modo que a placa pode ser utilizada
como uma porta de entrada em um sistema de decodificao de endereamento.
Para experimentao, pode ser utilizada em conjunto com um mdulo de teclado
para treinamento dos comandos e um algum sistema que utilize os comandos
reconhecidos.
Um outro recurso disponvel na placa um "jumper" para seleo do modo
de controle (manual ou CPU). No modo CPU o conector de teclado se torna a
entrada de interface para microcontrolador.

20

Figura 9 - Pinagem HM2007p

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.

2.1 - Diagrama de blocos

Figura 10 Diagrama de blocos

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

3.2 Produto final

28

3.3 - Previso de custos

Uno R3 (ARDUINO)
R$ 20,90

Modulo de Reconhecimento por Voz:


R$ 50,49

Leds, Plugues, Resistores:


R$ 25,90

Caixa de acoplamento (INTERFACE):


R$ 15,00
Total (INTERFACE):
R$ 112,29
Montagem e acabamento da maquete:
R$ 138,77

Total do projeto:
R$ 251,06

29

Concluso

O projeto proposto teve xito em apresentar e implementar uma soluo de


automao residencial por comando de voz de pequeno e mdio porte. O projeto
em si seguiu de acordo com o planejado, no s isso, superou nossas
expectativas. Neste projeto utilizamos tecnologias no tivemos na grade do curso,
assim como o modulo VR3, a programao do Arduino e a do prprio modulo em
si.
Melhoramos nossa capacidade de trabalho em grupo.

30

Implementaes futuras
Para possibilitar a aplicao comercial deste produto, as perspectivas de
melhorias so:

O desenvolvimento de novos perifricos de ao baseados na estrutura


disponibilizada. Desta forma ser possvel controlar outros elementos como
ar condicionado, banheira, microondas entre outros.

Aumentar a capacidade de armazenamento de instrues gravadas.

Melhorar o reconhecimento das vozes gravadas.

Aumentar o nmero de sadas de controle.

Implementar interfaces de sadas infra vermelho.

31

Apendice A:
Programao do microcontrolador

32

Programao do microcontrolador

#include <SoftwareSerial.h>
#include "VoiceRecognitionV3.h"
VR myVR(2,3);

// 2:RX 3:TX, you can choose your favourite pins.

uint8_t records; // save record


uint8_t buf[64];
int
int
int
int
int
int
int
int

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;

int vmenos =0;


int vmais =0;
int valor =0;
#define
#define
#define
#define
#define
#define
#define

sa
qu
co
ap
me
ma
mo

(0)
(1)
(2)
(3)
(4)
(5)
(6)

void printSignature(uint8_t *buf, int len)


{
int i;
for(i=0; i<len; i++){
if(buf[i]>0x19 && buf[i]<0x7F){
Serial.write(buf[i]);
}
else{
Serial.print("[");
Serial.print(buf[i], HEX);
Serial.print("]");
}
}
}
void printVR(uint8_t *buf)
{
Serial.println("VR Index\tGroup\tRecordNum\tSignature");
Serial.print(buf[2], DEC);
Serial.print("\t\t");
if(buf[0] == 0xFF){
Serial.print("NONE");
}
else if(buf[0]&0x80){
Serial.print("UG ");

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