Sto usando da 2 giorni QtCreator come ide per Arduino, ora non so se funziona solo a me quindi se vi interessa provare fate sapere.
Per usare il core di arduino nel modo consueto è necessario avere il preprocessore di arduino che è integrato nell'ide scritto in java, per cui non ho potuto usare tale preprocessore e quindi il concetto di sketch svanisce e dovete usare lo sviluppo di sorgente tipico del C/C++.
Nota: Solo gli utenti di GNU/Linux possono usare queste modifiche.
Tranquilli non è necessario modificare il codice sorgente, però in questo modo non avete l'interfaccia grafica che vi aiuta ad effettuare le impostazione e dovrete farlo voi manualmente. Quindi non è adatto per piccoli programmi dove conviene usare arduino che è più immediato, anche se io non lo uso più da tempo tanto che non l'ho installato.
Fase 1:
Dovete installare QtCreator sulla vostra linux box, usate il gestore di pacchetti e questo si tirera anche il framework Qt di cui ci serve solo qmake.
qmake viene usato da qtcreator per generare file di progetto ".pro" e in una seconda fase dal file di progetto genera dei makefile in base alla piattaforma in uso, tuttavia di default la piattaforma e quella in cui è avviato QtCreator mentre noi desideriamo generare makefile che usino il crosscompiler avr-gcc. Per fare questo abbiamo bisogno di far vedere a qmake dei file di configurazione, per evitare di sporcare il sistema mettiamo questi file nella directory dell'utente /home/username. Il file allegato avrspecs una volta scompattato nella vostra home crea una directory nascosta con nome .avrspecs.
Fase 2:
Avviate QtCreator e cliccate dalla welcome page centrale "Create Project.." comparirà una dialog dove sulla sinistra selezionate "Other Project" alla destra selezionate "Empty Qt Project" e confermate cliccando il pulsante della wizard "chose".
Si apre una dialog che vi permette di scegliere il nome del progetto e la directory dove questo verra creato, tranquilli verra creata una directory e dentro verra messo il nome del file di progetto. Io ho scelto il nome "avrqtcreatortest" lasciando la directory di default. Inseriti questi dati cliccate "Next" e vi comparirà una treeview che mostra almeno una voce marcata, se c'è nè più di una fate in modo che solo la prima sia marcata. Nota che la prima dovrebbe essere "Qt in Path". Continuate con "Next" e verrà mostrato il riepilogo, e allora cliccate "Finish".
Fase 3:
Terminata la fase precedente QtCreator vi mostra il progetto a sinistra, cliccate due volte sul nome del progetto "avrqtcreatortest.pro" e questo verrà aperto, allora inserite queste righe:
include($(HOME)/.avrspecs/arduino/2009.def)
TEMPLATE = app
TARGET = vt100-demo
DEPENDPATH += .
INCLUDEPATH += .
La prima riga include un file di definizione che si trova in /home/username/.avrspecs/arduino/, il file 2009 indica appunto la board 2009.
Dopo mangiato la prossima parte.
Ciao.
Oltre alla 2009 c'è la uno di cui non cambia nulla e potrebbe essere benissimo un link simbolico, poi c'è la mega-1280 e la mega-2560, ovviamente prendendo spunto da questi file e possibile crearne ad hoc per altre mcu e/o frequenze diverse.
TEMPLATE = app: il template può essere "lib" che indica che le intenzioni sono quelle di sviluppare una libreria per cui il makefile generato sfornerà un qualcosa come libnome.a. Tuttavia bisogna specificare che vogliamo sviluppare una libreria statica, allora basta aggiungere al file ".pro" la riga seguente:
CONFIG += static
TARGET = vt100-demo: e solo il nome che vogliamo abbia l'eseguibile una volta terminata la compilazione, nel caso il template sia "lib" allora il nome in questo caso sarebbe libvt100-demo.a sempre se CONFIG è uguale a static.
Ora salvate il file e cliccate l'icona "Projects" alla vostra sinistra, compariranno dei widget raggruppati, la nostra attenzione la rivolgiamo al gruppo "Build Steps" dove dice "qmake: ecc" cliccate Details e inserite nel campo "additional arguments:" la seguente riga:
-spec /home/[i]username[/i]/.avrspecs/arduino
Ovviamente username lo dovete sostituire con il nome della vostra home.
Al posto di questa riga potete inserire anche la seguente riga:
-spec /home/[i]username[/i]/.avrspecs/linux-avr8-g++
Questa però serve a lavorare con la toolchain avr-gcc e dovete impostare la mcu e frequenza a mano, ma serve se volete fare di testa vostra.
Tuttavia anche con la prima riga credo si possa sovrascrivere alcune impostazione specificandole nel file ".pro" editato prima, non ho provato.
Ora potete lavorare con l'ide ed usare la toolchain e avr-libc ma non potete ancora linkare al core di Arduino, io l'ho fatto ma per questo dovete avere la lib in sorgente e compilarla sempre tramite QtCreator e poi installarla, magari nella vostra home, un buon nome potrebbe essere ".avr"
contenente le sotto directory es.
.avr
include
arduino
headerfile.h
headerfile1.h
nomelib1
ecc.h
libs
arduino
16mhz
libcore-0021.a
Il file VT100-demo contiente una implementazione di un terminale VT100, il codice è preso dalla documentazione di Atmel e modificato per avr-gcc, questo lo potete aprire e compilare con QtCreator.
Occhio che l'ide non permette di scrivere il file ".hex" generato sul microcontrollore. A questo dovete pensarci voi usando "avrdude" oppure AvrDudeQui tenendolo sempre aperto e cliccare reply tutte le volte che volete scrivere il programma nella flash.
Ciao.
avrspecs.tar.bz2 (1.36 KB)
VT100-demo.tar.bz2 (4.75 KB)