terça-feira, abril 28, 2015

Disquetes Musicais: Firmware

Impressionante o tempo que este projeto está parado em cima da mesa desde a última vez que eu falei nele. Eu fiquei muito indeciso sobre a montagem mecânica e "travei" um pouco antes de me arriscar a fazer software para o Raspberry, mas o firmware ficou aguardando testes há mais de quatro meses. Vamos torcer para que desta vez eu consiga ir até o fim.



Relembrando:

Introdução
Unidade de disquete
Arquivos MIDI
Entendendo o Moppy
Meu Projeto
Placa de Controle
Teste da Placa de Controle

O firmware para o ATtiny da placa de controle é uma rescrita do software Moppy para Arduino. As principais mudanças (melhorias na minha suspeita opinião) são:
  • Acesso direto ao hardware ao invés de usar a biblioteca do Arduino
  • Uso de uma matriz de estruturas, evitando a repetição de código com pequenas alterações
  • Proteção do acesso às variáveis compartilhadas entre o programa principal e a rotina de interrupção
  • Validação dos dados recebidos pela serial
  • Implementação do relê para "percussão"
O formato dos comandos na serial é semelhante ao Moppy, acrescido do comando para o relê:
  • 100 (0x64) comanda o posicionamento das cabeças de todas as unidades na trilha zero.
  • 101 (0x65) emite um clique no relê
  • 1, 2 e 3 comandam uma nota nas unidades de disquete. Este comando é seguido do período, em unidades de 40 microssegundos. Este período é um valor de 16 bits, o byte mais significativo é enviado primeiro.
Em relação ao último post eu acrescentei dois LEDs à placa de controle: um LED vermelho para indicar a alimentação e um LED verde que pulsa quando um comando é reconhecido.

Para testar o firmware eu escrevi um software simples no Raspberry. Os detalhes ficam para o próximo post, mas este software repete continuamente os seguintes passos:
  • Posiciona todas as unidades na trilha zero
  • Dá três cliques no relê
  • Toca a sequência dó, ré, mi, fá, sol, la, si nas unidades, uma por vez.
 Os softwares estão no github em https://github.com/dquadros/DisquetesMusicais

Abaixo o vídeo do teste em execução:




Nenhum comentário: