Bom De Nota

O projeto “Bom de Nota” foi criado com o objetivo de auxiliar pessoas que estejam iniciando sua vida musical, no sentido de ajudar a aprender a identificar notas musicais através do ouvido.

CONTEÚDO:
O projeto bom de nota constitui-se de uma interface de comunicação com o usuário (o teclado) que comunica-se com o PC através das interfaces USB e paralela, gerenciado por um programa escrito em Java. O esquema idealizado pela equipe pode ser visualizado através do esquema disponível na seção de anexos.
Para construir o teclado, foi preciso adaptar um teclado musical de brinquedo num circuito de teclado convencional USB. O esquema de envio de dados em um teclado convencional segue uma lógica matricial de linhas e colunas, na qual cada tecla corresponde a uma posição na matriz. A adaptação consistiu em soldar os receptores das teclas musicais em uma respectiva posição na matriz, fazendo com que, ao pressionar uma tecla musical, fosse enviado um sinal correspondente ao caractere da respectiva posição na matriz para um teclado convencional.
Independentemente ao circuito do teclado está o circuito do visor LCD. Utilizamos, para o presente projeto um circuito pronto, já adaptado à interface paralela. Foi preciso apenas, portanto, adaptar a caixa acrílica do teclado para que este comportasse também o visor LCD.
Finalmente, foi escrito um programa em Java que executa toda a lógica do projeto: através das classes de gerenciamento de MIDI, randomização de valores, comunicação paralela e outras classes implementadas pela equipe, todas em Java, foi possível implementar um programa que, a partir de um valor randômico (cujos limites são as notas disponíveis no teclado de brinquedo), emitisse uma nota específica da escala diatônica que deveria ser interpretada pelo usuário. Este, daria seu palpite pressionando a tecla correspondente no brinquedo e o programa, ao receber o sinal (que, como já explicitado nada mais é do que um caractere de teclado), avalia se o usuário conseguiu adivinhar a nota correta. O programa utiliza também um timer, que limitará o tempo disponível para que o usuário adivinhe a nota.

MATERIAIS:
LCD 16×2;
1 – conector DB25 macho;
1m – cabo flat 16 vias;
teclado musical de brinquedo – Marca Feng YUAN – Modelo Fashion Keyboard
regulador de tensão 5V;
potenciometro 10 k;
4 – pilhas AA;
placa de acrilico 10x5cm;

 
Equipamento:

alicate de bico;
alicate de corte;
ferro de solda;
arame de solda;
isolante alta fusão;
fita crepe;
Chave philips;
tesoura;
estilete;
micro retífica com mini disco de corte;

CONCLUSÃO:
O grupo entende que este foi um projeto bastante simples de ser implementado. A escolha da linguagem Java para programação foi estratégica, pois faz parte do conteúdo do PA de Estruturas de Dados e também porque a API Java possui uma série de classes prontas para execução dos mais variados intentos. Uma pesquisa na Internet nos revelou milhares de formas de se desenvolver o projeto, porém a mais simples e eficaz envolvia o uso das classes Synthesizer e MidiChannel, que contém uma série de implementações específicas para emissão de sinais MIDI, podendo-se, inclusive, escolher o instrumento a ser tocado.
O programa implementado, apesar de simples, é bastante versátil. As classes padrão utilizadas foram apenas para a emissão do sinal MIDI. O restante da implementação do código foi feito pela equipe, que se preocupou em criar um código que comporte eventuais modos de jogo para o futuro, sendo que a seleção dos modos de jogo seria feita a partir da combinação de teclas. Tudo o que acontece no jogo pode ser monitorado pelo visor LCD, de forma que, futuramente, poder-se-ia implementar todo o código em um micro-controlador (substituindo Java por C, por exemplo, ou de tantas outras formas), dispensando o uso de um PC e viabilizando a produção comercial de um brinquedo simples, divertido e educativo.
Obviamente, por questões de tempo, foi implementado apenas o modo mais simples de jogo, mas a adaptação para futuros modos pode ser feita de forma muito fácil e rápida, pois o código (apesar de ainda não estar comentado), possui grande clareza.
O maior desfio foi desenvolver uma forma de enviar strings para o LCD através do mesmo programa em Java, pois a comunicação paralela, já meio em desuso ultimamente, não possui tantas aplicações em Java. Contornado este problema, restou apenas a montagem do circuito, o que, na verdade, foi a primeira tarefa finalizada pela equipe.

AUTORES:
– André da Silveira Ambrosio
– I Jen Fan
– Juliano Bortolozzo Solanho
– Sérgio Kenzo Wojitani

CONTATO:
– andre.ambrosio@gmail.com
– i.j@pucpr.br

DOCUMENTAÇÃO:
200.pdf

IMAGENS: