Pic Micro, Arduino, Atmel, Microchip, Freescale, Texas Instrument, ecc. Strumenti di sviluppo, firmware e progetti.
#8904
Salve a tutti.
Prevedo un thread lungo.
Vorrei realizzare e personalizzare quello che si vede nel video allegato:

Ho bisogno però dell'aiuto di un esperto in Arduino. Se fosse esperto pure di musica e di midi sarebbe il massimo!
Vi spiego come funziona, a grandi linee. Nella realtà fisica il charleston della batteria è composto da un pedale che muove un'asta, l'asta sposta di pochi cm un piatto mobile da un altro fisso. Per cui è possibile avere una grande varietà di suoni già solo sbattendo i piatti con il pedale, non ne parliamo se li teniamo mezzi chiusi e li suoniamo con la classica bacchetta della batteria. Variando la pressione del piede si ottiengono una miriade di variazioni.
Il sistema elettronico prevede un piatto generalmente in plastica (gli originali sono di bronzo, ottone o leghe simili) al quale è fissato un trasduttore piezoelettrico che genera una tensione elettrica alternata quando viene sollecitato meccanicamente. Tale tensione viene amplificata, digitalizzata e pilota un microprocessore il quale fa riprodurre un suono, ovviamente campionato dal piatto originele. Oppure genera un segnale seguendo lo standard MIDI per pilotare un generatore sonoro adatto.
Per simulare l'apertura e la chiusura NON di tipo on/off bensì proporzionale l'autore del video ha realizzato una specie di cilindretto in plastica con dentro due led infrarosso, uno TX e l'altro ovviamente RX. Ha interfacciato con un ingresso analogico di Arduino, ha scritto il programma e ha ottenuto un risultato di una naturalezza IMPRESSIONANTE imitando sistemi che costano svariate centinaia di euro.
Ho mandato a fare la parte in plastica e ho ordinato gli infrarossi. Da voi voglio sapere quale tipo di arduino devo comprare e dove, come si carica il programma all'interno e chi ha voglia di personalizzarmelo perchè sicuramente c'è da personalizzare parecchio.
Forse nel programma c'è pure la parte degli altri pezzi della batteria, il tipo ha un sito dove si sta realizzando una batteria elettronica completa un pezzo alla volta. Comunque nel video ci sono i link dai quali i più volenterosi possono partire per capire come fare per aiutarmi! :mrgreen:

EDIT: pur utilizzando l'apposita funzione non ho capito come fare per metter il video di youtube :(
#8916
seguendo il link alla fine del video ho trovato l'articolo https://open-e-drums.tumblr.com/post/186932283524/optical-hi-hat-controller-for-roland che pero' descrive solo l'adattatore e offre il file per la stampa 3d
L'autore usa un Arduino MEGA che puoi trovare da futurashop a 43 euro https://www.futurashop.it/arduino-mega2560-rev3-7300-arduinomegarev3 ma dai cinesi ne trovi cloni a molto ma molto meno .
Ho anche trovato la LIBRERIA che ha sviluppato https://github.com/RyoKosaka/HelloDrum-arduino-Library ma senza il codice che ne usa le funzioni serve a poco. Non ho purtroppo trovato l'articolo primigenio con il codice xxx.ino (che dovrebbe usare sia quella libreria che la libreria midi) da caricare, prova tu a cercarlo.
Mi sembra anche di aver capito ( ma forse sbaglio) che l'autore usi dei moduli audio/mp3 con suoni registrati comandandone l'emissione o tramite comandi midi innescati dal sensore ottico oppure direttamente dal sensore.

Caricare il codice è facilissimo: si installa la IDE ARDUINO da qui https://www.arduino.cc/en/Main/Software , meglio usare la versione.exe che installa anche i drivers usb altrimenti serve farlo a mano. Poi si connette la board al pc con un cavo usb. Una volta che hai la ide istallata ed aperta:
-si apre il codice xxx .ino (menù file)
- si seleziona la porta COM in uso (menù strumenti)
- si seleziona la scheda Arduino MEGA (menù strumenti)
- si preme il secondo tasto blu tasto (con la freccia) in alto a sinistra
e la ide compila il codice sorgente e lo carica nel chip

Metter mano al codice non è semplice se non si sa cosa avesse in mente chi lo ha scritto, se poi c'è del midi ognuno si sbizzarrisce nell'emularlo.
Ora la parola passa a te!

ps. se ho detto cose che già conoscevi abbi pazienza!
#8917
No, non conoscevo nulla di quello che hai scritto, sono completamente e volutamente ignorante in materia, ma adesso mi tocca studiarmela. Per me è sempre stato così, le cose le studio quando mi servono! :P Sai quando vedi nei forum il ragazzetto che vuole realizzare qualcosa di cui non conosce nemmeno il principio di funzionamento? Ecco, io in questo momento sono nelle stesse condizioni (quasi.... :mrgreen: )
Dunque, io vi ho dato solo il link al video perchè il charleston è la prima cosa che mi interessa ralizzare. In realtà poi mi interessa realizzare pure la parte successiva, che sarebbero altri ingressi però molto più semplici, solo con il sensore pizoelettrico. Il tutto dovrebbe essere facilmente espandibile, con uscita solo MIDI e con latenza la più bassa possibile, 2 o 3 ms già sono troppi. Dovrei poter gestire alcuni parametri da pulsante e bisogna collegare un display di buona qualità per capire e gestire il tutto.
Prima di postare ho chiesto in privato a BIOS quale era la sezione adatta, tra le altre cose lui ha ipotizzato l'uso di tanti arduino nano, mi sembra. Insomma i più piccoli della serie. Non gli avevo però parlato ancora del display e dei parametri da variare tramite pulsanti.
Vedi se a questi link trovi quello che manca:
LINK 1
LINK 2
EDIT: anni fa lessi che i clone cinesi degli arduino davano problemi. Notizia vera?
#8918
Riguardo ai suoni che senti nel video, l'autore ha utilizzato un protocollo MIDI facendolo viaggiare tramite poorta USB e ha pilotato un modulo sonoro virtuale residente nel PC. Comunque in altri video e in altre versioni ha caricato pure dei campioni in WAVE all'interno di arduino stesso, credo. A me interessa principalmente farlo funzionare attraverso una porta MIDI STANDARD, poi se ha pure l'uscita midi attraverso la porta USB e addirittura i suoni interni tanto meglio. Le informazioni elettriche della porta midi standard le ho, sono reperibili in rete, ma a quello ci arriviamo dopo.
#8919
Ho dato uno sguardo veloce al codice del link: un paio di sensori sono letti dall'arduino (in questo caso un arduino uno) per generare, tramite la libreria importata, dei messaggi midi (che siano in midi din/ fotoaccoppiatore o usb pari sono)
MIDI.sendNoteOn(HIHAT[4], HIHAT[5], 1); // (note, velocity, channel)
MIDI.sendNoteOff(HIHAT[4], 0, 1);
MIDI.sendControlChange(4, TCRT, 1);

Il fatto che è che questi messaggi dipendono dalla midi implementation chart di chi li riceve e li riproduce, molto probabilmente una drum machine.
Senza una discreta conoscenza di base del protocollo midi (non basta l'HW, servono anche i comandi) e dell'expander usato ( il marchingegno che emette suoni) , l'approccio non è immediato.

Se sei interessato sul sito di grix c'e' un mio articolo (il nome è praticamente lo stesso) su un emulatore Hammond con delle pillole di midi giusto per partire...
#8920
Il protocollo midi per fortuna lo conosco, chiaramente non a memoria. Ovviamente i comandi sono per la batteria, quindi canale midi 10 e sono in General Midi Standard. Casomai il cinese (o giapponese?) abbia utilizzato un protocollo diverso lo dobbiamo convertire. Ma non credo abbia usato nulla di personalizzato. Se ti servono chiarimenti, ma a quanto pare no, chiedi e ti dico. Vorrei sapere come ha fatto a simulare il charleston mezzo chiuso, nel midi Standard non è previsto, che io sappia. Il sensore a fotocellula restituisce una tensione dipendente dalla distanza dal pezzo di carta gommata. Può darsi, ma non ne sono certo, che una particolare combinazione di apertura-chiusura del charleston, magari entro determinati tempi, riesca a simulare il charleston mezzo aperto. Ho già installato nel pc la stessa batteria elettronica, il generatore di suoni intendo, che ha utilizzato lui, farò delle prove. Ma tu potresti dirmi, leggendo il programma, quali parametri midi va a variare l'ingresso della fotocellula.
#8922
appena ho un po' di calma do uno sguardo al codice con la parte ottica.
Per il link puoi trovare l'articolo anche qui sulla mia vecchissima paginetta web
http://adamatj.altervista.org/
magari interessa anche ad altri

i link col codice del tizio dovrebbero essere questi
https://open-e-drums.tumblr.com/post/171265375249/optical-hi-hat-controller
https://open-e-drums.tumblr.com/post/186865919134/tcrt5000-with-roland-td-10

ho scaricato codice e libreria e il tutto si compila (almeno questo va)
poi mi sembra che abbia semplicemente sostituito il sensore piezoelettrico col sensore a riflessione collegandoli sul pin A0 qiundi misutras unatensione che varia con la distanza della riflessione.
#8923
questo e' il codice che gestisce solo il pedale (ho tagliato lil resto)
// library MIDI https://playground.arduino.cc/Main/MIDILibrary
#include <MIDI.h>

int HIHAT_PEDAL[4] = {200, 0, 44, 0};
int SETTING[4] = {4, 80, 100 , 35}; //{scantime, snare/rim, pedalVelocity , masktime}

MIDI_CREATE_DEFAULT_INSTANCE();
boolean pedalFlag = false;
int exTCRT = 0;
unsigned long time_hit_hihat;
unsigned long time_end_hihat;

void setup() {
MIDI.begin(10);
delay(100);
}

void loop() {
int TCRT = analogRead(A0); // read hi-hat pedal

if (TCRT < HIHAT_PEDAL[0] && pedalFlag == false) {
MIDI.sendNoteOn(HIHAT_PEDAL[2], SETTING[2], 1); //(note, velocity, channel)
MIDI.sendNoteOff(HIHAT_PEDAL[2], 0, 1);
pedalFlag = true;
}

if (TCRT > HIHAT_PEDAL[0] + 100 && pedalFlag == true) {
pedalFlag = false;
}

TCRT = map(TCRT, 900, 100, 0, 127);
if (TCRT > 127) { TCRT = 127; }
if (TCRT < 0) { TCRT = 0; }

if (exTCRT != TCRT) {
MIDI.sendControlChange(4, TCRT, 1);
exTCRT = TCRT;
}
}


In breve invia il messaggio (fisso) midi di nota ON e di controlChange in funzione del valore (variabile per riflessione ottica!) letto di A0

Se ho tempo provo a collegarlo alla mia tastiera yamaha che ha il vecchio midi a 4 fili....
#8924
Ecco, grazie a te sto cominciando a capirci qualcosa. Dunque, io ho una tastiera muta con uno slider assegnabile. Dal momento che tu sai leggere il programma (io non ci ho capito una mazza) mi puoi dire quale control change viene inserito/modificato? Faccio la prova a pilotare il modulo sonoro virtuale con lo slider per simulare il pedale con la fotocellula.
alimentazione strip led

scusate per il ritardo Si la batteria c'e

salve ha tutti ho installato un inverter dedicato,[…]

Dimenticavo: le fotocellule lavorano a infrarossi,[…]

Preso.. 20200626_133316.jpg Grazie

Visita il nostro canale telegram