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!