sábado, 3 de setembro de 2011

Projeto: Harpa Laser

O Matheus Graciano está trabalhando numa harpa laser. O funcionamento é muito simples, um laser é apontado diretamente para um LDR (resistor dependente de luz) e fica-se monitorando o sinal vindo do LDR na porta analógica. Quando o laser é interrompido, o valor lido na porta analógica muda e então sabemos que nota deve ser tocada. Abaixo segue o vídeo da primeira versão da harpa, em breve faremos uma versão melhorada.




Nesta primeira versão da harpa usamos:

  • 7 Lasers vermelho;
  • 7 LDRs;
  • 8 Resistores de 100 Ohms;
  • 1 Botão push;
  • Fios, muitos fios;
  • Algumas peças da Atto.

Esta harpa é composta por 7 "cordas" que devem ser ligadas a 7 portas analógicas. Portanto, tivemos que usar o arduino Mega que tem 16 portas analógicas. Na figura abaixo eu mostro o esquema de como ligar o LDR, o botão e o Buzzer.

Neste projeto, as portas utilizadas são diferentes da imagem acima. Portanto, se for fazer a sua harpa, verifique quais portas você utilizou. No vídeo acima, não utilizamos um buzzer e sim os auto-falantes do micro. Se quiser fazer o mesmo, basta trocar o buzzer do diagrama acima por um plug fêmea de fone de ouvido. Abaixo segue o código Arduino que foi utilizado:



////////////////////////////////////////////
// Harpa Laser
// Por Matheus Graciano
////////////////////////////////////////////

// Vetores com notas musicais
// A primeira posição é a nota normal
// A segunda é a nota sustenida
float notaA[] = {440.000, 466.164};
float notaB[] = {493.883, 523.251};
float notaC[] = {523.251, 554.365};
float notaD[] = {587.329, 622.254};
float notaE[] = {659.255, 698.456};
float notaF[] = {698.456, 739.989};
float notaG[] = {783.991, 830.609};

// Algumas variáveis
float notaAnterior = 0, notaNova = 0;
int dt = 0, t0, acidente = 0;

void setup(){
pinMode(21, INPUT); //Porta onde está ligado o botao sustenido
pinMode(7, OUTPUT); //Porta do Buzzer
}

void loop(){

//Verifica se o botao está apertado
acidente = digitalRead(21);
// Varre as portas analógicas de 0 a 7 e verifica a nova nota
if(analogRead(0)< 120) {
notaAnterior = notaC[acidente]/4;
}
if(analogRead(1)< 120) {
notaAnterior = notaD[acidente]/4;
}
if(analogRead(2)< 70) {
notaAnterior = notaE[acidente]/4;
}
if(analogRead(3)< 70) {
notaAnterior = notaF[acidente]/4;
}
if(analogRead(4)< 70) {
notaAnterior = notaG[acidente]/4;
}
if(analogRead(5)< 120) {
notaAnterior = notaA[acidente]/2;
}
if(analogRead(7)< 120) {
notaAnterior = notaB[acidente]/2;
}
//Se a nota mudar, ele para e envia a nova nota
if(notaAnterior != notaNova){
noTone(7); notaNova = notaAnterior; t0 = millis(); }
// A nota final dura 1 segundo
if(dt>1000)
{
noTone(7);
}
else{
tone(7, notaNova, 1000);
}
dt = millis()-t0;
}

Em breve postaremos a nova versão da harpa. Antes de finalizar este post, agradecemos a Atto Brinquedos (www.attobrinquedos.com.br) por nos ter doado um conjunto de peças. As peças combinam muito bem com arduino, tem auxiliado bastante nos projetos que estamos realizando.

10 comentários:

  1. Onde vocês compraram esses modulos de laser?
    Quanto $$ mais ou menos ficou o projeto?
    Grato

    ResponderExcluir
  2. Os Lasers foram comprados no dealextreme, US$1.5 cada. Os LDRs foram comprados em uma eletrônica comum, R$1.00 cada.
    O total ficou:
    8 Lasers - R$23,00
    8 LDR - R$8,00
    8 Resistores - R$1,00
    3 Botões push - R$3,00
    1 arduino mega - R$80,00

    Total - R$115,00

    ResponderExcluir
  3. Este comentário foi removido pelo autor.

    ResponderExcluir
  4. ola poderia passar seu e-mail pra mim estou com um projeto e gostaria de ajuda por favor....grato antecipadamente....adrianoviepie@hotmail.com

    ResponderExcluir
  5. alias parabens .....compartilharei minhas ideias como vcs ...grato retornei apenas para agradecer....grato

    ResponderExcluir
  6. Gostaria que me enviasse o esquema de montagem, obrigado.

    Contato@swyx.com.br

    ResponderExcluir
  7. Gosto de acenar vou comandar todo o esquema, e tentou fazer um com 4 LDR, a variação até agora só eu marcar um dos LDR saudações GonzaloSolis07@gmail.com

    ResponderExcluir
  8. Olá, gostaria de receber o esquema de montagem também, muito obrigado.

    Contato: fernandofaria_2005@hotmail.com

    ResponderExcluir
  9. Pessoal, o esquema para um laser e um ldr estão acima, agora é só multiplicar para quantas "cordas" quiserem. O código do arduino também está alí.

    ResponderExcluir