stefano1979transam Inserito: 2 febbraio 2020 Segnala Share Inserito: 2 febbraio 2020 Un saluto a tutti spero di essere nella sezione giusta in tal caso mi scuso in anticipo ma ho un problema sul mio progettino che non riesco a risolvere e mi chiedevo se qualcuno nel forum mi potrebbe aiutare. Premetto che non sono un esperto del settore e da poco tempo ho iniziato ad usare ARDUINO nei miei progetti. Ultimamente sto lavorando (a livello hobbistico) all'interfacciamento di aurduino con visual net (versione 2017 quella ora istallata) . Ho creato una pagina grafica di comando con relativi pulsanti ,stati ,ecc, e comando arduino (tramite usb) i rele con i vari carichi e stati di feedback di ritorno. Ho aggiunto anche la lettura delle temperature di varie temperature (sensore dht11 con libreria inclusa) . Tutti i dati praticamente vengono scritti sul monitor seriale di arduino e visual basic li legge e viceversa. Il tutto funziona egregiamente stando sempre in modo compilazione, mi spiego meglio: Collego arduino all' usb del pc ,apro il compilatore di vb net dove ho il programma ,lo eseguo e fin li tutto bene .(i rele vanno ,gli stati dei rele vanno e le temperature ok) Per continuare a modificare il programma (sia grafico che listato),ho creato un pulsante grafico provvisorio per interrompere l'esecuzione di visual net,con la funzione END. Il problema si pone quando rilancio l'esecusione del compilatore ,a volte riparte tutto ok mentre altre volte il pc non legge più gli stati,i rele ecc,devo cliccare ancora il pulsante end e rilanciarlo più volte fino a che riparte correttamente. Penso che il problema sia perché non fermo l'esecuzione nel modo corretto; e' un problema di visual net o arduino? Devo resettare con qualche istruzione? E' vero che una volta creato l'EXE (cosa che non ho ancora fatto per ora) il programma dovrebbe tornare a Windows ma poi ripartira' nel modo corretto? Qualche consiglio da voi esperti del settore? 🤔 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 2 febbraio 2020 Segnala Share Inserita: 2 febbraio 2020 Il problema è .... window. Quando premi il pulsante di "End" ripartirebbe tutto regolarmente, forse, se tu non apportassi modifiche. Ricomplinado dopo la modifica se riparte regolarmente è puramente casuale. Creando un "exe", e rilanciando il programma, non ci sono problemi perchè il programma riparte correttamente ex novo. In che linguaggio hai scritto la tua applicazione? C# o VB? Link al commento Condividi su altri siti More sharing options...
stefano1979transam Inserita: 2 febbraio 2020 Autore Segnala Share Inserita: 2 febbraio 2020 Scritto in visual basic,lo fa anche se non apporto modifiche ,solo uscendo ed rilanciando nel compilatore (premendo il triangolino verde si avvia il programma ,fa il debug poi a caso riprende correttamente o diventa "sordo". Arduino continua a stampare sulla seriale (lo vedo dal monito seriale) . Se il problema si risolve creando l'EXE il problema non e' poi cosi importante ma volevo capire perché fa cosi? magari azzerare tutto ogni volta? . Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 2 febbraio 2020 Segnala Share Inserita: 2 febbraio 2020 Non è una risposta ficilmente condensabile in poche righe di un messaggio. Bisognerebbe descrivere, non in modo superficiale, come lavora windows e come lavora l'IDE di Visual.Net Poi però il problema potrebbe anche essere esaltato da come hia scritto la tua applicazione; in questo caso ti ritroveresti il problema anche dopo la generazione del file exe. Io è da un po' che non faccio lavori con VB.Net e ho perso un po' di immediatezza. Tu come generi questa fine del programma, ovvero che operazioni scatena il tasto "END" ? Link al commento Condividi su altri siti More sharing options...
stefano1979transam Inserita: 2 febbraio 2020 Autore Segnala Share Inserita: 2 febbraio 2020 La fine del programma la genero io cliccando col mouse sul tasto "button" creato in grafica che mi riporta al codice dell' evento button.click per uscire dall'esecuzione del programma, li scrivo la funzione END. Se non premo il pulsante il tutto funziona all'infinito ,la prima volta il software parte correttamente e continua cosi. (ho creato dei pulsanti che cliccando su di essi col mouse vanno ad eccitare i carichi e fanno accendere la lampadina disegnata in grafica a seconda della posizione del rele perché arduino legge lo stato di essi e lo rilancia su vb,nello stesso tempo temperature e umidita vengono rilevate c🙄orrettamente.) Il tasto di fine programma lo metto io provvisorio per fermare l'esecuzione del programma ,una volta terminato il progetto lo eliminero' e questo diventera' il tasto di EXIT per chiudere l'EXE e tornare a windos. Tornando al programma quando e' in esecuzione ,se voglio aggiungere una riga di stringa o un pezzo di grafica o una scritta ,ho la necessita di fermare l'esecuzione del programma per accedere al form (o grafico o di compilazione) e' da li che nasce il problema.; e' un continuo esci dal compilatore ,scrivi ,debug e riavvia per provare se funziona quello che ho aggiunto. Per i comandi mando in seriale ad arduino una lettera o stringa e viceversa la riconosco con un ciclio IF THEN. Il tutto funziona ,ma ogni volta dovrei chiudere tutto visual studio ,uscire dall'ambiente di programmazione e riaprirlo.🤔 . Link al commento Condividi su altri siti More sharing options...
Adelino Rossi Inserita: 2 febbraio 2020 Segnala Share Inserita: 2 febbraio 2020 In vbnet la chiusura del programma deve essere fatta con Application.Exit() e non con end, che veniva invece utilizzato con vb6. Quando lanci un programma tra due apparati apri anche delle librerie e le porte di comunicazione che si trovano all'inizio del programma. Le porte di comunicazione e eventuali altre funzioni, array, la pulizia dei buffer di comunicazione le devi chiudere prima di fermare il programma in modo che al riavvio sia tutto pulito come quando parti all'inizio. Vedi il tuo programma cosa fa all'avviamento e ragiona su cosa deve essere ripulito e messo a zero. Anche l'eventuale inizializzazione verso arduino deve essere analizzata. A volte il problema si pone anche con altri programmi. E' un po di tempo che non programmo con arduino quindi quanto sopra va preso solo come indicazioni di carattere generale da verificare. Capisco che nello sviluppo ci sia una certa velocità di modifica ma non puoi ignorare le procedure e i protocolli. La stabilità di comunicazione è un elemento fondamentale del progetto, io interromperei lo sviluppo grafico e farei in modo di risolvere in modo corretto i problemi di comunicazione. Link al commento Condividi su altri siti More sharing options...
stefano1979transam Inserita: 9 febbraio 2020 Autore Segnala Share Inserita: 9 febbraio 2020 Verifichero' meglio la procedura di azzeramento e il più corretto metodo dall' uscita dal compilatore..🤔 Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 9 febbraio 2020 Segnala Share Inserita: 9 febbraio 2020 (modificato) Se e' arduino che invia dati, li invia di continuo ? O li invia in seguito a una tua ruchiesta ? Hai scritto tu il codice lato arduino ? Io penso che il codice arduino si impalla perche invii qualche porcheria sulla seriale, e poi si riprende fortunosamente perche al restart mandi qualche altra schifezza. In questi casi, unica e' inserire qualche trace di debug lato arduino, del tipo, ricevo porcherie, ti mando una avviso e resetto. Per comunicazioni seriali si usano protocolli bitstuffed o similari, con un minimo di checksum, per avere un po di affidabilita' e buttare via comand invalidi. Modificato: 9 febbraio 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 febbraio 2020 Segnala Share Inserita: 10 febbraio 2020 13 ore fa, _angelo_ ha scritto: Io penso che il codice arduino si impalla perche invii qualche porcheria sulla seriale, E più facileche arduino s'impalli per disturbi, se non si prendono mille precauzioni basta uno sternuto di mosca per mandare il codice a ranocchie. Però da quello che descrive, anche se sono anni che non faccio più queste cose, mi sembra più un problema legato allo stop dell'applicazione VB.Net Link al commento Condividi su altri siti More sharing options...
ilguargua Inserita: 10 febbraio 2020 Segnala Share Inserita: 10 febbraio 2020 Poi c'è da tener di conto che comunque l'Arduino (perlomeno quello 'standard', oggi ormai si chiama Arduino un po' tutto) si resetta quando viene aperta la seriale sulla porta USB. Questo a volte è un vantaggio (es. per caricare gli sketch) a volte no, dipende dall'applicazione. Ciao, Ale. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora