LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: tcustodio em 24 de Julho de 2009, 04:30

Título: Arduino Drumkit
Enviado por: tcustodio em 24 de Julho de 2009, 04:30
bem, projectos musicais são a minha perdição, e à dias desafiei-me a concretizar este:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm4.static.flickr.com%2F3542%2F3529526437_b10ed8ee75.jpg&hash=17f2ae9d8dd1c1bc6233d1bb1fd487eda2acaf8f)
http://www.spikenzielabs.com/SpikenzieLabs/DrumKitKit.html

para quem não o conhece, é um minishield que se acopla directamente nos conversores analógico-digital e já trás os zenners e resistências necessários para usar 6 elementos piezoeléctricos (como aconselham os tutoriais :D)

passei uma tarde a tentar engendrar como pôr este mesmo circuito, em dimensões também reduzidas, numa pcb de pistas. O problema é que na versão da Spikenzie Labs, todas as ligações de ground estão nas costas da placa, a frente é só para os piezos.

Aqui está a minha versão:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_syOeVpY8Tgk%2FSmkmcHpN2EI%2FAAAAAAAAAcI%2Fa4xb6w11RkQ%2Fs640%2F24072009319.jpg&hash=00fe0cbe6b05b68686671bcfc059397e6dd631ee)
http://picasaweb.google.pt/tiagocustodio1/TroniquicesAlgoMais#
(no álbum há mais fotos ;))

deixo aqui o código que desenvolvi para o arduino fazer a leitura dos 6 piezos e comunicar os resultados por midi:
Código: [Seleccione]
short nota[6] = {32, 34, 36, 37, 39, 41};
short valor[6] = {0, 0, 0, 0, 0, 0};
long tempo[6] = {0, 0, 0, 0, 0, 0};

short canal_bateria = 9;
short threshold = 10;
short debounce = 75;
short offset = 20;
short pratos = 4;

short i = 0;

void setup() {
  Serial.begin(31250);
}

void loop() {
    valor[i] = (analogRead(i)/8);
    if ((valor[i] > threshold) && (millis() - tempo[i] >= debounce)){
      noteOff(canal_bateria, nota[i]);
      noteOn(canal_bateria, nota[i], valor[i] + offset);
      tempo[i] = millis();
    }
  i++;
  if (i == pratos) i = 0;
}

void noteOn(byte channel, byte note, byte velocity) {
  midiMsg(channel+0x90, note, velocity);
}

void midiMsg(byte cmd, byte data1, byte data2) {
  Serial.print(cmd, BYTE);
  Serial.print(data1, BYTE);
  Serial.print(data2, BYTE);
}

E o vídeo da coisa em funcionamento:

http://www.youtube.com/watch?v=chEg6mAfaNA

Bem, do que precisei para fazer isto tudo?

para os pratos, usei:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_syOeVpY8Tgk%2FSmkDTfSTpsI%2FAAAAAAAAAbY%2FiNOM_owlxK4%2Fs400%2F24072009313.jpg&hash=8b5555a32499ef71f6f5f1ed7d5c11432474d3e5) (http://picasaweb.google.pt/lh/photo/LRDYbe6eSwOHAaZgn3yV3A?feat=embedwebsite)

Aqui está um esquema melhor que o anterior, acho que é mais fácil de perceber ;)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg148.imageshack.us%2Fimg148%2F4007%2F89888221.png&hash=cbc1994001500c65bdfeed095e318cda27986436)
Atenção que é suposto usar díodos zenner em vez dos que estão no esquema..
Título: Re:Arduino Drumkit
Enviado por: ricardo-reis em 24 de Julho de 2009, 04:33
disse e repito.. ficou com um ar mt agradável.. ;)
Título: Re:Arduino Drumkit
Enviado por: microbyte em 24 de Julho de 2009, 08:53
Muito bem.
Isso envia comandos MIDI que podem ser usados por Software em tempo real? Tipo Ableton Live?
Título: Re:Arduino Drumkit
Enviado por: TigPT em 24 de Julho de 2009, 11:02
Muitos parabéns, está com óptimo aspecto! Quero um vídeo contigo a tocar umas músicas :)

Próximo passo, controlar guitar hero.
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 24 de Julho de 2009, 11:08
Isso envia comandos MIDI que podem ser usados por Software em tempo real? Tipo Ableton Live?

Sim, posso usar em tudo, por acaso é o que tou a pensar usar pró vídeo, com uns samples reais, ou então o software do Korg M1, dá menos trabalho a configurar, e é um sintetizador em condições :D

Próximo passo, controlar guitar hero.

Tipo isto?
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm4.static.flickr.com%2F3282%2F2497326775_6c54e9d971_m.jpg&hash=feef448d263df6c6f04eb1ec6aaf95c80fce0cc8)
http://slapyak.wordpress.com/guitar-hero-midi-controller/

Já tenho a mira alinhada ;)
Título: Re:Arduino Drumkit
Enviado por: TigPT em 24 de Julho de 2009, 11:11
Tens também aqui uma boa fonte de inspiração:
http://lusorobotica.com/index.php/topic,153.0.html
Título: Re:Arduino Drumkit
Enviado por: dio123 em 24 de Julho de 2009, 11:36
nao percebi uma coisa.

O que está por debaixo das resistencias?
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 24 de Julho de 2009, 11:40
nao percebi uma coisa.

O que está por debaixo das resistencias?

são os díodos zener, aqueles encapsulados em vidro, que estão ao lado das resistências no drumkit kit original
Título: Re:Arduino Drumkit
Enviado por: Fifas em 24 de Julho de 2009, 13:08
olha, pelos vistos não sou o único maluquinho por música por aqui :P

Já tinha visto um projecto idêntico e achei fabuloso ;)

Só tenho uma duvida, os fios que usaste são unifilares ou multifilares? parecem unifilares, e se forem, aconselho a mudar :P
Título: Re:Arduino Drumkit
Enviado por: msr em 24 de Julho de 2009, 13:31
Coincidencia do caraças, ainda ontem à noite estive a ver coisas na net sobre isto. Vou hoje comprar os piezos.
A minha ideia era mesmo ligar ao Ableton.

Não estou a par é das ligações dos piezos com as resistências e os zeners. Nao me conseguias arranjar um esquema disso? Valores recomendados para resistencias e zeners?

Em relação ao código, li um bocado na diagonal, nao percebi o porquê da utilização de um "offset". É para dar mais "boost" à cena?

Outra duvida que tenho é a seguinte: ao mandares comandos MIDI pela porta série, o Ableton vai logo reconhecer que existe um "controlador MIDI" ligado ao PC? Neste caso, o arduino ligado ao PC.
Título: Re:Arduino Drumkit
Enviado por: metRo_ em 24 de Julho de 2009, 14:03
Parece realmente muito bom mas um video e uma melhor explicação da construção dessa placa era bom :)
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 24 de Julho de 2009, 19:29
Só tenho uma duvida, os fios que usaste são unifilares ou multifilares? parecem unifilares, e se forem, aconselho a mudar :P
não tinha aqui multifilares, mas já arranjei uns metros de cabo de áudio, é só descarnar :D Faço um novo e ofereço este a quem o quiser :D
Não estou a par é das ligações dos piezos com as resistências e os zeners. Nao me conseguias arranjar um esquema disso? Valores recomendados para resistencias e zeners?
já ali meti um esquema das ligações. Eu aprendi as ligações a olhar para o drumkit kit original, penso que seja mais fácil ver pelo original!
Os zeners são de 5.1V, e as resistências são de 1Mohm, eu só tinha de 2.2Mohms, mas resulta na mesma.

PS: eu deixei ali um esquema que acabei às 6 da manhã, mas o TigPT alterou-me o post pra centrar as imagens, e deve ter apagado alguma letra por engano e o esquema deixou de aparecer, mas já corrigi ;) (TigPT, à terceira vez, invado Alenquer.) ~~
Em relação ao código, li um bocado na diagonal, nao percebi o porquê da utilização de um "offset". É para dar mais "boost" à cena?
sim, na prática é só para me poupar o trabalho de ter que bater fortemente nos pratos, é mesmo só um boost.
Outra duvida que tenho é a seguinte: ao mandares comandos MIDI pela porta série, o Ableton vai logo reconhecer que existe um "controlador MIDI" ligado ao PC? Neste caso, o arduino ligado ao PC.
Não, eu usei um software que já tinha encontrado no início destas andanças:
http://www.memeteam.net/2007/s2midi/
usas isso e usas também o midi yoke, ou outro que te crie ligações midi virtuais:
http://www.midiox.com/myoke.htm
Não recomendo o uso do "Serial MIDI" da Spikenzie Labs, pois dá muita latência na devolução dos dados (mas permite dados nos dois sentidos, do computador para o arduino, enquanto que o S2MIDI não permite)

Uma das minhas ambições era usar o V-USB para simular um dispositivo midi
http://www.obdev.at/products/vusb/index.html
Mas ainda não tenho experiência suficiente para isso (tenho que ir levlar ;D)
Parece realmente muito bom mas um video e uma melhor explicação da construção dessa placa era bom :)
Não tenho câmera em condições para isso, muito menos com capacidade para focar coisas de perto (tinha uma Sony analógica ligada à placa de tv, mas morreu :'( conseguia gravar a 800x600, tinha autofocus, era linda, espetacular... e era quase tão velha como eu ;D)
E tenho um péssimo hábito. Começo a fazer as coisas e largo tudo o resto, não páro pra fazer nada, portanto documentar as coisas é algo difícil para mim :-X (por acaso tenho fotos dos pratos por fazer porque lembrei-me de tirar uma foto pra mostrar ao pessoal ;D)
Título: Re:Arduino Drumkit
Enviado por: TigPT em 24 de Julho de 2009, 20:12
Desculpa :D
Título: Re:Arduino Drumkit
Enviado por: metRo_ em 24 de Julho de 2009, 20:41
De certeza que a imagem com as ligações foram corrigidas? é que eu vejo as mesmas imagens que antes.
Título: Re:Arduino Drumkit
Enviado por: TigPT em 24 de Julho de 2009, 20:45
De certeza que a imagem com as ligações foram corrigidas? é que eu vejo as mesmas imagens que antes.

Tens é o link para o álbum onde estão mais imagens.
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 24 de Julho de 2009, 20:52
De certeza que a imagem com as ligações foram corrigidas? é que eu vejo as mesmas imagens que antes.

limpa a cache do browser e faz F5 ;D
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 05 de Agosto de 2009, 04:01
pronto, deixei a preguiça na cama e tratei de filmar a minha "bateria" ;)

http://www.youtube.com/watch?v=chEg6mAfaNA

tive que usar dois pratos prós sons do prato de choque, pois não tenho nenhum pedal para isso, mas na versão final já trato disso  ;)
Título: Re:Arduino Drumkit
Enviado por: Njay em 05 de Agosto de 2009, 10:07
 ;D ;D
Título: Re:Arduino Drumkit
Enviado por: TigPT em 05 de Agosto de 2009, 12:11
Muito bom ;) Adorei o vídeo.
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 05 de Agosto de 2009, 15:02
 :D

mais tarde (se conseguir, ainda hoje) deixo aqui o que pretendo para a versão "final" da bateria
Título: Re:Arduino Drumkit
Enviado por: tr3s em 05 de Agosto de 2009, 15:15
TCustodio, ficou mesmo fixe! 5* :D Parabéns!

Continua quero ver mais! :D (ate fazia um :D)

Já agora um esquema das ligações no tópico inicial era bem vindo, assim como o material utilizado!
Título: Re:Arduino Drumkit
Enviado por: wear em 05 de Agosto de 2009, 15:21
haha excelente parabéns pelo projecto  ;D
Título: Re:Arduino Drumkit
Enviado por: Rui em 05 de Agosto de 2009, 15:31
Está muito fixe :)
Título: uant
Enviado por: msr em 05 de Agosto de 2009, 23:46
Graças às dicas do tcustodio tambem ja consegui por o arduino a falar com o ableton :D
Quando puder deixo aqui a minha experiencia mais detalhada.

Basicamente estou a usar o S2midi+LoopBe1 (nao consegui instalar o midi yoke no vista). Depois no ableton corro o "sfz" que é um vst freeware que permite tocar soundfonts. Soundfonts encontram-se às carradas na net, de vários instrumentos e for free também. Esta parte do sfz é opcional, podia logo tocar instrumentos que já vêm no ableton.

A minha ideia agora era fazer um keypad, a ver vamos se no final das férias tenha a cena encaminhada.
Título: Re:Arduino Drumkit
Enviado por: Fifas em 05 de Agosto de 2009, 23:52
eu ando a estudar o caso para fazer um teclado midi tambem :P

é so malucos :D
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 06 de Agosto de 2009, 01:32
Actualizei o post principal ;)
Basicamente estou a usar o S2midi+LoopBe1 (nao consegui instalar o midi yoke no vista).
Estranho... eu descobri o midi yoke quando usava vista, e dava, cheguei a usar o loopbe1 primeiro, mas não gostei...

A minha ideia agora era fazer um keypad, a ver vamos se no final das férias tenha a cena encaminhada.
eu ando a estudar o caso para fazer um teclado midi tambem :P
também já passei por essa neura, mas já estou bem aviado com 1 de 49 e 2 de 88 teclas.. electronicamente, é fácil, pega-se num multiplexador de 16 canais, e faz-se uma matriz com X pinos do arduino,

por exemplo, usa-se outro multiplexador, mas de 4 canais, e temos 4*16 teclas. 64 teclas já é muuuuita fruta para um teclado homemade... ou então, como os multiplexadores são analógicos, retiramos alguns dos "canais" e usamos para uns triggers, uns potenciómetros, sliders...

ai ai.. o céu é o limite mesmo... a não ser que o njay se despache a fabricar os eduinos em massa para UAVs  ;D
Título: Re:Arduino Drumkit
Enviado por: Fifas em 06 de Agosto de 2009, 01:37
para ja nem preciso de tanto....umas 32 ou menos chega bem.....tenho de inestir num teclado que tocar no teclado do pc nao da com nada :P
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 06 de Agosto de 2009, 01:40
tão pra isso só precisas de um multiplexador, e usas dois pinos do arduino
queres que te dê um? :P
Título: Re:Arduino Drumkit
Enviado por: Fifas em 06 de Agosto de 2009, 01:42
quero um? ;D

só de pensar no trabalho de fazer as teclas :P tenho de arranjar um velho para "deitar as maos" :D
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 06 de Agosto de 2009, 01:49
tenho de arranjar um velho para "deitar as maos" :D
acabaste de me dar uma ideia do outro mundo :o
como é que nunca pensei nisso??

e sim, queres um multiplexador de 16 canais? ;D
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 06 de Agosto de 2009, 02:32
aqui vai.. mais notícias sobre a bateria!!! :D

estive a trocar ideias com um amigo baterista, e ele mostrou-se interessado em ver um modelo funcional de uma bateria electrónica midi, pois ele compõe também e a maioria das vezes é através do entediante método de arrastar samples para a timeline... uma bateria midi ía tornar a coisa um pouco mais interactiva, não acham?  8)

Então, temos que enfrentar o facto de um atmega só ter 6 conversores analógico-digital.


Isto levanta um problema (ou vários): teria que implementar um protocolo de comunicação para ter a certeza que não havia pacotes de dados estragados e isso. Mas nós queremos uma máquina que trabalhe com muito pouco atraso! e programar dois atmegas ía ser uma chatice depois se quisesse implementar novas funcionalidades...
Há variáveis globais que gostava de controlar com um lcd e uns botões, como o volume, a sensibilidade dos piezos, etc. Estas variáveis entram directamente em jogo aquando da leitura dos conversores analógicos. Teria que implementar uma maneira de partilhar estas variáveis pelos dois atmegas. Ou seja, mais programação, mais atrasos.  :(




Deixo aqui um esquema de como um multiplexador de 16 canais estaria ligado ao arduino:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg33.imageshack.us%2Fimg33%2F9836%2Farduino.jpg&hash=2d4fb76e66d1c2cf5b083aa763e9861adb92d052)
Assim teríamos 16 piezos a serem lidos por um único ADC. Claro está, ainda falta ver se os multiplexadores que tenho (que por acaso são iguais ao da imagem, mas DIP) conseguem trocar de canal suficientemente depressa para serem lidos sem falhas. Caso tal não se verifique, vou estudar a viabilidade de em vez de usar um mux de 16 canais, usar 4 muxes de 4 canais, assim tinham tempo para se "aliviarem" ;D

é tão fácil usar um multiplexador, que nesta situação, para ler os 16 canais num ciclo for, o código seria o seguinte:
Código: [Seleccione]
for (short i = 0; i < 16; i++){
  PORTB = i;
  valor_leitura[i] = analogRead(0);
}
porque é que é tão simples? porque como tenho os pinos do endereço do mux ligados aos pinos 8, 9, 10 e 11, uma maneira rápida de alterar-lhes o valor é escrever directamente para o porto B, que é o porto dos pinos 8 ao 13.

O canal activo do mux é escolhido através das seguintes combinações:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg248.imageshack.us%2Fimg248%2F5504%2Fcapturar.png&hash=ad734d496f8957bc90f2e2f8d4a831648f883a97)

então podemos declarar PORTB = B1010; caso queiramos ler o 11º canal do mux, ou então pela forma decimal, PORTB = 10;
muito mais intuitivo, não acham?  :D



e é assim que imagino o módulo de controlo da versão final...  ::)


(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg200.imageshack.us%2Fimg200%2F9637%2Felectronicdrummockup.png&hash=db8fb7d3907dda0630f395143eaba5939debc15e)

 ;D
Título: Re:Arduino Drumkit
Enviado por: ricardo-reis em 06 de Agosto de 2009, 02:47
oooh.. com a opção dos dois cores posta de lado, inviabiliza-se a aposta dos pinos de comunicação entre eles.. :P mt fraquinho.. mudaste d'ideias só pa n pagares o café e levares dois murros.. :D

agora a sério.. mt bom.. fala dos tempos de 'reacção' do multiplexer e conta-nos ktas batidas o gajo 'come' por segundo.. ;) assusta-nos com numeros.. e põe o pessoal a treinar.. :D
Título: Re:Arduino Drumkit
Enviado por: Fifas em 06 de Agosto de 2009, 02:49
Xi....grande maluco! :D

Quero ver progressos disso, visto que me interessa muito :D

Depois falamos do mux ;)
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 06 de Agosto de 2009, 03:03
oooh.. com a opção dos dois cores posta de lado, inviabiliza-se a aposta dos pinos de comunicação entre eles.. :P mt fraquinho.. mudaste d'ideias só pa n pagares o café e levares dois murros.. :D

claro, não gosto de correr riscos, tive que saltar fora da aposta que fiz contigo e com o tr3s  ;D
ter que pagar o café e ainda levar dois murros de vocês caso perdesse não seria pêra doce  :'(

fala dos tempos de 'reacção' do multiplexer e conta-nos ktas batidas o gajo 'come' por segundo.. ;) assusta-nos com numeros.. e põe o pessoal a treinar.. :D

bem, no datasheet do HEF4067, que é o mux que tenho, faz-se referência ao seguinte facto:

Propagation delays: An -> Vos (An é o pino de endereço, 'Address')
HIGH to LOW = 190ns Typical, 380ns Max.
LOW to HIGH = 175ns Typical, 345ns Max.


Sendo assim, correr os 16 canais demorará, no mínimo, 16*190ns <=> 3040ns <=> 3.04us
acho que é mais que suficiente para o que queremos  8)
Título: Re:Arduino Drumkit
Enviado por: ricardo-reis em 06 de Agosto de 2009, 03:14
se bem me lembro faltou-te dizer k o comum dos mortais (treinados, vá) chega Às 20 batidas por segundo na bateria.. e que pelos cálculos da tarde, multiplicávamos esse valor por dois..  isto pra justificar k nem ao pontapé aos pratos ias alguma vez ter delays entre o bater e o dar som.. :) já n me lembro dps das outras contas..
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 06 de Agosto de 2009, 03:18
foi tanta coisa que dissemos  ;D
Título: Re:Arduino Drumkit
Enviado por: Raul em 06 de Agosto de 2009, 15:06
Adorei complicado para mim (noob) mas adorei.
Peço desculpa por esta pergunta parva que não tem muito haver com o tópico, qual é o programa que vocês usam para desenhar os projectos, é que ficam tão bonitos.
Os do hexaduino (spider robot) do iCAR ficaram brilhantes.


Cumprimentos 
Título: Re:Arduino Drumkit
Enviado por: ricardo-reis em 06 de Agosto de 2009, 15:08
normalmente com o fritzing.. ferramenta open source, mas no photoshop tb se fazem umas coisas.. :)
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 06 de Agosto de 2009, 15:14
ou o paint, para trabalhos rápidos e se já tiveres imagens dos componentes, também dá pra desenrascar! foi o que usei ali em cima ;D
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 06 de Agosto de 2009, 18:50
eu gosto de gatafunhos, mas felizmente não sou daltónico  ;D
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg199.imageshack.us%2Fimg199%2F8318%2Fatmegamux.png&hash=f0a9cf98e427b2c03480da1188d9dd491dd53c00)

falta esquematizar o lcd e os botões  ;D

Não se esqueçam que todos os jacks também levam uma ligação ao ground  ;)
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 08 de Agosto de 2009, 03:40
metade do multiplexador já tem resistências e zeners.. soldar isto está a ser um pesadelo  >:(
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_syOeVpY8Tgk%2FSnzkAaPFh4I%2FAAAAAAAAAdo%2FOfXq2xMbnRY%2Fs800%2F08082009335.jpg&hash=4bf9a599315dc7cdfe04629bd82426a6341dcb3b) (http://picasaweb.google.pt/lh/photo/_MUc61VJRCp3NDVD8DgBlA?feat=embedwebsite)
Título: Re:Arduino Drumkit
Enviado por: ricardo-reis em 08 de Agosto de 2009, 03:55
e metade já era.. mete o resto! :D
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 08 de Agosto de 2009, 03:56
meto amanhã.. ou quando me apetecer! ;D

agora é hora de chocapic e commandos  ;D
Título: Re:Arduino Drumkit
Enviado por: ricardo-reis em 08 de Agosto de 2009, 03:57
agora é hora de chocapic e commandos  ;D

ora, mas k boa ideia.. :D
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 08 de Agosto de 2009, 11:38
e depois de uma longa directa.. c'est finit!

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_syOeVpY8Tgk%2FSn1U0bMNOiI%2FAAAAAAAAAds%2F3Cl0GKo8H_Q%2Fs800%2F08082009339.jpg&hash=35fd3779215aa784256ac8205ce8adbd467557c5) (http://picasaweb.google.pt/lh/photo/8WFvQ980z3X0xH2MkOu1VA?feat=embedwebsite)

agora vou dormir...
Título: Re:Arduino Drumkit
Enviado por: TigPT em 08 de Agosto de 2009, 23:53
Uii.. vêm ai muito ritmo este verão :D
Título: Re:Arduino Drumkit
Enviado por: tveiga em 11 de Agosto de 2009, 14:15
Deixo aqui o link de um projecto de um Drum Trigger. Não é implementado com um arduino mas com um atmega mais potente.
http://www.megadrum.info/ (http://www.megadrum.info/) dá para tirar umas ideias acerca do circuito.

Eu também construí uns e-pads baratos com uma tarteira comprada no chinês, um tapete de rato, um bocado de madeira e esponja. E claro, o piezo. Já não me recordo por quanto ficou mas menos de 5€ de certeza. Tem uma sensibilidade boa e uma sensação bastante real.

Mais logo deixo umas fotos.
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 11 de Agosto de 2009, 14:48
uoooooou, isso tem tanta mais coisa que até me desmoraliza...
tou a pensar ainda em fazer pratos com duas zonas de sensibilidade, com 2 piezos. nesse caso em vez de 16 canais, vou ter 8, pois serão 2 pra cada prato.. mas ainda tou na dúvida.. mas isso de ter SysEx, comunicação usb, e tudo mais, está fantástico...
Título: Re:Arduino Drumkit
Enviado por: jspgresende em 11 de Agosto de 2009, 15:07
tcustodio, não era mais ao menos isto que querias ?
http://www.megadrum.info/content/pictures-first-ever-56-inputs-megadrum

pareceu-me semelhante ao teu esboço, mas um bocado maior...
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 11 de Agosto de 2009, 15:30
sim, exactamente! até tenho aqui um jack TRS igual a esses usados, usei-o para experimentar e tudo..
o principal que invejo nesse projecto é:
Título: Re: Arduino Drumkit
Enviado por: Raul em 02 de Março de 2010, 18:04
Boa tarde como não sei se estou a conseguir enviar PM resolvi colocar aqui a mesma as minhas questões.

Peço desculpa colocar aqui as minhas questões como não vi nenhum tópico sobre buzzer´s e não vejo a necessidade de abrir um tópico só para isto.

Queria fazer um projecto com um buzzer e leds.
Buzzer para tocar a musica dos parabéns, mas não sei se ao brincar com os leds usando os delay interfere o ritmo da musica, alguém me pode dizer se interfere ou não?

E se alguém me pode arranjar um site onde possa retirar o código dessa musica?

Qual o buzzer a utilizar?
Não percebo nada de buzzer´s.

Cumprimentos
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 02 de Março de 2010, 21:06
Boas, Raul.

Se não viste um tópico sobre buzzers e se tens alguma questão a pôr, então necessidade de criares um tópico só para a tua dúvida   :)

Cria um novo tópico, e responderemos às tuas dúvidas!  ;)
Título: Re: Arduino Drumkit
Enviado por: microbyte em 02 de Março de 2010, 21:10
Boa tarde como não sei se estou a conseguir enviar PM resolvi colocar aqui a mesma as minhas questões.

Peço desculpa colocar aqui as minhas questões como não vi nenhum tópico sobre buzzer´s e não vejo a necessidade de abrir um tópico só para isto.

Queria fazer um projecto com um buzzer e leds.
Buzzer para tocar a musica dos parabéns, mas não sei se ao brincar com os leds usando os delay interfere o ritmo da musica, alguém me pode dizer se interfere ou não?

E se alguém me pode arranjar um site onde possa retirar o código dessa musica?

Qual o buzzer a utilizar?
Não percebo nada de buzzer´s.

Cumprimentos

Respondi-te por PM, se quiseres, posta aqui a minha resposta para futura referência para outras pessoas. ;)
Título: Re: Arduino Drumkit
Enviado por: Raul em 02 de Março de 2010, 22:34
Fiz o que o Tcustodio aconselhou a fazer, mas acho que quem tem o direito de o ter feito seria o MicroByte.


Cumprimentos
Título: Re: Arduino Drumkit
Enviado por: microbyte em 02 de Março de 2010, 23:46
Fiz o que o Tcustodio aconselhou a fazer, mas acho que quem tem o direito de o ter feito seria o MicroByte.


Cumprimentos

Não, a dúvida foste tu que a colocaste, portanto, podes postar a minha resposta, ainda que por PM. ;)
Chega de off-topic neste tópico.
Título: Re: Arduino Drumkit
Enviado por: Martech em 01 de Dezembro de 2010, 22:38
ola.. ha uma coisa que nao estou a entender... onde esta a ligação MIDI(acho que posso chamar assim) que sai do arduino??? isto é se ela sair do arduino...

;) muito bom projecto! parabéns!
Título: Re: Arduino Drumkit
Enviado por: wender_reis em 06 de Abril de 2011, 15:28
Pessoa, tô construindo um Drumkit com um Arduino Duemilanove.
Está baseado neste projeto:

http://todbot.com/blog/2006/10/29/spooky-arduino-projects-4-and-musical-arduino/ (http://todbot.com/blog/2006/10/29/spooky-arduino-projects-4-and-musical-arduino/) (sem os triggers)

Como gostaria de mais entradas, comprei um muxshield que é o famoso multiplexer.

http://mayhewlabs.com/products/arduino-mux-shield (http://mayhewlabs.com/products/arduino-mux-shield)

Sem ligar o multiplexer testei meu circuito e piezos com as entradas do arduino normal e funcionou. Só que quando coloco o multiplexer não sei nem onde enfiar os fios. Sem contar que sou totalmente noob em arduino e meu conhecimento é basico em eletronica. Nesse multiplexer que eu tenho, aonde ficam as entradas analogicas? Escrevi para o criador do muxshield e o cara não respondeu. Tô meio com medo de colocar em qualquer entrada e estragar o arduino.

Outra coisa... Qual o código que vocês estão utilizando? Eu utilizo o código do site que eu disse antes, mas vocês aparentemente testaram bastante isso, principalmente com a questão da latência e tal.
Valeu
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 14 de Julho de 2011, 04:51
Sei que venho tarde, mas espero não vir tarde demais.
Peço desculpa pelo tempo demorado em responder.

@Martech, qualquer comunicação MIDI não passa de uma porta série a trabalhar a 31250 b/s! neste caso em concreto, eu faço as leituras e mando a informação MIDI pela porta série para o computador tratar dela :)

@wender_reis, sinceramente acho esse muxshield um pouco exagerado para a questão, acho que algo como este mux http://www.sparkfun.com/products/9056 (http://www.sparkfun.com/products/9056) seria mais simples, e até seria a minha escolha!
Mas o importante é o que tens agora, que é esse muxshield!
Plo que estive a ver, terás que ligar os piezos nos pinos numerados junto dos chips do shield, ou seja, os pinos 0, 1, 2, ..., 15 que estão junto de cada chip!
Título: Re: Arduino Drumkit
Enviado por: cellen em 24 de Fevereiro de 2012, 05:03
Muito interessante este forum, Vou fazer uma bateria com Arduino + Mux shield. Baseando-se neste projeto abaixo com 48 entradas

http://blog.georgmill.de/e-drum-selbst-gebaut/ (http://blog.georgmill.de/e-drum-selbst-gebaut/)

Gostaria de saber como ele ligou os fios?
É como o mux do tcustodio? A0 A1 A2 A3 do mux -> ligados nos analog 1,2,3,4 do arduino?
Por favor me ajudem? obrigado
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 24 de Fevereiro de 2012, 13:37
Muito interessante este forum, Vou fazer uma bateria com Arduino + Mux shield. Baseando-se neste projeto abaixo com 48 entradas

http://blog.georgmill.de/e-drum-selbst-gebaut/ (http://blog.georgmill.de/e-drum-selbst-gebaut/)

Gostaria de saber como ele ligou os fios?
É como o mux do tcustodio? A0 A1 A2 A3 do mux -> ligados nos analog 1,2,3,4 do arduino?
Por favor me ajudem? obrigado

Olá Cellen!

na mensagem que me enviaste por PM não tinha percebido a tua dúvida, mas aqui já percebi. O mux shield está ligado ao arduino duma forma muito semelhante ao meu multiplexador! com os pinos 2, 3, 4 e 5 do arduino dizes qual é a entrada dos 3 multiplexadores do shield que está activa! (o Mux Shield tem 3 multiplexadores de 16 portas cada).
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fmayhewlabs.com%2Fmedia%2Fmux_shield_front.png&hash=45c8532c2fce88929ef0ad24964d5c22abd87929)Ou seja, ao pores os pinos 2, 3, 4 e 5 do arduino em LOW, vais fazer com que cada multiplexador redireccione a sua entrada 0 para o arduino.
Ao leres a porta analog 0 do arduino lês o M0 (multiplexador 0 do mux shield), no analog 1 lês o M1 e no analog 2 lês o M2.
(imagem retirada da página do produto (http://mayhewlabs.com/products/arduino-mux-shield))
Para as conbinações das portas 2, 3, 4 e 5 que deves usar para ler cada canal, podes guiar-te pela imagem que tenho neste post: http://lusorobotica.com/index.php?topic=1237.msg12987#msg12987 (http://lusorobotica.com/index.php?topic=1237.msg12987#msg12987)
Título: Re: Arduino Drumkit
Enviado por: Hugu em 24 de Fevereiro de 2012, 15:24
Muito fixe Custódio! 8)
N me tinha apercebido antes deste teu projectos, mas está quase excelente! tens é de fazer umas pcbs à maneira, pq projectos destes merecem melhor qualidade nas boards! ;)

Já agora, eu sugeria que na vez de usar tampas de latas, é preferivel usar outros materiais menos sonoros, pk senao ha uma misturas de sons, do output do piezzo e o do som da lata...por isso é que nestes projectos, o pessoal usa almofadas ou materiais que tem abafar o som do bater das batutas...

Já agora Custódio, qtos piezos podias/podes usar na tua board?
Título: Re: Arduino Drumkit
Enviado por: cellen em 25 de Fevereiro de 2012, 01:57
(http://)Obrigado por responder, eu sou novo e entendo muito pouco
 seria + ou - assim?
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 25 de Fevereiro de 2012, 03:18
Olá Hugu, obrigado pelo apreço! :D
tens é de fazer umas pcbs à maneira, pq projectos destes merecem melhor qualidade nas boards! ;)
nunca pensei em desenhar uma pcb pra isto! mas tenho algumas ideias para um possível produto final :)
Já agora, eu sugeria que na vez de usar tampas de latas, é preferivel usar outros materiais menos sonoros, pk senao ha uma misturas de sons, do output do piezzo e o do som da lata...por isso é que nestes projectos, o pessoal usa almofadas ou materiais que tem abafar o som do bater das batutas...
sim, eu sei, mas nunca encontrei nada a jeito :/ as tampas das latas foi o mais imediato que arranjei, mas pensando bem, podia pelo menos ter posto uma camada de esponja por cima!
Já agora Custódio, qtos piezos podias/podes usar na tua board?
o número de piezos que posso usar é virtualmente ilimitado! basta adicionar mais multiplexadores! só experimentei com um de 16 canais, mas o mux shield supra mencionado trás logo 3 para um total de 48 portas!

(http://)Obrigado por responder, eu sou novo e entendo muito pouco
 seria + ou - assim?
Olá cellen :)
Sim, seria assim! ligas cada piezo (com o díodo e resistência) às entradas 0-15 dos muxes! :)
Título: Re: Arduino Drumkit
Enviado por: cellen em 25 de Fevereiro de 2012, 19:12
 :)Então Tiago Eu sou leigo no assunto, mas esta parte dos diodos e das resistencias eu entendi.
Se não fosse perguntar muito, Como eu faria as demais ligações entre arduino e Mux shield?

Mux shield                                                              Arduino
48 entradas analógicas                                                         
VCC - PIEZOS
GND

ANALOG IN                                                             ANALOG IN                 
M0 - 0                                                                    0
M1 - 1                                                                    1
M2 - 2                                                                    2
3                                                                            3
4                                                                            4
5                                                                            5

POWER                                                                  POWER
reset                                                                     reset
3v3                                                                        3v3
5v                                                                          5V
Gnd                                                                       Gnd
Vin                                                                         Vin

DIGITAL                                                                 DIGITAL
Rx - 0                                                                    Rx - 0
Tx - 1                                                                    Tx - 1
S0 - 2                                                                    2
S1 - 3                                                                    3
S2 - 4                                                                    4
S3 - 5                                                                    5
6                                                                           6
7                                                                           7
8                                                                           8
9                                                                           9
10                                                                         10
11                                                                         11
12                                                                         12
13                                                                         13

O mux shield se encaixa perfeitamente em cima do arduino
Restariam poucas ligações
Me ajude! Por favor ;D ::)
Obrigado
Título: Re: Arduino Drumkit
Enviado por: cellen em 25 de Fevereiro de 2012, 19:47
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fmayhewlabs.com%2Fmedia%2Fmux_shield_mounted.png&hash=1d03070201076224870e6e90936759d1bdc72c10)
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 26 de Fevereiro de 2012, 00:43
Se não fosse perguntar muito, Como eu faria as demais ligações entre arduino e Mux shield?
Cellen, não há mais ligações a fazer! ao encaixares o mux shield no arduino já estás a estabelecer todas as ligações necessárias entre o shield e o arduino :)

só uma observação: tu não queres ligar os piezos à fileira de pinos VCC do mux shield, queres ligar nos pinos numerados de 0 a 15 ;)

ou seja, um dos terminais do piezo está ligado, por exemplo, no pino 0 do M0 do mux shield, enquanto o outro terminal no piezo está ligado a GND, tal como todos os outros :)
Título: Re: Arduino Drumkit
Enviado por: Hugu em 26 de Fevereiro de 2012, 01:52
n existem eagle files desse mux shield?..  8)
Título: Re: Arduino Drumkit
Enviado por: cellen em 26 de Fevereiro de 2012, 05:20
Muito obrigado Tiago, Eu ví os fios e pensei que haveria alguma ligação entre o Mux e o Arduino.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fblog.georgmill.de%2Fwp-content%2Fuploads%2F2011%2F03%2Fimg_6066.jpg&hash=f6f5bb4eaa3d1cbcb382e1699168d1babbf62616)

Se bem que o autor colocou um midi in e out
http://www.thebox.myzen.co.uk/Hardware/MIDI_Shield.html (http://www.thebox.myzen.co.uk/Hardware/MIDI_Shield.html)
Tiago, é necessário este midi in e out? fica ruim de usb para usb?


n existem eagle files desse mux shield?.. 

Não existe não HUGU :(, Acho que é tão facil pra vocês que entendem, que deve parecer lógico. ::)
Pelo menos o autor diz que está tudo explicado no código.
http://blog.georgmill.de/2011/03/22/e-drumset-selbst-gebaut/ (http://blog.georgmill.de/2011/03/22/e-drumset-selbst-gebaut/)

Título: Re: Arduino Drumkit
Enviado por: tcustodio em 26 de Fevereiro de 2012, 13:46
Muito obrigado Tiago, Eu ví os fios e pensei que haveria alguma ligação entre o Mux e o Arduino.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fblog.georgmill.de%2Fwp-content%2Fuploads%2F2011%2F03%2Fimg_6066.jpg&hash=f6f5bb4eaa3d1cbcb382e1699168d1babbf62616)
Não, cellen, não existe mais nenhuma ligação, na descrição do Mux Shield na sua página descreve que já está tudo ligado quando o encaixas no arduino. Todos esses fios que vês são as ligações para as tomadas onde vão ser ligados, posteriormente, os piezos!

Se bem que o autor colocou um midi in e out
http://www.thebox.myzen.co.uk/Hardware/MIDI_Shield.html (http://www.thebox.myzen.co.uk/Hardware/MIDI_Shield.html)
Tiago, é necessário este midi in e out? fica ruim de usb para usb?
Só é necessário uma ligação midi in/out se quiseres ligar a "bateria" a um dispositivo midi sem teres que usar o computador!

n existem eagle files desse mux shield?..  8)

Não existe não HUGU :(, Acho que é tão facil pra vocês que entendem, que deve parecer lógico. ::)
Pelo menos o autor diz que está tudo explicado no código.
http://blog.georgmill.de/2011/03/22/e-drumset-selbst-gebaut/ (http://blog.georgmill.de/2011/03/22/e-drumset-selbst-gebaut/)
Não existem os ficheiros Eagle da placa, mas existe o esquema de ligações na página do produto, está tudo bem visível.
http://mayhewlabs.com/media/Mux_Shield_Schematic.pdf (http://mayhewlabs.com/media/Mux_Shield_Schematic.pdf)
Título: Re: Arduino Drumkit
Enviado por: Hugu em 26 de Fevereiro de 2012, 19:38
nice, com o schematic ja dá pra passar pro eagle e fazer umas boards! ;)

Qto ao "midi in/out", acho que existe um shield com isso...
e uma questão de montar literalmente no arduino  8)

Vou ver se trato das pcbs pra meter à disposiçao do ppl!..
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 26 de Fevereiro de 2012, 19:47
nice, com o schematic ja dá pra passar pro eagle e fazer umas boards! ;)

Qto ao "midi in/out", acho que existe um shield com isso...
e uma questão de montar literalmente no arduino  8)

Vou ver se trato das pcbs pra meter à disposiçao do ppl!..
Sim, existe um MIDI shield, eu tenho-o :P

Eu também poderia desenhar uma pcb, mas não tenho muita experiência com o Eagle... :/ talvez tente no fritzing...
Título: Re: Arduino Drumkit
Enviado por: senso em 26 de Fevereiro de 2012, 22:26
Midi é serial, é só juntar uns opto-acopladores e está feito.
Título: Re: Arduino Drumkit
Enviado por: cellen em 01 de Março de 2012, 00:27
Muito obrigado á Tiago Custódio, HUGU e demais participantes deste fórum. Hoje chegou o arduino uno aqui, vou comprar amanhã o cd 4067 (o mux shield está muito caro aqui) as resistencias , diodos, piezos para montar a bendita bateria eletronica. :)

Pensando em mudar de um kit para outro através de um toque, a minha idéia é que cada vez que o baterista tocar em certo pad, mudar o canal midi, e assim ter acesso a 16 kits, sem mexer no computador.

Assim através do REAPER, eu colocaria um kit em cada pista com o seu numero de canal midi - 0, 1, 2 etc
Acho que é possivel, o que você acham?
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 01 de Março de 2012, 02:20
Pensando em mudar de um kit para outro através de um toque, a minha idéia é que cada vez que o baterista tocar em certo pad, mudar o canal midi, e assim ter acesso a 16 kits, sem mexer no computador.

Assim através do REAPER, eu colocaria um kit em cada pista com o seu numero de canal midi - 0, 1, 2 etc
Acho que é possivel, o que você acham?
Também acho que seja possível! É apenas uma questão de definires o canal como sendo uma variável e, durante as leituras dos pads, defines que ao sentires bater no pad X mudas a variável do canal :)
Título: Re: Arduino Drumkit
Enviado por: cellen em 03 de Março de 2012, 02:55
Amanhã sabado, eu e meu amigo vamos fazer o drum kit de 48 entradas. A idéia é ter uma bateria e uns pads de percursão. comprei 3 hef4067bp.
Pergunta:
As entradas digitais do arduino 2,3,4,5 vão comandar A0,A1,A2,A3 (mux 0) , analog 0 -> Z(mux 0)
                                                  6,7,8,9 vão comandar A0,A1,A2,A3 (mux 1) , analog 1 -> Z(mux 1)
                                          10,11,12,13 vão comandar A0,A1,A2,A3 (mux 2) , analog 2 -> Z(mux 2)
seria isto não é?:)  ou não :(  ?



Título: Re: Arduino Drumkit
Enviado por: tcustodio em 03 de Março de 2012, 05:46
As entradas digitais do arduino 2,3,4,5 vão comandar A0,A1,A2,A3 (mux 0) , analog 0 -> Z(mux 0)
                                                  6,7,8,9 vão comandar A0,A1,A2,A3 (mux 1) , analog 1 -> Z(mux 1)
                                          10,11,12,13 vão comandar A0,A1,A2,A3 (mux 2) , analog 2 -> Z(mux 2)
seria isto não é?:)  ou não :(  ?
Não. No MuxShield, podes ver que só são usados os pinos 2, 3, 4 e 5 para controlar os pinos A0, A1, A2 e A3 dos três multiplexadores :)
Portanto, ligas o pino 2 do arduino aos pinos A0 dos três multiplexadores, o pino 3 aos A1 e por aí adiante. ;)
Título: Re: Arduino Drumkit
Enviado por: cellen em 03 de Março de 2012, 07:20
Maravilha! Obrigado Tiago!
Estarei montando e testando, Vai ficar muito bom!
Eu sempre tive muita vontade de ter uma bateria eletrônica, mas sempre estava muito cara. Mas agora graças a você e outros gênios da eletrônica, vou poder montar a minha com um custo mais baixo! ;D
E quantas coisas não dá pra fazer hein? Até um teclado controlador midi ( com um arduino mega pra aumentar a polifonia :D)
Eu mesmo toco teclado ( psr 910 yamaha ;D) e agora o baterista vai poder criar muito, e com os melhores sons! ;)
Enfim, muito bom mesmo! :D
Título: Re: Arduino Drumkit
Enviado por: cellen em 05 de Março de 2012, 05:04
opa Tiago, montei apenas com 6 analogicos pra testar.
Coloquei o teu codigo, da pagina 1 deste topico, mas a notaOff, não foi aceita na depuração. Ele diz que não foi declarada, etc (talvez porque os codigos do arduino versão 1.0 mudou algumas coisa)
coloquei depois aquele codigo da plaquinha vermelha http://www.spikenzielabs.com/SpikenzieLabs/DrumKitKit.html, (http://www.spikenzielabs.com/SpikenzieLabs/DrumKitKit.html,) e com algumas modificações, funcionou.
Mas deu trabalho. para ter pouca latência só daquele jeito mesmo: s2midi, midi yoke, e coloquei reaper com sf2.
porém quando bato, repetem as notas.
será porque os piezos estão dentro de livros?
Alguma idéia de codigo?
obrigado
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 05 de Março de 2012, 14:34
opa Tiago, montei apenas com 6 analogicos pra testar.
Coloquei o teu codigo, da pagina 1 deste topico, mas a notaOff, não foi aceita na depuração. Ele diz que não foi declarada, etc (talvez porque os codigos do arduino versão 1.0 mudou algumas coisa)
coloquei depois aquele codigo da plaquinha vermelha http://www.spikenzielabs.com/SpikenzieLabs/DrumKitKit.html, (http://www.spikenzielabs.com/SpikenzieLabs/DrumKitKit.html,) e com algumas modificações, funcionou.
Mas deu trabalho. para ter pouca latência só daquele jeito mesmo: s2midi, midi yoke, e coloquei reaper com sf2.
porém quando bato, repetem as notas.
será porque os piezos estão dentro de livros?
Alguma idéia de codigo?
obrigado

O meu código foi ajustado às condiçõs que tinha... devias começar por fazer o teu próprio código aproveitando do meu o mais elementar: as função noteOn. Por acaso reparei que não está lá a função noteOff. basta comentares essa linha de código!
Devias construir o código do início para compreenderes à tua medida o que é preciso fazer :)

as notas repetirem também me acontecia, tem a ver com a variável debounce. Essa variável serve para o arduino saber que depois de uma batida num prato tem que esperar X milissegundos para poder aceitar outra batida no mesmo prato! Experimenta alterar o seu valor para algo maior, como 100, 150 e experimenta ;)
Título: Re: Arduino Drumkit
Enviado por: cellen em 07 de Março de 2012, 06:31
Fala Tiago  :)
Experimentei bastante coisa e agora ficou legal, tá respondendo desde o mais fraco até o mais forte com bastante precisão.
Acrescentei este código abaixo e ficou bem sensível, a ponto de ter que aumentar o tempo da próxima nota, mas ficou muito bom!

Código: [Seleccione]
#define FASTADC 1

// defines for setting and clearing register bits
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
 
#if FASTADC
  // set prescale to 16
  sbi(ADCSRA,ADPS2) ;
  cbi(ADCSRA,ADPS1) ;
  cbi(ADCSRA,ADPS0) ;
#endif

Agora estou mudando os materiais do pad, porque madeira mesmo fininha é meio insensível, necessitando de muita força.
Cortei e coloquei o fundo de uma lata de milho e ficou muito bom!
Vou continuar pesquisando os melhores materiais! ;)


Título: Re: Arduino Drumkit
Enviado por: cellen em 15 de Março de 2012, 05:12
Fala tiago, estou quebrando a cabeça com este código. Andei observando as variações das batidas midi, (você bate forte e sai fraco, bate forte de novo e sai forte, quero dizer "sem precisão") e verifiquei que o arduino vai transformando os valores analogicos em midi muito rapidamente (uma batida livre, sem theshold, ou debounce, tem quase 50 variações!)

algumas batidas mostram o mais forte logo na primeira, outros liberam a batida mais forte depois da sétima, etc

então estava tentando pegar a batida maior, entre varias amostras (coisa de milissegundos), e transformar apenas esta batida em midi. Porém está dificil! Ele acaba pegando todos. Pensei que a variavel chamada "maior" iria fazer este trabalho porém nada. Voce tem alguma solução pra isto? Obrigado ???
Abaixo em anexo está o código.
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 15 de Março de 2012, 13:47
olá, cellen :)

dei uma olhadela no teu código, acho aquele ciclo inicial um pouco desnecessário...
Tu não precisas de um ciclo para capturar as batidas dentro do loop, o loop já é um ciclo. Podes tratar os dados à medida que os capturas. Isso que te acontece é estranho, dado que temos um sistema debounce implementado. Eu tentaria tornar o threshold dinâmico. Implementa um threshold para cada prato, e quando capturas uma batida válida, sobes o threshold desse prato :)
Experimenta para ver se funciona...
Título: Re: Arduino Drumkit
Enviado por: cellen em 15 de Março de 2012, 15:02
Então Tiago, eu queria colocar este código porque tenho tido variação. Eu descobri isto antes de colocar este código. tirei todo código que limitava as batidas,(baixei o threshold e o offset, baixei o debounce)
 e no s2midi respondia deste jeito: 35,42,55,60,75,74,73,72, 70.... e começava a baixar até o threshold + offset.
Isto significa que eu queria a batida valor "75", e na verdade ele pegaria o primeiro valor "35" e travaria o resto.
Este exemplo ainda dá pra passar, mas e quando você bate forte "127" e te retorna  "35"?
Outras pessoas tem demonstrado este mesmo problema em outros foruns, o que pode ser o problema do Piezo.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ftodbot.com%2Fblog%2Fwp-content%2Fuploads%2F2006%2F10%2Fpiezo_whack-300.png&hash=c50815606bba2a43f1b50a51942c12283a48e8ea)

as vezes ele começa em baixo, o que dá erro na interpretação.
Se eu fosse colocar aquele código, você saberia o que deveria mudar para o meu código funcionar com umas 10 primeiras amostras? ???
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 15 de Março de 2012, 16:03
cellen, quando disse que não via a necessidade daquele ciclo logo no início em que lês a amplitude do piezo, é porque tu capturas 10 amostras seguidas e depois trata-las. Ora, como lês sem nenhum intervalo de tempo regular, as 10 leituras são muito rápidas, aí na ordem dos microssegundos, duvido que no meio de 10 amostras são perto um das outras apanhes alguma muito maior. Bater nos pratos são eventos que acontecem na ordem dos milissegundos...
Leres os canais como no meu código dá espaço para apanhar alguma coisa e processar tudo. Ajustar o threshold e debounce time deveria ser o suficiente. Talvez implementar um threshold dinâmico possa ajudar.

No teu código não encontro nada de errado, acho que a única coisa que pode correr mal é mesmo o teu ciclo de captura de dados
Título: Re: Arduino Drumkit
Enviado por: cellen em 16 de Março de 2012, 05:04
Opa Tiago
Fiz um outro codigo com max(a,b), não está perfeito, (acho que com vetor ficaria melhor) mas está funcionando. Enquanto A<B lê novamente A (500ms) e B. Coloquei um delaymicrossegundo(500) entre eles, e usando o aquele procedimento que vai escrevendo todos os envios até parar, verifiquei que o maior é escrito primeiro e depois vai baixando. :D
Depois escrevi que escrevesse a primeira e não escrevesse até tempo X. O que eu acho errado, Acho que ele deveria identificar e desprezar a queda do piezo.
Em um forum um cara colocou mais algumas resistencias e diminuiu o tempo de queda do piezo.
Acho que meu maior trabalho seja a forma artesanal que estou usando nos piezos. acho que o certo mesmo seja usar uma pele muda, com um cone colocado entre o piezo e a pele, como nas ROLANDs 8)

Era isto que  eu queria, porém acho que este código poderia ser melhor, ao invés de comparar de par em par até que comece a baixar, ele poderia funcionar daquele jeito que eu te descrevi anteriormente ::)
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 16 de Março de 2012, 12:09
Isso estar a melhorar é bom! Porém, ao meteres um delay podes estar a ignorar dados, se bem que neste caso acho que não é crítico. Volto a martelar na mesma tecla: creio que capturar uma amostra e tratá-la com debounce como mostro no meu código acaba por ser o mais rápido e dificilmente deixa escapar dados :)

Quanto aos pratos, sim, com certeza a construção dos pratos terá um enorme efeito! quando for fazer os meus de forma decente, estou a pensar usar uma madeira fina e forrar a madeira com um tecido grosso para abafar a pancada.
Título: Re: Arduino Drumkit
Enviado por: cellen em 04 de Abril de 2012, 00:04
Voltei a mexer na bateria. :D
porém agora ao ler o mux 16 canais (hef4067bp) quando bato no pad(0), os seguintes pads (1,2,3,4...) recebem valores que vão baixando :P
alguém sabe o porque? Será que está faltando alguma ligação no GND? algum aterramento?
Título: Re: Arduino Drumkit
Enviado por: Hugu em 04 de Abril de 2012, 01:35
Voltei a mexer na bateria. :D
porém agora ao ler o mux 16 canais (hef4067bp) quando bato no pad(0), os seguintes pads (1,2,3,4...) recebem valores que vão baixando :P
alguém sabe o porque? Será que está faltando alguma ligação no GND? algum aterramento?

tens video?.. :)
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 04 de Abril de 2012, 01:48
Voltei a mexer na bateria. :D
porém agora ao ler o mux 16 canais (hef4067bp) quando bato no pad(0), os seguintes pads (1,2,3,4...) recebem valores que vão baixando :P
alguém sabe o porque? Será que está faltando alguma ligação no GND? algum aterramento?
na minha também acontecia isso às vezes, mas normalmente só no pad ao lado. Vê se isso te acontece se isolares o teu pad dos outros (põe-nos em sítios diferentes)
Título: Re: Arduino Drumkit
Enviado por: cellen em 05 de Abril de 2012, 03:51
Voltei a mexer na bateria. :D
porém agora ao ler o mux 16 canais (hef4067bp) quando bato no pad(0), os seguintes pads (1,2,3,4...) recebem valores que vão baixando :P
alguém sabe o porque? Será que está faltando alguma ligação no GND? algum aterramento?

tens video?.. :)

Vou filmar para mostrar
Título: Re: Arduino Drumkit
Enviado por: cellen em 05 de Abril de 2012, 04:17
Voltei a mexer na bateria. :D
porém agora ao ler o mux 16 canais (hef4067bp) quando bato no pad(0), os seguintes pads (1,2,3,4...) recebem valores que vão baixando :P
alguém sabe o porque? Será que está faltando alguma ligação no GND? algum aterramento?
na minha também acontecia isso às vezes, mas normalmente só no pad ao lado. Vê se isso te acontece se isolares o teu pad dos outros (põe-nos em sítios diferentes)
Então Tiago, enquanto estava usando apenas as 6 entradas do arduino estava bem. fiz vários testes, pads juntos, separados, com madeira, metal, igual ao das Rolands Vséries :P
Mas agora colocando o hef4067bp, parece que acontece um vazamento de voltagem no próprio Mux.
Já mexi bastante no código, mas eu acho que o código é o menor dos problemas.
Coloquei bastante resistência hoje e funcionou melhor, mas a resistência ao pulso do piezo também aumentou.
Acho que o sinal elétrico deve ser drenado mais rapidamente do mux através de algum esquema eletrico. Alguem tem alguma idéia? ::)
estou usando o seguinte esquema

piezo
resistor 1 M paralelo terra.
diodo schokkty série (retifica o sinal)
AmP op. Lm324( amplifica o sinal, com resistencia 20k em paralelo com saida e com terra)
hef4067bp
Arduino A0

Sem Amp Op o sinal não chega.
Título: Re: Arduino Drumkit
Enviado por: AndréD. em 07 de Abril de 2012, 15:32
Boas Pessoal...

Aqui fica o prototipo do meu DrumKit.... Ainda está em desenvolvimento e como é obviu todas as sugestões são bem vindas...

Vou invadir um pouco o topico do grande tcustodio com o meu trabalho espero que gostem...

http://youtu.be/NlQFQLQEeyQ (http://youtu.be/NlQFQLQEeyQ)

Espero que possam dar sugestões e opinar sobre a "cenaça" :P

Cumps
AndréD.
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 07 de Abril de 2012, 15:49
Então Tiago, enquanto estava usando apenas as 6 entradas do arduino estava bem. fiz vários testes, pads juntos, separados, com madeira, metal, igual ao das Rolands Vséries :P
Mas agora colocando o hef4067bp, parece que acontece um vazamento de voltagem no próprio Mux.
Já mexi bastante no código, mas eu acho que o código é o menor dos problemas.
Coloquei bastante resistência hoje e funcionou melhor, mas a resistência ao pulso do piezo também aumentou.
Acho que o sinal elétrico deve ser drenado mais rapidamente do mux através de algum esquema eletrico. Alguem tem alguma idéia? ::)
estou usando o seguinte esquema

piezo
resistor 1 M paralelo terra.
diodo schokkty série (retifica o sinal)
AmP op. Lm324( amplifica o sinal, com resistencia 20k em paralelo com saida e com terra)
hef4067bp
Arduino A0

Sem Amp Op o sinal não chega.

Olá Cellen! Isso que expões é muito estranho... também deveria acontecer com as 6 entradas do arduino, pois essas 6 entradas do arduino também são entradas para um mux (que está dentro do chip do arduino ;))

Isso não deveria acontecer. Não percebi bem o teu "esquema" de ligação do piezo, mas vou supor que está ligado como nos esquemas que foram partilhados por aqui :)
O ampop, numa fase final do protótipo, deve ser usado entre o mux e o arduino, não entre o piezo e o mux... e devem estar bem definidos os limites, pois o arduino só aceita um sinal entre 0 e 5V.

Podes mostrar o código que usas para controlar o mux? Talvez possa-te estar a escapar alguma coisa aí :)
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 07 de Abril de 2012, 15:50
Boas Pessoal...

Aqui fica o prototipo do meu DrumKit.... Ainda está em desenvolvimento e como é obviu todas as sugestões são bem vindas...

Vou invadir um pouco o topico do grande tcustodio com o meu trabalho espero que gostem...

http://youtu.be/NlQFQLQEeyQ (http://youtu.be/NlQFQLQEeyQ)

Espero que possam dar sugestões e opinar sobre a "cenaça" :P

Cumps
AndréD.

Olá André! Gostei bastante do teu vídeo! Gostei especialmente do facto que consegues encurtar os sons e fazer vários seguidos em volumes diferentes. São os pads que são muito bons ou é o código que é especial de corrida? :P
Título: Re: Arduino Drumkit
Enviado por: AndréD. em 07 de Abril de 2012, 16:57
Boas..

Antes de mais obrigado, e em relação a tua pergunta, os pads é que são porreiros, porque em relação á programação estou com uns problemas... Por exemplo não consigo tocar dois pads ao mesmo tempo... O que é totalmente impensável numa bateria...  E não sei muito bem como eide  resolver o problema...

Em relação ao encurtar os sons e varias batidas com sons diferentes isso esta a funcionar razoavelmente bem...

Cumps
AndréD.
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 07 de Abril de 2012, 17:55
Boas..

Antes de mais obrigado, e em relação a tua pergunta, os pads é que são porreiros, porque em relação á programação estou com uns problemas... Por exemplo não consigo tocar dois pads ao mesmo tempo... O que é totalmente impensável numa bateria...  E não sei muito bem como eide  resolver o problema...

Em relação ao encurtar os sons e varias batidas com sons diferentes isso esta a funcionar razoavelmente bem...

Cumps
AndréD.

Não queres partilhar o código para aprendermos todos e ajudarmos-te? :)
Título: Re: Arduino Drumkit
Enviado por: AndréD. em 07 de Abril de 2012, 18:41
Boas...

Sim posso e vou fazê-lo... Ate porque pode vir a servir para outros...

Ora aqui fica...

Código: [Seleccione]
//------------------------------------//
// CODE    ||  SOUND                  //
// 35      ||  Bass Drum 2            //
// 36      ||  Bass Drum 1            //
// 37      ||  Side Stick/Rimshot     //
// 38      ||  Snare Drum 1           //
// 39      ||  Hand Clap              //
// 40      ||  Snare Drum 2           //
// 41      ||  Low Tom 2              //
// 42      ||  Closed Hi-hat          //
// 43      ||  Low Tom 1              //
// 44      ||  Pedal Hi-hat           //
// 45      ||  Mid Tom 2              //
// 46      ||  Open Hi-hat            //
// 47      ||  Mid Tom 1              //
// 48      ||  High Tom 2             //
// 49      ||  Crash Cymbal 1         //
// 50      ||  High Tom 1             //
// 51      ||  Ride Cymbal 1          //
// 52      ||  Chinese Cymbal         //
// 53      ||  Ride Bell              //
// 54      ||  Tambourine             //
// 55      ||  Splash Cymbal          //
// 56      ||  Cowbell                //
// 57      ||  Crash Cymbal 2         //
// 58      ||  Vibra Slap             //
// 59      ||  Ride Cymbal 2          //
// 60      ||  High Bongo             //
// 61      ||  Low Bongo              //
// 62      ||  Mute High Conga        //
// 63      ||  Open High Conga        //
// 64      ||  Low Conga              //
// 65      ||  High Timbale           //
// 66      ||  Low Timbale            //
// 67      ||  High Agogô             //
// 68      ||  Low Agogô              //
// 69      ||  Cabasa                 //
// 70      ||  Maracas                //   
// 71      ||  Short Whistle          //
// 72      ||  Long Whistle           //
// 73      ||  Short Güiro            //
// 74      ||  Long Güiro             // 
// 75      ||  Claves                 //
// 76      ||  High Wood Block        //
// 77      ||  Low Wood Block         //
// 78      ||  Mute Cuíca             //
// 79      ||  Open Cuíca             //
// 80      ||  Mute Triangle          //
// 81      ||  Open Triangle          //
//------------------------------------//


int midiChannel = 9;

int outPin = 13;
int snare = 0;
int crash = 1;
int mtom = 2;
int ltom = 3;
int htom = 4;
int ride = 5;
int Bass = 2;

int DK1[6] = {38,49,43,47,50,51};
int DK2[6] = {40,57,41,45,48,59};

int lastAnalogSnare = 0;
int lastAnalogCrash = 0;
int lastAnalogMtom = 0;
int lastAnalogHtom = 0;
int lastAnalogLtom = 0;
int lastAnalogRide = 0;
int analogSmooth = 10;   

void setup()
{
  pinMode(Bass, INPUT);
  Serial.begin(9600);
}

void loop()
{
  int rsnare = 0;
  int rcrash = 0;
  int rmtom = 0;
  int rltom = 0;
  int rhtom = 0;
  int rride = 0;

// Pedal do BASS
     if (digitalRead(Bass) == LOW) {
         noteOn(midiChannel,35,85);
         delay(100);
         noteOn(midiChannel,35,0);
     }   

  // SNARE
  rsnare = analogRead(snare)/8; // 0-1024 into 0-127
  if (abs(rsnare-lastAnalogSnare) > analogSmooth) {
    lastAnalogSnare = rsnare;
    noteOn(midiChannel,DK2[0],rsnare);
  }

  //  CRASH
  rcrash = analogRead(crash)/8; // 0-1024 into 0-127
  if (abs(rcrash-lastAnalogCrash) > analogSmooth) {
    lastAnalogCrash = rcrash;
    noteOn(midiChannel,DK2[1],rcrash);
  }
 
  // LTOM
  rltom = analogRead(ltom)/8; // 0-1024 into 0-127
  if (abs(rltom-lastAnalogLtom) > analogSmooth) {
    lastAnalogLtom = rltom;
    noteOn(midiChannel,DK2[2],rltom); 
  } 
 
  //  MTOM
  rmtom = analogRead(mtom)/8; // 0-1024 into 0-127
  if (abs(rmtom-lastAnalogMtom) > analogSmooth) {
    lastAnalogMtom = rmtom;
    noteOn(midiChannel,DK2[3],rmtom); 
  }
 
   //  HTOM
  rhtom = analogRead(htom)/8; // 0-1024 into 0-127
  if (abs(rhtom-lastAnalogHtom) > analogSmooth) {
    lastAnalogHtom = rhtom;
    noteOn(midiChannel,DK2[4],rhtom); 
  }   
 
  //  RIDE
  rride = analogRead(ride)/8; // 0-1024 into 0-127
  if (abs(rride-lastAnalogRide) > analogSmooth) {
    lastAnalogRide = rride;
    noteOn(midiChannel,DK2[5],rride); 
  }   
}

void noteOn(byte channel, byte note, byte velocity) {
  midiMsg(channel+0x90, note, velocity);
  delay(50);

}

void midiMsg(byte cmd, byte data1, byte data2) {
  digitalWrite(outPin,HIGH);  // indicate we're sending MIDI data
  Serial.print(cmd, BYTE);
  Serial.print(data1, BYTE);
  Serial.print(data2, BYTE);
  digitalWrite(outPin,LOW);
}


Sei que o código está um pouco trapalhão mas isso depois arranja-se melhor... É que o tempo para estes projectos não e muito então tem de ser sempre a aviar... :P
Desde já muito obrigado pela ajuda...

Cumps
AndréD.
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 07 de Abril de 2012, 19:59

Código: [Seleccione]
//------------------------------------//
void noteOn(byte channel, byte note, byte velocity) {
  midiMsg(channel+0x90, note, velocity);
  delay(50);

}

Sei que o código está um pouco trapalhão mas isso depois arranja-se melhor... É que o tempo para estes projectos não e muito então tem de ser sempre a aviar... :P
Desde já muito obrigado pela ajuda...

Cumps
AndréD.

O teu problema está no delay(50);, é que a função delay impede o arduino de executar seja o que for durante o tempo que lhe pedes :) por isso é que não consegues várias notas em simultâneo! :) no meu código fiz uma gestão de tempo diferente, dá uma olhada :)
Título: Re: Arduino Drumkit
Enviado por: microbyte em 07 de Abril de 2012, 20:51
Em MIDI, o conceito "ao mesmo tempo" são 2 comandos de NoteON enviados em sequência.
Como a taxa de transmissão é elevada, na prática ouvimos os sons ao mesmo tempo, mas quando falamos em programação, são sempre 2 instruções enviadas em sequência.
Título: Re: Arduino Drumkit
Enviado por: AndréD. em 07 de Abril de 2012, 20:59
Boas Micro...

Sim certo, mas por exemplo, se eu deixar o delay(50), nao consigo ter 2 toques (exemplo: bass e o Snare) ao mesmo tempo, ou pelo menos de forma a que "pareça" ser ao mesmo tempo, e se baixar o delay por exemplo para 10, toco no pad e acontece como se eu lá tivesse tocado 5+ vezes... Entendes?

Nao estou muito bem a ver como eide resolver a coisa... Ja estive a ver o código do TCustodio, mas não entendi grande coisa... :P

Agora é hora da JANTA... depois volto a pegar nisto... quero ver se deixo o prototipo acabado este fds para depois no próximo fazer uns pads maiores e os suportes e tal... Acabamentos vá...

Cumps
AndréD.
Título: Re: Arduino Drumkit
Enviado por: microbyte em 07 de Abril de 2012, 21:27
Boas Micro...

Sim certo, mas por exemplo, se eu deixar o delay(50), nao consigo ter 2 toques (exemplo: bass e o Snare) ao mesmo tempo, ou pelo menos de forma a que "pareça" ser ao mesmo tempo, e se baixar o delay por exemplo para 10, toco no pad e acontece como se eu lá tivesse tocado 5+ vezes... Entendes?

Nao estou muito bem a ver como eide resolver a coisa... Ja estive a ver o código do TCustodio, mas não entendi grande coisa... :P

Agora é hora da JANTA... depois volto a pegar nisto... quero ver se deixo o prototipo acabado este fds para depois no próximo fazer uns pads maiores e os suportes e tal... Acabamentos vá...

Cumps
AndréD.
Boas André.

Tu não podes fazer delay, porque literalmente vais deixar o Arduino a dormir durante N milisegundos.
Eu percebo o problema, tem a ver com o debounce, que o Tiago falou anteriormente no tópico.

Tens de fazer uma espécie de delay para cada um dos pads, mas sem usar o delay. Isto é, criares uma espécie de timer para cada pad que faz reset (e envia o comando MIDI) quando bates no pad respectivo e começa a contar até X, ignorando tudo o que se passar com esse pad até atingires esse valor.

Na prática é um contador para cada pad, que incrementas a cada loop, tens é de jogar com o tal valor X, que pode ser diferente para diferentes pads.

Cumps,
Ricardo Dias
Título: Re: Arduino Drumkit
Enviado por: AndréD. em 07 de Abril de 2012, 21:46
Boas...

Sim, mas depois vou perder a possibilidade de encurtar o Som visto que o pad fica a "fazer contas" por aquele x tempo...

Cumps
AndréD.
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 07 de Abril de 2012, 22:09
não, não perdes a capacidade de encurtar o som... até podes depois definir um tempo de espera específico para cada som (reparei que no bass kick tens 100ms)

vou tentar explicar-te mais ou menos como fazer o que queres e também permitindo o uso de outros pads :)
ao usares o delay, impedes que o som se repita indevidamente, mas também impossibilitas o uso dos outros pads, pois estás a obrigar o arduino a bloquear durante 50ms. então temos que arranjar uma forma de esperar na mesma os teus 50ms mas sem que o arduino bloqueie.

Vou considerar apenas partes do meu código, não a sua totalidade.
isto são as declarações iniciais e o setup:
Código: [Seleccione]
short nota[6] = {32, 34, 36, 37, 39, 41};   //aqui digo quais os sons que quero nos meus pads
short valor[6] = {0, 0, 0, 0, 0, 0};        //aqui guardo a intensidade com que bati em cada prato da última vez
long tempo[6] = {0, 0, 0, 0, 0, 0};         //aqui registo quando foi a última vez que bati em cada pad

short canal_bateria = 9;
short threshold = 10;    //um limiar, se os valores lidos nos pads forem superiores a este, considero-os como batidas válidas
short debounce = 50;    //isto é o tempo para esperar entre cada batida (é como o teu delay)
short pratos = 6;

short i = 0;

void setup() {
  Serial.begin(31250);
}
até aqui tudo bem. Vou agora considerar um loop() simples:
Código: [Seleccione]
void loop() {
  for(i = 0; i < pratos; i++){    //tudo acontecerá num ciclo que vai ler as 6 portas analógicas e vai processar tudo

    valor[i] = analogRead(i)/8;    //até aqui, tudo igual ao teu, leio o valor, divido-o por 8 e guardo-o

    if (valor[i] > threshold){    //se o valor lido for superior ao limiar definido, então temos uma batida.
      noteOn(canal_bateria, nota[i], valor[i] + offset);
    }
  }
}
vamos agora adicionar a parte que gere o tempo.
Como lá em cima declarei um array que é suposto guardar quando foi a última vez que bato num pad, vou usá-lo. para isso usamos a função millis(), a função millis() retorna há quanto tempo o arduino está a trabalhar, em mili-segundos.
Código: [Seleccione]
if (valor[i] > threshold){
      noteOn(canal_bateria, nota[i], valor[i] + offset);
      tempo[i] = millis();    //aqui está. estou a guardar em que instante este pad sofreu impacto
    }
Agora é só adicionar a condição para usar o tempo. Temos que ver quando é que a diferença entre o tempo actual e o tempo registado é superior ao tempo que queremos, neste caso 50ms.
Código: [Seleccione]
if ((valor[i] > threshold) && (millis() - tempo[i] >= debounce)){    //aqui está. só será uma batida válida se o valor for superior ao limiar E se o tempo decorrido desde a última batida for superior ao "debounce"
      noteOn(canal_bateria, nota[i], valor[i] + offset);
      tempo[i] = millis();
    }
Título: Re: Arduino Drumkit
Enviado por: AndréD. em 07 de Abril de 2012, 22:53
Boas...

Ok, ja entendi... 5 Minutos... Vou implementar... Ja Edito este post a dizer como ficou...

Obrigado pelo teu tempo e pela tua explicação...

Cumps
AndréD.
Título: Re: Arduino Drumkit
Enviado por: AndréD. em 07 de Abril de 2012, 23:34
Boas...

A funcionar.... e BEM....
Os números são provisórios, foi so para testar...
Código: [Seleccione]
rride = analogRead(ride)/8; // change 0-1024 into 0-127
if ((rride > 10) && (millis() - tempo[5] >= 50)){    /
      noteOn(midiChannel, DK2[5], rride);
      tempo[5] = millis();
    } 

Algo como isto certo?
Agora isto quer é acabamentos :P

Muito obrigado Tc :P
Breve faço um video decente...

Cumps
AndréD.
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 08 de Abril de 2012, 00:03
Algo como isto certo?
Agora isto quer é acabamentos :P

Sim, é como isso! não te esqueças de tirar os delays :P

Não achas que seria preferível usares arrays e um ciclo para varrer as portas analógicas como eu faço em vez de teres um caso para cada pad? :)
Título: Re: Arduino Drumkit
Enviado por: microbyte em 08 de Abril de 2012, 12:38
Boas.

Vai aqui mais uma posta de pescada...
Questões de optimização:
1. Para aumentar a sensibilidade do threshold, podes comparar directamente com o valor que vem da porta analógica (0-1023), em vez de andares a fazer sempre divisões. Só se ultrapassar o teu treshold é que mapeias para a gama 0-127 para enviar.
2. Para diminuir o atraso entre envios consecutivos, em vez de divisão por 8 faz 3 shifts à direita. Se o compilador for bom é só isto que tem de fazer, mas desconfio que faça mais algumas contas desnecessárias. Quanto menos instruções low-level tiveres, mais rápido se torna o teu sistema.
Título: Re: Arduino Drumkit
Enviado por: senso em 08 de Abril de 2012, 14:23
O compilador optimiza divisões por potências de 2 para shifts, portanto é igual ter >> ou /.
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 08 de Abril de 2012, 17:14
1. Para aumentar a sensibilidade do threshold, podes comparar directamente com o valor que vem da porta analógica (0-1023), em vez de andares a fazer sempre divisões. Só se ultrapassar o teu treshold é que mapeias para a gama 0-127 para enviar.
Bem visto, micro, é uma operação completamente desnecessária! :)

2. Para diminuir o atraso entre envios consecutivos, em vez de divisão por 8 faz 3 shifts à direita. Se o compilador for bom é só isto que tem de fazer, mas desconfio que faça mais algumas contas desnecessárias. Quanto menos instruções low-level tiveres, mais rápido se torna o teu sistema.
O compilador optimiza divisões por potências de 2 para shifts, portanto é igual ter >> ou /.
Acho que o melhor é compilar das duas maneiras e ver se o programa resultante tem o mesmo tamanho :D
Título: Re: Arduino Drumkit
Enviado por: senso em 08 de Abril de 2012, 17:24
Tamanho não quer dizer nada, tem de se ver é o lss e ver o código gerado.
Título: Re: Arduino Drumkit
Enviado por: AndréD. em 08 de Abril de 2012, 17:27
Boas...

So para dar mais uma actualização do projecto...

Acabei de adicionar o "Pedal do Bass", e ja o tive a testar, se bem que a habilidade para tocar bateria é pouca ou nenhuma :P e a latência tbm não ajuda... :P

Aqui fica uma foto do mesmo... Obviu que depois irei fazer uma caixinha bonita para os pedais :P
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fdl.dropbox.com%2Fu%2F7627261%2F2012-04-08%252017.19.15.jpg&hash=356ee48da4e93db03a870cc4142f0d8b33f03dd4)

Cumps
AndréD.
Título: Re: Arduino Drumkit
Enviado por: Tech_JA em 08 de Abril de 2012, 20:44
e a latência tbm não ajuda

AdréD,
Não sei se conheces ou se já instalaste, mas uma maneira de baixar a latencia é usares o driver Asio4All (http://www.asio4all.com/)
Título: Re: Arduino Drumkit
Enviado por: microbyte em 08 de Abril de 2012, 22:30
O compilador optimiza divisões por potências de 2 para shifts, portanto é igual ter >> ou /.
Se é como dizes, é fixe então :) Não sabia disso...
Título: Re: Arduino Drumkit
Enviado por: senso em 08 de Abril de 2012, 22:33
No caso dos avr's penso que até 2^5 ou 2^7 é mais rápido o shift que a divisão, porque os avr's não têm barrel shiffter e como tal só fazem um shift de cada vez.
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 20 de Abril de 2012, 14:24
Olá amigos do Fórum,

Preciso da ajuda de todos, por favor...
comprei um Arduino mega, piezos, resistores, leds.. driver instalado e tudo..

Até ai tudo bem.. mas não sei como coloca o codigo para os piezos funcionarem, e muito menos para funcionar no VST ezdrum...

Alguem pode me ajudar?

Desde já agradeço!
Título: Re: Arduino Drumkit
Enviado por: JPTuga em 20 de Abril de 2012, 14:28
Seria melhor fazeres um tópico novo, e eu dou-te um ajuda...  ;)
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 20 de Abril de 2012, 15:16
Obrigado  JP Tuga... não sei como criar um tópico... ( rsrsrs) não pode ser por esse que já está aberto não?

Valeu mesmo
Título: Re: Arduino Drumkit
Enviado por: JPTuga em 20 de Abril de 2012, 15:55
Vais a forum...arduino...e metes novo tópico!  ;)
Título: Re: Arduino Drumkit
Enviado por: iyahdub em 21 de Abril de 2012, 06:26
e a latência tbm não ajuda

AdréD,
Não sei se conheces ou se já instalaste, mas uma maneira de baixar a latencia é usares o driver Asio4All (http://www.asio4all.com/)
Asio4all baixa a latencia consideravelmente, comparado ao driver multimedia, mas ainda vai conservar latencia que e audivel, e que para casos onde acuracia e necessaria( como gravar em overdub) ainda atrapalha um bom bocado. Mas claro esta que dependendo do DAW que utilizares, existem outras maneiras de dar a volta a isso, desde que seja uma latencia constante( o que e um bocado raro).
Mas a falta de comprar uma soundcard que custa centenas de euros dedicada, e o melhor que vais alcancar.
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 21 de Abril de 2012, 14:47
AJUDA... noteOff(canal_bateria, nota); // PORQUE TÁ DANDO ERRO? TEM ALGO ERRADO?


void setup() {
  Serial.begin(31250);
}

void loop() {
    valor = (analogRead(i)/8);
    if ((valor > threshold) && (millis() - tempo >= debounce)){
     
noteOff(canal_bateria, nota); // PORQUE TÁ DANDO ERRO?
     
 noteOn(canal_bateria, nota, valor + offset);
      tempo = millis();
    }
  i++;
  if (i == pratos) i = 0;
}

void noteOn(byte channel, byte note, byte velocity) {
  midiMsg(channel+0x90, note, velocity);
}

void midiMsg(byte cmd, byte data1, byte data2) {
  Serial.print(cmd, BYTE);
  Serial.print(data1, BYTE);
  Serial.print(data2, BYTE);
}
Título: Re: Arduino Drumkit
Enviado por: senso em 21 de Abril de 2012, 15:21
Instalas-te a biblioteca MIDI?
Pelo menos o include da mesma está a faltar.
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 21 de Abril de 2012, 16:35
Mas eu não sei como instalar a biblioteca midi...

me dê uma luz.. por onde começo?
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 21 de Abril de 2012, 16:56
AJUDA... noteOff(canal_bateria, nota); // PORQUE TÁ DANDO ERRO? TEM ALGO ERRADO?


void setup() {
  Serial.begin(31250);
}

void loop() {
    valor = (analogRead(i)/8);
    if ((valor > threshold) && (millis() - tempo >= debounce)){
     
noteOff(canal_bateria, nota); // PORQUE TÁ DANDO ERRO?
     
 noteOn(canal_bateria, nota, valor + offset);
      tempo = millis();
    }
  i++;
  if (i == pratos) i = 0;
}

void noteOn(byte channel, byte note, byte velocity) {
  midiMsg(channel+0x90, note, velocity);
}

void midiMsg(byte cmd, byte data1, byte data2) {
  Serial.print(cmd, BYTE);
  Serial.print(data1, BYTE);
  Serial.print(data2, BYTE);
}

apaga a linha noteOff(canal_bateria, nota);
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 21 de Abril de 2012, 17:40
OK, até aqui...

e agora o que eu faço?

os piezos estão no arduino..

como faço para o som sair no pc?

Obrigadooo
Título: Re:Arduino Drumkit
Enviado por: tcustodio em 21 de Abril de 2012, 18:08
nesta resposta a este tópico é falado qual o software usado:
http://lusorobotica.com/index.php?topic=1237.msg12177#msg12177 (http://lusorobotica.com/index.php?topic=1237.msg12177#msg12177)

Não, eu usei um software que já tinha encontrado no início destas andanças:
http://www.memeteam.net/2007/s2midi/ (http://www.memeteam.net/2007/s2midi/)
usas isso e usas também o midi yoke, ou outro que te crie ligações midi virtuais:
http://www.midiox.com/myoke.htm (http://www.midiox.com/myoke.htm)
Não recomendo o uso do "Serial MIDI" da Spikenzie Labs, pois dá muita latência na devolução dos dados (mas permite dados nos dois sentidos, do computador para o arduino, enquanto que o S2MIDI não permite)
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 21 de Abril de 2012, 18:15
fiz o dowload do midiox,
instale tudo ok.

mas quando vou abrir aparece essa mensagem : there are no midi input devices.

o que será???

o arduino esta conectado no pc.. 

???
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 21 de Abril de 2012, 18:28
fiz o dowload do midiox,
instale tudo ok.

mas quando vou abrir aparece essa mensagem : there are no midi input devices.

o que será???

o arduino esta conectado no pc.. 

???

Com o midi yoke crias portas midi virtuais, com o s2midi encaminhas o que chega do arduino para uma das portas midi virtuais que criaste e ligas a outra porta midi à tua aplicação de preferência :)
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 21 de Abril de 2012, 18:48
dê uma olhada na imagem... >>

o midiox está dando o mesmo erro... o s2midi está funcionado bem, quando eu toco no piezo ele responde..

abrir o fl studio e nada aconteceu...

obrigadoo
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 21 de Abril de 2012, 19:01
dê uma olhada na imagem... >>

o midiox está dando o mesmo erro... o s2midi está funcionado bem, quando eu toco no piezo ele responde..

abrir o fl studio e nada aconteceu...

obrigadoo

Pelo que vejo da tua imagem, já deverias ouvir som, pois estás a encaminhar os dados do arduino para o dispositivo midi padrão do Windows. Se queres usar com outro software, tens que usar o midi yoke para criar "cabos midi virtuais" e usa-los para encaminhar os dados da forma que queres
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 21 de Abril de 2012, 19:18
isso é bom! tou quase lá... amem!

mas o problema é que o midiox não aparece nada. e como eu configuro o midiox?

Título: Re: Arduino Drumkit
Enviado por: tcustodio em 21 de Abril de 2012, 20:28
isso é bom! tou quase lá... amem!

mas o problema é que o midiox não aparece nada. e como eu configuro o midiox?
se configurares um ''cabo midi virtual'' no midi Yoke, não precisas do midiox para nada. configuras o s2midi para enviar os dados do arduino por um dos lados do ''cabo'' e configuras o FruityLoops para receber pelo outro lado do cabo!
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 22 de Abril de 2012, 00:26
Tentei fazer o que voce me orientou tcustodio, mas não sei o que está dando errado...

não tá saindo som nenhum...

veja a imagem em anexo.

onde está o erro?

obrigado por sua atenção
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 22 de Abril de 2012, 02:57
Tentei fazer o que voce me orientou tcustodio, mas não sei o que está dando errado...

não tá saindo som nenhum...

veja a imagem em anexo.

onde está o erro?

obrigado por sua atenção

O que está errado, é que ainda não configuraste um cabo midi virtual no Midi Yoke.

após instalares o midi yoke, vai ao painel de controlo e escolhe o ítem MYokeNT e configura quantas portas queres. (vê a imagem em anexo)

no S2MIDI configuras que queres enviar os dados por um dos cabos virtuais. (vê a imagem em anexo)

depois disto, no Fruity Loops, na lista de dispositivos de Input, deverá aparecer o respectivo cabo midi que configuraste.
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 22 de Abril de 2012, 20:08
ajudar...

estou com problemas na batida do piezo..

fiz tudo como tcustodio postou. tá igual o meu projeto.. mas observe, tem uma led TX na placa que não para de piscar, quando eu abro o FL STUDIO o sinal MIDI fica piscando aleatória com pisca na placa. eu toco no piezo e não sai o som ... mas sai o som no clique do sinal midi sem eu ter tocado no piezo...

e agora???
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 22 de Abril de 2012, 20:40
ajudar...

estou com problemas na batida do piezo..

fiz tudo como tcustodio postou. tá igual o meu projeto.. mas observe, tem uma led TX na placa que não para de piscar, quando eu abro o FL STUDIO o sinal MIDI fica piscando aleatória com pisca na placa. eu toco no piezo e não sai o som ... mas sai o som no clique do sinal midi sem eu ter tocado no piezo...

e agora???

O piscar do led TX significa que o arduino está a enviar dados para o computador, só é suposto acontecer quando bates num piezo. Se quando bates não acontece nada e acontece quando não bates significa que algo está mal ligado (digo isto porque dizes que tens o código igual ao meu).

No entanto, podes sempre fazer debug ao código, de forma a em vez de enviares midi, enviares mensagens de estado como "batida válida" quando bates para tentar despistar problemas de código.
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 23 de Abril de 2012, 03:16
veja  se tem algo errado no código:

short nota[6] = {32, 34, 36, 37, 39, 41};
short valor[6] = {0, 0, 0, 0, 0, 0};
long tempo[6] = {0, 0, 0, 0, 0, 0};

short canal_bateria = 9;
short threshold = 10;
short debounce = 75;
short offset = 20;
short pratos = 4;

short i = 0;

void setup() {
  Serial.begin(31250);
}

void loop() {
    valor = (analogRead(i)/8);
    if ((valor > threshold) && (millis() - tempo >= debounce)){

      noteOn(canal_bateria, nota, valor + offset);
      tempo = millis();
    }
  i++;
  if (i == pratos) i = 0;
}

void noteOn(byte channel, byte note, byte velocity) {
  midiMsg(channel+0x90, note, velocity);
}

void midiMsg(byte cmd, byte data1, byte data2) {
  Serial.print(cmd, BYTE);
  Serial.print(data1, BYTE);
  Serial.print(data2, BYTE);
}

Título: Re: Arduino Drumkit
Enviado por: tcustodio em 23 de Abril de 2012, 03:49
não, não tem nada de errado com o código, é igual ao meu! provavelmente é um problema de montagem.
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 23 de Abril de 2012, 17:22
Refiz a montagem toda.. estou testando só com um piezo.. agora tá normal ( quando eu toco no piezo a placa acende o led tx normalmente sem os picas aleatórios). só não está saindo o som no programa.. baixei outro programa para fazer teste, e deu o mesma coisa, não sai som nenhum. o programa detecta algumas batidas mas não sai som ..

será que é alguma coisa referente as resistências? eu comprei  resistências de 2.2 Mohms e díodos zenner de 5.1V

fiz como está no esquema postado por tcustodio.

o que fazer agora??
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 24 de Abril de 2012, 00:04
Refiz a montagem toda.. estou testando só com um piezo.. agora tá normal ( quando eu toco no piezo a placa acende o led tx normalmente sem os picas aleatórios). só não está saindo o som no programa.. baixei outro programa para fazer teste, e deu o mesma coisa, não sai som nenhum. o programa detecta algumas batidas mas não sai som ..

será que é alguma coisa referente as resistências? eu comprei  resistências de 2.2 Mohms e díodos zenner de 5.1V

fiz como está no esquema postado por tcustodio.

o que fazer agora??

plo que escreves, eu diria que tudo referente ao arduino e aos dados midi está correctamente configurado. sobre sair som, já depende do software que usas. Quando uso o Ableton Live, por exemplo, além de associar a porta midi que quero, tenho que escolher um instrumento e garantir que esse instrumento é audível prás notas que estou a enviar por midi...
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 24 de Abril de 2012, 00:32
então vou baixar o Ableton Live... depois eu te digo se funcioaou.. ok ?

obrigado por tudo..

Jesus te abençõe
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 24 de Abril de 2012, 04:11
Testei no Albleton Live 8, não saiu nada, só ficou piscando... possa ser que o erro está em mim, como eu não sei como funciona o Albleton Live, então tou meio perdido..

tcustodio me oriente, por favor...
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 24 de Abril de 2012, 04:59
Testei no Albleton Live 8, não saiu nada, só ficou piscando... possa ser que o erro está em mim, como eu não sei como funciona o Albleton Live, então tou meio perdido..

tcustodio me oriente, por favor...

Tal como já disse, a parte do arduino está a funcionar, o resto é software que usas no pc.
O S2MIDI diz que estás a receber dados? tens o midi yoke correctamente configurado e o S2MIDI a enviar os dados do arduino para a ligação do midi Yoke? tens o teu software a usar a ligação do midi Yoke como entrada midi? estás a usar essa mesma entrada midi nalgum instrumento no teu software?

eu não tenho o software comigo, pois já não uso isto há muito tempo...
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 24 de Abril de 2012, 05:34
o s2midi eo midi ox , estão recebendo dados normalmente. o software no meu pc esta funcionando também normal, seleciono o instrumento e nada funciona...

não sei mais o que fazer...

vou orar a Deus!

Título: Re: Arduino Drumkit
Enviado por: tcustodio em 24 de Abril de 2012, 05:38
o s2midi eo midi ox , estão recebendo dados normalmente. o software no meu pc esta funcionando também normal, seleciono o instrumento e nada funciona...

não sei mais o que fazer...

vou orar a Deus!

duvido que te valha de muito...

como já disse, o midi ox não te vai servir para nada, a não ser que, como eu, queiras enviar os dados para um dispositivo midi a sério, como um piano/teclado ou qualquer tipo de interface musical. eu desconfio da maneira como tens as coisas configuradas.

Podes anexar aqui screenshots de toda a tua configuração?
Título: Re: Arduino Drumkit
Enviado por: iyahdub em 24 de Abril de 2012, 05:48
Cubase
(por exemplo) tem um indicador luminoso que te deixa ver se esta a receber informacao midi (seja ela quaL FOR, ATE O RODAR DE UM POT com cut off por exemplo).
Isto se nao tiveres acesso a outras maneirtas de veres que mensagens estao a ser enviadas.
Mas o midi OX, se faz aquilo que diz, tb te deixara ver se esta a chegar alguma coisa ao PC ou nao !
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 24 de Abril de 2012, 05:55
Cubase
(por exemplo) tem um indicador luminoso que te deixa ver se esta a receber informacao midi (seja ela quaL FOR, ATE O RODAR DE UM POT com cut off por exemplo).
Isto se nao tiveres acesso a outras maneirtas de veres que mensagens estao a ser enviadas.
Mas o midi OX, se faz aquilo que diz, tb te deixara ver se esta a chegar alguma coisa ao PC ou nao !

Sim, dá, mas não se torna útil para o teu caso.

Se queres simplesmente por a bateria a dar, a configuração mais básica que precisas é:

arduino->pc->s2midi->microsoft GS wavetable synth.

Com esta configuração, tendo o arduino a enviar mensagens para o canal 10 (canal da bateria em midi) tens que ouvir sons. Experimenta fazer o volume das mensagens midis ser máximo em vez de ser proporcional à força com que bates.
Se queres usar no Cubase, FruityLoops ou AbletonLive, a configuração será:

arduino->pc->s2midi->midi Yoke->o teu programa. não pode falhar.
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 24 de Abril de 2012, 06:15
quando coloco microsoft GS wavetable synth. não sai som nenhum. coloco no midi yoke sai som.. mas eu estou batendo forte no piezo para sair um mísero som.. o arduino detecta a sensibilidade do toque no piezo, mas o software não.. o que será??

veja a imagem em anexo..

Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 24 de Abril de 2012, 06:38
veja um video que gravei agora, veja como está...  veja o pisca verde midi do fl studio, estou batendo no piezo

www.youtube.com/watch?v=48mHrfw_iJw&feature=youtu.be (http://www.youtube.com/watch?v=48mHrfw_iJw#ws)
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 24 de Abril de 2012, 16:14
a imagem bastou-me.

no S2MIDI dá pra ver que tipo de mensagens estás a enviar. está qualquer coisa de errado, as mensagens não são constantes e estás a enviar mensagens de ControlChange, só era suposto enviar NoteOn e da mesma nota (se só estás a usar um piezo)
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 24 de Abril de 2012, 16:17
Então tu tens o arduino a enviar dados pela porta série a 31250 baud e tens o S2MIDI a recebê-los a 9600????

assim é óbvio que dá porcaria...
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 24 de Abril de 2012, 16:51
quais os valores que tenho q inserir? S2 midi 9600 >> aumento para quanto? ou é o valor do Serial.begin(31250) que tenho que alterar?

obrigado pelas dicas..
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 24 de Abril de 2012, 16:59
quais os valores que tenho q inserir? S2 midi 9600 >> aumento para quanto? ou é o valor do Serial.begin(31250) que tenho que alterar?

obrigado pelas dicas..

os valores têm que ser iguais, se não forem iguais não funciona. podes experimentar os valores que quiseres
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 24 de Abril de 2012, 17:15
obrigado está funcionado.. hehehe

só tem uma coisinha, as batidas não estão saindo em tempo real. de 5 toques no piezo, só sai 2 notas..

vc poderia me orienta mais uma vez??

desde já obrigado por sua paciência...

Jesus te abençoe
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 24 de Abril de 2012, 17:22
obrigado está funcionado.. hehehe

só tem uma coisinha, as batidas não estão saindo em tempo real. de 5 toques no piezo, só sai 2 notas..

vc poderia me orienta mais uma vez??

desde já obrigado por sua paciência...

Jesus te abençoe

usando o s2midi ficas sempre com latência, pois o programa demora a operar.
uma solução é usar um shield com saídas de midi e usar directamente com uma interface midi.

se só apanhou 2 batidas de 5 isso pode ser um problema de sensibilidade, debounce, pode ser muita coisa, agora é uma questão de experimentares com diferentes valores e encontrares o melhor pra ti
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 24 de Abril de 2012, 21:45
Aguem pode me informar, se um conector serial conectado no arduino, funciona para enviar sinal midi??

http://artesanato.devolts.org/?page_id=303 (http://artesanato.devolts.org/?page_id=303)

essa é a segunda opção

http://todbot.com/blog/wp-content/uploads/2006/10/arduino_midi_schematic.png (http://todbot.com/blog/wp-content/uploads/2006/10/arduino_midi_schematic.png)

alguem pode me ajudar??
Título: Re: Arduino Drumkit
Enviado por: senso em 24 de Abril de 2012, 22:07
O que queres dizer com conector serial?
Midi é uma porta especifica e portanto se queres ligar o Arduino numa porta midi tem de ser mesmo com um conector MIDI.
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 24 de Abril de 2012, 22:19
Então eu vou usar está opção...(https://lusorobotica.com/proxy.php?request=http%3A%2F%2F1.bp.blogspot.com%2F-N1xrc7kith8%2FTyOIo6HeNnI%2FAAAAAAAAAJ4%2FJm62QTfYjnQ%2Fs1600%2FArduino%2BMidi%2BIn.jpg&hash=c282c9cf215a63881bef37469ab6b05c823f44a2)

Título: Re: Arduino Drumkit
Enviado por: iyahdub em 27 de Abril de 2012, 00:21
quais os valores que tenho q inserir? S2 midi 9600 >> aumento para quanto? ou é o valor do Serial.begin(31250) que tenho que alterar?

obrigado pelas dicas..
Midi tem um baud rate de 31250
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 27 de Abril de 2012, 00:40
alguem sabe me informar o porque que o s2midi não lê os sinais enviados???

tem algo errado com o código para enviar o sinal??    //  Done uploading ok.

int ledPin = 13   ;    // Led connected to digital pin 13
int piezo1 = 0   ;     // Piezo 1 connected to analog 0
byte val = 0     ;     // variable to store the value read from the sensor pin
int statePin = 0; // variable used to store the last LED status , to toglle the light
byte THRESHOLD = 100;  // threshold value to decide when the detected sound is a knock or not

void setup() 
{
 pinMode(ledPin, OUTPUT); // declare the ledPin  as OUTPUT
 Serial.begin(31250);  // set MIDI baud rate 


void loop(){
 // deal with first piezo
  val = analogRead(piezo1)/4; 
  if (val >= THRESHOLD) { 
   noteOn (144 , 10, 100);
    digitalWrite(ledPin, HIGH);
    delay(100);
  } 
}


// plays a MIDInote doesn't check to see that cmd is greater  than 127 or that data values are less than 127
void noteOn(char cmd, char data1,char data2) {
  Serial.print(cmd, BYTE);
  Serial.print(data1, BYTE);
   Serial.print(data2, BYTE);
}
 
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 01 de Agosto de 2012, 05:47
Olá Pessoal,
estou com problemas em meu arduino drum kit, é a entrada midi
ele reconhece normal,
bato no piezo e ele dispara um monte de batidas.
não estou conseguindo configurar.
me ajudem por favor!
Agradeço desde já.
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 02 de Maio de 2013, 04:25
Oii pessoal.. Gostaria de mostra a todos vcs como está o meu projeto.. depois de tanto tempo pesquisando, quebrando a cabeça, soldas e montagens. eis o meu arduino drum kit:

video 1 Arduino Drum kit Eletrônico ( Addctive Drums) (http://www.youtube.com/watch?v=A1npwly9sY8#)

Video 2 Drum Kit Arduino (http://www.youtube.com/watch?v=CbhcyQg1_kE#)

Video 3 Arduino Drum kit: Testes finais com música!! (http://www.youtube.com/watch?v=gPfKOWczmhc#)

Só falta o hi-hat aberto.. estou estudando...

Valeu galera pela ajuda!!
ABs.  Jesus abençoe a todos!!!
Título: Re: Arduino Drumkit
Enviado por: iyahdub em 18 de Junho de 2013, 02:56
Cubase
(por exemplo) tem um indicador luminoso que te deixa ver se esta a receber informacao midi (seja ela quaL FOR, ATE O RODAR DE UM POT com cut off por exemplo).
Isto se nao tiveres acesso a outras maneirtas de veres que mensagens estao a ser enviadas.
Mas o midi OX, se faz aquilo que diz, tb te deixara ver se esta a chegar alguma coisa ao PC ou nao !

Sim, dá, mas não se torna útil para o teu caso.

Se queres simplesmente por a bateria a dar, a configuração mais básica que precisas é:

arduino->pc->s2midi->microsoft GS wavetable synth.

Com esta configuração, tendo o arduino a enviar mensagens para o canal 10 (canal da bateria em midi) tens que ouvir sons. Experimenta fazer o volume das mensagens midis ser máximo em vez de ser proporcional à força com que bates.
Se queres usar no Cubase, FruityLoops ou AbletonLive, a configuração será:

arduino->pc->s2midi->midi Yoke->o teu programa. não pode falhar.

Se programares para enviar no channel 10, a partida, resolvias esse problema e minimiza a latencia... Nao ?!
Título: Re: Arduino Drumkit
Enviado por: Thigas Batera em 16 de Julho de 2013, 23:17
Oi Pessoal, já agradecir a Jesus Cristo, e quero agradecer a todos que me ajudou nesse projeto Arduino drum kit. O vídeo a baixo define até que ponto eu cheguei nesse projeto.
Obrigado a todos!
Quem quiser ajuda com esse projeto pode me contactar por esse site ou pro meu email: thyagolukas@yahoo.com.br.
Já estou ajudando várias pessoas.
O que eu demorei quase 2 anos com exagero,(hehehehe) em menos de 1 semana uma parte de pessoas já estão com 70% do projeto pronto e outras já estão 100%, fico feliz por isso... Q eu estou sendo um canal de benção para essas pessoas.
Valeuu genteeee, absss!!

Jesus abençoe a todos

 Arduino Drum kit (http://www.youtube.com/watch?v=p9e9lIsrjAA#)
Título: Re: Arduino Drumkit
Enviado por: TigPT em 17 de Julho de 2013, 11:10
Muito bom, e o seu vídeo tem muito ritmo, estou a ver que tem treinado e tem muito jeito ;)
Título: Re: Arduino Drumkit
Enviado por: tcustodio em 17 de Julho de 2013, 13:05
muito bem! gostei imenso da estabilidade da tua bateria! vou ver se este verão volto a pegar nesse projecto se obtenho resultados apreciáveis! boa continuação! :)
Título: Re: Arduino Drumkit
Enviado por: KaliKeira em 17 de Julho de 2013, 19:00
Muito bom, parabéns  ;)
Título: Re: Arduino Drumkit
Enviado por: tops72 em 20 de Julho de 2013, 21:04
Paraben :D :D estou a seguir o seu projeto e acho que tem uma grande qualidade,foi um dos projetos que segui com muita atenção.

Relembro a malta que o Thiago chegou aqui sem saber programar e agora acabou de fazer uma bateria e ja faz umas coisas engraçadas é de valor a evolução e o empenho do Thiago.


Parabens :D :D
Título: Re: Arduino Drumkit
Enviado por: adiless em 04 de Setembro de 2014, 19:39
oi galera ! ta eu aqui depois de anos que o tópico parou. bom é o seguinte to fazendo essa batera ai ,só que to com os seguintes problemas o mesmo que o nosso amigo  Tiago teve,
eu to usando o "hairless MIDI " só que quando bato no piezo o hairless reconhece varias notas ao mesmo tempo n sei com consertar ,outra coisa tbm eh que to usando um diodo  IN4007 e um resistor de 1 OMS mais quando o bato no piezo não sai nada então deixei só o diodo mesmo no circuito e ficou legal , mais ai o problema do hairless reconhecer varias nota com a mesma batida.
as portas serias tão tudo a msm.
não sei o que fazer.
Título: Re: Arduino Drumkit
Enviado por: jm_araujo em 04 de Setembro de 2014, 21:54
Só agora vi este projeto, <StarRider> e na tua primeira mensagem neste fórum em que nem te apresentaste (começas bem...)</StarRider> noto uma grande ignorância de eletrónica.
Os díodos não são todos iguais. Um retificador de uso geral (1N4007) e um zener de 5.1V não tem um boi a ver, em comum tem a risca no invólucro e pouco mais.
Quanto às resistências 1 MOhm= 1000000Ohm <> 1Ohm, erraste por 6 ordens de grandeza. Aprende os multiplicadores.

Se não sabes não inventes, copia e quando entenderes o que estás a fazer aí podes começar a fazer alterações. Só não mandaste o arduino com as couves porque ainda não bateste no piezo com força...


PS: Se a dúvida era tanga e estás armado em troll, estás no bom caminho...



Título: Re: Arduino Drumkit
Enviado por: dropes em 06 de Setembro de 2014, 15:10
Um piezo de 27mm normal chega a ter de saída 100V, comprovei agora.
As entradas do micro não gostam muito disso e o que é acima da sua tensão de alimentação... dump
Pode-se colocar em paralelo com o piezo um zener de 4.7V ou ligar a entrada do micro ao VCC através de um díodo schottky.