quinta-feira, abril 30, 2015

Disquetes Musicais: Software de Teste no Raspberry Pi

Continuando o post anterior, vamos ver aqui como é o software no Rapberry Pi.

Preparando a Serial

Por padrão, a serial do Raspberry Pi está configurada para aceitar logins. Para poder usá-la no nosso programa é preciso desabilitar isto. Uma descrição do que isto envolve está aqui; um script para automatizar os passos pode ser visto aqui; mas, se você estiver com o Raspbian atualizado, você pode simplesmente rodar o raspi-config, seleciona "Advanced Options", "Serial" e dizer que não quer um "login shell" na serial. Após mudar a configuração, reinicie o Raspberry Pi.

Programando o Raspberry Pi

Existem inúmeras formas de programar o Raspberry Pi (afinal, é um computador rodando Linux). Ainda mais que neste caso o nosso acesso ao hardware se limita a comunicação serial. Como é meu costume, decidi programar em C.

A serial é acessada com as funções de e/s de baixo nível: open, write, close. Ela corresponde ao dispositivo /dev/ttyAMA0. A configuração é um pouco mais complicada, para isto existe a biblioteca termios com a função tcsetattr. E copiei este trecho de um projeto anterior, é provável que esteja configurando coisas desnecessárias neste caso.

Uma outra complicação foi detectar a digitação de uma tecla no console para encerrar o programa. Para isto usei uma rotina que achei na internet. Do jeito que está feito não está perfeito pois (a) não interrompe durante as pausas e (b) como não desliguei o buffer do teclado precisa digitar Enter. Mas quebra o galho para este teste.

Falando em pausas, usei a função sleep que é eficiente mas tem resolução de segundos. Para o software definitivo vou usar uma resolução melhor.

O código pode ser visto diretamente no github.

Para compilar no linux, basta usar o comando "cc tstDM.c". O executável vai ficar com o nome padrão de a.out; para executar você precisa informar o path: "./a.out". Grosseiro, mas suficiente.

Agora que o básico está funcionando é hora de arregaçar as mangas e fazer o programa que lê um arquivo MIDI e enviar os comandos adequados para a placa de controle. Vai demorar algum tempo, mas quando funcionar eu mostro aqui no blog.

Nenhum comentário: