sexta-feira, 15 de janeiro de 2010

arDRUMino

Lá vai o meu primeiro post...
A pouco tempo comecei a mexer com um brinquedo novo (que eu me dei), um Arduino.

Mas o que é essa bagaça?
É uma placa com um microcontrolador, onde eu posso criar programas que podem interagir com os mais diversos dispositivos, através de portas de entrada e saída. Posso ligar todo tipo de sensor, motores, leds, GPS, e todo tipo de dispositivo eletrônico.

Nela eu vi a possibilidade de mexer com uma coisa que sempre tive vontade, que é ELETRÔNICA, mas nunca encontrei o "gancho" certo. Esse cara tá me possibilitando aprender eletrônica de uma maneira mais fácil para mim, que sou desenvolvedor, através de uma coisa que estou habituado e que gosto, apesar de esbarrar todo dia com ela, que é programação.

Mas vamos ao que interessa... AÇÃO!
Num dias desses resolvi montar uma "bateria eletrônica" usando meu Arduino. Assim arrumei um jeito de dar uma estudada também no Processing, que é uma linguagem de programação voltada pra programação de imagens, animações e todo tipo de interação, e se encaixa como uma luva para o Arduino conversar com o seu PC.

Disso nasceu o: arDRUMino


Como funciona?
São dois elementos piezoelétricos, cada um conectado a um resistor de 1M, e ligados cada um a uma porta analógica do Arduíno.

Quando os piezos recebem alguma pancada, o Arduino interpreta a variação de leitura e envia, via porta serial, qual piezo sofreu a pancada e a "intensidade" da batida.

O Processing, que está rodando em paralelo e escutando a porta serial, recebe a mensagem e através da utilização biblioteca SoundCipher (ela não vem por padrão com o Processing, mas é muito legal e simples de usar!) reproduz um som específico para cada elemento utilizando a interface MIDI do PC, inclusive com a variação de altura do som de acordo com a intensidade informada.

Ambas as aplicações (Arduino e Processing) já estão preparadas para utilizar até as 6 portas analógicas do Arduíno, bastando ajustar no código da aplicação Arduino quantas e quais portas estão sendo utilizadas.

Código Arduíno: arDRUMino.pde
Código Processing: arDRUMino_p.pde

Todos os detalhes e controles de leitura que tive que fazer estão comentados nos códigos.

Abaixo estão algumas imagens e o esquema da brincadeira:




Abraço!