relatório técnico -...

17
Universidade Tecnológica Federal do Paraná – UTFPR Departamento Acadêmico de Eletrônica – DAELN Departamento Acadêmico de Informática – DAINF Engenharia de Computação Oficina de Integração 3 (IF66J) – S71 – 2015/2 Relatório Técnico Xilofone sintético didático André Eleutério [email protected] Christiano Oishi de Carvalho [email protected] Claudio Toledo Filho – claudio.toledo.fi[email protected] Dezembro de 2015 Resumo É normal que um número grande de pessoas tenha dificuldade para in- gressar no mundo da música, devido à alta complexidade de aprendizado dos instrumentos musicais. Neste trabalho, apresenta-se um xilofone sin- tético com função didática, que ensina determinadas músicas através de elementos visuais. Foi desenvolvido um sistema que permite o usuário ter um primeiro contato com a música. O xilofone construído utiliza sen- sores piezoelétricos para detectar a interação com as teclas e LEDs como referência visual. Optou-se pela construção da estrutura em madeira, com teclas de acrílico e um alto-falante acoplado. Além disso, foram adiciona- dos um controle de volume e uma chave que aciona uma distorção mu- sical. Para que o usuário tenha uma maior interatividade com o xilofone, uma conexão Bluetooth com um dispositivo móvel foi utilizada. O pró- prio usuário poderá selecionar as músicas, gravar o que está sendo tocado e compartilhar com os amigos novas músicas criadas por ele. 1 Introdução O xilofone projetado pela equipe Ultron é um equipamento muito útil para o aprendizado musical. Sua estrutura em madeira e acrílico o torna portátil e atra- tivo visualmente. Através do acionamento de LEDs é possível aprender e tocar qualquer música que tenha sido enviada via Bluetooth de um aparelho celular. Como o xilofone se trata de um instrumento de percussão, foram escolhidos os sensores piezoelétricos, por transformarem energia da vibração em um sinal elétrico [HOL02]. Para tornar o aprendizado mais intuitivo, diferentes cores de LEDs foram inseridos nas teclas feitas de acrílico. A comunicação via Blueto- oth permite ao xilofone se comunicar com qualquer celular que tenha suporte à essa tecnologia e ao aplicativo instalado. Alimentando todo o sistema com uma bateria de 5V, pode-se tocar o xilofone em qualquer lugar. O diagrama da Figura 1 apresenta a visão geral do xilofone didático desenvolvido, denominado Ultron. 1

Upload: danglien

Post on 14-Feb-2019

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Universidade Tecnológica Federal do Paraná – UTFPR

Departamento Acadêmico de Eletrônica – DAELN

Departamento Acadêmico de Informática – DAINF

Engenharia de ComputaçãoOficina de Integração 3 (IF66J) – S71 – 2015/2

Relatório TécnicoXilofone sintético didático

André Eleutério – [email protected]

Christiano Oishi de Carvalho – [email protected]

Claudio Toledo Filho – [email protected]

Dezembro de 2015

Resumo

É normal que um número grande de pessoas tenha dificuldade para in-gressar no mundo da música, devido à alta complexidade de aprendizadodos instrumentos musicais. Neste trabalho, apresenta-se um xilofone sin-tético com função didática, que ensina determinadas músicas através deelementos visuais. Foi desenvolvido um sistema que permite o usuárioter um primeiro contato com a música. O xilofone construído utiliza sen-sores piezoelétricos para detectar a interação com as teclas e LEDs comoreferência visual. Optou-se pela construção da estrutura em madeira, comteclas de acrílico e um alto-falante acoplado. Além disso, foram adiciona-dos um controle de volume e uma chave que aciona uma distorção mu-sical. Para que o usuário tenha uma maior interatividade com o xilofone,uma conexão Bluetooth com um dispositivo móvel foi utilizada. O pró-prio usuário poderá selecionar as músicas, gravar o que está sendo tocadoe compartilhar com os amigos novas músicas criadas por ele.

1 Introdução

O xilofone projetado pela equipe Ultron é um equipamento muito útil para oaprendizado musical. Sua estrutura em madeira e acrílico o torna portátil e atra-tivo visualmente. Através do acionamento de LEDs é possível aprender e tocarqualquer música que tenha sido enviada via Bluetooth de um aparelho celular.

Como o xilofone se trata de um instrumento de percussão, foram escolhidosos sensores piezoelétricos, por transformarem energia da vibração em um sinalelétrico [HOL02]. Para tornar o aprendizado mais intuitivo, diferentes cores deLEDs foram inseridos nas teclas feitas de acrílico. A comunicação via Blueto-oth permite ao xilofone se comunicar com qualquer celular que tenha suporte àessa tecnologia e ao aplicativo instalado. Alimentando todo o sistema com umabateria de 5V, pode-se tocar o xilofone em qualquer lugar. O diagrama da Figura1 apresenta a visão geral do xilofone didático desenvolvido, denominado Ultron.

1

Page 2: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 2

Figura 1: Diagrama com a visão geral do xilofone

Page 3: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 3

1.1 Requisitos

1.1.1 Requisitos Funcionais

Tocar em um alto-falante o som correspondente à tecla tocadado xilofone

Comprido

Reproduzir uma determinada música enviada pela estaçãobase usando o acendimento de LEDs

Comprido

Gravar o que foi tocado na estação base CompridoCompartilhar a música tocada para que os amigos do usuáriopossam aprender a tocar a música gravada

Comprido

Selecionar no aplicativo a dificuldade da música (fácil ou difí-cil)

Comprido

Atribuição de uma nota de acordo com os acertos do usuário CompridoAcendimento dos LEDs da tecla quando ela for tocada CompridoVariação da intensidade dos LEDs de acordo com a intensidadedo toque

Contornado

Variar a intensidade dos LEDs da tecla dependendo do tempode espera para ela ser tocada (quando estiver na forma deaprendizagem)

Contornado

Reproduzir som no formato WAVE Não compridoTer uma chave que aplica distorção Não comprido

Tabela 1: Requisitos funcionais do sistema

1.1.2 Requisitos Não Funcionais

Captura da vibração das teclas usando o sensor piezoelétrico CompridoComunicação entre a estação base e o sistema embarcado uti-lizando a tecnologia Bluetooth.

Comprido

Gravar arquivos texto no Android. CompridoBanco de dados online CompridoComunicação entre banco de dados online e Android via Inter-net

Comprido

Tabela 2: Requisitos não funcionais do sistema

Page 4: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 4

2 Principais materiais e recursos utilizados

2.1 Arduino

O Arduino é o que chamamos de plataforma de computação física ou embar-cada. O seu hardware é um projeto simples de hardware livre para o controla-dor, possuindo um processador Atmel AVR e suporte de entrada/saída embutido[MCR11] . O seu software utiliza uma linguagem de programação padrão, base-ada na linguagem C.

O modelo utilizado no projeto é o Arduino Mega 2560, com as especifica-ções:

Microcontrolador Atmega2560Tensão de operação 5VTensão de entrada 7-12VPortas digitais 54Portas PWM 15Portas analógicas 16Memória Flash de 256KbClock 16MHz

Tabela 3: Especificação Arduino Mega 2560

2.2 Android

O Android é um sistema operacional baseado em Linux e desenvolvido pela em-presa Google. A sua interface com o usuário é baseada na manipulação direta,sendo desenvolvido para dispositivos móveis com tela sensível ao toque.

O código do sistema é disponibilizado pelo Google sob licença de códigoaberto. O desenvolvimento da aplicação é primeiramente em linguagem Java,usando o ambiente de desenvolvimento do software Android (SDK) [AND], queinclui um depurador, uma biblioteca, um emulador, documentação, códigosexemplos e tutoriais, o que facilita o desenvolvimento.

2.3 Sensores Piezoelétricos

A captação dos toques nas teclas foi feita através dos sensores piezoelétricos. Ossensores piezoelétricos têm a capacidade converter a força exercida sobre elepor compressão, impacto, ou vibração em um sinal elétrico cujo a amplitudedepende da intensidade da força aplicada [PIN].

O sensor piezoelétrico gera níveis de tensão variados de acordo com a forçada batida. Fazendo medições experimentais, obtivemos níveis de tensão deaproximadamente 1,5V para uma batida leve e até 12V para batidas mais for-tes. Quando a batida é realizada o sensor gera picos de tensão relativamente

Page 5: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 5

altos para a necessidade da aplicação. Como experimentalmente obtivemos re-sultados satisfatórios, não fizemos o acondicinamento do sinal.

Para leitura do sinal elétrico proporcionado pelo sensor, cada um deles foicolocado em paralelo com um resistor de 1 MΩ e, em seguida ligado a umaentrada analógica do Arduino [ARDb]. Na programação bastou utilizar a fun-ção "analogRead()"do Arduino que retorna um valor inteiro de 0 a 1023 depen-dendo da intensidade do sinal.

2.4 Comunicação Bluetooth

Toda a comunicação feita entre o Xilofone Sintético e o Aplicativo de gerencia-mento foi feita através do Bluetooth.

O Bluetooth é um padrão global de comunicação sem fio e de baixo con-sumo de energia que permite a transmissão de dados entre dispositivos, desdeque um esteja próximo do outro. Para o Arduino operar com a comunicação, foiutilizado um módulo que faz todo o gerenciamento Bluetooth que em seguidase comunica de forma serial com o Arduino.

A ligação foi feita conforme descrita nas pinagens do módulo e, apenas foiidentificado no código quais eram os pinos responsáveis pela comunicação se-rial, através da biblioteca "SoftwareSerial.h"[PAG].

A plataforma Android possui uma API própria para controlar toda a comu-nicação Bluetooth. Com os exemplos disponibilizados em [ARDa], uma classefoi elaborada implementando todas as funções básicas da comunicação: pro-cura de dispositivos, conexão com dispositivo, envio de dados e recebimentosde dados.

3 Xilofone sintético

3.1 Estrutura

O xilofone sintético desenvolvido é composto por 7 teclas e, abaixo de cada uma,há um sensor que capta a vibração que ocorre quando a tecla sofre um impacto.A base é uma caixa de madeira confeccionada especialmente para o projeto. Otopo é removível para ser possível fácil acesso aos circuitos dentro da caixa. Asteclas são peças de acrílico que também foram confeccionadas especialmentepara o projeto. A informação obtida é processada pelo Arduino que reproduzum arquivo de áudio .wav correspondente ao som da nota musical da tecla. Osom é reproduzido por um alto-falante acoplado ao xilofone. A base é uma caixade madeira para fixar toda parte dos circuitos dentro dela.

Os principais componentes da entrutura do xilofone são: 1) 7 teclas de acrí-lico; 2) 7 sensores piexoelétricos; 3) 4 LEDs de alto brilho para cada tecla; 4) 1alto-falante; 5) 1 amplificador de áudio. A Figura 2 mostra a estrutura externa einterna do xilofone.

Page 6: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 6

(a)

(b)

Figura 2: A estrutura (a) externa e (b)interna do xilofone.

3.2 Custo do Projeto

A Tabela 1 mostra qual foi o custo aproximado para construção do xilofone, se-parando os valores por itens.

Page 7: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 7

Tabela 4: Custo para a construção do xilofone

ITEM $/UN QUANTIDADE VALORArduino Mega 2560 R$ 72.00 1 R$ 72.00Módulo Bluetooth RS-232 HC-05 R$ 36.00 1 R$ 36.00Módulo SD R$ 9.00 1 R$ 9.00Sensor piezoelétrico R$0,41 10 R$ 4.10LEDs de alto brilho R$0,60 28 R$ 16.80Alto-falante R$ 6.00 1 R$ 6.00Bateria 5V R$ 20.00 1 R$ 20.00Placa de Acrílico R$ 30.00 1 R$ 30.00Chapa de Compensado R$ 40.00 1 R$ 40.00Placa de circuito impresso R$ 8.00 1 R$ 8.00Percloreto de Ferro R$ 10.00 1 R$ 10.00Outros componentes - - R$ 50.00TOTAL R$ 301.90

3.3 Firmware

3.3.1 Atraso por software

Para evitar o uso da função "delay()"do Arduino, a qual trava a execução de to-dos os processos do xilofone num determinado tempo, optou-se pelo uso de ummétodo que simula uma programação paralela, que é descrito através do fluxo-grama da Figura 3: armazenar em uma variável o tempo em que a função foi exe-cutada e chamar a função seguinte apenas quando o tempo atual da máquina,subtraído com tempo armazenado for maior ou igual ao tempo determinado deespera.

Figura 3: Fluxograma do método de atraso por software adotado.

Essa ideia foi de grande importância para o funcionamento do projeto, pois

Page 8: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 8

era necessário aguardar intervalos de tempos sem que todo o sistema ficasse"travado", podendo então, ler informaçoes dos sensores ou executar outras fun-ções do projeto.

3.3.2 Leitura dos sensores

Sabendo que a função "analogRead()"retornava um inteiro de 0 a 1023 depen-dendo da intensidade da batida, uma taxa de sensibilidade foi definida, a qual,se o valor obtido do sensor ultrapasse essa taxa, o sistema acionaria os coman-dos da tecla tocada.

3.3.3 Intensidade da batida

Dependendo da intensidade da batida o sistema retorna um efeito visual pormais tempo, ou seja, acendendo os LEDS da teclas tocada por mais tempo casoa intensidade da batida ultrapasse um limite da sensiblidade definida.

3.3.4 Ensinando músicas

O primeiro método consiste em acender os LEDs da tecla corresponde à notae, aguardando o usuário tocar a mesma para então, acender a tecla da nota se-guinte. Neste modo o sistema percorre o vetor de notas e tempo da música en-viado para o xilofone, e em cada iteração acende os LEDs da tecla que deve sertocada. Quando o usuário toca uma tecla é verificado se a tecla tocada é a cor-reta. Caso contrário, o sistema foi definido para retornar ao começo da música.Se a nota tocada é a correta , os LEDs da tecla da próxima nota são acesos e daatual apagados, repetindo todo o processo de verificação da tecla tocada nova-mente.

Figura 4: Fluxograma primeiro método de aprendizagem

O segundo método consiste em acender apenas um LED por vez da teclaque deverá ser tocada conforme o tempo da música. O tempo correto que a te-cla deverá ser tocada é quando todos os LEDs estiverem acessos. Desta forma osistema percorre o vetor de notas e tempos da música pegando as informações

Page 9: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 9

da nota atual e da nota seguinte. Na nota atual ele acende todos os LEDs da teclacorrespondente e na nota seguinte acende os 3 primeiros LEDs, em sequência,dependendo do tempo de espera para essa nota. Se duas teclas estiverem to-talmente acesas o sistema apaga a primeira que foi acesa , continuando o fun-ciomento para as notas seguintes. Se o usuário errar a tecla, o sistema não faznada e aguarda o usuário acertar. Caso o usuário acerte, os LEDs da tecla sãoapagados.

Figura 5: Fluxograma segundo método de aprendizagem

Nos 2 métodos ao finalizar a música o xilofone retorna um efeito visual deLEDs representando o fim da música e então envia uma informações de desem-penho para o aplicativo

3.3.5 Avaliação de desempenho de aprendizado

No primeiro método a avaliação consiste e armazenar a quantidade de erro denotas tocadas, e o tempo de espera que o sistema contou até o usuário tocar atecla correta, quando estava acesa.

No segundo método o sistema armazena a quantidade de notas erradas,o tempo de espera que até o usuário tocar a tecla correta e também as notasque ele não tocou, pois nesse modo só é aguardado o toque até a próxima teclaacesa.

3.3.6 Gravando músicas

Primeiramente é definido um vetor de inteiros para o armazenamento da mú-sica gravada. As posições pares, ressaltando que o índice começa em zero, épara armazenar quais notas são tocadas e as posições ímpares o tempo de es-pera para a nota seguinte. Essa forma de armazenamento que a sequência dainformações gravadas no vetor é a mesma da sequência da música tocada.

Page 10: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 10

Quando uma tecla é pressionada, no momento da gravação, é armazenadana posição atual do vetor a nota referente aquela tecla e, em seguida uma con-tagem de tempo é iniciada. No instante que uma próxima tecla é tocada, a con-tagem finaliza e salva na posição seguinte do vetor. Novamente o processo ar-mazenamento anterior é iniciado.

Figura 6: Fluxograma do processo de gravação

3.3.7 Reproduzindo gravações

Tendo a música gravada, a reprodução ocorre percorrendo o vetor (com a grava-ção), em que, a cada ciclo é reproduzida a nota contida na posição atual, junta-mente com um efeito visual de LEDS sobre a tecla característica. O tempo entrecada nota, é respeitado, sendo que um novo ciclo só é iniciado quando o tempode espera é concretizado.

3.3.8 Enviando gravações para o aplicativo

Após a gravação, o envio só é iniciado quando o xilofone receber o comandoreferente. O envio foi feito através do método "write()"da biblioteca "SoftwareSerial.h"que transforma a informação passada pelo argumento em forma debytes para então enviar ao aplicativo. Todas a notas e tempos gravados no vetorsão enviados separadamente e em sequência.

3.4 Reprodução do som

A equipe desenvolveu duas maneiras de reproduzir som. A primeira foi a uti-lização de uma função do Arduino, tone(). A segunda foi a montagem de umconversor DA e integração com o sistema para reprodução de arquivos WAVE.

Foram desenvolvidas duas alternativas pois o segundo método oferecia ris-cos de mal-funcionamento que poderiam comprometer o projeto, e era neces-sário ter uma alternativa.

Page 11: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 11

3.4.1 Reprodução de tons no Arduino

O Arduino contém uma função "tone()", com ela é possível mandar para ospinos de áudio ondas que reproduzem tons.

Apenas é identificado nos argumentos da função, o pino de sáida de áudio,a frequência da onda e tempo de reprodução(em milisegundos). A função é res-ponsável por configurar o pino de sáida para alta frequência e enviar em um de-terminado tempo uma onda quadrada com a frequência escolhida pelo usuário.

3.4.2 Leitura e Reprodução de áudio WAVE

Um arquivo WAVE é composto por uma sequência de bytes a qual armazenamas amostras da onda do som gravada, respeitando uma certa taxa de amostra-gem definida na hora da criação .

O arquivo WAVE foi aberto através da função "open()"da biblioteca "sdFat.h"e lido byte a byte com ajuda das funções "available()"e "read()". A cada leiturade byte foi mandado para o pino de saída de áudio (definidos antes no início docódigo do Arduino) o valor inteiro relacionado a amostra da onda lida. O tempode amostragem, ou mais especificamente o tempo de espera para ler a próximaamostra, foi definido com base na taxa de amostragem do arquivo WAVE e ajus-tes em "tentativa e erro"devido aos tempos de leitura.

Os arquivos WAVES, possuíam uma taxa de amostragem de 8KHz, resoluçãode 8 bits e canal mono.

3.4.3 Método utilizado

A decisão final da equipe foi por utilizar a reprodução de tons com a funçãotone() nativa do Arduino.

A escolha foi feita pois o método de reprodução WAVE se mostrou inefici-ente e não condizente com a motivação do projeto. As notas geradas não eramda qualidade desejada. Como o Xilofone tem intuito didático, era necessárioidentificar claramente as notas para aprender e treinar essa percepção. Alémdisso, o processamento do arquivo WAVE gerava atrasos no Xilofone e prejudi-cava a sincronização do acendimento dos LEDs e da reprodução do áudio.

O método de reprodução por tons gera sons sintéticos porém claramenteidentificáveis. O que perdemos com essa decisão foi a capacidade de utilizar ofiltro de reverb, que estava implementado em MATLAB para utilização com osarquivos WAVE.

3.5 Circuitos

A Figura 4 apresenta o diagrama esquemático do xilofone.

Page 12: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 12

Figura 7: Diagrama esquemático do xilofone

3.5.1 LEDs

Cada uma das teclas do xilofone possue 4 LEDs de alto brilho, o que torna possí-vel a variação da intensidade da tecla. Cada quarteto de LEDs foi ligado em umaporta analógica do Arduino, em série com um resistor de 100 Ohms e com umdiodo, o que permitiu o acendimento de um LED por vez.

3.5.2 Amplificador de Áudio

Foi utilizado um dispositivo básico para amplificação de áudio de uma caixa desom. Foram retirados os componentes que não faziam parte do amplificador eaproveitado o restante da circuitaria original da caixa de som como amplificadorde áudio do sistema embarcado.

4 Aplicativo de gerenciamento

4.1 Estrutura

O aplicativo desenvolvido para Android é composto por:

1. A tela inicial que traz as opções de navegação para as telas ensinar mú-sica, gravar música, configurações, e também uma botão para o início doscomandos de conexão com o xilofone, como mostra a Figura 5(a).

2. A tela de ensinar música contém a lista de músicas salvas no dispositivo eos botões de chamada das funções enviar músicas, excluir música e baixarmúsicas, como mostra a Figura 5(b).

Page 13: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 13

3. A tela de pontuação que mostra o resultado do desempenho do usuárioem relação a sua aprendizagem, como mostra a Figura 5(c).

4. A tela de gravação que contém os botões para o envio dos comandos ini-ciar, parar e tocar as gravações e também o botão para salvar ou compar-tilhar a gravação, como mostra a Figura 5(d).

(a) (b) (c) (d)

Figura 8: Telas do aplicativo para Android. (a) tela do menu, (b) tela de ensinarmúsica, (c) tela da pontuação e (d) tela de gravação.

4.2 Programação

4.2.1 Interface

A interface é composta por uma tela principal, que gerencia toda a navegaçãoentre telas do aplicativo. Para cada tela, foi montado um layout específico comtodos os elementos necessários para o execução das funções.

Quando o usuário requisita a chamada de uma nova tela, geralmente atravésdo pressionamento de algum botão, o sistema da tela principal altera o layoutatual pelo da requisitada. Afim de evitar erros e fechamentos inesperados noaplicativos os componentes do layout foram inicializado apenas quando o pró-prio layout era solicitado.

4.2.2 Leitura e envio de músicas para aprendizado

Primeiramente foi definido um formato de arquivo texto, como sendo o métodode armazenamento das músicas que o xilofone poderia ensinar. O arquivo écomposto pelo nome da música, na primeira linha, o autor de quem fez a mú-sica, na segunda linha, e na sequência todo vetor corresponde a música.

Na leitura, a biblioteca "File"foi utilizada para gerenciar os arquivo contidosna pasta do dispositivo. O método pra listar os arquivos da pasta foi "list()". Paraleitura foi usado a classe "BufferedReader()"para ler linha a linha do arquivo.

A decodificação das informações foi feita seguindo a sequência definida no

Page 14: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 14

arquivo texto da música. No caso do vetor da música salvo, foi necessário usar aclasse "Integer"para transformar um conjunto de números em formato Carac-ter no formato Inteiro. Essa transformação foi necessária pois a manipulaçãodas notas e tempos, neste projeto, é trabalhada com valores inteiros.

O envio da música consiste em percorrer todo vetor que armazena as notase tempos e cada iteração transformar o valor do índice atual em byte e entãorealizar o envio para o xilofone.

4.2.3 Pontuação de desempenho na aprendizagem

Após o término do aprendizado de uma música, o xilofone envia as informaçõesde desempenho. O aplicativo foi definido para processar essas informações con-forme descrito a seguir:No primeiro método de aprendizagem:

1. a cada nota tocada errada o usuário perde 5% da pontuação máxima

2. a cada 100 milissegundos de espera até tocar a nota correta, o usuárioperde 1% da pontuação máxima

No segundo método de aprendizagem:

1. a cada nota tocada errada o usuário perde 6% da pontuação máxima

2. a cada 100 milissegundos de espera até tocar a nota correta, o usuárioperde 1% da pontuação máxima

3. a cada nota não tocada usuário perde 10% da pontuação máxima

A pontuação máxima foi definida para 1000 pontos.

4.2.4 Gravando e compartilhando músicas

Toda gravação da música ocorre no xilofone. O aplicativo apenas envia o co-mando para a inicialização e parada da gravação.

Quando a gravação termina o Arduino envia a música da mesma forma queo aplicativo, ou seja, de nota à nota e tempo à tempo. Aplicativo recebe essa in-formações e armazena num vetor inteiro, mas isso só ocorre se o usuário decidirsalvar a gravação, para evitar envio de informações desnecessárias.

Com a música no dispositivo, é chamada uma tela com os elementos decampo de texto nome e autor para identificação da música.

Se o usuário decidir compartilhar, todas informações da música são codifi-cadas no formato JSON[JSO] e enviados para um banco de dados online aces-sível por todos os usuários que possuem o aplicativo. JSON é formato "univer-sal"que é muito conveniente para troca de informações entre aplicações.

Todas as músicas enviadas para o aplicativo são salvas após as informaçõesdo nome e autor forem digitadas. Foi utilizado a classe "File"para criar o arquivo

Page 15: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 15

e a classe "FileOutputStream"para gravar os dados no arquivo. Para o salvar ve-tor da notas e tempos da música, este foi percorrido e cada iteração foi concate-nando os valores do vetor em uma string com ajuda do método "toString()"daclasse "Integer", para converter inteiro em string.

O download consiste em acessar o banco de dados online receber no for-mato JSON a música escolhida. O aplicativo decodifica e salva como nas músicaque foram gravadas.

4.2.5 Filtro de distorção

Foi desenvolvido um filtro para a distorção do som produzido. O filtro é ativadocom uma chave. O filtro escolhido foi o reverb.

O filtro foi desenvolvido e testado em MATLAB antes de ser traduzido e por-tado para o sistema embarcado. O filtro baseia-se em uma equação de diferen-ças [OPP75] e a filtragem foi feita com a função filter() nativa do MATLAB.

A leitura do arquivo de som (em formato .wav) foi feita com a função audi-oread(), que também calcula a frequência de amostragem do som. Após a filtra-gem, é criado um arquivo .wav com a função nativa audiowrite().

Apesar de ter sido implementado, o filtro não foi utilizado na versão final doprojeto, pois o método escolhido para a reprodução do som utilizando o arduinonão permitiu a sua integração.

5 Comunicação

A Tabela 1 apresenta os caracteres de comando adotados no protocolo de co-municação entre o aplicativo Android e o xilofone, via Bluetooth.

Tabela 5: Comandos definidos para a execução da funções no aplicativo

m Configura o xilofone para recepção do vetor da músican Inicia a função de ensinar músicab Para a função de ensinar músicar Inicia a gravação das notas da músicas Finaliza a gravaçãop Inicia a reprodução da música gravadao Finaliza a reprodução da música gravaday Configura o xilofone e realiza o envio da música gravadam Configura para recepção do vetor da música gravadau Configura para recepção de desempenho de aprendizagem da música

Page 16: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 16

6 Conclusão

A equipe atingiu todos os requisitos funcionais mais importantes. O xilofonecaptura a vibração das teclas; toca as notas correspondentes às 7 teclas no alto-falante com som limpo; acende os LEDs da tecla tocada; ensina o usuário a to-car músicas utilizando o acendimento dos LEDs; se comunica com o aplicativoatravés de bluetooth e possui funções de gravação, armazenamento e compar-tilhamento através do aplicativo.

Não foi possível utilizar variações na intensidade dos LEDs para as duas fun-ções que a requeriam: codificar a intensidade do toque na tecla e, na função deaprendizagem da música, codificar quanto tempo faltava para a próxima notaser tocada. A implementação da intensidade dos LEDs foi feita, mas era muitodifícil discernir diferenças a mesma em ambientes que não estejam completa-mente escuros.

Para contornar a primeira situação, as teclas ficam acesas por mais tempodependendo da intensidade do toque na tecla. Isso dá um retorno visual para ousuário informando a intensidade do toque.

Para a segunda situação, acendemos os LEDs da tecla progressivamente deacordo com quanto tempo falta para ela ser tocada. As teclas possuem 4 LEDs,e acendemos eles um por um de acordo com o tempo da música.

Também não foi possível criar três níveis de dificuldade para a função deaprendizagem. O objetivo era implementar os níveis Fácil, Médio e Difícil. Onível Fácil consiste em tocar as teclas que o xilofone acende. Nesse nível o xi-lofone espera a tecla ser tocada antes de acender a próxima nota. Isso ensina asequência de notas porém não ensina o ritmo da música. No nível Difícil o ritmofoi codificado com o acendimento progressivo dos 4 LEDs de cada tecla.Não foipossível implementar o nível Médio pois não há como inserir um nível inter-mediário de dificuldade pois não é possível incluir notas além das 7 já repre-sentadas. O xilofone toca apenas uma oitava, e seria necessário codificar outrasoitavas para dificultar o nível Fácil.

A equipe tinha como objetivo atingir os requisitos e produzir um trabalhode qualidade que prezasse por detalhes e pelo visual. Esses objetivos foram al-cançados e a equipe considera o trabalho um sucesso.

Referências

[AND] Android studio overview.

[ARDa] Android developers - bluetooth.

[ARDb] Tutorial ARDUINO. Arduino - knock.

[HOL02] Thorn HOLMES. Electronic and Experimental Music. New York: Rou-tledge, 2002.

Page 17: Relatório Técnico - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/gustavobborba/if66j-s71-projetos/files/... · sensores piezoelétricos têm a capacidade converter a força

Relatório Técnico: Ultron 17

[JSO] Introducing jason.

[MCR11] M MCROBERTS. Arduino Básico. Novatec, 2011.

[OPP75] A OPPENHEIM. Digital Signal Processing. Prentice-Hall, 1975.

[PAG] Mitchell PAGE. Wireless communication with pc and arduino boardusing bluetooth.

[PIN] Alexandre PINO. Instrumentação e técnicas de medida: Sensores ter-moelétricos e piezoelétricos.