titulo

MUSICAUDIO.NET - NOVIDADES

segunda-feira, 20 de fevereiro de 2012

A plataforma Synth Core B


Synth Core B
Já dei informação sobre a placa de desenvolvimento de synths e controladores em que venho trabalhando já a algum tempo: a Synth Core B (www.tolaemon.com/scoreb). Passei os últimos meses ajustando alguns detralhes do firmware, terminando a web, e decidindo alguns detalhes da licença. Bom, agora posso dizer que o projeto já pode ser mostrado ao público. Tudo está ainda um pouco verde e tenho que fazer ainda muita coisa, mas já existe informação e recursos suficientes para começar a fazer as coisas com ela.
A plataforma Synth Core B é um conjunto hardware-software que oferece os recursos básicos necessários para criar sintetizadores ou controladores, e inicialmente, está voltada para desenvolvedores  com conhecimentos de programação em C y com noções básicas de eletrônica. O objetivo é proporcionar a estes a base necessária para que possam ter um início na implementação das funcionalidades de mais alto nível e evitar a tediosa tarefa de desenvolver a eletrônica principal, os drivers e APIs para controlá-la. Digo "inicialmente" porque, a meio prazo, eu gostaria de incorporar algum intérprete de linguagem de alto nível (tipo BASIC) para que os menos iniciados em programação também possam brincar um pouqunho.

Sendo assim a placa possui os seguintes elementos de hardware e software:
  • Microcontrolador Atmel AVR32 AT32UC3A-512 de 32-bit com prestações DSP e orientado para áudio, com 512KBs de memória de programa e 64KBs de SRAM interna.
  • 32MBs de RAM externa (SDRAM de 32MBs) para guardar samples ou outra informação.
  • Porta USB-Serie (baseada em FT232RL FTDI)
  • Porta USB Host-Device
  • Interface MIDI (MIDI IN, MIDI OUT, e MIDI THRU)
  • 2 slots SD, um na placa e outro externo.
  • Interface para controle do LCD
  • 7 conversores ADCs para potenciômetros ou outras medidas
  • 40 linhas de E/S (com USART, SPI ...) para poder expandir a placa  e controlar outros periféricos ou processadores.
  • Canal serial RS-232 para depurar ou comunicar com outros dispositivos.
  • Preamplificador de saída para o conversor DAC de áudio da placa.
  • Bibliotecas e drivers (Synth Core Libs) em linguagem C para controlar e utilizar de forma rápida e simples os elementos da placa.
As fotos mostram em que consiste a placa. em algumas aparece sozinha em outras dentro da caixa de um velho polímetro que utilizo como chassis improvisado, e que exemplificam o modo em que a plataforma pode ser utilizada para implementar diferentes sintetizadores , controladores etc.
Synth Core B
Synth Core B
Synth Core B
A ideia de construir algo assim surgiu quando me dei conta de que uma parte muito importante do tempo investido no desenvolvimento de cada um de meus instrumentos era dedicada à eletrônica básica, os drivers etc. e esta parte era muito similar em todos os projetos. Por isso pensei que para diminuir o tempo de desenvolvimento de cada projeto seria uma boa ideia dispor de uma plataforma básica e genérica com tudo o que é necessário e reutilizá-la nos diferentes equipamentos que for construindo daí pra frente. Devia encontrar um equilíbrio entre variáveis como preço, prestações e complexidade. Fiz uma primeira tentativa com a Synth Core A (www.tolaemon.com/scorea) mas a placa era mais complexa  e mais cara do que eu queria, sendo assim realizei esta segunda revisão eliminando componentes e otimizando algumas partes do hardware.
Investi muitas horas no projeto, e não quero que esse investimento fique guardado dentro de uma gaveta. Por isso decidi compartilhar na Internet todo o trabalho feito até agora. Toda a informação do projeto (os esquemas, gerbers e código fonte) está disponível na web e qualquer um pode consultar e baixar e usá-la ao seu modo sempre que aceite as condições da licença. Na realidade o conceito da licença é muito simples: qualquer um é livre para utilizar qualquer informação ali contida (código, esquemas) ou vender seus projetos baseados nestes sem ter que me pedir ou comprar nenhuma permissão. A única condição é indicar em determinados pontos de seu synth ou controlador (painel frontal, manual, web, PCB...) que foi baseado na Synth Core B e em sua bibliotecas Synth Core Libs.
Dispor de toda a informação do projeto na Internet está bem, mas isso pode ser um pouco complexo, e entendo que o ideal para um desenvolvedor é poder adquirir as placas já feitas e não ter que se preocupar em carregar PCBs, fazer pedidos de componentes e passar horas soldando e corrigindo erros de hardware. Por isso, ainda que eu não tenha muito tempo, a um prazo médio gostaria de apresentar algumas placas já montadas para aqueles que estiverem interessados em desenvolver sobre ela mas não queiram perder tempo com soldas. Porém, antes tenho que solucionar alguns problemas logísticos e uma falha no conversor DAC, já que tal como o tenho configurado agora, possui uma relação S/N muito baixa e não cumpre os requisitos que eu quero.
Como falei no início, outra coisa que tenho em mente para fazer o sistema acessível à pessoas com poucos conhecimentos em programação é permitir que se possa programar em BASIC ou outra linguagem similar de alto nível simples. Para que isso seja factível deveria portar algum intérprete desta linguagem à plataforma Synth Core B. a ideia seria que os usuários possam programar suas aplicações no PC usando BASIC para logo depois carregá-las na placa mediante SD ou remotamente através da conexão USB. Deste modo os usuários com poucos conhecimentos técnicos também poderiam desenvolver e desenhar seus controladores sob medida (claro está, com as limitações que uma linguagem interpretada oferece).
Finalmente, como você pode ver, tenho algumas ideias na cabeça e ainda que não pareça, tenho pouco tempo. 
Synth Core B
Synth Core B

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.