Go Down

Topic: Aiuto Arduino e Visual Studio (Read 1 time) previous topic - next topic

RxxK

Jan 24, 2013, 05:18 pm Last Edit: Jan 24, 2013, 05:51 pm by RxxK Reason: 1
Ciao ragazzi  :) , vorrei chiedere il vostro aiuto riguardo ad un pezzo di codice che proprio non riesco a realizzare con visual studio. Diciamo che ho 5 porte COM ed arduino è collegato al COM3, come posso verificare con visual che arduino è collegato proprio a quella porta ? Mi dareste una grandissima mano se riuscite a risolvermi questo problema, in una settimana che provo non sono riuscito a combinare niente. Grazie mille in anticipo !!

cyberhs

Secondo me l'unica è inviare una stringa di interrogazione e vedere se e come risponde Arduino.

Naturalmente Arduino deve essere programmato per rispondere a questa interrogazione.

RxxK


Secondo me l'unica è inviare una stringa di interrogazione e vedere se e come risponde Arduino.

Naturalmente Arduino deve essere programmato per rispondere a questa interrogazione.

Eh lo so, ma è proprio questo il problema. Non riesco a realizzare il codice  :(

tuxduino

Io ho trovato due soluzioni: una sfrutta una stringa identificativa, l'altra il registry.

La prima soluzione funziona più o meno così: l'Arduino emette una particolare stringa una volta al secondo sulla seriale, e rimane in quello stato finché non riceve un comando di acknowledge dal PC. Il programma sul PC si mette in ascolto a turno su tutte le porte seriali (in VB.net puoi usare my.computer.ports o qualcosa del genere), ed attende la stringa. Se dopo un certo tempo (ad esempio 2 secondi) non arriva nulla o arriva qualcosa di diverso da quanto atteso, marca quella porta come non valida e passa alla successiva. Se invece riceve la stringa attesa, manda l'ack e inizia la comunicazione su quella porta.

L'altra soluzione va a leggere il registry di windows alla ricerca di prote seriali con un identificativo particolare... La chiave mi pare sia HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM, e le porte "generate" da Arduino contengono la stringa VCP. Ogni secondo vado a leggere l'elenco delle porte sotto quella chiave, e se mi accorgo che ne è comparsa una che contiene VCP nel nome, decido che quello è l'arduino.

Le due tecniche si possono ovviamente combinare: identifciazione di una nuova porta seriale che con ogni probabilità è associata ad un arduino + attesa della stringa identificativa proprio da quella porta.

RxxK


Io ho trovato due soluzioni: una sfrutta una stringa identificativa, l'altra il registry.

@Tuxduino grazie mille, mi hai dato delle ottime informazioni. Ora proverò a trovare una soluzione :D

Go Up