Go Down

Topic: GUI con Gtk per leggere/comandare Arduino (Read 711 times) previous topic - next topic

_b_u_b_i_

Salve a tutti, il mio primo post e' per una richiesta di aiuto.
Ho scoperto Arduino da qualche tempo, e mi sta' dando grosse siddisfazioni. Lo uso soprattutto per progetti di automazione sotto Linux (ubuntu  9.04 con Arduinio-0015) e quindi controllo di Servo e Stepper e lettura di input analogi/digitali.
Avendo ormai preso dimestichezza con l'hardware e la meccanca, vorrei "rifinire" il controllo software.
Attualmente comando le mie creture con "protocolli" che implemento negli sketch e che prevedono l'invio tramite consolle di stringhe (es: "010p090g" per posizionare il polso a 10 gradi e ruotare a 90 gradi il gripper di un braccio..), ed eventualmente leggere degli input alla stessa maniera.
Ora vorrei creare delle GUI (possibilmente in Gtk+C). Sto' cercando di raccapezzarmi con Anjuta (un IDE che sfrutta Glade e C), ma ho qualche difficolta'. Qualcuno ha fatto qualcosa di simile o sa' indicarmi una guida di base?
Grazie a tutti!! (e complimenti per il forum!)

msx

Beh e' una richiesta un po' generica :)
Cmq io ho usato GTK per alcune applicazioni, anche se non in C. Inizialmente non e' proprio facile..
Non e' la stessa cosa che usare Visual Basic o Delphi per esempio. Pero' se uno se la cava un po con la programmazione, non e' impossibile :)
Inoltre e' un toolkit bellissimo da vedere sia in Linux che in Windows.

Cmq ti consiglio di partire col farti la gui in Glade (usa il 3 eh) bella completa e poi provare a caricarla, possibilmente con GtkBuilder (che ha recentemente soppiantato LibGlade). Evita il generatore di codice automatico di Glade, e' deprecato e fondamentalmente una schifezza.
Poi connetti i vari segnali, magari con l'autoconnect e testa che funzionino.

Per quanto riguarda l'interfacciamento con arduino, si tratta fondamentalmente di comunicare con la porta seriale, il che e' facile, ma devi stare attento perche' GTK (o meglio GLib) e' nervoso quando si interferisce col suo loop principale. GLib funziona con una coda di messaggi ed eventi principale, e probabilmente devi agganciarti li per poter leggere dalla seriale nel modo "canonico". Io per comunicare con un socket uso un IO Channel, credo che tu possa fare altrettanto (visto che avrai un File Descriptor).

Beh buona fortuna, se hai dubbi (magari piu' specifici :P) chiedi pure!
http://msx80.blogspot.com/

_b_u_b_i_

Grazie per la risposta, ho piu' dubbi di prima, ma mi hai dato una traccia e provero' a seguire lo schema che mi hai suggerito.
Per quel che riguarda VisualBasic, in effetti si puo' cominciare a scrivere e testare programmi in pochissomo tempo; spero che Anjuta si evolva nella stessa direzione (come semplicita' iniziale, poi e' ovvio che per cose piu' "raffinate" bisogna andare a fondo).
Non avevo capito che LibGlade era un po' "obsoleto"... grazie della segnalazione del sito di Micah Carrick... mi sembra ci sia da imparare qualcosa li... (e compliementi anche per il tuo blog!).
saluti

Go Up