LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: diogo0880 em 01 de Julho de 2011, 20:36

Título: Modificação de um teclado MIDI
Enviado por: diogo0880 em 01 de Julho de 2011, 20:36
Boas pessoal  ;)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg841.imageshack.us%2Fimg841%2F9672%2Fdsc01261un.jpg&hash=d353a2315e62b3bc0d88ccc9e83a0cc34e6f4264)

Já à uns anos que  tenho o teclado MIDI "midistart-2" da "miditech" (Foto em cima). Apesar de um ser um bom teclado, tem algumas/muitas barreiras (falta de drivers actualizados, falta de botões, potenciómetros e LED's, etc...).
Já fiz inumeras pesquisas sobres todos os problemas com que me deparei ao usar este teclado, mas não obtive grandes respostas... Lembrei-me então de ir à procura de um forum onde me podessem ajudar a solucionar o meu problema.
Apesar de ser muito interessado na matéria, de electrónica só tenho os conhecimentos básicos, e mesmo assim...  :-\  Mas tenho quem me ajude  :)

Mas adiante, em baixo estão algumas fotos do teclado (a parte traseira e a placa de circuito impresso)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg31.imageshack.us%2Fimg31%2F1655%2Ftraseiradescrio.jpg&hash=a49918a7e95abb212d908fbbeed75c46998515f1)
Traseira do teclado MIDI
ATENÇÃO: NÃO É 5V MAS SIM 9V


(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg42.imageshack.us%2Fimg42%2F9886%2Fcircuitoimpressodescrio.jpg&hash=25fffa804e371813be0d18afd2d1ab01001added)
A placa de circuito impresso (desculpem o desfoque da foto, se precisarem de uma mais precisa e só dizer :))
As caixas laranjas simbolizam o que eu suponho serem mais possibilidades de interface



Num outro forum de electrónica, aconcelharam-me o uso da placa arduino (mais especificamente, da UNO) e indicaram este forum como um local onde me podessem ajudar  :)

Não sei bem por onde devo começar...
No forum a que recorri anteriormente, aconcelharam-me o uso da placa "Arduino UNO" e do shield "Sparkfun MIDI Breakout" como meio de interface entre o arduino e o teclado MIDI (através do MIDI THRU). O melhor deste projecto seria também o teclado MIDI funcionar via USB com os programas MIDI

Entretanto surgiram-me algumas duvidas. Como não tenho um orçamento muito grande, não posso gastar dinheiro numa placa que depois não faz o que eu pretendia...


Ajudem-me, precisava mesmo de resolver este problema para tirar maior proveito do software

Alguém me pode ajudar a tornar este "projecto" possivel?
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 02 de Julho de 2011, 00:07
Se queres usar esse teclado ligado ao pc, para usar os dados num programa, será dificil fazer isso com o Arduino, pois vais precisar de um driver para ler o que o Arduino para serial e para transformar esses dados no que os programas estão á espera, e assim, mais barato fica comprar um conversor midi-usb no ebay por meia duzia de euros.
Mas deixo-te aqui alguns links:
http://www.arduino.cc/playground/Main/InterfacingWithHardware#MIDI (http://www.arduino.cc/playground/Main/InterfacingWithHardware#MIDI)
http://itp.nyu.edu/physcomp/Labs/MIDIOutput (http://itp.nyu.edu/physcomp/Labs/MIDIOutput)
http://tomscarff.110mb.com/USB_MIDI/USB_MIDI.htm (http://tomscarff.110mb.com/USB_MIDI/USB_MIDI.htm)
http://shiftmore.blogspot.com/2010/01/quick-and-dirty-arduino-midi-over-usb.html (http://shiftmore.blogspot.com/2010/01/quick-and-dirty-arduino-midi-over-usb.html)

E é claro que tens de programar sempre..
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 02 de Julho de 2011, 13:07
Se queres usar esse teclado ligado ao pc, para usar os dados num programa, será dificil fazer isso com o Arduino, pois vais precisar de um driver para ler o que o Arduino para serial e para transformar esses dados no que os programas estão á espera, e assim, mais barato fica comprar um conversor midi-usb no ebay por meia duzia de euros.
Mas deixo-te aqui alguns links:
http://www.arduino.cc/playground/Main/InterfacingWithHardware#MIDI (http://www.arduino.cc/playground/Main/InterfacingWithHardware#MIDI)
http://itp.nyu.edu/physcomp/Labs/MIDIOutput (http://itp.nyu.edu/physcomp/Labs/MIDIOutput)
http://tomscarff.110mb.com/USB_MIDI/USB_MIDI.htm (http://tomscarff.110mb.com/USB_MIDI/USB_MIDI.htm)
http://shiftmore.blogspot.com/2010/01/quick-and-dirty-arduino-midi-over-usb.html (http://shiftmore.blogspot.com/2010/01/quick-and-dirty-arduino-midi-over-usb.html)

E é claro que tens de programar sempre..

Basicamento o que eu quero é adicionar potenciometros, botoes e LED's ao teclado (ligados ao arduino) e queria ligar o teclado no MIDI-THRU do Shield que indiquei.

Depois, pelas pesquisas que estive a ler, tava a pensar usar o Virtual Com Port (VCP) para converter o sinal usb do arduino (e do teclado) para serial e depois usava o Roland Serial to MIDI driver para converter o serial para MIDI...

Ainda não percebi muito bem a parte da programação  do arduino, mas espero que não seja assim tão complicado como parece  ;D

Como sou novo no assunto e só sei o que é o arduino à umas semanas posso estar a pedir demais dele, não sei se é assim que funciona.
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 02 de Julho de 2011, 13:13
E o que queres fazer com esses leds, botões e potenciometros?
Para os usares tens de os ligar no Arduino, ler os seus valores e transformar isso em sinais MIDI para juntar aos que vêm do teclado.
O sinal que sai do usb do Arduino já é serial.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 02 de Julho de 2011, 13:37
E o que queres fazer com esses leds, botões e potenciómetros?
O objectivo é utilizar os ditos nos programas MIDI

Para os usares tens de os ligar no Arduino, ler os seus valores e transformar isso em sinais MIDI para juntar aos que vêm do teclado.
O sinal que sai do usb do Arduino já é serial.

Queres dizer que o arduino irá funcionar como penso?  :D

Daqui a umas semanas, se tudo correr como quero, vou comprar o arduino e começar as experiencias. Só não sei como me vou orientar com a programação do arduino  :-\
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 02 de Julho de 2011, 13:40
Não sabes programar?
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 02 de Julho de 2011, 13:48
Não sabes programar?

Tenho alguma experiência, só em pascal, e até me entendo com aquilo...
Agora programar uma placa arduino, vamos ver...  ;D
Título: Re: Modificação de um teclado MIDI
Enviado por: Sérgio_Sena em 02 de Julho de 2011, 14:01
Essa breakoutboard serve perfeitamente, com a adenda que o Teclado liga no MIDI-IN, e a saída do sistema é no -OUT.

O Arduino vai ler o MIDI do teclado, e fazer o output. Ou seja, o q o teclado envia é sempre mastigado pelo Arduino.
Esta é uma forma de somar os sinais do teclado com o resto dos botões.


Ou então usa-se um circuito somador MIDI externo, mas vai complicar e encarecer.



No entanto, a programação é importante de saber fazer. Sem isso o Diogo não vai conseguir fazer o projecto.
Apesar do Arduino ser uma boa plataforma de inicio para quem pouco ou nada sabe, vai acabar sempre por aprender programação.

Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 02 de Julho de 2011, 14:16
Essa breakoutboard serve perfeitamente, com a adenda que o Teclado liga no MIDI-IN, e a saída do sistema é no -OUT.

O Arduino vai ler o MIDI do teclado, e fazer o output. Ou seja, o q o teclado envia é sempre mastigado pelo Arduino.
Esta é uma forma de somar os sinais do teclado com o resto dos botões.

É exactamente isso que eu pretendia :)

No entanto, a programação é importante de saber fazer. Sem isso o Diogo não vai conseguir fazer o projecto.
Apesar do Arduino ser uma boa plataforma de inicio para quem pouco ou nada sabe, vai acabar sempre por aprender programação.

Não tenho problemas em ter de aprender a programar o arduino, pelo contrário... Mas é assim tão dificil?
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 02 de Julho de 2011, 14:29
Não, é facil, se percebes pascal tambem vais acabar por perceber o C/C++.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 02 de Julho de 2011, 15:23
Não, é facil, se percebes pascal tambem vais acabar por perceber o C/C++.

Ah ok, então é facil orientar-me com umas pesquisas certo?

Diz-me só uma coisa, sabes que tipo de potenciómetros é que são compatíveis com o arduino? (resistência, etc)
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 02 de Julho de 2011, 16:18
Qualquer potenciometro, desde que tenha 3 patas está tudo bem, podes usar de 10Kohm lineares que são muito comum e baratos.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 03 de Julho de 2011, 10:42
Qualquer potenciometro, desde que tenha 3 patas está tudo bem, podes usar de 10Kohm lineares que são muito comum e baratos.

Ok, obrigado :)

Só mais uma coisa. Seguindo o exemplo de ligação do asena, teria de comprar também a interface MIDI-USB? Ou o sinal do teclado vinha juntamente com o do arduino por USB?
Título: Re: Modificação de um teclado MIDI
Enviado por: Sérgio_Sena em 03 de Julho de 2011, 11:03
mas afinal o q queres fazer ?

ligar o MIDI ao computador, ou ligar todo o sistema por USB ?
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 03 de Julho de 2011, 14:59
mas afinal o q queres fazer ?

ligar o MIDI ao computador, ou ligar todo o sistema por USB ?

O ideal seria o sistema todo por USB...   :-\
Título: Re: Modificação de um teclado MIDI
Enviado por: Sérgio_Sena em 03 de Julho de 2011, 16:25
Podes fazer isso, mas o q está no PC para fazer a leitura dos dados ?

Queres usar o teclado para fazer de sintetizador com o teu software?  tens q saber q tipo de informação é enviada por USB.
Título: Re: Modificação de um teclado MIDI
Enviado por: Sérgio_Sena em 03 de Julho de 2011, 17:07
A ELEKTOR de Novembro de 2000, portuguesa, tem um Misturador MIDI.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 03 de Julho de 2011, 18:13
Podes fazer isso, mas o q está no PC para fazer a leitura dos dados ?

Queres usar o teclado para fazer de sintetizador com o teu software?  tens q saber q tipo de informação é enviada por USB.

Sim, o sinal MIDI é lido num programa como sintetizador e os potenciómetros, botões e LED's extra seria para controlar outras funções do programa (o software permite atribuir um determinado sinal/botão a uma determinada função)

Tudo o que precisava é que o PC reconhece-se o sinal do teclado e o sinal do arduino como MIDI.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 03 de Julho de 2011, 18:16
A ELEKTOR de Novembro de 2000, portuguesa, tem um Misturador MIDI.

E como funciona isso? estive a procura dessa edição na net mas não encontrei nada disponivel  :-\
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 20 de Julho de 2011, 23:55
Olá, Diogo, só agora reparei neste tópico, mas creio conseguir ajudar!

Nalguns projectos meus com midi (que andam por aqui plo fórum) também me deparei com o problema de o arduino enviar os dados para o computador e ter um software (ableton, korg m1) a reconhecer os dados enviados.
O arduino apenas envia dados por uma porta série, nada mais. No computador, o que vês, é uma porta série, logo, tens que arranjar uma maneira de, por software, pegar nos dados que chegam pela porta série e enviá-los para uma porta midi.
Falaste numa driver da Roland para "converter" uma porta série para midi: já ouvi falar, mas nunca usei, sei que existe uma driver semelhante da korg.
Podes consultar o que fiz neste tópico: http://lusorobotica.com/index.php?topic=1237.0 (http://lusorobotica.com/index.php?topic=1237.0)
Mesmo assim resumo aqui o método que usei:

Quanto à ligação de potenciómetros, leds e botões no arduino e ao uso do MIDI breakout shield da sparkfun creio também te poder ajudar, pois tenho um comprado recentemente :)

Vai dando notícias!
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 21 de Julho de 2011, 12:12
tenho boas notícias...

Já é possível fazer um Arduino UNO identificar-se ao computador como sendo um dispositivo MIDI nativo :)

http://arduino.cc/en/Hacking/MidiWith8U2Firmware (http://arduino.cc/en/Hacking/MidiWith8U2Firmware)

Consiste em alterar o firmware que vem no chip que se identifica ao computador como uma porta série!
Não te recomendo a testar de imediato esta solução, pois ao fazeres "desaparecer" a porta série do arduino não consegues programá-lo directamente com o pc... Tendo outro arduino é fácil!

Pronto, vou comprar um UNO ;D
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 21 de Julho de 2011, 21:15
Desde já um grande obrigado pela ajuda neste meu primeiro projecto tcustodio :D

Já tinha lido alguns sites que mencionavam o método de comunicação que disseste :)

Como disse no inicio do tópico nao sou, nem perto, um expert na matéria e como se está a aproximar a data em que vou meter as maos na "massa", começo a ficar com as duvidas no material que hei-de comprar, etc...

A minha primeira grande duvida é se ao usar o MIDI Breakout Shield da Sparkfun, o arduino enviaria tambem os dados do teclado MIDI por usb ou se teria de comprar uma interface MIDI-USB para enviar os dados para o pc.

Outra duvida que surgiu durante as minhas pesquisas é se estou limitado ao numero de I/O do arduino ou se há alguma alternativa (sem ser o Mux Shield da Mayhew Labs que é bastante caro). Fiz mais pesquisas e encontei o chip 74HC595 (http://bildr.org/2011/02/74hc595/ (http://bildr.org/2011/02/74hc595/)), mas não percebi bem como funciona e se faria o que quero  :-\

Sabes algumas soluções para este problema?
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 21 de Julho de 2011, 21:20
O 595 só serve para saidas, mas há outros que servem para entrada, ou usas um port expander por i2c por exemplo que faz entrada e saida, tens deles da microchip que com apenas 2 pinos ganhas 16 pinos de IO.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 21 de Julho de 2011, 22:10
O 595 só serve para saidas, mas há outros que servem para entrada, ou usas um port expander por i2c por exemplo que faz entrada e saida, tens deles da microchip que com apenas 2 pinos ganhas 16 pinos de IO.

Obrigado pela ajuda senso, eu vou pesquisar mais sobre o assunto e sobre esse tal chip que falas :) Mas usar esses chips para expandir os pinos de IO do arduino não afectam o desempenho nem progedicam o proprio arduino pois nao? (desculpa a ignorancia :-\)

Só mais uma coisa, consegues-me informar sobre aquele problema da interface? Já pesquisei em vários sites mas nao encontro nenhuma informação sobre isso...
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 21 de Julho de 2011, 22:21
olá diogo,

não tens que agradecer, estamos aqui é para partilhar e ajudar!

Tendo o Arduino Uno a identificar-se ao computador como sendo um dispositivo midi, já não precisarias de uma interface USB-MIDI, pois o arduino já seria a tua interface!
Eu, no teu caso, não usaria o sparkfun midi breakout neste projecto, este shield com o arduino fica com uma altura muito grande (não caberia no teclado), claro que podes usar o shield na mesma, ao lado do arduino, com fios a estabelecer as ligações necessárias!
eu construiria uma porta midi e montava-a no próprio teclado. (até era capaz de ir mais longe: soldaria fios nos terminais da porta midi que já está no teclado para ligar ao arduino, assim não havia necessidade de ter um cabo cá fora)
Quanto ao número de pinos do arduino serem ou não suficientes para o trabalho, depende muito de quantos leds, botões e potenciómetros quiseres por.
Se quiseres mais que 6 potenciómetros, eu usaria um multiplexador, são fáceis de usar e não custa perceber como escrever código para os usar.
para leds e botões, se forem muitos, recomendo um expansor de portas i/o como o senso falou!
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 21 de Julho de 2011, 22:34
olá diogo,

não tens que agradecer, estamos aqui é para partilhar e ajudar!

Tendo o Arduino Uno a identificar-se ao computador como sendo um dispositivo midi, já não precisarias de uma interface USB-MIDI, pois o arduino já seria a tua interface!
Eu, no teu caso, não usaria o sparkfun midi breakout neste projecto, este shield com o arduino fica com uma altura muito grande (não caberia no teclado), claro que podes usar o shield na mesma, ao lado do arduino, com fios a estabelecer as ligações necessárias!
eu construiria uma porta midi e montava-a no próprio teclado. (até era capaz de ir mais longe: soldaria fios nos terminais da porta midi que já está no teclado para ligar ao arduino, assim não havia necessidade de ter um cabo cá fora)

Estou a perceber a tua ideia :) E se por acaso precisasse de programar novamente o arduino? Há maneira se rever a actualização de Firmware? E quando ao soldar os fios nos terminais da porta midi do teclado, isso desactivava a porta original do piano?

Quanto ao número de pinos do arduino serem ou não suficientes para o trabalho, depende muito de quantos leds, botões e potenciómetros quiseres por.
Se quiseres mais que 6 potenciómetros, eu usaria um multiplexador, são fáceis de usar e não custa perceber como escrever código para os usar.
para leds e botões, se forem muitos, recomendo um expansor de portas i/o como o senso falou!

Provavelmente davam-me jeito ambos ;D  Que modelos de multiplexador e de expansor de portas i/o usarias?
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 21 de Julho de 2011, 22:43
Citar
E se por acaso precisasse de programar novamente o arduino? Há maneira se rever a actualização de Firmware?
Sim, é possível reverter o firmware para o original!
Citar
E quando ao soldar os fios nos terminais da porta midi do teclado, isso desactivava a porta original do piano?
Não, não a desactiva, continuas a poder usá-la para outra coisa qualquer, se quiseres! :)
Citar
Que modelos de multiplexador e de expansor de portas i/o usarias?
Para um multiplexador, acho que consegues arranjar facilmente em qualquer loja de electrónica este: HEF4067BP, é um multiplexador de 16 portas!
Para um expansor de portas lógicas, nunca usei nenhum da microchip, porém, conheço o MAX6956 da Maxim, mandei vir umas amostras do próprio fabricante!
eu tenciono fazer o mesmo que tu a dois teclados que por aqui tenho, mas tenciono por também um ecrã :P
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 22 de Julho de 2011, 13:19
Sim, é possível reverter o firmware para o original!

Então já me agrada muito mais a ideia :D

Citar
Não, não a desactiva, continuas a poder usá-la para outra coisa qualquer, se quiseres! :)

Ainda bem porque eu estive a olhar bem para o tamanho do piano e para o que quero fazer e reparei que não tenho assim tanto espaço... Neste momento estou a pensar em fixar uma caixa externa ao teclado (removível) e usar um cabo (definido na altura, de acordo com a necessidade de pinos) para conectar o teclado a tal caixa. Nessa caixa punha a maior parte dos controlos do arduino e o próprio arduino.

Citar
Para um multiplexador, acho que consegues arranjar facilmente em qualquer loja de electrónica este: HEF4067BP, é um multiplexador de 16 portas!
Para um expansor de portas lógicas, nunca usei nenhum da microchip, porém, conheço o MAX6956 da Maxim, mandei vir umas amostras do próprio fabricante!
eu tenciono fazer o mesmo que tu a dois teclados que por aqui tenho, mas tenciono por também um ecrã :P

Vou pesquisar um pouco sobre esses componentes ;)
Eu já tinha pensado em acrescentar um ecrã, vou pesquisar sobre isso porque é realmente uma boa ideia

Só não sei como me vou safar na programação do arduino com tanta I/O que quero acrescentar ;D
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 22 de Julho de 2011, 13:27
Consegues programar tudo, fazendo uma coisa de cada vez!
Se vais fazer tudo fora do piano, eu faria a caixa de maneira a que ela encaixe directamente no piano! Ou então pelo menos já podes usar o MIDI breakout shield :)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 22 de Julho de 2011, 13:43
Consegues programar tudo, fazendo uma coisa de cada vez!
Se vais fazer tudo fora do piano, eu faria a caixa de maneira a que ela encaixe directamente no piano! Ou então pelo menos já podes usar o MIDI breakout shield :)

A caixa vai encaixar directamente no piano :) O tal cabo de que falei e para poder remover essa caixa sempre que quiser sem ter complicações

Quando ao MIDI breakout shiled, como apenas me interessa a entrado do teclado no arduino, e se da para faze-lo directamente no arduino, entao prefiro a tua ideia de soldar directamente ;D

Muito provavelmente vou mandar vir o material este fim de semana pois na 4ª feira acabam os exames e depois é só dedicar-me a este projecto. Só não sei onde posso comprar os dois chips de que me falaste ... Tou a pensar mandar vir o arduino e os componentes pela In Motion, é uma boa escolha?
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 22 de Julho de 2011, 22:25
Os componentes dificilmente a inMotion tem, para esses chips o melhor que tens cá é provavelmente a Sonigate, que envia por correio.
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 22 de Julho de 2011, 23:00
A única coisa que não havia na inmotion é o mux e o i// expander! De resto comprei lá os meus arduinos e o midi breakout shield!
O i// expander manda-se vir da fabricante :P
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 22 de Julho de 2011, 23:42
A única coisa que não havia na inmotion é o mux e o i// expander! De resto comprei lá os meus arduinos e o midi breakout shield!
O i// expander manda-se vir da fabricante :P

Eu estava a ver agora preços e os da inmotion pareceram-me mais em conta... Estou a pensar em mandar vir o arduino de la e secalhar também os LED's. Podem-me dizer a média de preço por LED?
Não sei ainda onde vou comprar os potenciómetros e os botões a um bom preço (Não queria gastar muito :-X)

O Senso sugeriu-me potenciómetro simples de 10k (na sonigate é 5€, não sei se é a média por potenciómetro)

Estavas a dizer que mandaste vir o I/O Expander directamento do fabricante, que é a maxim certo?
E quanto ao mux? Sabes onde o posso comprar? Em sites portugueses não encontrei nada, pelo menos vísível no google  :-\
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 22 de Julho de 2011, 23:46
Um potenciometro nem 1€ custa, acho eu lol, que já comprei os meus á muito muito tempo, mas 5€ de certeza que não tudo menos normais.
Os leds o mais barato é mesmo no eBay.
Título: Re: Modificação de um teclado MIDI
Enviado por: CBX em 23 de Julho de 2011, 00:31
holy %&$#

http://www.sonigate.com/pt/product/show_details/25567/Potenciometro-Metal-Simples-10K-Linear (http://www.sonigate.com/pt/product/show_details/25567/Potenciometro-Metal-Simples-10K-Linear)

lucro de 1000%?
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 23 de Julho de 2011, 00:34
realmente, um potenciómetro por 5€ é obra... os leds recomendo no ebay. e até mesmo os potenciómetros lá podes encontrar baratos (em packs). Queres leds de que tipo? eu suponho que sendo pra por no teclado servirão apenas de mostradores de on/off ou a piscar... pra isso aqueles de baixo brilho servem e arranja-los em qualquer loja de electrónica. No Porto apenas conheço a Supertécnica e aqui em Coimbra conheço a ElectronicShop, o Centro Electrónico de Coimbra e a Mixtrónica. O mux de que te falei comprei cá em Coimbra, não deve ser difícil encontrá-lo noutra loja qualquer!
Se não te apetecer ter trabalho a procurar leds e potenciómetros, também tens a nano loja do Njay (http://embeddeddreams.com/users/njay/comps.php) (olha a graxa), ele vende leds de baixo brilho a 20 cêntimos e potenciómetros a 85 cêntimos, mas estão esgotados agora!

Pá, tens muitas hipóteses, mas tu é que decides!
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 23 de Julho de 2011, 00:35
holy %&$#

http://www.sonigate.com/pt/product/show_details/25567/Potenciometro-Metal-Simples-10K-Linear (http://www.sonigate.com/pt/product/show_details/25567/Potenciometro-Metal-Simples-10K-Linear)

lucro de 1000%?

F...  :-X
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 23 de Julho de 2011, 15:59
Ya eu assustei-me um bocado com aquele preço ;D

Que tipos de leds ha? Eu queria leds para on/off, para piscar, rgb e secalhar tambem queria usar uns com fade :) Quanto ao brilho, apenas queria que tivessem o suficiente para eu os ver bem num ambiento iluminado :)

Bem mas se os LED's e os potenciómetros são assim tão baratos já fico mais descansado  ;D
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 23 de Julho de 2011, 17:30
O fade é feito por ti e não pelo led.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 24 de Julho de 2011, 01:46
O fade é feito por ti e não pelo led.

Sim sim eu sei, mas qualquer led o pode fazer certo?
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 24 de Julho de 2011, 01:48
Claro.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 24 de Julho de 2011, 02:30
ah ok, obrigado senso :)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 27 de Julho de 2011, 22:46
Pessoal ja tenho preços :)  Que acham dos preços?

     DIMOFEL (LISBOA)

     INMOTION (ONLINE)
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 27 de Julho de 2011, 22:51
Esse potenciometros andam com um preço que até mete medo :/
E as resistencias são um bocadinho baixas para os leds, deviam ser de 270Ohms.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 27 de Julho de 2011, 23:05
Esse potenciometros andam com um preço que até mete medo :/

Pois também estranhei porque aqui tinham dito preços mais baixos... Onde os posso comprar sem ser no eBay?

Citar
E as resistencias são um bocadinho baixas para os leds, deviam ser de 270Ohms.

Eu tinha visto num site qual era o valor, mas devo ter visto mal porque pesquisei de novo e é como dizes, de 300 a 2Kohms  :-\
Olha agora ja comprei estas para testar, combinuas para fazer os testes e quando for para montar compro as certas :)
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 27 de Julho de 2011, 23:07
Provavelmente vais é reduzir o tempo de vida dos leds, e se forem meio sensiveis até os podes queimar.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 27 de Julho de 2011, 23:09
Provavelmente vais é reduzir o tempo de vida dos leds, e se forem meio sensiveis até os podes queimar.

Se combinar as resistências não obtenho o valor certo para os LED's?
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 27 de Julho de 2011, 23:10
Podes meter duas em série para cada um, ou três para teres a certeza que não estragas nada.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 27 de Julho de 2011, 23:14
Podes meter duas em série para cada um, ou três para teres a certeza que não estragas nada.

Pois era o que pensei, agora, em fazer. Depois quando for preciso compro as resistências adequadas.
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 27 de Julho de 2011, 23:22
Pessoal ja tenho preços :)  Que acham dos preços?

     DIMOFEL (LISBOA)
  • Potenciómetro linear 10K - 3.60€
  • Botão de Potenciometro - 1.1€
  • LED's 5mm - Depende da cor. Comprei, para testes, 5 LED's vermelhos por 0.75 €
  • Suportes para LED's 5mm - 10 por 1.20€
  • Resistências carvão 1/4W 100 ohms - 10 por 0.30€
  • Interruptor tipo tecla (para testes) - 2 por 0.26€
  • Interruptor tipo alavanca (havia um mais barato mas com um movimento mais pesado, ainda por considerar) - 1.01€

     INMOTION (ONLINE)
  • Arduino UNO - 20.00€

de facto, esses potenciómetros...  :-X

Atenção a uma coisa, na InMotion os preços são apresentados sem IVA, está avisado no site...
o arduino uno ficará em 24.6€
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 27 de Julho de 2011, 23:53
Citar
de facto, esses potenciómetros...  :-X

Sabes onde posso comprar potenciómetros bons por um bom preço, sem ser no eBay?  :-\

Citar
Atenção a uma coisa, na InMotion os preços são apresentados sem IVA, está avisado no site...
o arduino uno ficará em 24.6€

Ah ok... Nao tinha reparado nesse "pequeno" promenor  :-X
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 28 de Julho de 2011, 00:03
Sabes onde posso comprar potenciómetros bons por um bom preço, sem ser no eBay?  :-\
Sinceramente não tenho uma resposta concreta para ti. O máximo que já dei por um potenciómetro foram 2€. Os da InMotion custam +/- 1.20€ só que são logarítmicos...
Citar
Ah ok... Nao tinha reparado nesse "pequeno" promenor  :-X
É comum não se reparar, mas como está avisado não há desculpas depois quando temos a surpresa desagradável...
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 28 de Julho de 2011, 00:08
Citar
Sinceramente não tenho uma resposta concreta para ti. O máximo que já dei por um potenciómetro foram 2€. Os da InMotion custam +/- 1.20€ só que são logarítmicos...

Pois eu vi-os mas para este caso o mais indicado sera lineares... Eu vou pesquisar e procurar em mais lojas para ver se encontro mais baratos:)

Citar
É comum não se reparar, mas como está avisado não há desculpas depois quando temos a surpresa desagradável...

É verdade, mas agora que ja sei tenho de ter mais cuidado com este site  ;D
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 28 de Julho de 2011, 21:04
Só mais uma coisa... Eu esqueci-me de dizer aqui e de perguntar na Dimofel onde perguntei os preços... Alguns dos potenciómetros que queria tinham de ter ressalto no meio :x

Para alem de potenciómetros lineares de 10k, que outros podem servir para o arduino?
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 28 de Julho de 2011, 21:50
não percebo o que queres dizer com "ressalto no meio" nos potenciómetros  :-\

Qualquer potenciómetro serve, mesmo os logarítmicos, a diferença é que quando os mexes os valores que medes têm um comportamento logarítmico, que normalmente não é o desejado por nós!
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 28 de Julho de 2011, 22:02
Qualquer potenciometro serve para ligar no Arduino, desde que alimentes o potenciometro com menor ou igual voltagem que tens no teu micro-controlador e não queimas nada.
Com ressalto no meio como dizes são potênciometros de pan/fade e provavelmente são estupidamente caros cá em Portugal.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 28 de Julho de 2011, 23:50
não percebo o que queres dizer com "ressalto no meio" nos potenciómetros  :-\
Com ressalto no meio como dizes são potênciometros de pan/fade e provavelmente são estupidamente caros cá em Portugal.

É exactamente o que o senso disse, são aqueles potenciómetros que tem uma zona em que o veio "prende" :) Para este tipo de projecto dava mesmo jeito esses potenciómetros porque muitos dos comandos que vou atribuir eram tipo pan :-\

Qualquer potenciómetro serve, mesmo os logarítmicos, a diferença é que quando os mexes os valores que medes têm um comportamento logarítmico, que normalmente não é o desejado por nós!
Qualquer potenciometro serve para ligar no Arduino, desde que alimentes o potenciometro com menor ou igual voltagem que tens no teu micro-controlador e não queimas nada.

Essa parte dos logaritmos e dos lineares eu sabia que neste caso os lineares eram os mais indicados. :) A minha duvida e se tem de ser mesmo de 10Kohms ou se pode ser mais ou menos
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 29 de Julho de 2011, 00:11
Pode ser de mais, mas de muito mais não convem, porque depois a corrente que é fornecida ao conversor analógico para digital do Arduino é muito reduzida e o teu valor pode ser corrompido por ruido electrico e não vais perceber porque é que os teus valores dos potênciometros anda a dançar por todo o lado.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 29 de Julho de 2011, 00:33
Pode ser de mais, mas de muito mais não convem, porque depois a corrente que é fornecida ao conversor analógico para digital do Arduino é muito reduzida e o teu valor pode ser corrompido por ruido electrico e não vais perceber porque é que os teus valores dos potênciometros anda a dançar por todo o lado.

A estou a perceber... Então 10K é o mais indicado certo?

E em relação a porta MIDI para entrada do sinal do teclado, como a conectaria ao arduino para que este o encaminha-se para o pc via USB? Seria pelo Pino Digital 1 (TX) certo?
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 29 de Julho de 2011, 00:34
Algo entre 5k e 100K é o tipico que tenho visto, mas eu até agora só usei potenciómetros de 10K.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 29 de Julho de 2011, 00:45
Algo entre 5k e 100K é o tipico que tenho visto, mas eu até agora só usei potenciómetros de 10K.

Os de 10K dão um sinal preciso e sem saltos ao arduino?
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 29 de Julho de 2011, 00:56
Sim dão, mas tambem, um teclado não assim nada de muito mau em termos de ruido.
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 29 de Julho de 2011, 01:00
E em relação a porta MIDI para entrada do sinal do teclado, como a conectaria ao arduino para que este o encaminha-se para o pc via USB? Seria pelo Pino Digital 1 (TX) certo?
Os pinos 0 e 1 do Arduino são usados para ele comunicar apenas com o computador. Para receberes os dados do teclado, precisas de outra porta série, neste caso, uma por software, dado que o Arduino só tem uma em hardware e já está a ser usada.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 29 de Julho de 2011, 01:13
Sim dão, mas tambem, um teclado não assim nada de muito mau em termos de ruido.

Desculpa senso, não percebi o que disseste  :-\

Os pinos 0 e 1 do Arduino são usados para ele comunicar apenas com o computador. Para receberes os dados do teclado, precisas de outra porta série, neste caso, uma por software, dado que o Arduino só tem uma em hardware e já está a ser usada.

Então como ligaria a porta MIDI, com sinal vindo do teclado, ao arduino? :o
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 29 de Julho de 2011, 21:05
Estou a pensar em mandar vir o arduino amanha e percisava de saber, o mais rápido possivel, se tenho mesmo de comprar o shield midi ou se há outra alternativa (tou um pouco confuso acerca disso :-\)

Obrigado por toda a ajuda prestada até agora  :D
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 29 de Julho de 2011, 21:23
O shield midi é simplesmente uma placa com tomadas midi, nem mais, nem menos.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 29 de Julho de 2011, 21:35
O shield midi é simplesmente uma placa com tomadas midi, nem mais, nem menos.

Então como farias para conectar o teclado ao arduino para que este, por sua vez, enviasse o sinal do teclado para o pc (via USB)?
Estou um bocado a toa com isto :-X
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 29 de Julho de 2011, 21:39
Soldas um fio ao midi out do teclado, metes esse fio no pino digital 1 se não me engano que é RX do Arduino, e depois o Tx serve para enviares dados por serial para o pc.
Título: Re: Modificação de um teclado MIDI
Enviado por: Sérgio_Sena em 29 de Julho de 2011, 21:40
A maneira mais simples é pôr o Arduino a receber o MIDI do Teclado, juntar-lhe a informação dos botões e potenciómetros (MIDI MERGE), e pôr o Arduino a enviar MIDI.

A mesma porta série pode ser usada, não é necessário emular por software, visto o RX receber o MIDI do Teclado e o TX enviar MIDI para cima.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 29 de Julho de 2011, 21:42
Soldas um fio ao midi out do teclado, metes esse fio no pino digital 1 se não me engano que é RX do Arduino, e depois o Tx serve para enviares dados por serial para o pc.

Eu quando falei disso a pouco disse TX mas enganei-me ;D
Então preciso do TX para enviar os dados para o PC? Não pode ser via USB?
Título: Re: Modificação de um teclado MIDI
Enviado por: Sérgio_Sena em 29 de Julho de 2011, 21:43
Soldas um fio ao midi out do teclado, metes esse fio no pino digital 1 se não me engano que é RX do Arduino, e depois o Tx serve para enviares dados por serial para o pc.

O melhor é usar um circuito óptico para isolar os sinais...  isso depois em palco com as flutuações de rede e terra, pode dar granel. Assim mantém tudo isolado galvânicamente, evita problemas.

Há até umas fontes de alimentação DC/DC isoladas que 5Vin/5Vout, 1W, que são ideias para isso. Costumo usar umas da RECOM que são fantásticas, só tem que ter cuidado para não fazer curto na saida e não passar da potência indicada.

Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 29 de Julho de 2011, 22:11
Soldas um fio ao midi out do teclado, metes esse fio no pino digital 1 se não me engano que é RX do Arduino, e depois o Tx serve para enviares dados por serial para o pc.

Eu quando falei disso a pouco disse TX mas enganei-me ;D
Então preciso do TX para enviar os dados para o PC? Não pode ser via USB?
O usb do Arduino é simplesmente uma porta serial por usb, mas os dados entram e saem pelos pinos digital 0 e 1 que estão ligados á uart do atmega.
Título: Re: Modificação de um teclado MIDI
Enviado por: Sérgio_Sena em 29 de Julho de 2011, 22:16
Acrescentando sobre o tópico de isolamento de sinais ::

Quando fiz a minha pedaleira MIDI, para controlar a minha rack da guitarra, em vez de usar um transformador isolado tipo china/dcdc para alimentar a mesma, resolvi usar a alimentação do pré-amplificador, que disponibiliza DC para sistemas exteriores.
Grande erro.

Logo no inicio das utilizações, notei que havia esporádicamente um ZUM-ZUM de fundo que além de se ouvir no PA (extremamente massador se estiver tudo em silêncio entre músicas), me deixava o CPU da pedaleira maluco. Fazia RESETs nesses periodos, saltava a execução do código... enfim... uma maluqueira.


Fui dar cabo daquilo, até pensava que era do Firmware, filtrei a alimentação... ele foi bobines, ele foi chokes... ele foi condensadores..., melhorou mas não resolveu.
Encontrei o problema no GND, em ruido induzido e propagado.
O GND está interligado algures ao TERRA da rack, e há circulação de correntes parasíticas e EMI por todo o lado, especialmente quando há muita carga indutiva na rede AC onde a rack está ligada. Nem com as filtragens conseguia dar cabo daquilo totalmente.

Cortei a alimentação DC do cabo MIDI, liguei um transformador china a alimentar a pedaleira, e resolvi o problema. A informação é transmitida com opto-isolador, e funciona maravilha.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 30 de Julho de 2011, 01:51
Fogo granda confusão que isto é para mim :o
Tenho de tentar perceber por partes...

1º - A ligação como eu tinha pensado não é possivel certo? (o arduino enviar o sinal do piano por usb)

2º - Não percebi bem onde entre esse tal circuito optico :o

E, definitivamente, não percebi como hei de fazer a ligação :-\


Desculpem a "noobisse"  :-X
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 30 de Julho de 2011, 02:56
1º - A ligação como eu tinha pensado não é possivel certo? (o arduino enviar o sinal do piano por usb)
sim, é possível... A porta usb do arduino é apenas um adaptador usb-porta série, ligado à porta série do ATmega328 que está no arduino (pinos 0 e 1). Como o arduino apenas vai enviar dados para o computador, e segundo as ideias aqui partilhadas, o canal TX da porta série do arduino vai servir para enviares os dados para o computador e sobra-te assim o canal RX. Com o canal RX podemos receber os dados midi do teclado.
Resumindo: Teclado -> RX -> Arduino -> TX -> USB -> Computador.
Citar
2º - Não percebi bem onde entre esse tal circuito optico :o
O optoisolador vai ''isolar electricamente'' a comunicação entre o teclado e o arduino, como já foi dito. Consiste apenas de um chipzito que compras facilmente (acho que é o 4N35) e uma resistência associada. Não tem nada de muito complicado. Se pesquisares sobre optoisoladores rapidamente perceberás como funcionam.
Título: Re: Modificação de um teclado MIDI
Enviado por: Sérgio_Sena em 30 de Julho de 2011, 13:04
O opto-isolador ideal para MIDI é o 6N137/8. Tem a ver com a velocidade de comutação. Não basta comutar o transitor lá dentro, é preciso q o faça rapidamente para a onda de saída ser mesmo quadrada.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 30 de Julho de 2011, 14:38
Ah, então deixem ver se percebi:

O teclado seria conectado ao arduino pelo pino RX. O arduino por sua vez enviaria o sinal via USB para o PC.
O optoisolador (o meu pai já me explicou +/- como é e como funciona) vai ser inserido entre o teclado e o arduino de modo a assegurar o seu correcto funcionamento.
É isto?  :D

Só não percebi onde entrava a tal fonte china de que falavas :o
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 01 de Agosto de 2011, 02:31
Ja mandei vir o arduino e já estive a fazer uns testes :D
Para os LED's vermelhos (os testados) estou a pensar usar resistências de 400 Ohms, pois assim apenas perde uma quantidade insignificante de brilho, em relação a usar resistências de 300 Ohms, e de certeza que aumentará o seu tempo de vida

Não sei bem como calcular a resistencia que devo usar para cada LED :-\ É pela formula R=V/I? É que não me estava a dar valores certos :-X
Título: Re: Modificação de um teclado MIDI
Enviado por: msr em 01 de Agosto de 2011, 04:29
Tens que "descontar" a queda de tensão que o LED impõe nos seus terminais (~2V)
http://en.wikipedia.org/wiki/Light-emitting_diode (http://en.wikipedia.org/wiki/Light-emitting_diode)
http://en.wikipedia.org/wiki/LED_circuit (http://en.wikipedia.org/wiki/LED_circuit)

Por exemplo se a tensão de alimentação for 5V, o LED impõe ~2V e queres que conduza com corrente 20mA. As contas que tens de fazer são:
R = (5-2)/0.020 = 150. Se o valor te desse estranho escolhias um valor próximo (http://www.interfacebus.com/resistor_table.html (http://www.interfacebus.com/resistor_table.html))

Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 01 de Agosto de 2011, 12:08
Tens que "descontar" a queda de tensão que o LED impõe nos seus terminais (~2V)
http://en.wikipedia.org/wiki/Light-emitting_diode (http://en.wikipedia.org/wiki/Light-emitting_diode)
http://en.wikipedia.org/wiki/LED_circuit (http://en.wikipedia.org/wiki/LED_circuit)

Por exemplo se a tensão de alimentação for 5V, o LED impõe ~2V e queres que conduza com corrente 20mA. As contas que tens de fazer são:
R = (5-2)/0.020 = 150. Se o valor te desse estranho escolhias um valor próximo (http://www.interfacebus.com/resistor_table.html (http://www.interfacebus.com/resistor_table.html))

Foi essa a conta que fiz, mas achei muito pouco e nem sequer experimentei... Testei com 400 ohms e ficou a brilhar bastante bem, suponho que também não "cansa" o LED e que lhe prolonga o tempo de vida certo?
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 03 de Agosto de 2011, 20:25
Finalmente tenho ca o arduino :D E mandei vir tambem 2 LED's RGB :)
Infelixmente esqueci-me de mandar vir o multiplexador que tava a 4€ e tal na inmotion (ja com placa de circuito impresso incluida)  :-\

Vou fazer testes e vamos ver o que da  ;D

Só uma coisa... Eu tinha pensado em usar alguns dos interruptores para, alem de controlar o arduino, acender alguns LED's (+/- como está no esquema), mas sei que o arduino apenas fornece 40 mA, o que é limitado para este objectivo certo? Há alguma opção? Já estive a pesquisar e não encontro nada :-\

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg835.imageshack.us%2Fimg835%2F4194%2F97906492.jpg&hash=6e672a45ac842953df72a4eb6a678b4299bd2ed7)

Muito provavelmente o esquema não está bem feito pois para alem de ainda nao dominar muito bem isto, foi feito a pressa, mas acho que dá para perceber o que quero dizer :)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 08 de Agosto de 2011, 01:35
Pessoal daqui a pouco vou de ferias e vou levar o material para continuar as experiências, só que vou estar limitado em termos de internet.
Se me puderem ajudar, precisava de uma ideia da programação necessária para por o arduino a enviar sinais para depois estes serem lidos pelo programa. O meu objectivo será, por exemplo, um potenciómetro ligado ao arduino controlar um potenciómetro virtual... Sabem como o posso fazer?

Precisava de saber isto rapidamente, se der, porque assim podia planear melhor o projecto e começar, então, o projecto em si :)

Obrigado por toda a ajuda prestada até ao momento :D
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 08 de Agosto de 2011, 23:07
FUNCIONA, funcionou com botões e potenciómetros =D Consigui arranjar código que me orientasse e, no Windows XP, consegui po-lo a funcionar (com o MIDI Yoke e o S2MIDI). No Windows 7 e que esta mais dificil detectar, o S2MIDI detecta os sinais e converte para midi, mas não indica um "dispositivo" para os associar :-\

Agora estou a pesquisar como fazer o LED acender por ordem MIDI


----- EDITADO -----


Arranjei um programa alternativo ao MIDI Yoke, o LoopBe1, que trabalha perfeitamente no Windows 7  :P
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 11 de Agosto de 2011, 00:33
Pessoal, não me estou a orientar na programação do LED  :-\

O S2MIDI converte MIDI para Serial? Eu indico ao programa para me acender o led, o programa fá-lo em MIDI mas no S2MIDI não aparece nada, e na placa muito menos :S

Alguem me pode ajudar neste aspecto? É que é mesmo o ultimo teste, depois compro o material todo e começo o projecto em si...
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 11 de Agosto de 2011, 12:44
Do pouco que me lembro, acho que o S2MIDI não converte midi em serial. Ele serve apenas para converter o que sai do arduino para midi. Era aqui que eu testaria a ideia de programar o ATMEGA8U2 do arduino numa interface midi para o arduino se identificar ao computador como sendo um dispositivo midi, mas não é algo que se faça ddo nada, pode ser muito confuso...
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 11 de Agosto de 2011, 18:01
Do pouco que me lembro, acho que o S2MIDI não converte midi em serial. Ele serve apenas para converter o que sai do arduino para midi. Era aqui que eu testaria a ideia de programar o ATMEGA8U2 do arduino numa interface midi para o arduino se identificar ao computador como sendo um dispositivo midi, mas não é algo que se faça ddo nada, pode ser muito confuso...

Pois não dá mesmo já experimentei tudo no S2MIDI :-\
Sabes como posso programar o LED? Botões e Potenciómetro já programei e funcionam 5 estrelas, os LED's e que ta dificil :-X´

----- EDITADO -----

Experimentei usar o Serial - MIDI Converter, da SpikenzieLabs, mas nem o input MIDI funcionou :-\
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 11 de Agosto de 2011, 19:38
primeiro tens que saber a que controlos midi queres que os leds respondam! creio que decidas isso no programa que vás usar com o teu teclado...
Nunca explorei muito isto, mas se me souberes dizer a que controlos queres que os leds respondam, não me parece ser difícil programar esse comportamento.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 13 de Agosto de 2011, 00:03
primeiro tens que saber a que controlos midi queres que os leds respondam! creio que decidas isso no programa que vás usar com o teu teclado...
Nunca explorei muito isto, mas se me souberes dizer a que controlos queres que os leds respondam, não me parece ser difícil programar esse comportamento.

Já estudei um pouco as mensagens MIDI e já percebi +/- como funcionam.
Os LED's iram respondem, por exemplo, ao ligar de uma função. Eles ligam e desligam em função de notas musicas (não me consigo explicar bem)...

Eu acho que já percebi como aquilo funciona e tava pronto a testar algum código para desenvolver a técnica e a minha aprendizagem, mas já estive a procurar e não encontro maneira de converter MIDI -> Serial :-\

Se me conseguires orientar +/- no código pode ser que consiga desenvolver alguma coisa sem testes
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 13 de Agosto de 2011, 22:38
a minha dúvida é se tu queres que os leds acendam em função de uma mensagem midi enviada pelo software no computador ou em função de um evento no próprio teclado! eu suponho que seja a primeira hipótese :)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 14 de Agosto de 2011, 00:19
a minha dúvida é se tu queres que os leds acendam em função de uma mensagem midi enviada pelo software no computador ou em função de um evento no próprio teclado! eu suponho que seja a primeira hipótese :)

Sim é a primeira hipótese. O objectivo é, por exemplo, um LED acender de acordo com os tempos da musica selecionada, logo ele acenderá em função de uma mensagem MIDI enviada pelo software.

Eu encontrei um site onde explica os códigos das mensagens MIDI e já os percebi, só que para os testar é que esta muito dificil :-\
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 15 de Agosto de 2011, 03:18
desculpa não ter tido grande tempo para te ajudar :S

olha, estás a usar a biblioteca MIDI para arduino? com essa biblioteca consegues definir funções que são chamadas automaticamente em determinadas situações (eventos). neste caso, a biblioteca MIDI pode fazer-te com que ao receberes uma mensagem midi, se for uma mensagem Control Change, é chamada uma função que tu definiste, se for outra coisa qualquer, é chamada outra função que tu defines. Chamam-se funções call-back.
sinceramente nunca cheguei a usar esta biblioteca, mas creio que ao usá-la, possas sentir-te mais seguro de que o teu arduino faz exactamente o que queres!

http://www.arduino.cc/playground/Main/MIDILibrary (http://www.arduino.cc/playground/Main/MIDILibrary)
Título: Re: Modificação de um teclado MIDI
Enviado por: tcustodio em 15 de Agosto de 2011, 03:21
acho que encontrei a ferramenta de que precisas para poderes enviar MIDI pela porta série de volta para o arduino :)

http://www.stephenhobley.com/blog/2010/02/15/serial-port-midi-relay/ (http://www.stephenhobley.com/blog/2010/02/15/serial-port-midi-relay/)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 15 de Agosto de 2011, 11:21
desculpa não ter tido grande tempo para te ajudar :S

olha, estás a usar a biblioteca MIDI para arduino? com essa biblioteca consegues definir funções que são chamadas automaticamente em determinadas situações (eventos). neste caso, a biblioteca MIDI pode fazer-te com que ao receberes uma mensagem midi, se for uma mensagem Control Change, é chamada uma função que tu definiste, se for outra coisa qualquer, é chamada outra função que tu defines. Chamam-se funções call-back.
sinceramente nunca cheguei a usar esta biblioteca, mas creio que ao usá-la, possas sentir-te mais seguro de que o teu arduino faz exactamente o que queres!

http://www.arduino.cc/playground/Main/MIDILibrary (http://www.arduino.cc/playground/Main/MIDILibrary)

Eu já tinha visto essa biblioteca MIDI e já a saquei e instalei, mas ainda não vi muito bem o que faz, tenho de dar mais uma olhada no pdf que tras :)

acho que encontrei a ferramenta de que precisas para poderes enviar MIDI pela porta série de volta para o arduino :)

http://www.stephenhobley.com/blog/2010/02/15/serial-port-midi-relay/ (http://www.stephenhobley.com/blog/2010/02/15/serial-port-midi-relay/)

Vou exprimentar e já dou feedback :)

Obrigado por toda a ajuda até agora tcustódio ;)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 15 de Agosto de 2011, 22:35
Não me orientei com o programa e quanto a biblioteca MIDI tambem está dificil perceber :-\

--- EDITADO ---

Tentativas a tras de tentativas e o programa que indicaste não converte nem Serial -> MIDI nem MIDI -> Serial :-\ Estive a procurar da solução no site deles mas não encontrei nada :S:S
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 18 de Agosto de 2011, 15:48
desculpa não ter tido grande tempo para te ajudar :S

Não há problema nenhum amigo, eu agradeço toda a ajuda que tens dado ;)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 31 de Agosto de 2011, 10:58
Definitivamente não consigo fazer com que o programa envie sinais midi para o arduino... :(
O programa em questão é o Traktor, entre outros
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 18 de Setembro de 2011, 16:35
Boas pessoal, em primeiro lugar quero pedir desculpa pela demora, tenho estado com algumas dificuldades em prestar tempo a este projecto :-\
Em segundo lugar quero dizer que encontrei um código em que parece ser a solução para o problema dos LED's ligarem via MIDI. Acontece é que ainda não o consegui por a funcionar... o código é o seguinte:

Código: [Seleccione]
/* Midi In Basic  0.2 // kuki 8.2007
 *
 * -----------------
 * listen for midi serial data, and light leds for individual notes

 IMPORTANT:
 your arduino might not start if it receives data directly after a reset, because the bootloader thinks you want to uplad a new progam.
 you might need to unplug the midi-hardware until the board is running your program. that is when that statusLed turns on.

#####################################################################################################################################################
SOMETHING ABOUT MIDI MESSAGES
 midi messages start with one status byte followed by 1 _or_ 2 data bytes, depending on the command

 example midi message: 144-36-100
   the status byte "144" tells us what to do. "144" means "note on".
   in this case the second bytes tells us which note to play (36=middle C)
   the third byte is the velocity for that note (that is how powerful the note was struck= 100)
 
 example midi message: 128-36
   this message is a "note off" message (status byte = 128). it is followed by the note (data byte = 36)
   since "note off" messages don't need a velocity value (it's just OFF) there will be no third byte in this case
   NOTE: some midi keyboards will never send a "note off" message, but rather a "note on with zero velocity"
 
 do a web search for midi messages to learn more about aftertouch, poly-pressure, midi time code, midi clock and more interesting things.
#####################################################################################################################################################

HARDWARE NOTE:
The Midi Socket is connected to arduino RX through an opto-isolator to invert the midi signal and seperate the circuits of individual instruments.
connect 8 leds to pin2-pin9 on your arduino.

####################################################################################################################################################


 */

//variables setup

byte incomingByte;
byte note;
byte velocity;


int statusLed = 13;   // select the pin for the LED

int action=2; //0 =note off ; 1=note on ; 2= nada


//setup: declaring iputs and outputs and begin serial
void setup() {
  pinMode(statusLed,OUTPUT);   // declare the LED's pin as output
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
 
  //start serial with midi baudrate 31250 or 38400 for debugging
  Serial.begin(31250);       
  digitalWrite(statusLed,HIGH); 
}

//loop: wait for serial data, and interpret the message
void loop () {
  if (Serial.available() > 0) {
    // read the incoming byte:
    incomingByte = Serial.read();

    // wait for as status-byte, channel 1, note on or off
    if (incomingByte== 144){ // note on message starting starting
      action=1;
    }else if (incomingByte== 128){ // note off message starting
      action=0;
    }else if (incomingByte== 208){ // aftertouch message starting
       //not implemented yet
    }else if (incomingByte== 160){ // polypressure message starting
       //not implemented yet
    }else if ( (action==0)&&(note==0) ){ // if we received a "note off", we wait for which note (databyte)
      note=incomingByte;
      playNote(note, 0);
      note=0;
      velocity=0;
      action=2;
    }else if ( (action==1)&&(note==0) ){ // if we received a "note on", we wait for the note (databyte)
      note=incomingByte;
    }else if ( (action==1)&&(note!=0) ){ // ...and then the velocity
      velocity=incomingByte;
      playNote(note, velocity);
      note=0;
      velocity=0;
      action=0;
    }else{
      //nada
    }
  }
}

void blink(){
  digitalWrite(statusLed, HIGH);
  delay(100);
  digitalWrite(statusLed, LOW);
  delay(100);
}


void playNote(byte note, byte velocity){
  int value=LOW;
  if (velocity >10){
      value=HIGH;
  }else{
   value=LOW;
  }

 //since we don't want to "play" all notes we wait for a note between 36 & 44
 if(note>=36 && note<44){
   byte myPin=note-34; // to get a pinnumber between 2 and 9
   digitalWrite(myPin, value);
 }

}

Percebem-no? ???
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 22 de Setembro de 2011, 14:26
Boas Tardes amigos :)
Tenho boas novidades...

Seguindo um esquema eléctrico e um código de programação (colocado no post anterior), consegui fazer com certos LED's ligassem ao pressionar determinadas notas do piano e o arduino continuasse a receber e a enviar sinais para o computador! =D   O resultado na Placa de Testes foi este:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg9.imageshack.us%2Fimg9%2F9996%2Fs1potetecladomidibb.png&hash=61688e2fdb58e724b279cbc1c82642acd2fcb532)

Se quiserem ver o esquema eléctrico, apesar de estar confuso, está aqui (http://img716.imageshack.us/img716/4456/s1potetecladomidiesquem.png (http://img716.imageshack.us/img716/4456/s1potetecladomidiesquem.png))

O potenciómetro junto à ficha DIN foi para testar o envio de informação para o computador.
A recepção de informação vinda do computador foi testada com o upload do código do potenciómetro :)

Até agora parece estar a avançar muito bem, vou estudar melhor o código do post anterior e tentar fazer com que seja o computador a ligar os led's que eu quero :)

Agradeço qualquer ajuda que já tenham dado, ou que venham a dar (sim porque vou percisar MUITO dela ;D)
Obrigado pessoal!!



Só um à parte para o tcustodio.
Aquele programa que me indicaste anteriormente, o MIDI Relay, funciona apenas num sentido (Arduino -> PC). Confirmei isto com o programador que originou o programa :-\
Mas obrigado na mesmo amigo ;)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 24 de Setembro de 2011, 23:01
Pessoal tou com um problema que me está a impedir de avançar no projecto :-\

Como não encontro nenhum programa que converta MIDI -> Serial, a unica maneira de testar (penso eu) é alterando o firmware do atmega8U2 para que o arduino seja detectado como um dispositivo MIDI...

Mas como é obvio isto não é nada facil de se fazer e estou com grandes duvidas de como carregar o firmware e como voltar ao firmware original, especialmente porque não encontro informação para o meu arduino (Arduino UNO R2)

Ajuda?? :-\ :-\
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 25 de Setembro de 2011, 12:55
O R2 é uma pequena alteração no circuito do autoreset, por isso pesquisa unicamente por uno.
O programa para reprogramares o Atmega8u2 podes sacar da Atmel e chama-se Flip.
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 26 de Setembro de 2011, 23:59
O R2 é uma pequena alteração no circuito do autoreset, por isso pesquisa unicamente por uno.
O programa para reprogramares o Atmega8u2 podes sacar da Atmel e chama-se Flip.

Já alterei o firmware e funciona as mil maravilhas =D
O programa já controla os LED's

Vou continuar com os testes e com a aprendizagem de C++, quando tiver novidades posto :)

Obrigado por toda a ajuda até agora :)
Título: Re: Modificação de um teclado MIDI
Enviado por: andre_f_carvalho em 27 de Setembro de 2011, 00:35
Video!!:P
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 27 de Setembro de 2011, 09:31
Video!!:P

Assim que avançar mais um pouco no projecto meto um video :)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 04 de Outubro de 2011, 16:13
Devagarinho vou fazendo mais umas coisas no arduino :D
Mas para já deixo-vos aqui um pequeno guia para porem o Arduino em modo DFU

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg87.imageshack.us%2Fimg87%2F4207%2Farduinodfu.jpg&hash=882da67d431fa6a26cf3f1a7017510402003f37b)

Seguindo a imagem acima, faz-se o seguinte:
1º- Liga-se o Arduino ao PC;
2º- Liga-se o fio 1 ao pino indicado;
3º- Toca-se com o fio 2 no pino indicado;
4º- Desliga-s o fio 1 do pino;
e pronto, tens o arduino em modo DFU

O Arduino deixará de ser detectado como ele próprio e será necessário instalar novos drivers para este modo (os drivers estão no directório do programa Flip da ATMEL, o qual eu aconcelho para modificar o firmware) :)
Título: Re: Modificação de um teclado MIDI
Enviado por: diogo0880 em 26 de Novembro de 2011, 12:19
Pessoal depois deste tempo todo e das cenas que fui aprendendo, descobri que não consigo fazer o que quero com o arduino.
Eu perciso que os pots sejam precisos e, por causa da função map, os valores dos pots saltam de 5 em 5 :S

De qualquer maneira não tenho muito tempo para me dedicar a este projecto agora...

Obrigado pela vossa ajuda

Cumprimentos
Título: Re: Modificação de um teclado MIDI
Enviado por: iyahdub em 13 de Abril de 2012, 15:18
Pessoal depois deste tempo todo e das cenas que fui aprendendo, descobri que não consigo fazer o que quero com o arduino.
Eu perciso que os pots sejam precisos e, por causa da função map, os valores dos pots saltam de 5 em 5 :S

De qualquer maneira não tenho muito tempo para me dedicar a este projecto agora...

Obrigado pela vossa ajuda

Cumprimentos
Daria para fazer, mas atraves de processo diferente do que estavas a seguir...
Para que inventar a roda quando ja foi inventada ?!? Existem varios projectos ja bem avancados para controladores de midi na net... Com kits DIY e tudo a venda com precos bem acessiveis, DEssa maneira nao tem nada que enganar. Eua adicionei controles transporte a minha mesa de mistura analogica, para controlo do Cubase, e foi um mimo. ! Mas o arduino nao da para te esticares muito. Para isso, os PIC da Microchip sao muito mais indicados !
Deixo aqui um exemplo do quao longe podes levar o lado DIY de MIDI com um PIC http://www.ucapps.de/ (http://www.ucapps.de/)
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 13 de Abril de 2012, 15:29
Os pics que usavam nesse projecto inicialmente eram mais lentos que o avr do Arduino lol....
E agora usam um processador 32 bits, ou seja, ou usam arm ou o mips que a microchip usou no pic32..
Título: Re: Modificação de um teclado MIDI
Enviado por: iyahdub em 13 de Abril de 2012, 16:53
Os pics que usavam nesse projecto inicialmente eram mais lentos que o avr do Arduino lol....
E agora usam um processador 32 bits, ou seja, ou usam arm ou o mips que a microchip usou no pic32..
A velha guerra entre AVR e PIC?!?
Referia-me ao arduino nao ser o mais indicado para o que ele queria fazer, especialmente comecando do principio.  toda gente sabe que existem vario projectos basicos para cont. Midi... Mas p a escala que ele parecia querer ( ele nao disse um POT e um par ou dois de butoes...mas varios) o Arduino nao e o mais indicado.
E por isso que os pofucos qprojectos que ves sao bem basicos. Alias, todos os projectos de synths que ves, nenhum que seja serio usa arduino !
Título: Re: Modificação de um teclado MIDI
Enviado por: JPTuga em 13 de Abril de 2012, 19:38
Depende do arduino que utilizares...  ;)

Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 13 de Abril de 2012, 22:07
Conheces Monome?
Pois é, tem um Atmega lá dentro e o projecto nasceu de um Arduino..
Depois tens o Chomp:
http://www.maxjusticz.com/introducing-the-chomp/ (http://www.maxjusticz.com/introducing-the-chomp/)
E mais um:
Arduino Midi Sequnzer Ver 2.0 Demo (Eminem - The Real Slim Shady) an Roland SC155 (http://www.youtube.com/watch?v=g93A__xsE6E#ws)
E um sintetizador completo:
http://www.beat707.com/w/ (http://www.beat707.com/w/)

Efectivamente, não faltam projectos envolvendo Arduinos, e agora vai a pergunta.
O que é um Arduino?
Para mim é uma dev-board barata que te permite brincar com atmegas, com a vantagem de que o IDE te permite programar quase como se de scripting fosse, mas nada te impede de programar em C, ou assembly e deixar todo o bloatware do IDE para trás..
Título: Re: Modificação de um teclado MIDI
Enviado por: iyahdub em 14 de Abril de 2012, 16:54
AHHHH... chegaste onde eu queria chegar !!
Eu proprio uso o Arduino para projectos simples; PIC para outros.
Nao quis por o Arduino em baixo de maneira alguma.
Mas tens que admitir que nao e a maneira mais facil de ele atingir o que ele queria...
Título: Re: Modificação de um teclado MIDI
Enviado por: JPTuga em 14 de Abril de 2012, 18:39
DEpende do ponto de vista de cada um...  ;D
Título: Re: Modificação de um teclado MIDI
Enviado por: senso em 14 de Abril de 2012, 21:35
Tens bibliotecas para tudo e mais alguma coisa, é muito simples juntar multiplexers, usar uma lib, e ter 40 ou 50 entradas analógicas e outras tantas digitais num arduino uno, e um arduino mega dá-te á partida 16 pinos com adc e no total 54 pinos, mais coisa menos coisa, para criações caseiras diria que chega e sobra.

Mas seja, avr,8051, pic, arm, mips, z80, o que importa é gostar do que se faz e ter empenho nos projectos.
Título: Re: Modificação de um teclado MIDI
Enviado por: iyahdub em 15 de Abril de 2012, 00:04
Nao disse ipossivel, e concordo plenamente contigo nesses argumentos. Eo no fim, ja me estava a referir a synths, nao a controladores...
E se viirmos bem, as coisas, tens razao, ja que nenhum, de nos estaria a DIY as cenas nos proprios se nao tivessemos gosto de as construir e fazer em primeiro lugar. Disso nao ha dubida.
Mas como te disse, nao era minha intencao efrir susceptibilidades de maneira alguma... Apesar de parecer que o fiz !! Por esse facto , peco desculpa !!