Uso delle librerie firmata per VB.NET

Salve, scusate se pongo magari delle domande per voi scontate ma sono alle prime armi con arduino e di elettronica ne so ancora molto poco... Ho acquistato arduino 2009 e vorrei interfacciarlo ad un mio applicativo VB.NET per il controllo di alcune periferiche e il monitoraggio di alcune sonde che collegherei alle porte analogiche. Ho scaricato le librerie per VB.NET e i relativi esempi... ho collegato in USB arduino ed ho provato tramite il software di esempio ad eseguire alcuni comandi verso le porte PWM di arduino... Quando faccio partire il software la connessione si stabilisce tranquillamente, solo che se agisco sui vari pulsanti/slide PWM, sebbene il led rx sulla board lampeggi come se stesse ricevendo degli imput, non mi dà alcun risultato... Forse manca qualcosa? Leggendo sentivo parlare di firmware di arduino da aggiornare o qualcosa del genere? Qualcuno mi sa aiutare?

Grazie

senza far partire il programmma VB ma aprendo il terminale seriale, arduino sta comunicando col PC?

Sì! Quando lo collego, il blinking del pin 13 si ferma... non so se è normale...

Ma arduino è già prondo per comunicare con le librerie firmata VB.NET vero? Non è che ci va caricato qualcosa?

Sto facendo ancora qualche prova... quando collego arduino all'usb il led L della board lampeggia (corrisponde da quel che ho capito al pin 13). Se avvio il programma vb.net, quando stabilisce la connessione si ferma il blink del led... se da programma metto in on il pin 13 lampeggia per un'attimo il led rx che da credo indichi che qualcosa arriva alla scheda ma il led L rimane spento quando credo invece dovrebbe accendersi...

fai così: metti arduino in lettura, che salva quello che riceve e lo ripete tutto quando riceve una data stringa tipo "ripeti"... fai partire, attacca VB, lancia il programma, stacca VB e dal terminale scrivi ripeti, vediamo che succede ;)

Grazie lesto, scusami ma davvero per me stai parlando un pò "arabo" ;D Non ho idea di come fare per metterlo in lettura??? e cosa devo mandargli e come?? Io nel frattempo ho provato a programmarlo in modo che vada in stand alone, ho programmato un led in modo che lampeggi, faccio l'upload e funziona bene... quindi credo che sia un problema di gestione connesso al computer... qualcosa riceve perchè il led rx lampeggia quando premo i pulsanti ma non fa niente... boh... aiutoooo!!!

Non ne vengo a capo... qualcuno ha qualche idea?

Alla fine ne sono uscito da solo.
Leggendo sul forum in inglese, ho scoperto che bisogna caricare su Arduino lo sketch firmatastandard che gestisce il tutto…
Ora mi sorge un’altro problema ma apro un nuovo topic.
Grazie

dato che comunichi va seriale, se non erro, crei un’array di byte (scusa prima ho scritto stringhe, ma è stata un’assunzione errata pensare che il VB comunichi via stringhe, soprattutto dato che siamo alla ricerca di un’errore di comunicazione), e leggi la seriale. ogni lettura va a finire nell’array, a meno che la lettura non corrisponda alla stringa speciale che riscrive indietro tutto quanto. IMHO VB è una brutta bestia, perchè MS ha il brutto vizio di intendere gli standrd a loro piacimento, e il fatto di non essere opensource rende molto difficile capire se son sbagliate le librerie o i programmi.

comunque un piccolo esempio (non testato):

int maxLetture=100;
int maxLunghezzaLettura=100;
int lettureSeriale[maxLetture][maxLunghezzaLettura];
int lettureEffettuate=0;
int lunghezzaLetturaAttuale;
int i;
int carattereStampa = "S"; //quando scrivi S nel terminale il programma scrive tutto l'array

void setup(){
  // start serial port at 9600 bps:
  Serial.begin(9600);//controlla che anche VB comunichi alla stessa velocità!
}

void loop(){
  if (lettureEffettuate<maxLetture){ //controllo antioverflow
    lunghezzaLetturaAttuale = Serial.available();
    if (lunghezzaLetturaAttuale>0){
      for(i=0; i<min(lunghezzaLetturaAttuale, maxLunghezzaLettura-1);i++){ //anche quì min() serve per evitare l'overflow
        lettureSeriale[lettureEffettuate][i]=Serial.read(); //legge il carattere e lo salva nell'array, anche il carattere di stampa perchè magari è stato inviato da VB
        if (lettureSeriale[lettureEffettuate][i]==carattereStampa){ //se è il comando stampa
          int a, b;
          for(a=0; a<lettureEffettuate;a++){
            b=0;
            while(lettureSeriale[a][b]!=-1){
              Serial.print(lettureSeriale[a][b], BYTE);
            }
            Serial.print("\n");//va a capo
          }
          Serial.println("fine!");//fine stampa
        }
      }
      lettureSeriale[lettureEffettuate][i+1]=-1;//indicatore di fine messaggio
      lettureEffettuate++;
    }
  }
}

Ciao a tutti… ho anche io lo stesso problema… però ho provato a caricare il sample StandardFirmata ma continua a non comunicare con il vb… cioè… la lucina rx si accende ma non succede niente altro…
Come posso fare?? grazie mille in anticipo… :slight_smile:

Risolto… avevo scritto in modo errato il valore di BaudRate… :slight_smile:
grazie comunque…