Arduino da riga di comando

Vorrei imparare la programmazione da riga di comando in ubuntu.

Ho cercato in rete ma ho bisogno di alcune indicazioni per imboccare
la strada corretta.

Tra molto altro ho trovato questo:

01 ARDUINO_DIR=/usr/share/arduino
02 #TARGET = Blink//Name of sketch
03 #ARDUINO_LIBS = LiquidCrystal
04 BOARD_TAG = uno //This is working on a Arduino uno r.2
04 MCU = atmega328P
05 F_CPU = 16000000L
06 ARDUINO_PORT = /dev/ttyACM0
07 VARIANTS = $(INSTALL_DIR)/hardware/arduino/variants/standard
08 #AVR_TOOLS_PATH = /usr/bin
09 #AVRDUDE_CONF = /etc/avrdude.conf
10 AVRDUDE_ARD_PROGRAMMER = arduino
11 AVRDUDE_ARD_BAUDRATE = 115200
12 #AVRDUDE_ARD_EXTRAOPTS = -F
13 include/usr/share/arduino/Arduino.m

Ho l'impressione che contenga molte imprecisioni.

Esiste qualche tutorial partendo da zero?

"Programmazione" da terminale?
Uhmm.. non è che stai facendo confusione con "compilazione"?

Un programma si scrive con un editor di testo e lo si salva in un file sorgente. Scritto il codice, quel file viene passato al compilatore per l'elaborazione, esso provvederà infine a generare il file binario che potrai scrivere sul micro.

Se vuoi capire i parametri da passare al compilatore, potresti aprire qualche makefile per vedere cosa viene usato.
Un buon punto di partenza è il Makefile dell'Optiboot, lo trovi in /hardware/arduino/bootloaders/otpiboot

cosè quella cosa che hai trovato? senza contesto non vuol dire molto.

i passaggi sono:

  1. compilare il codice usando avr-gcc (o equivalenti)
  2. caricare il codice usando avr-dude (o equivalenti)

I due citati sono quelli usati da arduino. tutti i comandi che arduino lancia da riga di comando (quindi tutto quello che ti serve) li puoi vederese semplicemente andando nel menù dell'IDE, preferencies, e attuivare la compilazione e l'upload verboso. in pratica quando caricherai un codice vedrai tutti i comandi lanciati (e relative risposte), dividere comandi da risposte te lo lascio come compito a casa, ma se hai un minimo di esperienza col terminale dovrebbe essere abbastanza facile

Grazie per le risposte.

@leo
Quel file non è cosi semplice per iniziare.

@lesto
Ho trovato quelle indicazioni qui:
http://www.jayway.com/2011/10/08/arduino-on-ubuntu-without-ide/

busco

Capita raramente che io dica ad un utente: lascia perdere che non sono cose per te. Questo è uno di quelli.
Senza offesa e con rispetto:
Sei fuori dal mondo, il mondo in questo caso è fatto da:
sistema operativo unix like, tipo ubuntu e in genere linux.
sistema di build, make (makefile), shell bash, avr-gcc frontend, gcc, ecc.

Il sistema di build preferito si basa sugli autotools, ma con arduino e in genere con i cross-compiler serve solo il comando make e la shell bash.

Comunque se hai la testa dura e perseveranza, come tutti puoi riuscire tranquillamente ad acquisire tutte le nozioni necessarie per compilare un makefile da dare in pasto al comando make, ma la strada è lunga, molto lunga se lo è troppo lo lascio decidere a te.

Su linux per compilare un programma anche molto complesso composta da centinaio di file ".c" o altro linguaggio la maggior parte delle volte basta aprire un terminale virtuale con la bash e scrivere:

$ cd build_my_project
$ ./config
$ make
$ make install

Con "cd" change directory entri in build_my_project che deve esistere nel filesystem
con "./config" avvi uno script bash che configura il sorgente per fare si che tu possa compilare su ubuntu, fedora, unix, ed in genere su ogni sistema compatibile con posix.
con "make" si avvia il processo di build che coinvolge tanti programmi compreso il compilatore ecc, ma potrebbe anche chiamare utiliti che creano la documentazione in più formati, html, pdf ecc.

infine con "make install" il programma appena compilato viene installato nel percorso standard /usr/local

3 soli comandi potentissimi.

Oppure qual'è il tuo obbiettivo imminente, cioè perchè vuoi usare la strada del makefile?
PS:magari ti basta qualche modifica ad un makefile generico per risolvere.

Ciao.

quella guida usa il WProgram.h, roba deprecata(obsoleta) dalla versione dell'ide 1.0

se ti va di culo basta cambiare quel wprogram.h in Arduino.h

quelle che hai postato sono alcune variabili settate nel makefile, che vanno aggiustate in base alle tue necessità.

TRADUZIONE: qualcuno si è già fatto lo sbatti di analizzare i comandi avr-gcc e avrdude, ha creato un makefile apposito che linka le librerie ufficieali e chiama i giusti coamandi. Le uniche cose che hai da settare sono ALCUNE di quelle varibili, quindi crei quel file main.cpp (copia incolla), il file Makefile, in cui copi quella roba e setti (un nome a fantasia) e <serial port, e.g. /dev/ttyACM0> (quella che vedi nel serial monitor dell'ide arduino), "MCU = atmega328p" se non usi il 328p.

poi da termianle entri nella cartella e scrivi "make upload".

Fine.

se trovi questo complesso allora ti consiglio di lasciare stare quaste cose e partire da problemi alla tua portata. Perchè questo è uno script SEMPLIFICATO che si occupa di tutto: la vera magia, ovvero quello che automatizza i passaggi che ti dicevo nel posti prima è il makefile: /usr/share/arduino/Arduino.mk