sábado, outubro 04, 2014

Disquetes Musicais: Meu Projeto

Nest post vou apresentar as ideias do projeto que pretendo montar para tocar músicas em unidades de disquete.

Considerações Iniciais


O esquema descrito no instructables apresenta, para mim, alguns inconvenientes:
  • A necessidade de conexão de um PC
  • Software do PC com instalação complexa e vários requisitos
  • Sub aproveitamento do Arduino
Uma solução radical seria realizar todo processamento em um Arduino; descartei isto (por enquanto) devido à complexidade da interpretação do arquivo MIDI, ainda mais em condições limitadas de memória para dados.

Uma alternativa seria pré-processar o arquivo MIDI e carregar no Arduino os dados já mastigados. É uma alternativa interessante, mas também a descartei por enquanto.

A arquitetura que escolhi foi fazer o processamento do PC em um Raspberry Pi e usar um ATtiny no lugar do Arduino.

Hardware

O meu projeto vai utilizar três unidades de disquete, o que permite tocar até três notas simultaneamente. Supondo manter dois sinais por unidade, são necessárias seis saídas digitais. Se quiser usar o sinal que indica a trilha zero serão necessárias mais três entradas digitais. Isto pode ser obtido com um ATtiny2313 ou ATtiny44. A conexão do ATtiny ao Raspberry será serial; como só é usada a Rx no ATtiny, não deve existir problema em alimentar o ATtiny com 5V (o sinal Tx do Raspberry será no máximo 3.3V). Se este funcionamento não for adequado, é possível alimentar o ATtiny com 3.3V, porém aí o clock tem que ser limitado a 10MHz. O ideal é usar um cristal de 16MHz para termos temporizações equivalentes às do Arduino.

A alimentação será feita por uma fonte velha de PC.

Software

O software para o ATtiny será uma simplificação do código do Moppy para o Arduino. Pretendo manter o mesmo formato de mensagens, porém com uma implementação mais robusta e elegante. Como de costume, o código será em C para o avr-gcc.

O desenvolvimento mais pesado será no lado do Raspberry, onde pretendo desenvolver em C um programa de linha de comando para tocar um arquivo MIDI. Por cima dele pode ser criada, mais para frente, uma camada de interface com o operador.

Pontos Extra

Ainda não sei como isto irá soar, mas pretendo investigar o uso de um ou dois relês como "percussão", aproveitando o estalo que eles produzem quando são ativados ou desativados.

Nenhum comentário: