comunicare con il PC?

Ciao,

mi sto interessando a questo mondo stimolante, e ho preso da poco un arduino UNO e qualche piccolo accessorio per fare i primi passi.

Mi chiedo però una cosa molto importante per il prossimo futuro:
Arduino è un HW a senso unico: scrivo gli sketch e li esporto sulla memoria di arduino.
Il processore farà il lavoro descritto.
Però... ad un certo punto nascerà la necessità di intercomunicare con il PC e arduino: leggere i valori degli I/O digitali/analogici.
Perciò la domanda: come posso fare ciò? Come posso collegare arduino al/ad un PC?

un saluto, grazie!

La risposta è semplicissima, il microcontrollore montato su arduino ha una porta UART, che in pratica ti abilita la comunicazione seriale (con cui tra l'altro viene programmato). La comunicazione è bidirezionale, tant'è che con la classe Serial e relativi metodi puoi interfacciarti e parlare col tuo PC.

Ti consiglio di curiosare nelle sezioni Learning e Reference del sito di Arduino per accrescere le tue conoscenze :wink:

in effetti avevo letto/visto di una seriale autocostruita questi gg, e ok. allora è così che funziona.

mitico! vado a curiosare nelle sezioni Learning e Reference

grazie

Non devi autocostruire nulla, basta che colleghi il cavo USB ad Arduino e puoi dialogare con lui tramite la seriale, per esempio se nell'IDE clicchi su "serial monitor" (ultima icona a destra) ti si apre un semplice terminale che ti permette di leggere e inviare messaggi ad Arduino.
Per capire come funziona la cosa puoi usare lo sketch "ascii table" presente negli esempi che ti invia sulla seriale tutta la tabella ascii.
Sempre tramite la seriale USB puoi dialogare con Arduino da un tuo programma applicativo per pc dato che la connessione viene vista come una normale porta seriale anche se di tipo virtuale, unica limitazione è che non devi collegare nulla ai pin Tx e Rx di Arduino altrimenti perdi la comunicazione seriale tramite USB, oltre a non riuscire più a programmarlo.

ah ok..

perchè io avevo visto questo: http://www.arduino.cc/en/Tutorial/ArduinoSoftwareRS232

allora è così: si leggono i vari valori direttamente dalla seriale EMULATA via USB.

@ astrobeed:

oltre a non riuscire più a programmarlo.

Se con "più" intendi "mai più", questa cosa è sbagliata perchè il PC non riesce a trovare la comunicazione con Arduino solo momentaneamente, cioè solo finché i pin digitali 0 e 1 sono occupati da un qualche altro collegamento esterno. Basta scollegare ciò che c'era collegato ai due pin per ristabilire un collegamento funzionante col PC. Senza alcun danneggiamento.

@cagnaluia: la seriale su Arduino è fisica (è una UART), il chip FTDI (su Duemilanove) o l'atmega8u2 (su Uno) si occupano di adattare la comunicazione UART a quella USB, pertanto non preoccuparti tanto di come puoi interfacciarti col PC, hai già tutti a disposizione, ad esempio, ogni volta che scrivi Serial.print("qualcosa");
Il tuo arduino sta mandando delle informazioni verso il PC. Il "qualcosa" sta a te deciderlo! Comunque se ti guardi un po' di esempi capirai molto di più :wink:

Ovviamente intendevo che non riesci a programmare Arduino fino a che Tx e Rx sono impegnati da un utilizzatore esterno.