Riconoscere porta COM di arduino

ciao a tutti, ho uno strana necessità: avrei il bisogno di collegare 4/5 arduino al pc e tramite un programma in vb.net e la comunicazione seriale riesco ad interagire con essi. Avevo intenzione di lasciare il programma in vb.net in "ascolto" su una decina di porte COM (ovviamente se non c'è niente collegato risulteranno inesistenti) ed appena collego un dispositivo il programma lo riconosce e mi da la possibilità di interagire con esso. Fino a questo punto sono riuscito a fare tutto, il problema è il seguente: come faccio a "capire" se un dispositivo collegato ad una porta COM è un arduino? Cioè se per caso metto il programma in ascolto dalla porta COM 3 alla 13, e collego un disposito, che non è arduino, alla porta COM 5 cosa succede? Non so se questo sia un problema riguardante vb.net, in ogni caso a grazie a tutti coloro che risponderanno e mi aiuteranno! :slight_smile:

krossk2:
ciao a tutti, ho uno strana necessità: avrei il bisogno di collegare 4/5 arduino al pc e tramite un programma in vb.net e la comunicazione seriale riesco ad interagire con essi. Avevo intenzione di lasciare il programma in vb.net in "ascolto" su una decina di porte COM (ovviamente se non c'è niente collegato risulteranno inesistenti) ed appena collego un dispositivo il programma lo riconosce e mi da la possibilità di interagire con esso. Fino a questo punto sono riuscito a fare tutto, il problema è il seguente: come faccio a "capire" se un dispositivo collegato ad una porta COM è un arduino? Cioè se per caso metto il programma in ascolto dalla porta COM 3 alla 13, e collego un disposito, che non è arduino, alla porta COM 5 cosa succede? Non so se questo sia un problema riguardante vb.net, in ogni caso a grazie a tutti coloro che risponderanno e mi aiuteranno! :slight_smile:

se la porta esiste metti nel setup dello sketch arduino Serial.println("arduino") così quando apri la porta mandi un reset (pin CTR) e se sulla seriale leggi "arduino" allora sai che è connesso lui altrimenti o ti ritorna un altro qualcosa o non ritorna niente (dipende cosa hai attaccato alla com)

ciao superlol grazie per aver risposto. avevo pensato a questo metodo solo che se ci sono 10 dispositivi collegati alle porte COM da 3 a 13 che non sono arduino, non riusciro a controllare nessun arduino...

EDIT: Ho scritto un piccolo algoritmo che mi permette di controllare se ad una porta è collegato un arduino, in caso contrario aggiunge una nuova porta... Grazie... :slight_smile:

non capisco, se a un dispositivo seriale invii il reset non ti da di sua spontanea volontà la stringa "arduino" XD

comunque se il problema è mandare il reset allora non saprei.

comunque in genere windows tiene la stessa porta per lo stesso dispositivo (almeno i driver di arduino lo prevedono e se collego l'UNO lo vedo sempre sulla 3 e se collgo la 2009 la trovo sempre sulla 15)

superlol:
...comunque in genere windows tiene la stessa porta per lo stesso dispositivo (almeno i driver di arduino lo prevedono e se collego l'UNO lo vedo sempre sulla 3 e se collgo la 2009 la trovo sempre sulla 15)

Molto interessante questa cosa, la provo subito e ti faccio sapere...

come faccio a "capire" se un dispositivo collegato ad una porta COM è un arduino?

nello sketch ogni tot (nel setup se arduino si accende quando collegato) un messaggio, che identificherà arduino per quello che è. In realtà puoi scoprirlo anche a partire dal vedor & device ID (arduino UNO ha i suoi, le board precedenti usano quello dell'FTDI, quindi è probabile che altri componenti abbiano quei codici uguali, se usano i chip FTDI)