salve a tutti per un progetto mi servirebbe riuscere a leggere le emg così ho comprato questa shield SHIELD-EKG-EMG - Open Source Hardware Board l ho provata con lo sketch di esempio e il programma consigliato e mi pare che funzioni, ora mi servirebbe avere i valori dell emg direttamente su arduino (non li devo visualizzare su un programma) mi sono messo a cercare su internet e ho trovto questo sketch:
#define EMG A0
int reading[10];
int finalReading;
byte multiplier = 1;
void setup(){
Serial.begin(9600);
}
void loop(){
for(int i = 0; i < 10; i++){
reading[i] = analogRead(EMG) * multiplier;
delay(2);
}
for(int i = 0; i < 10; i++){
finalReading += reading[i];
}
finalReading /= 10;
Serial.print("Value = ");
Serial.println(finalReading);
delay(100);
}
quando apro il seriale mi visualizza una serie di valori >450<600 che non penso siano i valori emg ma la tensione sul piedino analogico, ho anche provato a cambiare il piedino suu cui leggere ma mi da sempre gli stessi valori, qualcuno potrebbe aiutarmi a risolvere questo problema?
dableflack:
... ho provata con lo sketch di esempio e il programma consigliato e mi pare che funzioni, ora mi servirebbe avere i valori dell emg direttamente su arduino (non li devo visualizzare su un programma)
Mica ho capito. Che programma consigliato ? Dove gira ?
Forse c'e' un sketch su Arduino che spedisce i dati a quel programma. Di solito lo fa tramite seriale.
Basta vedere quello sketch cosa fa. Prova a postarlo che lo vediamo.
Cercare a caso altri codici, mi pare improbabile trovare le info. Mi viene da dire che con la scheda saranno anche dati dei doc per sapere come "interpretare" i valori letti.
Non è questione di essere poco chiari.
Questo pezzo di codice:
//Read the 6 ADC inputs and store current values in Packet
for(CurrentCh=0;CurrentCh<6;CurrentCh++){
ADC_Value = analogRead(CurrentCh);
TXBuf[((2*CurrentCh) + HEADERLEN)] = ((unsigned char)((ADC_Value & 0xFF00) >> 8)); // Write High Byte
TXBuf[((2*CurrentCh) + HEADERLEN + 1)] = ((unsigned char)(ADC_Value & 0x00FF)); // Write Low Byte
dice chiaramente che lo sketch Arduino legge i 6 valori analogici e poi... li manda via seriale a quel programma su PC. Ma senza documentazione e/o i sorgenti di quel programma che gira su PC, è impossibile dirti come interpretare quei valori analogici.
Quelli della Olimex non hanno un forum di supporto ?
Oppure devi sperare che qualcuno su questo forum abbia quella scheda e la conoscano bene, ma non penso siano in molti.
ok grazie mille, sapresti dirmi come faccio a leggere contemporaneamente tutti e 6 gli analogici, io ho provato a leggerli uno per volta e piu meno hanno valori simili, se li leggo uno per volta e faccio la media dici che funzionerebbe?
interpretare i valori penso di poterci riuscire quando rileva un impulso il valore sale e a me basta questo
Ogni scheda SHIELD EKG-EMG REV.B legge un solo canale analogico, puoi metterne fino a 6 schede una sopra l'altra, il canale lo imposti tramite il jumper "channel select", i valori dei canali analogici non presenti sono floating quindi casuali e devono essere scartati