collapse

* Posts Recentes

Nevadent - Não carrega por almamater
[22 de Novembro de 2024, 21:36]


Classmate Leap T304 não liga por almamater
[19 de Novembro de 2024, 07:13]


+ LASERs por dropes
[18 de Novembro de 2024, 21:50]


Dúvida com fonte de alimentação comutada por filjoa
[28 de Outubro de 2024, 21:57]


Motoserra Stihl 120C por dropes
[26 de Outubro de 2024, 19:01]


Shelly em jeito de watchdog por SerraCabo
[24 de Outubro de 2024, 19:24]


Meu novo robô por josecarlos
[06 de Outubro de 2024, 13:33]


Sirene NOVA maluca por dropes
[01 de Outubro de 2024, 18:26]


Transmissão de energia sem fios por dropes
[21 de Setembro de 2024, 16:50]


Spot Welder - O que acham? por jm_araujo
[20 de Setembro de 2024, 09:34]

Autor Tópico: Arduino Drumkit  (Lida 100659 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 #30 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.

  • Solução: usar dois atmegas. Ficamos com 12 ADCs, partilhariam o mesmo cristal, um atmega seria responsável por "espelhar" a informação do outro atmega para a porta midi.

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.  :(



  • Solução!!! usar um multiplexador! (será que agora não me calo cos multiplexadores??) pra quem não souber, um multiplexador é a versão analógica dos expansores de portas digitais, mas como é analógico, pode transportar sinais variáveis para onde queremos. Podemos pensar nele como sendo um router.

Deixo aqui um esquema de como um multiplexador de 16 canais estaria ligado ao arduino:
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:


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...  ::)



 ;D
« Última modificação: 06 de Agosto de 2009, 05:08 por tcustodio »
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline ricardo-reis

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

Offline Fifas

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 2.064
  • El RoboSapiens
Re:Arduino Drumkit
« Responder #32 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 ;)

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re:Arduino Drumkit
« Responder #33 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)
« Última modificação: 06 de Agosto de 2009, 03:08 por tcustodio »
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.338
Re:Arduino Drumkit
« Responder #34 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..

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re:Arduino Drumkit
« Responder #35 em: 06 de Agosto de 2009, 03:18 »
foi tanta coisa que dissemos  ;D
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline Raul

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

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.338
Re:Arduino Drumkit
« Responder #37 em: 06 de Agosto de 2009, 15:08 »
normalmente com o fritzing.. ferramenta open source, mas no photoshop tb se fazem umas coisas.. :)

Offline tcustodio

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

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re:Arduino Drumkit
« Responder #39 em: 06 de Agosto de 2009, 18:50 »
eu gosto de gatafunhos, mas felizmente não sou daltónico  ;D

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  ;)
« Última modificação: 06 de Agosto de 2009, 19:00 por tcustodio »
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re:Arduino Drumkit
« Responder #40 em: 08 de Agosto de 2009, 03:40 »
metade do multiplexador já tem resistências e zeners.. soldar isto está a ser um pesadelo  >:(
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.338
Re:Arduino Drumkit
« Responder #41 em: 08 de Agosto de 2009, 03:55 »
e metade já era.. mete o resto! :D

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re:Arduino Drumkit
« Responder #42 em: 08 de Agosto de 2009, 03:56 »
meto amanhã.. ou quando me apetecer! ;D

agora é hora de chocapic e commandos  ;D
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.338
Re:Arduino Drumkit
« Responder #43 em: 08 de Agosto de 2009, 03:57 »
agora é hora de chocapic e commandos  ;D

ora, mas k boa ideia.. :D

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re:Arduino Drumkit
« Responder #44 em: 08 de Agosto de 2009, 11:38 »
e depois de uma longa directa.. c'est finit!



agora vou dormir...
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.