Arduino Forum

International => Italiano => Software => Topic started by: er_like_no_other on Aug 17, 2012, 02:42 pm

Title: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 17, 2012, 02:42 pm
sto mettendo giù delle idee per il mio prossimo robot, volevo fare un robot cingolato esploratore con una video camera sopra, io pensavo di pilotarlo dal computer mandando dei messaggi in seriale che poi trasmetto al robot tramite dei moduli xbee... mi ponevo il problema di come fare un SW per il computer che mi svolgesse questa funzione, io volveo fare anche qualcosa che fosse anche graficamente bello, cosa mi suggerite voi? un mio amico mi ha parlato di processing, cosa ne pensate voi? mi spiegate un po' come funziona? ho letto in giro che basta caricare un programma standar sull'arduino e poi si controlla tutto da computer, io invece vorrei scrivere il codice per l'arduino e dal computer inviare solo dei comandi, tipo vai avanti, gira a destra, ruota la video camera a destra... (ovviamente i messaggi saranno opportunamente codificati :P )
grazie in anticipo ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: leo72 on Aug 17, 2012, 05:20 pm
Beh, devi fare lato Arduino un semplice (  :* ) software che stia in ascolto sulla seriale ed esegua i comandi ricevuti.
Ad esempio: A50* potrebbe stare per "A"vanza di 50 (millisecondi, secondi, minuti, metri? boh, devi stabilire tu l'ìunità di misura) con l'asterisco a chiudere la trasmissione.

Lato PC devi solo scegliere un software che sai controllare. Processing è molto gettonato perché è usato come base per l'IDE di Arduino ma io personalmente non lo conosco per cui non lo userei. Ad esempio, io su Linux userei Gambas, un linguaggio capace di creare interfacce grafiche che usa una sintassi derivata dal BASIC. Insomma, tutto dipende su cosa lavori.
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 17, 2012, 07:41 pm
per il lato arduino non ho problemi, avevo già fatto qualcosa del genere sui miei vecchi robot che potevano essere controllati tramite un telecomando bluetooth...
il mio probema è il lato computer che non so da dove iniziare :smiley-red: io conosco solo il C/C++ che mi hanno "insegnato" a scuola, del BASIC non so niente... :(
Title: Re: controllo remoto di un robot dal computer?
Post by: ratto93 on Aug 17, 2012, 09:20 pm
Io sto cercando di fare un interfaccia simile ma ho problemi di gestione della seriale in Java con interfaccia grafica ovviamente mentre in processing va senza problemi anche se l'interfaccia è schifosetta :)
Title: Re: controllo remoto di un robot dal computer?
Post by: cyclone on Aug 17, 2012, 09:32 pm
hai necessità solo di pilotarlo in manuale o vuoi eseguire delle macro in modo automatico?
vuoi fare path-planning ed exploring con telemetria
pianificare un percorso vedendo il robot man mano che si muove animandolo su una mappa grafica tramite calcoli odometrici.

se vuoi implementare qualcosa da zero con grafica accattivante ticonsiglio di usare delphi o  visualbasic che è abbastanza semplice.
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 17, 2012, 09:57 pm
a me intanto basta controllarne i movimenti in modo semplice, poi magari mi piacerebbe se possibile aggiungere un gps, ma non mi sono ancora informato a riguardo e prima di andare troppo avanti con le idee devo risolvere le cose basilari...
a me basterebbe fare una grafica che non faccia proprio schifo, con un programma relativamente semplice da usare, se mi dici così di visulbasic lo provo ;)
processing lo scarto quindi? :smiley-roll:
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 17, 2012, 10:19 pm
gaurda, vai di procesessing per iniziare che è tutto pre-confezionato, oltre che avere sul suo sito miliardi di esempi con arduino ed avere lo stesso editor di arduino (anzi, è arduino che copia xD)
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 17, 2012, 10:29 pm
io ti dico visualbasic, oltretutto l'IDE che rilascia microsoft (gratuito nella versione express, oppure gratuito in tutte le versioni con la carta dello studente) è molto comodo e sinceramente scrivi poco-niente a mano, il sistema che indica gli errori è relativamente chiaro e come debug il software non compila tutto, intendo che se l'errore lo hai quando premi un pulsante ti mostrerà l'errore quando premi il pulsante (lo so in realtà è bruttissima come cosa perchè ci sono casi in cui potresti non provare quella determinata cosa).

Anche interfacciarlo con la seriale vb è ottimo
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 18, 2012, 12:15 am
Secondo me non ha più senso usare Visual Basic, non lo usa più nessuno. Lo insegnano ancora nelle scuole (addirittura la versione 6.0 che non ha nulla a che vedere con le nuove!) ma di fatto utilizzano quasi tutti i professionisti che si aggiornano usano C#. Il framework sottostante è il solito (.NET) ma trovi molti più esempi, libri, articoli.

Oltre che al linguaggio è fondamentale scegliere in ambito .NET framework se vuoi utilizzare Windows Forms o WPF. WPF è un "qualcosa di nuovo" che può richiedere più impegno se provieni da altri vecchi linguaggi e framework visuali.

Io personalmente conosco molto bene entrambi ed utilizzerei WPF tra i due

Utilizzare processing oltre a semplici cose non ha molto senso secondo me, sopratutto per questa applicazione che vuoi fare.

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 18, 2012, 12:01 pm
grazie mille a tutti per i consigli ;) ho guardato sia visual basic che processing, ma mi piace di più visual basic perchè si riescono a fare cose graficamente più belle e in modo più semplice... poi per la gestione della seriale non so cosa sia meglio tra i due, per ora ho guardato solo la grafica...
secondo voi è possibile gestire un joystick come dispositivo di input?
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 18, 2012, 01:06 pm
Quote
- e' integrato in Office nella forma di VisualBasic-script
utile per automatizzare la gestione dei documenti (e, con estensioni, non solo office)


Si chiama VBA (Visual Basic for Applications) ed è diverso dal Visual Basic 6.0 sia come strumenti di debug, non si possono creare EXE, etc.. e comporta di imparare l'Object Model dell'applicazione specifica che si vuole automatizzare. In questo caso non lo vedo utile.

Quote
- supporta molto molto bene OLE, anzi e' il suo preferito ed e' facile interfacciarsi
e puoi far comunicare autoCAD con excel, o Word con Doors


Più che OLE sia parla di COM in questi casi, sei rimasto un pò indietro.

Quote
- rispetto a (dot).net esiste in una forma leggera, poche decine di Mb
features ovviamente pesantemente limate, ma il core minimo e' comunque utile


Se parli di VB6 non ha senso continuare a svilupparci nuovi progetti. Il vecchio IDE non è più supportato, si è fermato ad XP, la programmazione è anche troppo semplicistica e superata ed ormai è morto e sepolto.

Gli eseguibili .NET sono più leggeri in quanto non bisogna portarsi sempre dietro le solite funzioni che sono inglobate nel runtime che è già installato con Windows nelle versioni più recenti, nelle altre versioni ormai il 90% degli utenti l'ha già installato perché utilizzato da moltissimi programmi (vedi Autocad, etc..).

Se parli di VB.NET allora è equivalente a C# in quanto cambia proprio solamente la sintassi alla fine.

Ciao

PS: Se vuoi fare delle cosette con grafica avanzata, webcam, joystick, etc.. lascia perdere subito VB6 e guarda .NET
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 18, 2012, 01:19 pm
guarda vbscipt lo uso nelle pagine ASP per lavoro e sinceramente NON mi piace.
1. Se non dai Option Explicit le variabili non serve dichiararle. certo però che se poi sbagli ad usarle (magari un typo) sei fregato
2. Non è case sensitive, il che rende meno intuitivo leggere un codice di prima occhiata
3. for, do, funzuioni, subroutine, tutto ha una sua sintassi differente e secondo me poco intuitiva
4. è un linguaggio interpretato, quindi è più lento e non fa il check di errori sitattici su tutto il codice (quindi IMHO indatatto per grossi codici)
5. ormai la tecnologia .netsta assorbendo praticamente tutti gli sforzi di mamma microsoft, quindi a meno di passare ad asp.net posso scordarmi sviluppo del linguaggio
@legacy:
supporterà bene COM e io sono nabbo della tecnologia, ma per ora a far parlare ASP+IIS con OpenOffice non ci sono riuscito..

il proicessing è un derivato di java, quindi il linguaggio è molto simile, anzi praticamente identico. Prova a adare un'occhiata ad eclipse o a netbeans che internamente hanno anche un estensione per fare la grafica "plug and play"

@ratto93: se hai problemi al 90% hai fatto cazzate con i thread, apri una discussione apposta che vediamo che si può fare
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 18, 2012, 01:26 pm
io intendevo vb.net in quanto è più flessibile, è vero che, come dice lesto, ha una sintassi dei for, if ecc diversi ma l'ide di casa microsoft bisogna dire che è ben fatto e impari tutto anche senza volerlo XD

comunque un'altra soluzione è visual C++ che è la sintassi del C++ ma con già la possibilità di grafica e le stesse funzioni di vb.net, insomma se vuoi un qualcosa di completo io non ci penserei 2 volte:
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 18, 2012, 01:28 pm

guarda vbscipt lo uso nelle pagine ASP per lavoro e sinceramente NON mi piace.
1. Se non dai Option Explicit le variabili non serve dichiararle. certo però che se poi sbagli ad usarle (magari un typo) sei fregato
2. Non è case sensitive, il che rende meno intuitivo leggere un codice di prima occhiata
3. for, do, funzuioni, subroutine, tutto ha una sua sintassi differente e secondo me poco intuitiva
4. è un linguaggio interpretato, quindi è più lento e non fa il check di errori sitattici su tutto il codice (quindi IMHO indatatto per grossi codici)
5. ormai la tecnologia .netsta assorbendo praticamente tutti gli sforzi di mamma microsoft, quindi a meno di passare ad asp.net posso scordarmi sviluppo del linguaggio
@legacy:
supporterà bene COM e io sono nabbo della tecnologia, ma per ora a far parlare ASP+IIS con OpenOffice non ci sono riuscito..

il proicessing è un derivato di java, quindi il linguaggio è molto simile, anzi praticamente identico. Prova a adare un'occhiata ad eclipse o a netbeans che internamente hanno anche un estensione per fare la grafica "plug and play"

@ratto93: se hai problemi al 90% hai fatto cazzate con i thread, apri una discussione apposta che vediamo che si può fare

lesto stai facendo confusione:
noi parliamo di vb usato non come script ma come linguaggio che alla fine viene complilato e non interpretato (alla fine ti risulta un file .exe).
viene interpretato solo in fase di debug.

tu ti riferisci a vb inteso come script per applet web, come detto da flz sono 2 cambpi di utilizzo completamente diversi che restituiscono cose diverse  :P

è come dire che java e javascript sono la stessa cosa  XD
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 18, 2012, 03:26 pm

comunque un'altra soluzione è visual C++ che è la sintassi del C++ ma con già la possibilità di grafica e le stesse funzioni di vb.net, insomma se vuoi un qualcosa di completo io non ci penserei 2 volte:
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express


Visual C++ va bene se ci sono diverse persone che lavorano al progetto o per piccole parti, altrimenti finisci il programma nel 3000...
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 18, 2012, 05:11 pm


comunque un'altra soluzione è visual C++ che è la sintassi del C++ ma con già la possibilità di grafica e le stesse funzioni di vb.net, insomma se vuoi un qualcosa di completo io non ci penserei 2 volte:
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express


Visual C++ va bene se ci sono diverse persone che lavorano al progetto o per piccole parti, altrimenti finisci il programma nel 3000...

per un simile programma visual studio te lo fa fare in 10 click  XD

certo se dovessi iniziare da foglio di testo sarebbe tutt'altro conto  XD
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 18, 2012, 07:47 pm

ma direi che a spanne sono rimasto a roba del 2001 =D
e che da allora mi occupo di altro, molto piu' viscerale

ma perche' sono rimasto a vb6 e la cosa non mi dispiace ?

perche' quando devo hobbisticamente giocare con le interfaccine
di vb6 mi piace che

occupi pochi MB

e che stia sulla macchina virtuale dei puffi
che ho sul mac/ppc, virtualPC per mac
roba del 2005, la roba moderna su quel mac non ci gira
e sono anche passati da ppc a x86 =P

e che giri decentissimamente anche sul macinino da 10 euro
che ho tirato su in fiera, un pentium3, ibm t23
solido come il marmo che non mi dispiace lasciare nel ciarpame
che ho sul banchetto in garage in mezzo a trapani, frese, etc ...

il pc serio invece non avrebbe problemi a far girare .net
perche' come tutte le cose moderne ha disco ram e clock belli cicci
pero' e' anche un robino che si sfonda solo a guardarlo
IBM non fa piu' i portatili di una volta mo che ha venduto ai cinesi di Lenovo
e a me la sua roba moderna mi scoccia lasciarla sul banchetto
perche' in quell'ambiente non durerebbe 1 giorno =P

alla fine per lavoro ben mi guardo dall'usare .net
mentre per hobby se proprio devo
alla fine vb6 mi fa quello che deve, quelle 2 o 3 robine graficose


certo poi che io tendo a non fare interfacce grafiche
perche' preferisco le interfaccine in text console

roba che schiffi ovunque, sul mac, su linux, su freeBSD, ...
anche su windows con su il support unix

alla fine gira ovunque ci sia la lib-ncurses, e' la sola lib a cui mi appoggio!

così lo fa in C++ e riadatta il linguaggio quanto vuole  XD
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 19, 2012, 01:18 am
grazie a tutti per le info e i suggerimenti che mi avete dato ;)
questa mattina ho provato visual basic ed il risultato mi è sembrato ottimo graficamente, purtroppo non ho sperimentato molto il codice perchè mi sono perso a giocare con i pulsanti :P
oggi pomeriggio ho provato visual c++ che è uguale al basic però non sono riuscito a compilare niente perchè mi dava errore... domani guardo qualche altra guida se ho dimenticato qualcosa... ci sono molte più guide per il basic rispetto al visual c++ o sbaglio?  :smiley-roll-sweat:
Title: Re: controllo remoto di un robot dal computer?
Post by: igor99480 on Aug 19, 2012, 01:32 am
se posso dire la mia visual basic è un ottimo linguaggio per ichi di programmazione ne capisce poco.
ma sicuramente l'unico contro del vb è che non puoi avviare il programma su un'altro pc a meno che non abbia installato l'ulimo .net framework il che è molto fastidioso. come diceva legacy è meglio usare il vb 6 che quelli nuovi anche se è completamente diverso.

io ti consiglio di vederti il java (magari suando proprio processing ma meglio lasciar perdere) è molto simpatico come linguaggio e non è molto complicato. l'alternativa poi più professionale è come già detto il C.

ripeto secondo me se non vuoi perdere la testa fai prima con il visual basic ultima versione. se invece vuoi fare qualcosa di migliore usa il java o il c ;) spero di essert stato d'aiuto
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 19, 2012, 04:54 am

grazie a tutti per le info e i suggerimenti che mi avete dato ;)
questa mattina ho provato visual basic ed il risultato mi è sembrato ottimo graficamente, purtroppo non ho sperimentato molto il codice perchè mi sono perso a giocare con i pulsanti :P
oggi pomeriggio ho provato visual c++ che è uguale al basic però non sono riuscito a compilare niente perchè mi dava errore... domani guardo qualche altra guida se ho dimenticato qualcosa... ci sono molte più guide per il basic rispetto al visual c++ o sbaglio?  :smiley-roll-sweat:


Che versione di Visual Basic intendi?
La 6 e .NET sono due cose molto diverse.

Hai usato WPF o Windows Forms? Il Designer grafico è identico a C# che ti consiglio caldamente se utilizzi .NET (ovvero una versione da Visual Studio 2002 in su)

Lascia stare Visual C++, ti vai a creare problemi da solo. E' un linguaggio che non è facile da domare, richiede conoscenze avanzate di programmazione ad oggetti, soprattutto se utilizzi MFC, ATL, etc.. questi framework non si imparano in un mese ma in ANNI e fare un interfaccia grafica non è banale e fa perdere solo tempo.

Se utilizzi .NET tanto vale usare C# che è fatto apposta.
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 19, 2012, 09:59 am


grazie a tutti per le info e i suggerimenti che mi avete dato ;)
questa mattina ho provato visual basic ed il risultato mi è sembrato ottimo graficamente, purtroppo non ho sperimentato molto il codice perchè mi sono perso a giocare con i pulsanti :P
oggi pomeriggio ho provato visual c++ che è uguale al basic però non sono riuscito a compilare niente perchè mi dava errore... domani guardo qualche altra guida se ho dimenticato qualcosa... ci sono molte più guide per il basic rispetto al visual c++ o sbaglio?  :smiley-roll-sweat:


Che versione di Visual Basic intendi?
La 6 e .NET sono due cose molto diverse.

Hai usato WPF o Windows Forms? Il Designer grafico è identico a C# che ti consiglio caldamente se utilizzi .NET (ovvero una versione da Visual Studio 2002 in su)

Lascia stare Visual C++, ti vai a creare problemi da solo. E' un linguaggio che non è facile da domare, richiede conoscenze avanzate di programmazione ad oggetti, soprattutto se utilizzi MFC, ATL, etc.. questi framework non si imparano in un mese ma in ANNI e fare un interfaccia grafica non è banale e fa perdere solo tempo.

Se utilizzi .NET tanto vale usare C# che è fatto apposta.


io sto usando la versione express 2010 e ho provato a fare applicazioni windows form, oggi provo anche il C# allora ;) grazie per l'aiuto :)
Title: Re: controllo remoto di un robot dal computer?
Post by: leo72 on Aug 19, 2012, 10:27 am

Che versione di Visual Basic intendi?
La 6 e .NET sono due cose molto diverse.

Hai usato WPF o Windows Forms? Il Designer grafico è identico a C# che ti consiglio caldamente se utilizzi .NET (ovvero una versione da Visual Studio 2002 in su)

Lascia stare Visual C++, ti vai a creare problemi da solo. E' un linguaggio che non è facile da domare, richiede conoscenze avanzate di programmazione ad oggetti, soprattutto se utilizzi MFC, ATL, etc.. questi framework non si imparano in un mese ma in ANNI e fare un interfaccia grafica non è banale e fa perdere solo tempo.

Se utilizzi .NET tanto vale usare C# che è fatto apposta.

Ho un po' sorriso leggendo queste affermazioni  XD
Dire che il C++ è da nerd ed il C# è da programmatori di tutti i giorni è una forzatura. Il C# è un mix fra C++ e Java che la Microsoft ha inventato di sana pianta perché non accetta di usare strumenti inventati da altri (vedi Silverlight/Flash o DirectX/OpenGL ecc...), e siccome il C++ non è farina del suo sacco ed il Java lo odia alla morte, ha pensato bene di eliminare il suo Visual C++ che vendeva come il pane e creare quel carrozzone pesantissimo che è .NET.

Poi ha preso il Java, lo ha mescolato col C++ e se ne è uscita fuori con un "bellissimo" linguaggio che è il C#. Che è secondo me ancor più incasinato del C++ perché se il C++ è spesso indicato come il "C con gli oggetti", il C# sono gli "oggetti con la sintassi del C/Java/Delphi/Basic e chi più ne ha ne metta". Inoltre come ha detto legacy la piattaforma .NET ti costringe a scaricarti il framework di centinaia di MB per far girare il tuo programmino che magari è 50 kB di sorgente. Mi sembra assurdo. Ma d'altronde è la bellezza dei linguaggi interpretati...  ]:D

Per tornare in topic, se devi fare una semplice interfaccina per premere 2 pulsanti, caro ER, scegliti il linguaggio che a te risulta più facile, dai retta ad un bischero  ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 19, 2012, 10:35 am

Per tornare in topic, se devi fare una semplice interfaccina per premere 2 pulsanti, caro ER, scegliti il linguaggio che a te risulta più facile, dai retta ad un bischero  ;)


no beh non devo premere solo 2 pulsanti, se riuscivo voleve anche mettere il video della video camera on board sul robot e visualizzare anche dati relativi al robot... poi siccome non lo faccio per me ma per terzi ci tenevo che la grafica non fosse proprio male :) pensavo di usare visual basic che non mi sembra molto complicato e ci sono molti esempi in internet ;) però  prima provo un po' il C#...
grazie ancora per i suggerimenti ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: leo72 on Aug 19, 2012, 10:37 am

pensavo di usare visual basic che non mi sembra molto complicato e ci sono molti esempi in internet ;)

Ecco appunto... scegli un linguaggio che già conosci sennò ti ritrovi a dover studiarti anche quello, oltre ai timer  :smiley-yell:
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 19, 2012, 11:11 am


pensavo di usare visual basic che non mi sembra molto complicato e ci sono molti esempi in internet ;)

Ecco appunto... scegli un linguaggio che già conosci sennò ti ritrovi a dover studiarti anche quello, oltre ai timer  :smiley-yell:

beh quasi quasi  il C# mi piace di più del basic, forse uso questo :)
i timer purtroppo sono rimandati a data da destinarsi :P
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 19, 2012, 11:34 am
Quote
Dire che il C++ è da nerd ed il C# è da programmatori di tutti i giorni è una forzatura.


Non ho detto questo, non è tanto il linguaggio (che praticamente NESSUNO usa grezzo assieme alle interfacce grafiche) ma i framework proposti con Visual C++ che non sono proprio l'ideale per iniziare.
Il C++ assieme a QT per esempio è già meglio che assieme ai framework offerti da Visual C++ per un principiante ma rimane 2-3 ordini di grandezza più complicato di C# e più carente di esempi ed articoli, guide, etc..

Parlo per esperienza personale, ho usato MFC, ATL e QT.

Quote
ha pensato bene di eliminare il suo Visual C++ che vendeva come il pane e creare quel carrozzone pesantissimo che è .NET.


Assolutamente NO. Visual C++ permette ancora di creare applicazioni native (non .NET) che sono la scelta consigliata per realizzare giochi DirectX, programmi ad elevate prestazioni particolari, etc.. come detto però non è roba da beginner.

Quote
Poi ha preso il Java, lo ha mescolato col C++ e se ne è uscita fuori con un "bellissimo" linguaggio che è il C#. Che è secondo me ancor più incasinato del C++ perché se il C++ è spesso indicato come il "C con gli oggetti", il C# sono gli "oggetti con la sintassi del C/Java/Delphi/Basic e chi più ne ha ne metta".


Io trovo la sintassi molto elegante ma ricorda che ad ogni modo la sintassi vale 1/100, ormai quello che conta è il framework che c'è dietro  e gli strumenti di sviluppo. L'accoppiata Visual Studio/C#/WPF ad esempio offre funzionalità di tutti i tipi che permettono in poco tempo di realizzare programmi, strumenti di sviluppo e debug avanzati e WPF permette di avere interfacce veramente personalizzate, fuori dagli schemi (consiglio: con Expression BLEND ti semplifichi la vita di parecchio!)

Quote
la piattaforma .NET ti costringe a scaricarti il framework di centinaia di MB per far girare il tuo programmino che magari è 50 kB di sorgente. Mi sembra assurdo.


Il programma compilato diventa più piccolo di un equivalente nativo. Il Framework è già installato dentro Windows, al limite se usi la versione 4.0 c'è da installare qualcosa come 10/20 MB (meno di Java). Considerala però come un operazione rarissima in quanto se il pc è aggiornato c'è già. Lo usano inoltre molti programmi. Conclusione: tra ADSL e framework già installato non è un problema. Forse 10 anni fa quando c'era il 56k era un limite per lo shareware.

Quote
beh quasi quasi  il C# mi piace di più del basic, forse uso questo

Ottima idea! Dai un occhio anche a WPF, il libro "WPF Unleashed" assieme a "Expression Blend" saranno i tuoi miglior amici

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: leo72 on Aug 19, 2012, 12:06 pm
@flz47655:
tu la vedi in un modo, io in un altro.  :P


Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 19, 2012, 12:27 pm
Io sono molti anni che sviluppo sw, principalmente con strumenti MS.
Così almeno la discussione è equilibrata :D e ?R può scegliere in maniera saggia
Title: Re: controllo remoto di un robot dal computer?
Post by: leo72 on Aug 19, 2012, 02:06 pm

Io sono molti anni che sviluppo sw, principalmente con strumenti MS.

C'è sempre tempo per pentirsi  ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: astrobeed on Aug 19, 2012, 02:29 pm

C'è sempre tempo per pentirsi  ;)


Esatto, convertiti a Windows che sei ancora in tempo  :D :smiley-mr-green: :D
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 19, 2012, 02:32 pm

Considerala però come un operazione rarissima in quanto se il pc è aggiornato c'è già.


e quì casca l'asino. Direi che si traduce in "ti tocca scaricartelo". Come java  XD
con la differenza che stai tagliando fuori Mac e Linux.

ps. ho fattto una ricerchina, su win7 non si vede l'ombra del .net fino alla SP1. Considerando che ancora il 25/30% del mercato usa XP, quanti del 50/60% che usa win 7 avrà la SP1? (http://www.w3schools.com/browsers/browsers_os.asp)

(se vuoi qualche sondaggio più approfondito sull'hardware in giro per il mondo, cosa molto utile per fersi un'idera del "computer tipo", controlla su http://store.steampowered.com/hwsurvey/)
Title: Re: controllo remoto di un robot dal computer?
Post by: astrobeed on Aug 19, 2012, 02:51 pm

con la differenza che stai tagliando fuori Mac e Linux.


Per MAC  e Linux c'è Mono che ti permette di usare software scritto per .net quasi senza problemi  :)
Title: Re: controllo remoto di un robot dal computer?
Post by: leo72 on Aug 19, 2012, 03:01 pm


con la differenza che stai tagliando fuori Mac e Linux.


Per MAC  e Linux c'è Mono che ti permette di usare software scritto per .net quasi senza problemi  :)

Per carità.... non so che % di supporto offra Mono a Windows Forms allo stato attuale, ma il punto non è solo quello: ti "infesta" il PC di file .exe assolutamente osceni. E come ho detto un sacco di volte, se uno vuole usare strumenti Microsoft, che usi Windows.


Esatto, convertiti a Windows che sei ancora in tempo  :D :smiley-mr-green: :D

E' più facile che un cammello passi per la cruna di un ago che io torni a Windows  ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 19, 2012, 04:11 pm


con la differenza che stai tagliando fuori Mac e Linux.


Per MAC  e Linux c'è Mono che ti permette di usare software scritto per .net quasi senza problemi  :)


quasi? come silverlight/moonlight? allora siamo apposto  ]:)
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 19, 2012, 04:35 pm


Considerala però come un operazione rarissima in quanto se il pc è aggiornato c'è già.

....

(se vuoi qualche sondaggio più approfondito sull'hardware in giro per il mondo, cosa molto utile per fersi un'idera del "computer tipo", controlla su http://store.steampowered.com/hwsurvey/)

no non usare questo sondaggio: questo si riferisce a pc con installato steam, io ad esempio ho 6 computer in casa e solo su 2 c'è steam (sul mio e quello di mio fratello), quindi è molto realtiva la cosa anche perchè chi scarica steam è gente che sa già che il suo pc supporta i giochi (o chi glielo fa di spendere da 5€ a 80€ per un gioco quando potrebbe addirittura non funzionare?)
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 19, 2012, 05:11 pm
vero in parte, se osservi le chede grafiche, ti accorgi che la maggior parte dei PC non sono assolutamente da "gamers"  ( Intel HD Graphics...)
certo da prendere con le pinze, ma attualmente è il DB più completo disponibile
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 19, 2012, 05:21 pm

vero in parte, se osservi le chede grafiche, ti accorgi che la maggior parte dei PC non sono assolutamente da "gamers"  ( Intel HD Graphics...)
certo da prendere con le pinze, ma attualmente è il DB più completo disponibile


conta che tutti quelli che hanno css o cs 1.6 hanno steam, guarda quante copie vendute e non c'è bisogno di grafica da urlo (gira a 25fps con una x300  XD )
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 20, 2012, 01:59 am
Quote
ps. ho fattto una ricerchina, su win7 non si vede l'ombra del .net fino alla SP1. Considerando che ancora il 25/30% del mercato usa XP, quanti del 50/60% che usa win 7 avrà la SP1?


Allora .net è pre-installato da Windows Vista senza SP nella versione 3.0, su Windows 7 c'è pre-installata la 3.5, su XP con SP2 in poi è presente sul CD di installazione anche se non installato di default.

Mi sa che l'asino è cascato  ]:D

Credimi per l'applicazione per il controllo del robot non sorge il problema, attualmente su quasi tutti i PC c'è installata la 4.0 da qualche programma famoso o dagli aggiornamenti.
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 20, 2012, 10:58 am
no, ho win7 pre-SP1 originale e non c'è l'ombra di .net
Title: Re: controllo remoto di un robot dal computer?
Post by: brainbooster on Aug 20, 2012, 11:16 am
fino al 2009 era così:
(http://blogs.msdn.com/blogfiles/pmarcu/WindowsLiveWriter/WhichVersionof.NETisBuiltintoWindows_D74B/image_2.png)
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 20, 2012, 11:34 am

no, ho win7 pre-SP1 originale e non c'è l'ombra di .net


In che senso? Mica lo vedi.. ad ogni modo se vuoi convincertene guarda cosa trovi nella cartella "C:\Windows\Microsoft.NET\Framework"  :D

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 20, 2012, 12:03 pm
si vede tra i programmi installati  :P, comunque so che non c'è perchè ho un gioco che richiede il .net versione 3.5 e me l'ha fatto installare.
Infatti dalla tabella di BrainBooster si evince che solo vista possiede .net fin dalla RTM (curioso che si sia "perso" nella RTM per win7)

Lo stesso gioco su wine + mono non funziona, con wine + .net funziona. (divagazione sul supporto per linux)
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 20, 2012, 12:33 pm

si vede tra i programmi installati  :P, comunque so che non c'è perchè ho un gioco che richiede il .net versione 3.5 e me l'ha fatto installare.
Infatti dalla tabella di BrainBooster si evince che solo vista possiede .net fin dalla RTM (curioso che si sia "perso" nella RTM per win7)

Lo stesso gioco su wine + mono non funziona, con wine + .net funziona. (divagazione sul supporto per linux)


Ti ha fatto installare qualche aggiornamento veloce della 3.5 SP1 e basta, dalla tabella si vede benissimo che Win7 RTM ha .NET 3.5 col SP1.

Il supporto a Linux della comunità è spesso inutilizzabile in quanto incompleto e pieno di bug.

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 20, 2012, 01:59 pm
ah ok, sp1 è riferito alla versione del .net, non del sistema operativo  :smiley-roll-blue:
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 24, 2012, 08:21 pm
dopo aver capito piuttosto bene coe funziona visual C# sto provando a comunicare con l'arduino, ho provato a seguire questa guida: http://www.instructables.com/id/Interfacing-your-arduino-with-a-C-program/?ALLSTEPS
per inviare messaggi dal computer all'arduino sembra funzionare bene, mentre nell'altro senso ho un po' di problemi, non mi da dei risultati sensati...

ho messo questo codice sull'arduino:
Code: [Select]
void setup() 
{
Serial.begin(115200);
pinMode(13,OUTPUT);
}

void loop()
{
while(Serial.available()==0){}

char er=Serial.read();

if(er=='3')
    digitalWrite(13,HIGH);
else
    digitalWrite(13,LOW);   

Serial.write(er);
Serial.write(10);
}


quindi io invio i dati dalla seriale e lui me li rimanda aggiungendo "\n" dopo ogni carattere...
sul visual c# ho messo questo:
Code: [Select]
private void button2_Click(object sender, EventArgs e)
        {
            if (!serialPort1.IsOpen)
            {
                try
                {
                    serialPort1.Open();
                }
                catch
                {
                    MessageBox.Show("error");
                }
            }
            serialPort1.Write(textBox2.Text);
            textBox2.Clear();

            if (serialPort1.BytesToRead != 0)
            {
                if (!serialPort1.IsOpen)
                {
                    try
                    {
                        serialPort1.Open();
                    }
                    catch
                    {
                        MessageBox.Show("error");
                    }
                }
                string read = serialPort1.ReadLine();
                label3.Text = read;
            }

            else
            {
                label3.Text = "no message";
            }
        }

però nella label3 vedo sempre un punto di domanda per i primi 4 messaggi che mando poi inizia a mostrarmi i caratteri che avevo mandato prima, devo cambiare le dimensioni del buffer? o cosa ho sbalgiato?

dopo non ho capito un'altra cosa: devo aprire e chiudere ogni volta la porta o devo lasciarla sempre aperta?
grazie per questo ulteriore aiuto! ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: igor99480 on Aug 24, 2012, 09:30 pm
ciao,
mi spieghi questa riga? while(Serial.available()==0){}
che senso ha lasciar scriverla e non mettere niente dentro come si dovrebbe fare?
in realtò si scrive if(Serial.availale()>0){codice}
prova a usare questo sketch
Code: [Select]

void setup() 
{
delay(2000); //mettilo sempre prima di ogni Serial.begin();
Serial.begin(115200);
pinMode(13,OUTPUT);
}

void loop()
{
if(Serial.available()>0){
char er=Serial.read();

if(er=='3')
    digitalWrite(13,HIGH);
else
    digitalWrite(13,LOW);   

Serial.write(er); //sicuro che è write e non print/ln?
Serial.write(10);
}
}
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 24, 2012, 09:41 pm
significa che finchè la condizione è vera il micro resta bloccaro nel while, in pratica è un modo per aspettare che arrivino i dati su seriale. Bruttissimo appoccio, ma funzionale
Title: Re: controllo remoto di un robot dal computer?
Post by: igor99480 on Aug 24, 2012, 09:46 pm

significa che finchè la condizione è vera il micro resta bloccaro nel while, in pratica è un modo per aspettare che arrivino i dati su seriale. Bruttissimo appoccio, ma funzionale

in effetti non ho mai visto scritto così.

ah il codice che ho riscritto funziona. alemno da serial monitor dell'ide va.
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 24, 2012, 11:05 pm

ciao,
mi spieghi questa riga? while(Serial.available()==0){}
che senso ha lasciar scriverla e non mettere niente dentro come si dovrebbe fare?
in realtò si scrive if(Serial.availale()>0){codice}

il problema non è su arduino, quello va e l'ho provato col serial monitor....

poi fare:
Code: [Select]

void loop()
{
if(Serial.availale()>0){codice}
}

e fare:
Code: [Select]

void loop()
{
while(Serial.availale()==0){}
codice
}

secondo me il micro fa le stesse operazioni, l'ho scritto in fretta quel codice e non ho badato molto all' "estetica", ho modificato un codice che avevo già per fare presto e come è venuto è venuto :P
a me interessa capire come gestire la seriale dal visual C#...
Title: Re: controllo remoto di un robot dal computer?
Post by: igor99480 on Aug 24, 2012, 11:20 pm


ciao,
mi spieghi questa riga? while(Serial.available()==0){}
che senso ha lasciar scriverla e non mettere niente dentro come si dovrebbe fare?
in realtò si scrive if(Serial.availale()>0){codice}

il problema non è su arduino, quello va e l'ho provato col serial monitor....

poi fare:
Code: [Select]

void loop()
{
if(Serial.availale()>0){codice}
}

e fare:
Code: [Select]

void loop()
{
while(Serial.availale()==0){}
codice
}

secondo me il micro fa le stesse operazioni, l'ho scritto in fretta quel codice e non ho badato molto all' "estetica", ho modificato un codice che avevo già per fare presto e come è venuto è venuto :P
a me interessa capire come gestire la seriale dal visual C#...


beh scrivere while seriale è disponebile o if seriale è ecc è la stessa cosa ;)

per quanto riguarda il controllo dell seriale da c, io so che normalmente si indica la porta e poi la si apre.il collegamento non deve essere interrotto perchè è solo una perdita  di tempo. purtroppo non uso c# ma basic per fare queste piccole app veloci.
devi vedere un po di documentazioen in rete ;)
Igor
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 24, 2012, 11:57 pm

per quanto riguarda il controllo dell seriale da c, io so che normalmente si indica la porta e poi la si apre.il collegamento non deve essere interrotto perchè è solo una perdita  di tempo. purtroppo non uso c# ma basic per fare queste piccole app veloci.
devi vedere un po di documentazioen in rete ;)
Igor

ok grazie per le info ;)
purtroppo in internet non ho trovato molto che mi possa aiutare a capire il mio problema, i dati li ricevo ma non capisco cosa succede nel programma e come li interpreta il visual c#...
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 25, 2012, 12:33 am

[...]
secondo me il micro fa le stesse operazioni, l'ho scritto in fretta quel codice e non ho badato molto all' "estetica", ho modificato un codice che avevo già per fare presto e come è venuto è venuto :P
a me interessa capire come gestire la seriale dal visual C#...


scritta coì hai ragione, ma se nel loop ci fosse altro (per esempio la lettura di un sensore), nel caso if la lettura avverrebbe velocissimamente, nel secondo caso invece ci sarebbe una lettura SOLO quando arriva almeno un carattere su seriale. Che se poi questo carattere non lo leggi rimane disponibile e torni all'esempio dell'if.

In oltre la combinazione if con dentro il while può essere molto comoda: mettiamo che decidi che le vuoi fare un comando così composoto:
1byte = lettera del comando
2byte = eventuale valore int (1 int = 2 byte) da impostare

come faresti?

fai un if (anzi uno switch) e dici:
se ho ricevuto un comando, e quel comando necessita di un valore, allora cicla la seriale finchè non leggo anche i due byte successivi.

Ora noterai che se per un errore di comunicazione i 2 byte non arrivano mai tutto il programma si blocca.

la soluzione sta nell'usare un buffer dei comandi nell'aggiungere un carattere di fine comando (lo '\n' che è il new-line, ovvero il carattere di a capo per i sistemi unix. per i windows sono 2 caratter '\r' + '\n' (il famoso vbCrLf per chi viene da visual basic et similia) e se non erroro nei mac è '\n' '\r'

a questo punto non usi un while, ma quando arriva un carattere via seriale lo metti nel buffer. quando leggi un \n allora controlli svuoti il buffer ed esegui il comando.

Noterai che in questo caso, anche in caso di errore di comunicazione (dal cavo attaccato male al fulmine a 100 metri) perderai il comando attuale ed eventualmente il successivo, ma il resto continuerà a funzionare egregiamente, specialemte se dai un avviso di errore in caso di comando non riconosciuto o di successo in caso di comando eseguito correttamete, in modo che anche l'altra parte sappia se il tutto è avvenuto correttamente oppure prenda la "decisione" pèiù saggia (potrebbe fregarsene dell'errore, oppure rifare la richiesta o chissà che altro)

come vedi potremmo andare avanti all'infinito, l'unico limite è la fantasia, e la soluzione migliore dipende da cosa vuoi fare. Per un piccolo esercizio il while va più che bene!
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 25, 2012, 12:33 am
allora fai così:
crea una selectbox e cerca online il codice che elenca le seriali, quindi doppio click sul form in generale e metti li il codice in modo che aggiorni la seriale.
fatto questo affianco metti un pulsante "connetti" in tal modo quando lo clicchi apri la seriale selezionata dalla selectbox, sempre qui attivi un pulsante detto disconnetti e blocchi i pulsanti connetti e la selectbox.

ok quindi ora hai per aprire e chiudere la seriale (quindi evita altri check per favore)

ora fai così:
crea una funzione che deve fare quando riceve un dato da seriale e associala all'evento di ricezione così separiamo invio e ricezione (per fortuna).

fatto questo riprendi il tuo codice del solo invio e rimettilo dentro XD

avendo queste possibilità è inutile fasciarsi la testa con possibili timing errati, tanto vale mettere un hadler che gestisce la seriale in ascolto.
con visual basic è anche più facile  :P
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 25, 2012, 02:03 am
Vedo che hai scelto Windows Forms...hai impostato la velocità corretta nel controllo SerialPort?
I caratteri con punti interrogativi vuol dire che non sono lettere o caratteri sensati, dovresti capire che byte sono con dei breakpoint nel codice.
La seriale ti consiglio di lasciarla sempre aperta fintanto che comunichi con Arduino, puoi usare gli eventi del controllo SerialPort per semplificarti la vita
La prossima volta allega il progetto, ti aiuto meglio così

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 25, 2012, 02:30 pm

allora fai così:
crea una selectbox e cerca online il codice che elenca le seriali, quindi doppio click sul form in generale e metti li il codice in modo che aggiorni la seriale.
fatto questo affianco metti un pulsante "connetti" in tal modo quando lo clicchi apri la seriale selezionata dalla selectbox, sempre qui attivi un pulsante detto disconnetti e blocchi i pulsanti connetti e la selectbox.

ok quindi ora hai per aprire e chiudere la seriale (quindi evita altri check per favore)

ora fai così:
crea una funzione che deve fare quando riceve un dato da seriale e associala all'evento di ricezione così separiamo invio e ricezione (per fortuna).

fatto questo riprendi il tuo codice del solo invio e rimettilo dentro XD

avendo queste possibilità è inutile fasciarsi la testa con possibili timing errati, tanto vale mettere un hadler che gestisce la seriale in ascolto.

la prima parte ho provato a farla ma non ci sono riuscito :( ho fatto solo un checkbox per aprire e chiudere ma la lista no... comunque ho provato ad associare la lettura all'evento della ricezione dei dati salla porta, questo è il codice:
Code: [Select]
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            string read = serialPort1.ReadExisting();
            label3.Text = read;
        }

però mi da errore e si blocca durante l'esecuzione, e non capisco cosa ci sia di sbagliato :~ allego il progetto su cui sto sperimentando visual C#...
grazie mille a tutti per l'aiuto ;)

comunque qua mi sembra di andare OT, magari dopo guardo se posso chiedere sul forum di visual studio ;)


con visual basic è anche più facile  :P

visual basic non mi piace perchè senza parentesi graffe faccio confusione :P
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 25, 2012, 02:41 pm
cavolo ho installato visual vb, visual c++ ora mi scarico anche visual c#  XD

comunque così a memoria c'era il sistema per ottenere l'array delle porte seriali e con un foreach le portavi come elementi della textbox, comunque fammi dare un'occhiata e ti riallego tutto ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 25, 2012, 02:48 pm
Visual Basic, C#.. alla fine è Windows Forms.. stessa minestra :)
Io avrei usato WPF per un'interfaccia più accattivante che non sembri un pizzoso gestionale!
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 25, 2012, 03:03 pm
Code: [Select]

            string[] ports = System.IO.Ports.SerialPort.GetPortNames();
            foreach(string port in ports) {
                comboBox1.Items.Add(port);
            }

questo è il codice da inserire al caricamento per elencare le porte nella combobox.

Code: [Select]
string read = serialPort1.ReadLine();
questo è per avere la lettura da seriale da mettere al posto di
Code: [Select]
string read = serialPort1.ReadExisting();

fammi sapere se va (ora però la seriale legge una riga, non di più)
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 25, 2012, 03:06 pm
Ho notato che quando scrivi col write non fai scaricare il buffer sulla porta
Per sicurezza aggiungi:

Code: [Select]
serialPort1.BaseStream.Flush();

Ad ogni modo oggi ho provato il tuo codice e il problema è un altro, diciamo non immediato per un beginner di C#.

Nell'evento serialPort1_DataReceived non puoi accedere al controllo label3 perché sei su un altro thread e quindi l'istruzione

Code: [Select]
label3.Text = read;

non viene eseguita. Ti consiglio di mettere SEMPRE la spunta su tutte le voci nella colonna Thrown del menù Debug/Exceptions per vedere in debug tutti gli errori.

la lettura avviene correttamente, il problema è li, nell'aggiornamento dell'interfaccia!

Come FIX veloce ti posso dire di sostituire con

Code: [Select]

            BeginInvoke(new Action(() => {
              label3.Text = read;
            }));


ma leggi su internet qualcosa a proposito dei thread e dell'accesso ai controlli.

Altro consiglio, non rallentare il programma con progressbar o menate simili se non servono.. più è veloce meglio è! Andava di moda 20 anni fa la progress bar, ora meno c'è meglio è.

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 25, 2012, 03:41 pm

Ho notato che quando scrivi col write non fai scaricare il buffer sulla porta
Per sicurezza aggiungi:

Code: [Select]
serialPort1.BaseStream.Flush();

Ad ogni modo oggi ho provato il tuo codice e il problema è un altro, diciamo non immediato per un beginner di C#.

Nell'evento serialPort1_DataReceived non puoi accedere al controllo label3 perché sei su un altro thread e quindi l'istruzione

Code: [Select]
label3.Text = read;

non viene eseguita. Ti consiglio di mettere SEMPRE la spunta su tutte le voci nella colonna Thrown del menù Debug/Exceptions per vedere in debug tutti gli errori.

la lettura avviene correttamente, il problema è li, nell'aggiornamento dell'interfaccia!

Come FIX veloce ti posso dire di sostituire con

Code: [Select]

            BeginInvoke(new Action(() => {
              label3.Text = read;
            }));


ma leggi su internet qualcosa a proposito dei thread e dell'accesso ai controlli.

Altro consiglio, non rallentare il programma con progressbar o menate simili se non servono.. più è veloce meglio è! Andava di moda 20 anni fa la progress bar, ora meno c'è meglio è.

Ciao

sul fatto della barra confermo è noiosa  XD

piuttosto invece non mi pare sia un problema relativo ai thread in quanto il codice è sempre quello, non varia intendo non passi tra listati diversi (che allora si potrebbe dare errore) ma sullo stesso listato..
erro?  :smiley-roll-sweat:

almeno io non ho mai avuto di questi problemi quando lavoravo con il serial receive su vb.net, forse è una cosa più da C#  :smiley-sweat:
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 25, 2012, 03:51 pm
grazie mille per le risposte adesso sto provando ;)

la barra, la password e la linklabel era solo per provare un po' le cose :P
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 25, 2012, 03:52 pm
Quote
piuttosto invece non mi pare sia un problema relativo ai thread in quanto il codice è sempre quello, non varia intendo non passi tra listati diversi (che allora si potrebbe dare errore) ma sullo stesso listato..
erro?  smiley-roll-sweat


dipende sagli oggetti se sono trhead-safe, ovvero al loro interno i metodi si occupano da soli di gestire il fatto di essere su un diverso thread. E un listato può contenere infiniti thread/processi..
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 25, 2012, 04:45 pm
adesso va tutto bene, grazie mille! ;)
però non capisco perchè al primo messaggio che legge aggiunge 4 punti di domanda, io penso che quando apro la porta il computer manda un messaggio all'arduino che poi lo rimanda... il resto va bene e penso di aver capito abbastanza come funziona la cosa :)
allego l'ultimo programma funzionante nel caso voleste darmi altri suggerimenti ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 25, 2012, 07:10 pm

adesso va tutto bene, grazie mille! ;)
però non capisco perchè al primo messaggio che legge aggiunge 4 punti di domanda, io penso che quando apro la porta il computer manda un messaggio all'arduino che poi lo rimanda... il resto va bene e penso di aver capito abbastanza come funziona la cosa :)
allego l'ultimo programma funzionante nel caso voleste darmi altri suggerimenti ;)

probabilmente sono i settaggi della seriale o il fatto che invia \n\r che non riesce a decifrare  XD
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 25, 2012, 07:35 pm
uhmm a me puzza di variabili non inizializzate..
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 25, 2012, 10:45 pm
ho fatto tradurre all'arduino questi 4 caratteri in decimale e mi dice che è il carattere 240 ripetuto per 4 volte... però 240 non è nel codice ascii :smiley-roll-blue: boh...
ho un'altra domanda: le dimensioni dei buffer di input e output che dimensioni dovrebbero avere?
grazie ancora ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 26, 2012, 12:32 am

ho fatto tradurre all'arduino questi 4 caratteri in decimale e mi dice che è il carattere 240 ripetuto per 4 volte... però 240 non è nel codice ascii :smiley-roll-blue: boh...
ho un'altra domanda: le dimensioni dei buffer di input e output che dimensioni dovrebbero avere?
grazie ancora ;)

? sarebbe il carattere.

se invece li stampa, come penso io, non in decimale ma in "octal" il 240 equivale allo spazio..
http://www.the-art-of-web.com/html/character-codes/
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 26, 2012, 12:37 am


ho fatto tradurre all'arduino questi 4 caratteri in decimale e mi dice che è il carattere 240 ripetuto per 4 volte... però 240 non è nel codice ascii :smiley-roll-blue: boh...
ho un'altra domanda: le dimensioni dei buffer di input e output che dimensioni dovrebbero avere?
grazie ancora ;)

? sarebbe il carattere.

se invece li stampa, come penso io, non in decimale ma in "octal" il 240 equivale allo spazio..
http://www.the-art-of-web.com/html/character-codes/

no il 240 è in DEC perchè l'ho specificato e non vedo perchè dovrebbe darmelo in ottale...

per quanto riguarda i buffer cosa mi consigli di fare?
grazie
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 26, 2012, 04:33 am
Lascia la dimensione del buffer di default se non hai motivi particolari per cambiarla

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 26, 2012, 11:37 am
ok grazie mille ;)
ma se io dovessi leggere i dati di dispositivo, un joypad in questo caso, posso fare sempre con la serial port?
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 26, 2012, 12:01 pm

ok grazie mille ;)
ma se io dovessi leggere i dati di dispositivo, un joypad in questo caso, posso fare sempre con la serial port?

No devi andare a caricare i driver del dispositivo e quindi lo controlli. Ammetto che non ho mai provato. Oggi tento col mio joystick
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 26, 2012, 12:04 pm


ok grazie mille ;)
ma se io dovessi leggere i dati di dispositivo, un joypad in questo caso, posso fare sempre con la serial port?

No devi andare a caricare i driver del dispositivo e quindi lo controlli. Ammetto che non ho mai provato. Oggi tento col mio joystick

appunto come pensavo... beh fammi sapere dei risultati che ottieni ;) grazie mille! ;)
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 26, 2012, 12:18 pm
Un bel nunchuck e risolvi i problemi.. lo comandi con SPI

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 26, 2012, 12:48 pm

Un bel nunchuck e risolvi i problemi.. lo comandi con SPI

Ciao

oppure usi le directinput prese dalle directx

http://msdn.microsoft.com/en-us/library/windows/desktop/bb153252%28v=vs.85%29.aspx
http://www.codeproject.com/Articles/16704/Interfacing-with-a-Joystick-using-C

qui 2 link utilissimi  XD

comunque piuttosto prendo una chiavetta bluethoot e le librerie e uso il telecomando wii + nunchuck per comandare il robot  :P
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 26, 2012, 01:04 pm

Un bel nunchuck e risolvi i problemi.. lo comandi con SPI

Ciao


SPI? il nunchuck  va con l'I2C
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 26, 2012, 03:17 pm
Andavo a memoria  :D
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 26, 2012, 04:04 pm
anche fosse i2c basta avere una porta VGA sul pc...
Title: Re: controllo remoto di un robot dal computer?
Post by: lestofante on Aug 26, 2012, 04:05 pm
in caso sul mio repo trovatre il codice sia per i nunchuck originali sia per quelli tarocchi che usano dei valori di inizializzazione differenti.

comunque credo sia meglio un ADXL345, che è sia i2c che SPI (SPI è meglio, più veloce) ed in oltre hai gli interrupt ogni lettura pronta
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 26, 2012, 04:25 pm

in caso sul mio repo trovatre il codice sia per i nunchuck originali sia per quelli tarocchi che usano dei valori di inizializzazione differenti.

comunque credo sia meglio un ADXL345, che è sia i2c che SPI (SPI è meglio, più veloce) ed in oltre hai gli interrupt ogni lettura pronta

io sistema non era per gli accelerometri ma per il joystick che c'è sopra  :P
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 26, 2012, 04:55 pm
sto tentando di installare le directx sdk ma sto avendo non pochi problemi perchè ho scoperto che le sdk sono indietro rispetto all'attuale runtime, quindi bisogna eliminare le vecchie runtime, intallare le directx sdk e poi reinstallare le runtime attuali..
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 26, 2012, 05:39 pm
Lascia stare le DirectX se non hai un mesetto da dedicare a capire come funzionano, tra COM e puntatori strambi in genere conviene prendere altre strade

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 26, 2012, 05:44 pm

Lascia stare le DirectX se non hai un mesetto da dedicare a capire come funzionano, tra COM e puntatori strambi in genere conviene prendere altre strade

Ciao

ci avevo già lavorato per un progetto di usarle per creare un media center che si comandasse tramite un "guanto" che però fosse tracciabile in 3D (usando 2 telecomandi della wii) però il progetto è caduto nel dimenticatoio purtroppo.

solo che avevo usato vb.net, ora è uscit xna e però è compatibile solo con visual studio 2008 ma il mio problema è che ho installati i 2010 e ora mi dice che non posso installare il 2008 perchè c'è già un visual studio 2008 installato ma non è aggironato al sp1, ma io non ho visual studio 2008  XD
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 26, 2012, 06:00 pm
Installa XNA 4.0 invece che DirectX, è compatibile con VS2010 ed è molto più facile da usare

Ciao
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 26, 2012, 06:03 pm

Installa XNA 4.0 invece che DirectX, è compatibile con VS2010 ed è molto più facile da usare

Ciao

sto installando il 3.1  =(

poi installo il 4 su vusal studio 2010 pro

poi provo visual studio 2012 pro  XD (essere studente ha i suoi vantaggi)
Title: Re: controllo remoto di un robot dal computer?
Post by: tazzo on Aug 26, 2012, 07:33 pm
Avevo visto l'altro giorno e non era ancora disponibile, ora c'è anche su dreamspark.com  :)
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 27, 2012, 01:08 pm
mmmm sembra una cosa difficile :smiley-roll-blue:
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 27, 2012, 01:21 pm

mmmm sembra una cosa difficile :smiley-roll-blue:

più che altro è una rottura:
io ti direi ripiega su bluethoot con wii XD
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 28, 2012, 10:10 am
cosa intendi per "bluetooth con wii"?
Io ho necessità di passare per il computer perchè poi devo fare anche altre cose...
Title: Re: controllo remoto di un robot dal computer?
Post by: superlol on Aug 28, 2012, 11:00 am

cosa intendi per "bluetooth con wii"?
Io ho necessità di passare per il computer perchè poi devo fare anche altre cose...

il controller wii funziona tramite bt e puoi associarlo al pc come hid.
Poi esistono librerie già fatte che ti permettono di dialogare.

Un telecomando wii+nunchuck hai:
- telecamera ir 1024x768 (track fino a 4 punti)
- 13 pulsanti
- 1 joystick
- 1 accelerometro su 3 assi sul telecomando
- 1 accelerometro su 3 assi sul nunchuck
- 1 giroscopio su 3 assi sul telecomando

per comandare un robot possono bastare XD
Title: Re: controllo remoto di un robot dal computer?
Post by: er_like_no_other on Aug 28, 2012, 06:14 pm

per comandare un robot possono bastare XD

si forse, ma un joypad mi piacerebbe di più e ce l'avrei già in casa...