Go Down

Topic: Compilare progetti arduino su editor esterno (Read 14139 times) previous topic - next topic

dima91

Ciao a tutti!!
Volevo sapere se esiste un modo per compilare progetti senza l'IDE di arduino.
In pratica io vorrei usare un editor diverso da quello di arduino (volevo usare geany su linux) e mi chiedevo se, per verificare (non caricare sulla scheda) gli sketch fatti si potessero semplicemente dare dei comandi da terminale.
Potete aiutarmi?
Grazie in anticipo per le risposte.

Maurotec

Ciao, tu ad esempio vorresti poter fare:
Code: [Select]
abuild projectname
dalla riga di comando o shell.

Bello sarebbe, ma che io sappia almeno fino ad oggi ciò non è possibile.

L'alternativa drastica è quella di non usare Arduino IDE e corelib e librerie esterne, usando un IDE generico che supporti il build con avr-gcc, es Eclipse con il plugin AVR. Con Eclipse mi pare ci fosse il modo di usare anche le librerie core ecc, ma non ho mai sperimentato.

Se sei in grado potresti tentare di usare un makefile (lo trovi in rete) e.....un momento dalla ricerca "arduino makefile" è uscito questo link: https://github.com/sudar/Arduino-Makefile

Che da una lettura ultra rapida sembra usi 'perl'.

Che OS usi?

Ciao.

dima91

grazie mille!!..ora domani gli do un'occhiata e ti faccio sapere.
cmq uso ubuntu 12.04..
grazie mille ancora!!! =)

Maurotec

#3
Jan 13, 2014, 01:22 am Last Edit: Jan 13, 2014, 03:21 pm by MauroTec Reason: 1
In verità non pensavo di trovare delle soluzioni alla tua necessità, invece ti consiglio di fare delle ricerche con google per vedere se trovi altro. Io ad esempio ho trovato anche questo tool: https://github.com/sudar/Arduino-Makefile]https://github.com/sudar/Arduino-Makefile[/s] (ops ho sbagliato link) http://inotool.org/


Domani lo testo e vediamo come lavora e poi posto, se tu testi l'altro fai lo stesso.

Aggiornamento:
Siamo già a domani, l'ho testato brevemente e ha funzionato all'istante.
È di una semplicità disarmante:
Crea progetto usando il template blink:
Code: [Select]

$ ino init -t blink

Building progetto:
Code: [Select]

$ ino build --arduino-dist /home/user/bin/arduino-1.0.5/

Se arduino IDE e core è installato nel path standard non è necessario specificare --arduino-dist /path/.
Comodissimo poter specificare il percorso così si può scegliere il core.

Aggiornamento:
Ho provato a sfruttare lo stesso progetto blink togliendo il file .ino che il tool ha creato in automatico e in sua sostituzione ho messo ArduinoISP.ino. Ho scritto ino build ecc e si è verificato un errore quindi ho provato con il comando ino clean e poi ino build e lo sketch è stato compilato con successo.

Per installare il software la documentazione non è molto precisa. Nel mio caso io volevo installare il tutto sotto /usr/local ma l'installazione non va a buon fine in quanto l'environment python deve essere configurato per cercare sotto /usr/local visto che non ho tempo ho proceduto con l'installazione standard che ha il prefix=/usr.

Istruzioni per compilare ed installare da terminale:
Code: [Select]

cd ino-0.3.6
python setup.py build
su -c "python setup.py install"

L'ultimo comando richiede la password di root e poi installa correttamente.

Ciao.

dima91

ho visto che però resetta la scheda..che gli succede in pratica?
cmq ora non lo posso provare..sono in università e torno stasera a casa..=(

PaoloP

#5
Jan 13, 2014, 09:44 am Last Edit: Jan 13, 2014, 09:49 am by PaoloP Reason: 1
E' normale che aprendo la comunicazione seriale l'Arduino UNO si resetti. E' programmato proprio per avere quel comportamento.

Guida per usare Eclipse --> http://playground.arduino.cc/Code/Eclipse
oppure Geany --> http://aspmotorsport.wordpress.com/2013/05/11/using-avr-gcc-with-ardiono-in-geany/

dima91

ah in quel senso..non lo sapevo (ho comprato da poco arduino)..cmq ora do un'occhiata al link che mi hai passato..

PaoloP

Se non sei pratico di linguaggio C e del processo di compilazione ti consiglio di utilizzare l'IDE di Arduino che semplifica molto questi aspetti.
Se poi sei curioso di conoscere il "dietro le quinte" dell'IDE, ne possiamo discutere.  :smiley-mr-green:

dima91

sono abbastanza/molto pratico della programmazione in C..XD!
più che altro è che mi piaceva usare geany come editor (con il quale mi ci trovo estremamente bene) e compilare da riga di comando..
insomma fare tutte le cose che si fanno con l'IDE di arduino ma senza l'IDE di arduino!!..

PaoloP

A ok.
Allora puoi fare una ricerca sulla rete o sul forum. Dovresti trovare qualche guida per usare Geany come editor per Arduino.
Una la ho linkata nel post precedente.

dima91

non l'avevo vista!!..ho guardato solo per eclipse!!..(dopo) ci guardo..grazie mille comunque!!! =)

astrobeed


Volevo sapere se esiste un modo per compilare progetti senza l'IDE di arduino.
In pratica io vorrei usare un editor diverso da quello di arduino (volevo usare geany su linux) e mi chiedevo se, per verificare (non caricare sulla scheda) gli sketch fatti si potessero semplicemente dare dei comandi da terminale.
Potete aiutarmi?


Compilare non mi risulta che ci sia un modo semplice per farlo all'esterno dell'IDE, però puoi usare un qualunque editor per scrivere il software, basta che nelle preferenze dell'IDE scegli "usa editor esterno" dopo di che prima carichi lo sketch nell'IDE e poi lo apri con il tuo editor, tutto quello che fai viene automaticamente riportato nell'IDE e tramite questo puoi solo compilare o caricare su Arduino a tuo piacere.
Scientia potentia est

PaoloP

Anche perché gli sketch sono incompleti e verrebbero mal digeriti dal compilatore se non gli aggiungi tutto quello che l'IDE fa prima di passargli tutto: parlo della funzione main, dei prototipi delle funzioni e di tutti gli include da allegare al file di progetto.
E forse ho anche dimenticato qualcosa.

leo72

Devo fare un paio di appunti su quel link in cui viene spiegato come usare Geany:

1) su Linux, vedo che fa mettere "sudo avrdude ecc..." come stringa da passare al terminale per fare l'upload del firmware. Cosa da NON fare. Non si deve mai usare sudo per questo genere di operazioni, vanno dati i permessi al proprio utente o al proprio gruppo; se senza sudo non funziona, significa che si è fatto un setup a metà;
2) leggi bene in fondo cosa dice l'autore di quella guida: "Remember you cannot use standard Arduino functions now, only pure avr-gcc libraries can be imported and used." La struttura di uno sketch è molto diversa, dietro alle quinte, rispetto a come appare nell'editor dell'IDE: a te pare di scrivere un programma completo ma in realtà stai scrivendo 2 funzioni in C/C++ che vengono poi richiamate dal main che tu non vedi. Inoltre le lib di Arduino sono molto ramificate e ci sono un sacco di include che tirano su un bel pò di roba. Infine, l'IDE di Arduino usa un trucco per cui in fase di compilazione fa un bel pot-pourri di tutto, prima di passare il codice al precompilatore ed al compilatore. Tutto questo per farti capire che alla fine, con Geany, secondo quanto afferma l'autore, potrai solo scrivere programmi che usano le funzioni standard della toolchain Avr, non quelle di Arduino. Ciò significa che non potrai caricare sketch per l'Arduino.

Ciò conviene se vuoi uscire dagli standard Arduinici ed usare codice "C puro", come in AvrStudio, per intendersi.

PaoloP

Ad esempio se vuoi utilizzare Notepad++ come editor esterno ma compilare con l'IDE puoi seguire queste discussioni
--> http://forum.arduino.cc/index.php?topic=160456.0
--> http://forum.arduino.cc/index.php?topic=141050.0




Go Up