Invio Ricezione esempio Test02 Ci sto lavorando
Oggetto: Problematiche inerenti l'invio/ricezione dati tra Arduino e Pc
Facciamo un piccolo passo in avanti. In questo progetto raddoppiamo gli slider ed aggiungiamo un impostazione iniziale dei parametri. Il primo slider servirà per impostare dei valori minimi mentre il secondo i valori massimi. I valori iniziali sono visualizzati all'apertura sugli slider ma in realtà non hanno una corrispondenza su Arduino. Dovremo fare in modo che all'apertura i valori iniziali degli slider vengano inviati ad Arduino per impostarli a quei valori in modo che ci sia una perfetta sincronizzazione. Mentre il codice di Arduino rimane lo stesso sul Pc bisogna fare delle aggiunte e modifiche. Rispetto all'esempio precedente abbiamo aggiunto uno slider ed una label in più. Ma la particolarità sta nella routin che aggiarna ai valori iniziali Arduino
Vi chiederete ma perchè questa temporizzazione? Non si poteva fare direttamente così?
Piu semplice più pulito!? Guardate i due risultati:
Come si può notare con il primo codice entrambe i valori iniziali sono stati spedit ad Arduino ne sono conferma i messaggi di ritorno. Invece con il secondo codice è stato spedito solo il primo. Come mai? Evidentemente sparando uno di seguito all'altro i due valori, Arduino non ha il tempo materiale per processarli e processa solo il primo. Sta di fatto che mandando i dati uno dopo l'altro separati da 100 millisecondi di intervallo i messaggi mi ritornano regolarmente. Aumentato il numero di slide a 4 ed eseguite delle prove: Variando l'intervallo in millisecondi del timer ed osservando il comportamento ne è risultato che a 1ms ne fa uno, a 10ms ne fa 2 incrociando i dati, ossia ne invia 3 ne riceve 2. Va progresivamente migliorando man mano che si aumenta l'intervallo. Si regolarizza a circa 100 ms. Quindi è assodato che è un problema di tempo di processamento necessario. Altra osservazione da fare che in questo caso, lato Arduino, non bisogna assolutamente svuotare il buffer altrimenti si perdono dati.
|