Como utilizar o módulo de reconhecimento de voz SPCE061A com o Arduíno
-
Upload
douglas-rodrigues -
Category
Documents
-
view
487 -
download
1
Transcript of 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
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
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.
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”*
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.
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.
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);
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);
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
http://www.sudt.com/en/ap/download.htm
[5] manual elaborado pela ELECHOUSE
http://www.elechouse.com/elechouse/images/product/Voice%20Recogniti...