Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Tive a sorte de conseguir uma bateria X-box usada, ela tem um formato um pouco áspero e não tem remo, mas nada que não possa ser consertado. Transformei-a em uma bateria elétrica independente. Ler o valor analógico do sensor piezoelétrico e transformá-lo em comandos MIDI.
O hardware atual consiste em RPI-Zero, mcp3008, que é conectado aos sensores piezoelétricos originais na bateria definida.
Suprimentos
MCP3008 + kit de bateria x-box com soquete IC ou 5 piezo montado em alguma superfície. placa de som rpi zerousb para alto-falantes amplificados rpisimple alguns fios e pcb.6 resistores ohm de 10M e alguns conectores macho para a placa do conector piez
Etapa 1: Prepare o sensor piezoelétrico
Primeiro peguei uma peça e encontrei todos os sensores piezoelétricos, fiação, e criei uma placa com um resistor de 1M entre os 2 fios de cada piezo.
O prato tinha um circuito extra interessante. Peguei uma parte deixando apenas o sensor. Eu quero um dia descobrir qual é a saída desse circuito, Esta parte do teste e do trabalho foi feita no arduino uno.
Etapa 2: Escreva Algum Código
Consertei um pouco o x-box, consertando todas as peças quebradas. Removido as almofadas desmoronando.
E finalmente consegui um código que funciona bem o suficiente para meu filho - ainda não perfeito.
O código original que eu queria usar e o que me ajudou a descobrir o meu é estehttps://github.com/evankale/ArduinoMidiDrums
mas ao trabalhar nisso, descobri que ele para a nota midi logo após enviá-la. o que é bom se você jogar um jogo no computador, que é para o que esse código se destina, mas não tão bom quando você realmente quer tocar a nota midi.
Você pode baixar o código no arquivo anexado - observe que há 4.
Eu também adicionei um recurso muito legal que permite que você escolha a nota para cada teclado, ele ainda salva as configurações na EEPROM.
e os 3 softwares que menciono no vídeo são loopbe1, ponte serial midi sem cabelo e VMPK
O próximo grande passo é movê-lo para trabalhar em um pi de framboesa.
Etapa 3: faça funcionar em um Raspberry Pi
Depois de quase desistir do projeto, perguntei novamente em alguns lugares e fui direcionado para um artigo que me colocou no caminho certo que é o fluidsynth.
Passei várias horas boas para fazê-lo funcionar e finalmente consegui. O principal problema era fazer o midi funcionar no Rpi. Para isso, instalei o fluidsynth usando este ótimo tutorial
sandsoftwaresound.net/qsynth-fluidsynth-ras…
Eu configurei o Arduino para enviar comandos seriais, e então os escuto com python serial no raspberry e envio para midi através do fluidsynth.
Eu até consegui baixar um arquivo sf2 adequado para bateria.
Como você pode ver, Kesem adora. O arduino estava usando o mesmo código e para o rpi eu escrevo o código em anexo, não consegui anexar os arquivos sf2 - mas eles podem ser facilmente encontrados usando o google.
Etapa 4: faça com que seja independente
O maior passo para fazê-lo funcionar sozinho foi remover o arduino e tentar fazê-lo funcionar um pouco mais rápido. havia lacunas perceptíveis entre o "hit" e o som tocado no midi. Então, para me livrar do arduino, eu precisava de uma alternativa analógica e aqui é onde o mcp3008 veio ao resgate. você pode ver nas imagens que criei um break out board para ele, e no vídeo você encontra todos os detalhes das etapas. O mcp3008 usa spi para se comunicar e eu conectei os 2 e executei alguns testes, a adafruit tem uma ótima biblioteca para o mcp3008 para python. novamente as instruções no vídeo. Usei uma rpi zero devido ao seu tamanho e adicionei uma placa de som USB externa, para a saída de som. Usei um alto-falante simples com amplificador embutido para reproduzir o som. O código atual também está anexado e é executado na própria rpi e em seu conjunto como um serviço, de modo que pode ser executado quando carregado. Um recurso muito legal que adicionei foi conectar o pequeno botão de reset que estava na caixa e usá-lo para desligar o sistema, já que estou executando sem tela. O código atual ainda não é perfeito e continuo tentando melhorá-lo e estou ficando cada vez melhor, então se você tiver ideias de como fazê-lo funcionar ainda melhor quando se trata de midi - eu adoraria ouvir.