controllo remoto di un robot dal computer?

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 ;)

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.

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 :blush: io conosco solo il C/C++ che mi hanno "insegnato" a scuola, del BASIC non so niente... :(

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 :)

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.

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? :roll_eyes:

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)

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

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

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?

  • 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.

  • 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.

  • 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

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

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

lesto: 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

superlol: 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...

flz47655:

superlol: 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

legacy: 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

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? :cold_sweat:

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

?R: 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? :cold_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.