collapse

* Posts Recentes

Meu novo robô por josecarlos
[Ontem às 18:30]


Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

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