Como o autor da TV-B-Gone criou o sintetizador de música ArduTouch

Instrumento de treinamento para processamento de sinal digital compatível com Arduino




Um artigo de Mitch Altman, o inventor que inventou o controle remoto universal para desligar as televisões B-Gone Gone e o organizador de conferências de hackers

Quando criança, fui atraído pela música e fiquei impressionado com os sons do sintetizador Moog do álbum de 1968 Switched-On Bach . Eu precisava aprender como fazer esses sons! Assim começou o treinamento e a fabricação de sintetizadores ao longo da vida, paralelos à minha entrada no setor de tecnologia , onde acabei criando o TV-B-Gone , um dispositivo que permite desligar quase todas as TVs com controle remoto. Desde que ganhei popularidade na TV-B-Gone, fiz muitos kits para divertir dispositivos externos que apresento em todo o mundo em conferências DIY . Neles, os iniciantes aprendem a soldar, a caminho do mundo da eletrônica e dos microcontroladores. Lembrando da minha juventude, eu queria fornecer a eles um conjunto, fácil de montar e usar, mas ao mesmo tempo ser um sintetizador musical completo.

Foi assim que surgiu o ArduTouch, no valor de US $ 30. Este projeto inclui uma placa, teclado sensível ao toque, ATMega328P (o mesmo processador usado no Arduino Uno) e um amplificador de áudio com um alto-falante. Ele também possui uma biblioteca de software que pode servir como um ponto de entrada no mundo do processamento de sinal digital.

A maior dificuldade no desenvolvimento da placa foi o número limitado de pinos de E / S no ATMega328P. Usei 12 pinos para o teclado para realizar toda a escala cromática da música como um todo. O teclado é semelhante ao Stylophone - um dos meus sintetizadores analógicos favoritos do final da década de 1960 - e usa um sensor capacitivo para reconhecimento. Mais dois pinos são usados ​​para saída de som estéreo e os outros dois são para transferência serial de dados (o ArduTouch pode ser programado usando ferramentas de desenvolvimento padrão para o Arduino, embora seja necessário cabo FTDI para conectar-se a um computador). Os contatos restantes foram suficientes para dois botões e dois potenciômetros controlando o sintetizador.

Para que uma pessoa possa obter imediatamente resultados audíveis após a solda, coloquei o chip e o alto-falante do amplificador LM386 na placa (o amplificador ignora ao conectar uma tomada de áudio). Os chips DAC são caros, então usei a modulação por largura de pulso para codificar os canais de áudio estéreo que saem do ATMega328P. Os filtros passa-baixo para cada canal, consistindo em um resistor e um capacitor, convertem PWM em áudio.

Engenheiros eletrônicos experientes entenderão que o circuito ArduTouch é simples. A base do projeto é uma sofisticada biblioteca de software de síntese de áudio usada para programar o ATMega328P.

É bem simples fazer o microcontrolador emitir as notas mais simples. Simplesmente conecte o alto-falante aos contatos e alterne entre ligar e desligar, enviando uma onda quadrada em diferentes frequências (essa tecnologia foi usada pelo próprio Alan Turing no computador Manchester Mark II ). Mas o resultado é um som nítido, longe da rica paleta do sintetizador Moog.

Para melhorar o som, eu precisava recorrer a sintetizadores digitais. Eles estão envolvidos na criação de representações binárias de ondas de áudio, na distorção e na conversão desses números em sinais analógicos. Isso pode ser feito de várias maneiras diferentes, e tenho o prazer de observar que o ArduTouch suporta várias técnicas diferentes, incluindo o uso de tabelas de ondas (usando amostras armazenadas na memória) e gerando sons (contando áudio em tempo real).

Depois de criar as representações binárias básicas do som, passamos ao estágio crítico de sua “distorção”. Se você não toca com o som, geralmente ele é fino e estéril. Sons legais são obtidos após manipulação dinâmica. O ArduTouch é capaz de aplicar muitas funções e efeitos dinâmicos digitais, incluindo tremolo, vibrato, portamento, bem como filtros de baixa e alta frequência.




O ArduTouch usa relativamente poucos componentes


Até os iniciantes podem colecioná-lo

E embora conceitualmente todas as opções acima não sejam algo difícil de aprender e entender, a programação em si é bastante complicada. A biblioteca ArduTouch, criada por mim junto com meu amigo Bill Alessi, realiza todos os cálculos de baixo nível - e levamos dois anos para criá-lo.

A biblioteca foi projetada para ser flexível e permitir que usuários inexperientes criem novos sintetizadores que produzam sons diferentes. O sintetizador Grosso que combina quatro ondas de dente de serra vem com o kit, e outros sintetizadores podem ser baixados separadamente . Usuários experientes podem aprender a criar sintetizadores do zero, invocando funções de alto nível. Espero que as pessoas que gostem do projeto criem novos sintetizadores e compartilhem seu código comigo, para que eu possa compartilhá-lo com outras pessoas.

Mas, mesmo ao usar o sintetizador padrão, o som é inesperadamente bom para um microcontrolador de baixa potência (suportando uma frequência de amostragem de apenas 15 kHz) e equipamentos baratos. Você pode ouvir muitas demos no meu canal do YouTube .

Para desenvolver o projeto no futuro, continuarei aprimorando a biblioteca do ArduTouch para Arduino e disponibilizando sintetizadores adicionais já prontos. Também estou trabalhando na criação de uma versão mais poderosa do ArduTouch, adequada para performances. Não será mais um kit, mas continuará sendo compatível com o Arduino. Ele terá um microcontrolador de 32 bits com muitos pinos de E / S, um DAC, um monte de memória (que permite MIDI ), uma pequena tela LCD, vários botões e potenciômetros e indicadores LED - e, é claro, som aprimorado.

Source: https://habr.com/ru/post/pt433212/


All Articles