Compilare progetti arduino su editor esterno

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.

Ciao, tu ad esempio vorresti poter fare:

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: GitHub - sudar/Arduino-Makefile: Makefile for Arduino sketches. It defines the workflows for compiling code, flashing it to Arduino and even communicating through Serial.

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

Che OS usi?

Ciao.

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

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~~ (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:

$ ino init -t blink

Building progetto:

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

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.

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..=(

E' normale che aprendo la comunicazione seriale l'Arduino UNO si resetti. E' programmato proprio per avere quel comportamento.

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

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

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

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

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.

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

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

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.

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.

Ad esempio se vuoi utilizzare Notepad++ come editor esterno ma compilare con l'IDE puoi seguire queste discussioni
--> Using Arduino IDE with Notepad++, my approach - Libraries - Arduino Forum
--> Notepad++ User Defined Language for Arduino - Libraries - Arduino Forum

Ho aggiornato il post Compilare progetti arduino su editor esterno - #4 by Maurotec - Software - Arduino Forum

Anche io come tutti pensavo proprio che non ci fosse alcuna possibilità di fare il build di sketch Arduino dalla riga di comando e come si vede nel post mi sbagliavo e questo apre le porte a tutti gli editor come gedit (plugin) kate(plugin) Geany, ecc.

Mi sento contento, perché tornerò di tanto in tanto ad usare il core Arduino e le lib, grazie proprio ad ino tool.
http://inotool.org/

Ciao.

Grazie mille per l'aiuto!!..appena torno a casa lo provo immediatamente!!

Problemi!!!..ho compilato con make install e mi appare questo:

env python2 setup.py install --root / --prefix /usr/local --exec-prefix /usr/local
Traceback (most recent call last):
  File "setup.py", line 4, in <module>
    from setuptools import setup
ImportError: No module named setuptools
make: *** [install] Errore 1

ho python e tutti i requisiti..

Non trova il modulo setuptools che si trova sul sistema quando il package python-setuptools è installato, ora mi sembra strano che Ubuntu di default non lo installi. Comunque, prova a dare il seguente comando:

easy_install

Se il programma parte allora python-setuptools è installato.

Tra l'altro <$ easy_install .> (occhio al punto) installa il pacchetto sorgente python nel path standard, per specificare il percorso vedi qui https://pythonhosted.org/setuptools/easy_install.html

Ciao.

ho risolto quei problemi e ne ho trovati altri!!..XD!..ora vedo come risolverli..grazie mille per l'aiuto cmq!!!!