Arduino e Labview

Salve, qualcuno sa dirmi perché quando collego Arduino Uno con Labview per far leggere dei sensori, dopo un pò in maniera random il pc si spegne e si riavvia improvvisamente? Se uso invece Luigino questo non avviene. Qualcuno ha una soluzione per far funzionare Arduino con Labview? Grazie

Prima di tutto, nella sezione in lingua Inglese si può scrivere SOLO in Inglese mentre tu ci hai scritto in Italiano ... quindi, per favore, la prossima volta presta più attenzione, poi, essendo questo il tuo primo post, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO ... Grazie.

Guglielmo

Salve Guglielmo, chiedo scusa se forse non ho rispettato le "regole" formali della comunity, ma come hai detto stesso tu, sono nuovo di qui. Purtroppo ho seri problemi con Arduino e Labview e speravo di trovare qui qualcuno in grado di aiutarmi anziche badare a queste formalità. Sono un ingegnere elettronico e ho 30 anni. Non so se questo faccia la differenza in questi luoghi. Ho sempre creduto (nella mia ignoranza, lo ammetto) che i forum servissero per darsi una mano a risolvere problemi tecnici e non tanto a badare a queste formalità. Chiedo ancora scusa per questa mia mancanza, sperando di non aver offeso nessuno e di non aver scritto nella sezione sbagliata. Tuttavia il mio unico interesse è trovare una soluzione a questo problema e non perdere tempo con queste formalità, pertanto, se qualcuno è in grado di indicarmi una soluzione, sarò lieto di ascoltarlo, altrimenti cercherò le mie risposte altrove. Grazie per il suo intervento e buona serata.

Caro acerfree
Non Ti é stato chiesto di presentare il Tuo curriculum vitee in triplica copia con vidimazione e marca da bollo e controfirma della mamma, ma una semplice presentazione nel Tread apposito. Ti invio di perdere quel tempo per scrivere 3 righe nella Tua presentazione perché stilando quel testo che hai scritto, hai perso il triplo di tempo. Se non vuoi attenderti alle piú basi formalitá allora cercati un aiuta da un altra parte.

Per il problema presentato nel Tuo primo post:
Non lo so non sono un veggente.

forse potresti dare lo sketch e una descrizione e delle foto del circuito

Ciao Uwe

const int analogInPin0 = A0;  
const int analogInPin1 = A1; 
const int analogInPin2 = A2;  


int sensorValue0 = 0;
int sensorValue1 = 0;
int sensorValue2 = 0;

void setup() {
   Serial.begin(9600); 
}

void loop() {
 
 sensorValue0 = analogRead(analogInPin0);
 sensorValue1 = analogRead(analogInPin1);
 sensorValue2 = analogRead(analogInPin2);

int initialCode = 0xFF;
for (int i = 1; i<4; i++)
 {
 Serial.write(initialCode);
 }

byte low0 = lowByte(sensorValue0);
byte high0 = highByte(sensorValue0);
Serial.write(low0);
Serial.write(high0);

byte low1 = lowByte(sensorValue1);
byte high1 = highByte(sensorValue1);
Serial.write(low1);
Serial.write(high1);

byte low2 = lowByte(sensorValue2);
byte high2 = highByte(sensorValue2);
Serial.write(low2);
Serial.write(high2);


 delay(30);                     
}

Il circuito è composto da tre partitori di tensione ognuno dei quali contiene un sensore che deve essere letto da Arduino. Una volta letti i dati, vengono inviati sulla seriale e letti da Labview. Il problema non è lo sketch ne Labview. Il problema sembra essere di Arduino perchè se uso Luigino funziona tutto a meraviglia. Peccato però che Luigino non si trova più da nessuna parte. Sarà per caso che Luigino è stato ottimizzato per la lettura seriale mentre arduino no? Luigino ha un pic dedicato che gestisce la comunicazione seriale, Arduino no. Potrebbe essere questa la causa?

Egergio sig. ingegnere

Sta dimostrando arroganza nei nostri confronti. Ti é stato chiesto di leggere il regolamento e Tu lo ignori perché senó sapreti che lo sketch si include nel CODE TAGS (icona </> ).

Provvedi nel leggere il regoalmento e di modificare il Tuo post.

E visto che ci sei, informaci anche di che sensori si tratta e che resistenze hai usato per fare i partitori.

Strano, secondo http://www.droids.it/cmsvb4/attachment.php?s=412e8bf4d6c2537889f662ab017643d1&attachmentid=686&d=1302762900 usa un pic per selezionare l’alimentazione e per il reset, ma un CD4066 per la seriale.

Ciao Uwe

UWE, il tuo link porta alla versione 1000pad, che se non ricordo male dovrebbe essere una mini scheda. Probabilmente lui invece ha la Luigino 328. Comunque Le ha progettate entrambe Astro, quindi potrà darci lui maggiori info.
Il nostro nuovo amico ingegnere ha chiaramente dichiarato che il suo intento unico è quello di risolvere il suo problema senza perdere tempo in altre cose, ha fatto la presentazione perché si è reso conto che gli è costata meno del suo lungo intervento di protesta, ma che ora vada a leggere il regolamento la vedo dura.
Ho un certo interesse per la coppia Arduino-Labview ma va nella direzione opposta, nel senso che mi piacerebbe capire se sia possibile gestire Arduino mediante la programmazione Labview, ma in precedenza ho ricevuto risposte negative in tal senso, e quindi ho rinunciato a studiare Labview.

Comunque, Giuseppe, ho una mezza idea che il problema non sia di Arduino ma del "tuo" Arduino, ed in ogni caso sappi che Arduino UNO e Luigino 328 hanno bootolader molto diversi, in quanto il primo usa Optiboot, mentre il secondo usa quello della vecchia board Arduino Duemilanove, quindi secondo me, anche la Luigino dovrebbe avere l'FT232RL come convertitore USB-Seriale, ma potrei sbagliarmi.

Quindi, potendo disporre delle relative alternative, io al tuo posto proverei un altro Arduino UNO e, in caso di esito negativo, tenterei di procurare una Duemilanove, che è comunque una scheda validissima e sulla quale comunque si potrebbe un domani aggiornare il bootloader.

Altra cosa fattibile è quella di verificare bene i collegamenti di massa su sensori, partitori e scheda e, non ultimo, il cavo che collega le board al PC con Labview.

Detto questo, è anche giusto che ti dica che sarebbe corretto modificare il tuo comportamento, non penso che il giorno camminando, se trovi un bar in cui entri per la prima volta, vai dietro il bancone e chiedi dove si trova la bevanda di tuo interesse. Il Forum è un luogo pubblico e aperto a tutti, ma ha delle regole, messe ben in evidenza, molti si prendono la briga di leggere e seguirle, molti altri, per la fretta di risolvere i propri problemi, invece tentano la via breve, ma qui i MOD stanno attenti al rispetto delle regole, ed è giusto così. Se non ti va di seguirle non farlo, però non puoi "disprezzare" le formalità e le regole; un ultimo consiglio:

Sono un ingegnere elettronico e ho 30 anni. Non so se questo faccia la differenza in questi luoghi.

se intendi dire che il tuo titolo deve essere una sorta di passepartout e richieda riverenza, beh, sappi, che qui c'è gente che ha molti più titoli e carriera ed esperienza rispetto a te ed anche molta gente che, pur non avendo il tuo titolo, ne sa molto più di te....fidati..... :wink:

Racchiudere tutto il tuo codice tra i relativi tags lo rende molto più leggibile, quindi conviene farlo a prescindere che sia una regola o meno; facci sapere se sarai riuscito a fare le prove/verifiche che ti ho suggerito. Buon lavoro.

Buongiorno a tutti, mi dispiace che continuiate a fraintendere le mie parole, ma evidentemente siamo partiti col piede sbagliato. Con quella frase “Sono un ingegnere elettronico e ho 30 anni. Non so se questo faccia la differenza in questi luoghi” volevo solo presentarmi come da voi chiesto e intendere che su questo forum secondo me ha poca importanza cosa faccio nella vita e chi sono. Credo che i forum debbano servire a risolvere innanzitutto i problemi tecnici. Michele, nessuno ha detto di essere Dio e di sapere tutto, infatti sto qui a chiedere una soluzione al problema a persone che reputo sappiano più di me. Ad ogni modo non voglio fare altre polemiche. La versione di Luigino che uso è la 328. Ho provato ad usare anche Arduino mega,Arduino micro, e Arduino 2009 ma anche con questi il problema si ripresenta. Non ho avuto modo di provare con Arduino 2 perché non ce l’ho a disposizione (sarei curioso di vedere se cambia qualcosa). Dopo un certo tempo del tutto random, il pc da schermata nera e si riavvia perdendo i dati delle acquisizioni fatte. I sensori che uso sono diversi, ho usato gli MQ2, MQ7, MQ4, NTC, sensori di forza HT201 e A201. I sensori sono inseriti o nel ramo di pull-up o di pull-down di un semplice partitore di tensione (R fissa =10 K) di cui viene letto poi il valore analogico di uscita e inviato a Labview tramite la seriale. All’interno di Labview vengono poi estratti i valori di tensione,resistenza, temperatura, o forza in base al tipo di sensore e all’utilizzo. Per caso qualcuno sa dove acquistarlo? Mi sembra strano che un prodotto così commercializzato come Arduino abbia questo problema e nessuno fa niente per risolverlo. Luigino 328 funziona perfettamente, ma purtroppo non si trova più in commercio. Michele ha nominato un certo Astro, non è che per caso può aiutarmi a reperire una Luigino328? Grazie e buona giornata a tutti.

acerfree:
Mi sembra strano che un prodotto così commercializzato come Arduino abbia questo problema e nessuno fa niente per risolverlo. Luigino 328 funziona perfettamente, ma purtroppo non si trova più in commercio. Michele ha nominato un certo Astro, non è che per caso può aiutarmi a reperire una Luigino328? Grazie e buona giornata a tutti.

E difatti Arduino NON ha alcun problema e sei l’UNICO a cui si presenta questa cosa, quindi … il problema NON è Arduino in se, ma, probabilmente, la connessione con il tuo PC o le connessioni elettriche e le masse.

Tra l’altro NON ci hai indicato la versione di Windows che usi e la versione dell’IDE.

Infine, in conformità al regolamento, punto 7, ti rinnovo l’invito ad editare (in basso a destra del post, bottone More → Modify) il tuo post e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Guglielmo

Guglielmo Buongiorno, spero vada bene la modifica che ho apportato al codice. Sembra di stare in un tribunale qui. Comunque uso Windows 7 ultimate a 64bit con processore I7 e 4 gb di ram. Su altri pc uso Windows 7 Professional a 64 bit con 8 gb di ram. Il problema si presenta su ogni pc e anche s Arduino uno diversi (ne ho provati 3 che mi hanno gentilmente prestato per la prova, anche io credevo fosse il mio Arduino Uno a dare i numeri, ma non è così). L'ide che uso fino alla settimana scorsa era quello vecchio, poi ho aggiornato tutto a quella nuova ma non è cambiato nulla. I partitori e i sensori sono alimentati dalla usb di Arduino, quindi prendono i 5V dalla usb del pc. Il cavo di collegamento è uno professionale altamente schermato con pin in oro marca HQ (più di questo non si può). Le masse sono tutte ben collegate, del resto se fosse stato un problema elettrico leggerei dei valori sbagliati sui file di testo delle misure salvati da Labview, cosa che così non è. Labview mi restituisce due file di testo in cui salva i valori di resistenza del sensore e di tensione sul sensore durante l'acquisizione. Se prendo i valori di tensione sul sensore dal file di testo e calcolo manualmente la formula del partitore, ottengo esattamente i valori di resistenza del sensore corrispondente che compaiono nel file di testo dei valori di resistenza. Non a caso con Luigino funziona tutto perfettamente e i collegamenti sono gli stessi che uso con Arduino. Tra l'altro ho notato che usando Arduino, quando premo il pulsante di start su Labview, arduino iniziaa tramettere i dati e quando premo stop i led Tx ed Rx continuano a lampeggiare. Con Luigino invece, quando premo stop su Labview, i led Tx ed Rx smettono di lampeggiare. Questo mi fa pensare ad una ottimizzazione del funzionamento della seriale su Luigino. Forse questa cosa su Arduino non è stata fatta per risparmiare sui costi di vendita della scheda. Perché Luigino è sparito dal commercio? Ho il timore che in Italia si seguano le mode non la qualità dei prodotti (è un mio pensiero senza offesa e polemiche). Comunque se servono altre informazioni tecniche chiedete pure.

acerfree:
Guglielmo Buongiorno, spero vada bene la modifica che ho apportato al codice. Sembra di stare in un tribunale qui.

La richiesta di postare il codice negli appositi tag, non è dovuta ad un capriccio ma semplicemente al fatto che alcune parti di codice potrebbero essere interpretate come caratteri di controllo, e qundi non venire visualizzate.

Ciao

Attilio

Ma Arduino è collegato tramite USB quindi ?
Luigino usa sulla USB un FT232 mentre Arduino usa un Atmega16u2, come detto prima da Michele.
Però la Arduino 2009 usa anche lei il FT232. Sicuro che anche con la 2009 dia problemi ?

@acerfree: NO, non stiamo in tribunale, pretendiamo però che si rispetti il regolamento !

Un riavvio del PC a causa di una cosa collegata sulla USB NON dovrebbe mai accadere se non per problemi puramente “elettrici”, ma … è Windows e quindi mi aspetto di tutto.

Arduino UNO usa come convertitore seriale <–> USB un ATmega16U2 programmato per svolgere tale funzione e, ovviamnete, non puoi pretendere che il comportamento sia come quello di un FT232. Porta seriale aperta o chiusa, Arduino continua a trasmettere i dati sulla seriale e quindi vedi il lampeggio dei LED.

Moltissima gente usa Arduino UNO con LabView™ e National stessa, sul suo sito, fornisce librerie e quant’altro per interfacciarlo quindi, continuo a dire, NON è un problema imputabile ad Arduino.

Il PC, al riavvio, ti da qualche messaggio di errore? … perché mi sembra tanto il comportamento di un puntatore andato fuori dall’indirizzo consentito con conseguente crash del sistema. Che versione di LabView™ stai usando ?

Guglielmo

P.S.: Tanto per chiarire … ti informo che stai parlando con colui che, negli anni '90, fu uno dei primi “Alliance Member” di National Instruments in Italia e che ha usato LabView™ fin dalle primissime versioni (… anche se ho sempre preferito LabWindows™ e poi LabWindows/CVI™). Quindi … conosco piuttosto bene l’ambiente dei laboratori … :wink:

Luigino è stato un progetto privato, non c'entra nulla con Arduino, che non è per niente "risparmiato", non a caso milioni di schede nel mondo funzionano nelle più disparate applicazioni; purtroppo Luigino328 è nato con un difetto dovuto alla posizione del connettore ICSP, che ne ha decretato una limitazione del potenziale successo legato ad alcune idee innovative insite nel suo progetto. Chi lo commercializzava è stata Robot Italy, io ne possiedo una board ma, per la verità, ho avuto qualche problema nel miei studi sulla programmazione ISP, e quel benedetto connettore non mi ha certo aiutato a fare sperimentazione, anche se una soluzione meccanica di adattamento c'era, quindi l'ho messo da parte. Astrobeed (utente del Forum) ne è stato il progettista, immagino che possa recuperarti qualche board, però devo anche dirti che secondo me c'è un problema a monte e solo la maggiore "robustezza" seriale e dello stadio di alimentazione del Luigino ti permette di mascherarlo, quindi io cercherei il problema in altra direzione. Luigino è basato sul progetto Duemilanove, con alcune aggiunte, ma in linea di massima non dovresti avere problemi con la Duemilanove. Personalmente ho sperimentato tanti sensori senza avere mai problemi. Arduino DUE lavora esclusivamente a 3,3V quindi temo dovresti rivedere la tua struttura progettuale e certamente non è più "robusto" della UNO o MEGA o Duemilanove.
P.es. una cosa che valuterei bene è il fatto che tu alimenti i sensori tramite l'USB, potrei sbagliarmi, ma alcuni dei sensori che hai indicato richiedono correnti che l'USB non è in grado di garantire, quindi, tanto per cominciare, io proverei a fornire una alimentazione lineare potente esterna, con massa in comune.
Lo schermo nero nei sistemi windows in genere è proprio indicazione di intervento di protezione sull'alimentazione.

Guglielmo, una parentesi fintanto che il nostro amico si rifa vivo. Nel caso posso aprire un altro Topic, ma qui il titolo sembra perfetto :slight_smile:
Ti risulta

Arduino UNO con LabView™ e National stessa, sul suo sito, fornisce librerie e quant'altro per interfacciarlo

che esista un modo per programmare Arduino mediante Labview? In pratica la mia necessità sarebbe quella di preparare un esperimento mediante Labview e poi farlo eseguire ad Arduino.
Io finora ho solo sentito che si può usare come fa Giuseppe, e cioè programmando direttamente Arduino e poi inviando i dati a Labview per le conseguenti elaborazioni.

No Michele, non sostituisce l'IDE :), ma permette facilmente di interfacciare Arduino con LabView™ ...
... cerca con Google : "NI LabVIEW Interface for Arduino" e troverai tutte le informazioni, inoltre guarda anche QUI :wink:

Guglielmo

P.S.: Dai un'occhiata anche a QUESTO kit di Sparkfun

Buongiorno Michele, quello che dici sulle correnti è vero quando però si collegano due sensori (questo vale per gli MQx). Collegando un sole sensore, conti alla mano, la USB è in grado di erogare le correnti necessarie al corretto funzionamento. Tra l'altro ogni pin I/O può dare al massimo 40 mA se non ricordo male. Il problema è che facendo leggere ad Arduino anche un solo sensore (NTC in serie ad una resistenza fissa da 10K) dopo un po' il pc si spegne. Sul portatile vedo solo una schermata nera e quando si riavvia mi esce il solito messaggio "Windows è stato chiuso inaspettatamente, si desidera trovare una soluzione online?". Sul pc fisso invece, una volta sono riuscito a fotografare il messaggio di errore che dava (schermata blu) che puoi visualizzare qui:

(spero sia lecita questa cosa dei link, se sbaglio, Guglielmo, correggimi tranquillamente)

Secondo me il problema è software non hardware. Ho pensato anche io ad un problema dei puntatori o della ram, ma non so come potrei risolvere. Spero che la foto della schermata blu, possa far venire qualche idea a qualcuno. Grazie.

acerfree:
Sul pc fisso invece, una volta sono riuscito a fotografare il messaggio di errore che dava (schermata blu) che puoi visualizzare qui:

Dropbox - Error

… mostra chiaramente un errore nel driver USB di windows “DRIVER_IRQL_NOT_LESS_OR_EQUAL” in usbser.sys

Hai già provato a fare una cosa … installare i driver che trovi nella cartella di Arduino ? Non vorrei ci fosse un problema di incompatibilità con il driver USB che stavi usando … ::slight_smile:

Guglielmo

gpb01:
… mostra chiaramente un errore nel driver USB di windows “DRIVER_IRQL_NOT_LESS_OR_EQUAL” in usbser.sys

Hai già provato a fare una cosa … installare i driver che trovi nella cartella di Arduino ? Non vorrei ci fosse un problema di incompatibilità con il driver USB che stavi usando … ::slight_smile:

Guglielmo

No questa cosa non l’ho fatta. Dove posso trovare questi driver? Provo subito