Índice:

Vamos construir um SN76489 USB MIDI Synth com Arduino Nano: 7 etapas
Vamos construir um SN76489 USB MIDI Synth com Arduino Nano: 7 etapas

Vídeo: Vamos construir um SN76489 USB MIDI Synth com Arduino Nano: 7 etapas

Vídeo: Vamos construir um SN76489 USB MIDI Synth com Arduino Nano: 7 etapas
Vídeo: Live Soldering: Tandy SN76489 Sound Card 2024, Julho
Anonim
Image
Image
Vamos construir um SN76489 USB MIDI Synth com Arduino Nano
Vamos construir um SN76489 USB MIDI Synth com Arduino Nano
Vamos construir um SN76489 USB MIDI Synth com Arduino Nano
Vamos construir um SN76489 USB MIDI Synth com Arduino Nano

Sempre quis construir seu próprio sintetizador baseado em músicas antigas dos anos 80? Tocar melodias polifônicas simples que soam exatamente como esses antigos videogames Sega Master System e Megadrive soavam?

Eu comprei, então, encomendei alguns chips SN76489 do ebay e uma interface de host midi e tentei. Bem, não foi um passeio no parque para mim, mas, aproveitei cada momento.

Primeiro, aprendi como fazer a interface direta do SN76489 e fazer algum barulho com ele. Havia alguns elementos confusos nisso, mas, com a ajuda do The Oddbloke Geek Blog e alguns outros exemplos, junto com o documento de especificação do chip, fui capaz de desenvolver uma biblioteca arduino simples.

Em seguida, eu tive que aprender como fazer a interface de um teclado midi com um mini-host shield USB. Isso não foi tão difícil, pois há alguma documentação disponível e existem boas bibliotecas com exemplos claros.

Depois que eu entendi como controlar o chip e como fazer a interface com meu teclado USB midi, a única coisa que me restou fazer foi escrever um código que juntaria tudo isso e me permitiria usar o teclado para controlar o chip.

Ao longo do caminho, aprendi que sons com frequência menor do que aqueles que tentei gerar para notas midi 0x2f não soavam bem, então, decidi usar isso para permitir o envio de ruído para o gerador de ruído para quaisquer notas midi entre 0x28 e 0x2f e também permite tocar notas com um toque oriental árabe para qualquer coisa abaixo de midi 0x28.

Olhando para trás, foi muito divertido e interessante de construir.

Espero que você o ache tão divertido e interessante quanto eu e que, se você mesmo construir um, faça a gentileza de compartilhar algumas fotos.

Se você gostou deste projeto, vote nele abaixo para ajudar a ganhar o concurso do qual ele participa

Suprimentos

Eu adicionei links para materiais que você pode comprar para este projeto, no entanto, você pode encontrar muitos itens disponíveis que podem ser extraídos de aparelhos eletrônicos antigos.

Esses links são links de afiliados, portanto, se você comprar depois de clicar neles, recebo uma pequena parte (não uma fortuna) e você obtém um produto certo para este projeto. Não há nenhuma taxa ou custo extra para usá-los, no entanto, você pode encontrar quaisquer itens semelhantes que podem substituí-los facilmente.

ebay.us/svA4z4 | 1 x placa de desempenho

ebay.us/ZyEFNp | 1 x arduino nano

ebay.us/t1zy0v | 1 x mini escudo USB

ebay.to/2QrHl1C | 1 x chip de som SN76489

ebay.us/aaaj8p | 1 x registrador de deslocamento 595

ebay.us/DSvTHO | 1 x oscilador de cristal de 4 MHz

ebay.us/XQeM0Q | 1 x regulador de tensão 5V 7805

ebay.us/6R6Fpf | 1 x dissipador de calor para o regulador de tensão

ebay.us/xkLbn4 | 3 x capacitores de 10uF

ebay.us/pnm2BH | fios

ebay.us/PMbUfY | 1 x LED vermelho para alimentação

ebay.us/zokHtc | 1 x resistor de 220 ohms para limitar o fluxo de corrente do LED

ebay.us/qjbesJ | 1 x conector de alimentação para fonte de alimentação 12v

ebay.us/cS0wwv | 1 x botão liga / desliga

uma caixa adequada (eu construí a minha com uma velha gaveta que estava guardada em meu armazenamento por anos)

Etapa 1: Preparando o Mini Host Shield USB para acionar um dispositivo Midi 5V

Preparando o Mini Host Shield USB para acionar um dispositivo Midi 5V
Preparando o Mini Host Shield USB para acionar um dispositivo Midi 5V

Como a blindagem do mini host USB opera em 3,3 V e os teclados midi USB que uso requerem 5 V, é necessário ajustar a tensão de saída da blindagem cortando a linha de 3,3 V que vai para a saída USB Vcc, para que possamos conectá-la posteriormente a 5V.

Existem muitos tutoriais sobre como fazer isso e acabou sendo bastante simples:

Basta cortar a linha entre o resistor 2k2 e a linha Vcc (veja a imagem anexa). Usei uma chave de fenda para riscar essa linha e testei se funcionava com um medidor de continuidade.

Etapa 2: conecte o mini escudo USB ao seu Arduino Nano

Conecte o Mini Shield USB ao seu Arduino Nano
Conecte o Mini Shield USB ao seu Arduino Nano
Conecte o Mini Shield USB com seu Arduino Nano
Conecte o Mini Shield USB com seu Arduino Nano

Felizmente, há muitas informações sobre como fazer isso, então, pesquisando por "Arduino Nano e mini USB host shield", acessei este tópico

Ele descreveu como conectar a blindagem USB mini v2.0 e depois de segui-lo fui direto testar alguns exemplos de midi USB.

Fiação:

Escudo Arduino Host

10--------------5

11--------------6

12--------------7

13--------------8

2----------------2

5V -------------- 1

3,3 V ------------ 9

GND ----------- 3

RST ------------ 4

Neste tópico, também foi mencionado que eles cortaram o cabo de 3,3 V para que o USB pudesse obter 5 V de VBUS.

Esta descrição e as imagens incluídas vieram deste tópico.

Aliás, há um erro na impressão desta placa, então isso foi um pouco confuso, no entanto, você pode ver meu feedback sobre isso (tyrkelko) e onde eu aprendi.

Etapa 3: Chips Anyone? Adicionando SN76489 com Osc de 4MHz. e 595 Shift Register

Chips Anyone? Adicionando SN76489 com Osc de 4MHz. e 595 Shift Register
Chips Anyone? Adicionando SN76489 com Osc de 4MHz. e 595 Shift Register

Agora era hora de adicionar o chip que faz esse som incrível.

Já desenvolvi uma biblioteca para fazer a interface do arduino com este chip e só tive que seguir minhas instruções.

A biblioteca é lançada no github sob GPLv3 (meu primeiro lançamento de código aberto).

github.com/tyrkelko/sn76489

A conexão de 76489 e 595 foi como na imagem incluída, que é capturada do arquivo readme.txt da biblioteca

O Write Enable on Low (NotWE) de 76489 foi conectado com o pino 3 do nano e pode ser alterado no código.

# define PIN_NotWE 3

O 595 foi conectado ao nano da seguinte maneira e também pode ser ajustado editando os números dos pinos:

#define PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

O oscilador que usei era um oscilador de cristal de 4 MHz com 4 pernas.

Ele foi configurado no código da seguinte forma e você pode ajustar seu valor para qualquer frequência do oscilador entre 500kHz e 4MHz:

#define FREQUENCY 4000000.0

Conectar o oscilador que usei foi o seguinte:

pino 1 - não conectado

pino 7 - terra

pino 8 - conectado a 76489 pino 14 - relógio osc

Etapa 4: Basta adicionar o código - adicionando as bibliotecas, compilando e enviando o código

As bibliotecas usadas neste projeto precisam ser adicionadas ao Arduino IDE da seguinte forma:

Abra o IDE do Arduino

Baixe as seguintes bibliotecas na pasta de bibliotecas do seu IDE (espero vê-las no menu "Gerenciar bibliotecas …" no menu "Ferramentas" do IDE em breve):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Use o código do seguinte projeto github:

github.com/tyrkelko/usb_midi_tone

Baixe usb_midi_tone.ino, compile e envie para o seu Arduino nano.

Etapa 5: conecte um amplificador e alto-falante, conecte seu teclado USB Midi e teste

Agora é hora de testar se tudo funciona.

Para fazer isso, precisamos:

1. Um amplificador e alto-falante

2. Um teclado midi USB

Conecte SN76489 pino 7, saída de áudio, à entrada de áudio do amplificador.

Ligue o amplificador e, em seguida, ligue o arduino nano. Agora você deve ouvir o som de teste de inicialização por uma fração de segundo.

Conecte o teclado USB midi e teste.

Se tudo funcionar corretamente, você deve ser capaz de tocar 3 tons simultaneamente, e também tocar 8 tipos de ruído e até mesmo um quarto de tom de 24 EDO-Scale.

Se não funcionar, repasse as etapas para ver o que pode ter dado errado.

Se você achar que isso resulta de instruções pouco claras, envie-me uma nota para que eu atualize as instruções para corrigi-lo.

Etapa 6: complete o circuito com um regulador de tensão de 5 V, conector de 12 V, botão liga / desliga e LED de energia

Nesta etapa, você deve ser capaz de encerrar o circuito após testá-lo para que esteja funcionando corretamente.

1. Adicione um regulador de potência com LM7805 e dois capacitores de 10uF e 0,1uF. Existem muitos tutoriais sobre isso, você pode usar o seguinte instrutível para fazer isso -

2. Adicione um conector de alimentação de 12 V com o Vcc passando por um botão liga / desliga

3. Adicione um LED com um resistor de limitação de corrente para indicar quando a alimentação está ligada.

Etapa 7: coloque em uma caixa, pinte e aproveite seu novo sintetizador

Uma vez que o circuito é testado e funciona ao seu gosto, não há muito o que fazer, exceto construir um belo gabinete, pinte-o com cores incríveis e toque um pouco de música.

Espero que você tenha gostado de ler este instrutível e que tenha inspirado você a construir seu próprio sintetizador ou prosseguir com outro projeto em que está trabalhando.

Por favor, comente abaixo com qualquer dúvida e se você construiu algo semelhante com base neste tutorial, seria ótimo se você compartilhasse o que você fez na seção "Eu fiz isso!" área ou na seção de feedback.

Recomendado: