Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - creare una bussola
Forum - C# / VB.NET - creare una bussola - Pagina 8

Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ] Precedente | Prossimo
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 14:24
Sabato, 23/03/2024
questo è il video
https://youtu.be/LOWkFOPfCmU

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 15:51
Sabato, 23/03/2024
Lo hai scritto tu sull'ultimo post, te lo ripropongo:
Testo quotato

Postato originariamente da nightwolf:
vi chiedo se da qui è mpossibile splittare i vari valori che arrivano dalla seriale che in questo momento sono  
B:"coordinate" 000.00
P:"valore potenziometro"  da 0 a 100
grazie mille


Io ho messo i duepunti ma tu giustamente hai rimesso i puntievirgola, ora ti guardo il codice.

Ultima modifica effettuata da Carlo il 23/03/2024 alle 16:09


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 16:08
Sabato, 23/03/2024
NOOO!!! hai lasciato i duepunti....

Lo hai capito cosa fa questa istruzione? valoriDivisi = str.Split(";")
Divide una stringa in sottostringhe usando il carattere scelto per separarle.
Il carattere lo sceglie il programmatore, abbiamo scelto il puntoevirgola poi tu hai postato sbagliando che da arduino le stringhe arrivavano separate dai duepunti, io l'ho preso per buono e ho scritto il codice con i duepunti, Tu quando hai copiato e incollato cosa hai guardato??? li hai letti i commenti??? l'ho scritto dappertutto dove avevo messo i duepunti... ricambiali e tutto funzionerà.

Nella function riga 7 e riga 13
Nel Timer riga 23

guardando il video si nota che i valori arrivano ogni mezzo secondo e quelli per la bussola ogni secondo, per questo ti avevo proposto l'unico invio con abbassamento del delay, ritengo che tu possa ricevere i dati bussola;potenziometro anche 5 volte al secondo rendendo la rotazione della bussola più reale.

Ultima modifica effettuata da Carlo il 23/03/2024 alle 20:08


in programmazione tutto è permesso
PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 16:18
Sabato, 23/03/2024
Perdonami, ho risposto ieri sera dopo una serata tremenda, con sti : e ;
Cmq tagliando la testa al toro da arduino escono cosi come ho scritto.
B;335.20
P;36
E da qui non si scappa.
Stasera quando arrivo a casa cambio i : con il ; e vediamo,
ps. Certo che ho capito cosa fanno le varie scritte e lo split.
Adesso con quella scrittura posso far passare cio che mi serve dal timer2.

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 16:20
Sabato, 23/03/2024
Testo quotato

Postato originariamente da nightwolf:

Perdonami, ho risposto ieri sera dopo una serata tremenda, con sti : e ;
Cmq tagliando la testa al toro da arduino escono cosi come ho scritto.
B;335.20
P;36
E da qui non si scappa.
Stasera quando arrivo a casa cambio i : con il ; e vediamo,
ps. Certo che ho capito cosa fanno le varie scritte e lo split.
Adesso con quella scrittura posso far passare cio che mi serve dal timer2.



:k::k::k:


in programmazione tutto è permesso
PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 1:11
Martedì, 26/03/2024
buonasera a tutti o meglio dire buona notte a tutti, ho cambiato i : con il ; ma, mi da il seguente errore, cosa vuol dire? ho provato a mettere i : nel codice arduino ma il risultato non cambia.
avvolte funziona e avvolte no, dall erroe è come se non ricevesse bene i valori, anche perchè ad un certo punto mentre riceve i valori della bussola si blocca, e se provo ad usare il potenziometro esce lo stesso errore


nightwolf ha allegato un file: errore.png (170766 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 1:11
Martedì, 26/03/2024
questo invece è l erroe del potenziometro


nightwolf ha allegato un file: errore1.png (166533 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 8:47
Martedì, 26/03/2024
Se metti il puntoevirgola come separatore su arduino, lo devi mettere anche in vb.
Se metti i duepunti in arduino li devi mettere anche in vb.
Non c'è nulla da provare.

L'errore lo hai perché trasmetti sulla seriale di arduino in modo temporizzato e ricevi sulla seriale del Pc in modo temporizzato ma non sincronizzato.
Le letture si susseguono e può capitare che vai a leggere quando arduino sta scrivendo e la stringa non è completa. Per evitarlo bisogna stabilire una comunicazione sincrona e con convalida.
Troppo complicato per questo progetto è sufficiente analizzare il dato da vb e cercare di verificarne la congruità.

Se leggi le segnalazioni degli errori è tutto chiaro cosa è successo, nel primo caso è stato ricevuto "B;B" e in valoriDivisi(1) ci è andata la B che non si può convertire in intero. Nel secondo caso è stato ricevuto "B;286.91P" e in valoriDivisi(1) ci è andato 286.91P che non si può convertire in intero.

Verifiche da fare in Vb prima di usare il dato:
1) controllare che la stringa contenga un puntovirgola
2) controllare che il valore in valoriDivisi(1) sia numerico prima di convertirlo, oppure usare tryParse()
se non bastasse
3) controllare che la stringa B sia lunga 8 caratteri
4) che la stringa P non sia più lunga di 5 caratteri
5) che il valore di P sia tra 0 e 100

Lo sai fare?

Ultima modifica effettuata da Carlo il 26/03/2024 alle 9:19


in programmazione tutto è permesso
PM Quote
Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ] Precedente | Prossimo