collapse

* Posts Recentes

+ LASERs por dropes
[03 de Julho de 2025, 19:35]


Cerca eléctrica por SerraCabo
[14 de Junho de 2025, 23:26]


Alguém arranja motores? por almamater
[10 de Junho de 2025, 22:34]


Condensador 4.7uF 0603 por brunus
[09 de Junho de 2025, 15:52]


Lenovo IdeaPad 3 Não liga por jm_araujo
[07 de Maio de 2025, 19:10]


Identificar Diodo Zenner por filjoa
[01 de Maio de 2025, 23:07]


Meu novo robô por dropes
[18 de Março de 2025, 14:51]


JBL partybox On-The-Go por almamater
[21 de Fevereiro de 2025, 23:32]


Talking Reverse Engineering with an Absolute Legend! por SerraCabo
[13 de Fevereiro de 2025, 09:56]


Motoserra Stihl 120C por brunus
[11 de Fevereiro de 2025, 16:29]

Autor Tópico: Arduino Drumkit  (Lida 110975 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re: Arduino Drumkit
« Responder #105 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? :)
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Arduino Drumkit
« Responder #106 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.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Arduino Drumkit
« Responder #107 em: 08 de Abril de 2012, 14:23 »
O compilador optimiza divisões por potências de 2 para shifts, portanto é igual ter >> ou /.
Avr fanboy

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re: Arduino Drumkit
« Responder #108 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
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Arduino Drumkit
« Responder #109 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.
Avr fanboy

Offline AndréD.

  • Mini Robot
  • *
  • Mensagens: 180
    • AndreD Robotics
Re: Arduino Drumkit
« Responder #110 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


Cumps
AndréD.

Offline Tech_JA

  • Mini Robot
  • *
  • Mensagens: 577
Re: Arduino Drumkit
« Responder #111 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

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Arduino Drumkit
« Responder #112 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...

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Arduino Drumkit
« Responder #113 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.
Avr fanboy

Offline Thigas Batera

  • Mini Robot
  • *
  • Mensagens: 47
  • Jesus é o caminho a verdade e a vida.
Re: Arduino Drumkit
« Responder #114 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!

Offline JPTuga

  • Mini Robot
  • *
  • Mensagens: 125
Re: Arduino Drumkit
« Responder #115 em: 20 de Abril de 2012, 14:28 »
Seria melhor fazeres um tópico novo, e eu dou-te um ajuda...  ;)

Offline Thigas Batera

  • Mini Robot
  • *
  • Mensagens: 47
  • Jesus é o caminho a verdade e a vida.
Re: Arduino Drumkit
« Responder #116 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

Offline JPTuga

  • Mini Robot
  • *
  • Mensagens: 125
Re: Arduino Drumkit
« Responder #117 em: 20 de Abril de 2012, 15:55 »
Vais a forum...arduino...e metes novo tópico!  ;)

Offline iyahdub

  • Mini Robot
  • *
  • Mensagens: 280
Re: Arduino Drumkit
« Responder #118 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
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.
ps-Desculpen a falta de pontuacao, mas vivo no estrangeiro e os teclados sao xenofobos !!

Offline Thigas Batera

  • Mini Robot
  • *
  • Mensagens: 47
  • Jesus é o caminho a verdade e a vida.
Re: Arduino Drumkit
« Responder #119 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);
}