Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

10
Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno Bruno Stabile [email protected] Pontifícia Universidade Católica de São Paulo Faculdade de Ciências Exatas e Tecnologia Engenheria Elétrica Capítulos 1. Introdução 2. Configuração do Sistema 3. Comunicação Serial com o módulo 4. Integração ao Arduíno Introdução Este documento propõe explicitar como programar o módulo de reconhecimento de voz produzido

Transcript of Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

Page 1: Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

Bruno Stabile

[email protected]

Pontifícia Universidade Católica de São Paulo

Faculdade de Ciências Exatas e Tecnologia

Engenheria Elétrica

Capítulos

1. Introdução

2. Configuração do Sistema

3. Comunicação Serial com o módulo

4. Integração ao Arduíno

Introdução

Este documento propõe explicitar como programar o módulo de reconhecimento de voz produzido

pela ELECHOUSE que possui o microcontrolador SPCE061A produzido pela SUNPLUS.

O modulo é capacitado à realizar a gravação de 15 padrões diferentes, sendo estes

Page 2: Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

padrões de comandos de voz, frequências pré definidas ou também como variações de sinais

elétricos, entretanto aqui iremos apenas demonstrar como ativar e desativar um LED, sendo que isto já retrata a base de conhecimento mínima necessária para realizar outras operações como ligar um motor.

Configuração do Sistema

O módulo foi utilizado em dois sistemas operacionais, Windows XP Professional e Windows 7 Professional, ambos não apresentaram problemas de compatibilidade.

O kit comercializado pela ELECHOUSE [1] , inclui o modulo de reconhecimento de voz, cabos para ligação no Arduíno e o microfone para realizar a gravação dos comandos. Porém, para gravar os comandos no microcontrolador do modulo, necessitamos de um conversor USB TTL que irá interpretar os comandos enviados para o microcontrolador. Este conversor TTL [2] poderá ser encontrado na mesma loja que o módulo de reconhecimento de voz. Outrora, podemos utilizar qualquer conversor TTL que possua interface de comunicação USB ou Serial.

Entretanto, caso utilizar o conversor comercializado pela ELECHOUSE, é necessário

instalar os drivers que irão reconhecer o dispositivo em nosso sistema, e disponível no link abaixo:

Drivers do ConversorUSB-TTL [3]

Após realizar o download, certifique-se que o conversor esteja desconectado do computador, assim

abra a pasta "PL2303_Prolificá_DriverInstaller_v1_7_0", caso o arquivo estiver compactado com extensões .zip ou .7z descompacte-o para que não ocorram erros na instalação, e execute o arquivo "PL2303_Prolific_DriverInstaller_v1.7.0.exe". Concluída a instalação introduza o conversor em uma das portas USB e espere o termino de configuração do dispositivo. Devemos também verificar em qual porta “COM” do sistema o conversor está instalado, sendo que esta verificação deverá ser feita pelo “Gerenciador de Dispositivos” do Windows, sendo que este pode ser acessado pelo comando “devmgmt.msc “ introduzido no “Executar” que é localizado no “Menu Iniciar”. Com o gerenciador aberto, expandir a opção COM/LPT e verificar o dispositivo assim como na figura 1.

Figura 1: Gerenciador de Dispositivos – Portas COM

Para verificar se a instalação foi concluída, utilize o arquivo "PL2303CheckChipVersion.exe" localizado na mesma pasta de instalação, sendo que este deverá exibir a versão instalada assim como na figura 2.

Page 3: Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

Figura 2: Verificação da instalação do Conversor TTL

Com o conversor já configurado com o sistema operacional, conecte o módulo de voz ao conversor TTL seguindo o esquema de ligação da figura 3.

figura 3 : Esquema de ligação do módulo com o conversor

Comunicação Serial com o módulo

Aqui podemos utilizar qualquer software que envie comandos pela porta Serial de comunicação do computador, assim como o HyperTerminal.

Os comandos de configuração do módulo serão enviados a partir do software AccessPort [4] neste tutorial, sendo que estes comandos são pré definidos pelo fabricante do microcontrolador. Os comandos poderão ser encontrados no manual elaborado pela ELECHOUSE [5] .

Após realizar o download do AccessPort execute-o pelo arquivo “AccessPort.exe”, e lembre-se que este provavelmente também estará compactado, assim devemos configurar a comunicação com o módulo em “tools>configuration”, ou então pressionando a tecla “F2”, abaixo estão as configurações necessárias:

COM”x”*

Page 4: Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

Baud rate: 9600

Parity bit: None

Data bit: 8

Stop bit: 1

Send format: Hex

Receive format: Char

* O “x” representa a porta conectada ao conversor verificada no gerenciador de dispositivos

Com as corretas configurações pressione “CTRL+P” e certifique-se o envio de comandos Hexadecimais pressionando “Hex” na parte de envio de comandos “Send->”.

Inicialmente enviaremos o comando “AA 11” que representa ao microcontrolador a ação de gravar o primeiro grupo de comandos, sendo que é possível gravar até 3 grupos de comandos com 5 tipos diferentes em cada.

Alguns feedbacks serão enviados para o AccessPort para o orientar o programador qual a instrução interpretada, veja na figura 4.

Page 5: Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

Figura 4: Comunicando com o módulo de voz

A completa gravação de um comando é representada como “Finish one”, sendo que ao finalizar a gravação dos 5 comandos do grupo a mensagem “Group1 finished” é exibida .

Após finalizada a gravação do primeiro grupo de instruções devemos enviar o comando “AA 21” que representa ao microcontrolador a ação de importar os comandos gravados no grupo 1 e iniciar o reconhecimento destes comandos.

Integração ao Arduíno

Com a programação do módulo concluída podemos iniciar a montagem do circuito junto ao Arduíno conforme a figura 6.

Page 6: Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

Figura 6 : Esquema de ligação do módulo de voz com o Arduíno

Abaixo o código para programação do Arduíno com alguns comentários.

int led = 13; //ligar led no pino 13

byte com = 0; //comandos recebidos pelo modulo de voz

void setup()

{

Serial.begin(9600);

//definicao do led 13 como saída

pinMode(led, OUTPUT);

Page 7: Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

delay(2000);

//Comandos de configuracao do modulo de voz

Serial.write(0xAA);

Serial.write(0x37);

delay(1000);

//Comandos de configuracao do modulo de voz

Serial.write(0xAA);

Serial.write(0x22);

//Pre definicao do estado do led 13

digitalWrite(led,HIGH);

}

void loop() // funcao de recorrencia

{

while(Serial.available())

{

com = Serial.read();

switch(com)

{

//A cada comando reconhecido pelo módulo o Arduino irá piscar o LED 13

case 0x21:

digitalWrite(led,LOW);

delay(250);

digitalWrite(led,HIGH);

break;

case 0x22:

digitalWrite(led,LOW);

delay(250);

digitalWrite(led,HIGH);

Page 8: Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

break;

case 0x23:

digitalWrite(led,LOW);

delay(250);

digitalWrite(led,HIGH);

break;

case 0x24:

digitalWrite(led,LOW);

digitalWrite(led,HIGH);

break;

case 0x25:

digitalWrite(led,LOW);

delay(250);

digitalWrite(led,HIGH);

break;

}

}

}

Após a compilação do programa acima e feito o upload para a placa do Arduíno, pressione o botão “reset” do Arduíno e o sistema já poderá ser utilizado para acionar o LED 13.

Links

[1] kit comercializado pela ELECHOUSE

http://www.elechouse.com/elechouse/index.php?main_page=product_info&cPath=168_170&products_id=2151

[2] conversor TTL

http://www.elechouse.com/elechouse/index.php?main_page=product_info...

[3] Drivers do ConversorUSB-TTL

http://www.elechouse.com/elechouse/index.php?main_page=product_info...

[4] software AccessPort

Page 9: Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno

http://www.sudt.com/en/ap/download.htm

[5] manual elaborado pela ELECHOUSE

http://www.elechouse.com/elechouse/images/product/Voice%20Recogniti...