Problema IDE Arduino

Salve a tutti sono nuovo del forum e da un pò di tempo mi sò dedicando ad Arduino;

vi vorrei chiedere alcune informazioni su Arduino che non riesco a risolvere da ormai 5 giorni:

1) E' possibile usare correttamente e senza tanti cambiamenti di codice un'altro IDE a posto di quello di arduino? Io ho provato con Eclipse, NetBeans, CodeLite, Ajunta, Xcode, TextMate, ma tutti questo hanno tanti problemi diversi che non si riesce ad utilizzarli al meglio senza diventare pazzo; tra l'altro tutte le guide che ho trovato non erano per l'ultima versione "v22" forse questo, il problema?

2) Volendo utilizzare l'IDE di Arduino, quindi scrivere tutto il codice a mano, senza l'ausilio del Code Completion o della guida inlinea, ho dei seri problemi a integrare librerie e/o applicazioni esterne, ho provato anche con progetti già pronti per essere compilati su Arduino IDE, ma ho problemi con gli include che sembra non riesca a trovare i files anche se sono tutti alla rinfusa nella cartella del progetto; ho tentato anche di inserire i files nella cartella librerie ma niente da fare, non compila.

Grazie in anticipo a tutti.

Usare IDE esterni non è così facile. Ci sono in giro delle guide per abilitare Eclipse o Netbeans a gestire anche l'Arduino ma la parte più difficile è proprio quella del setup delle IDE stesse, roba da diventar matto. Io mi sono arreso e continuo ad usare l'IDE di Arduino che, seppur semplice, scarna, spartana, carente di funzioni ecc... fa il suo lavoro in modo egregio, ed oltretutto posso integrare nuovi chip in maniera molto semplice.

Tempo fa mi parve di capire che forse (dico "forse") era in preparazione un plugin per una delle 2 IDE citate da parte del team di Arduino, ma non so se la cosa è stata portata avanti oppure no.

antwal:
2) Volendo utilizzare l’IDE di Arduino, quindi scrivere tutto il codice a mano, senza l’ausilio del Code Completion o della guida inlinea, ho
dei seri problemi a integrare librerie e/o applicazioni esterne, ho provato anche con progetti già pronti per essere compilati su Arduino
IDE, ma ho problemi con gli include che sembra non riesca a trovare i files anche se sono tutti alla
rinfusa nella cartella del progetto; ho tentato anche di inserire i files nella cartella librerie ma niente da fare, non compila.

Grazie in anticipo a tutti.

se metti le librerie nella cartella dello sketch, ricordati do non usare per gli include <> ma " "
l’altro metodo è la cartella libraries, che però non va nella cartella dello sketch ma nello sketchbook, quindi divengono “globali” per tutti i progetti.

Grazie per le risposte, alla fine ho trovato una soluzione, io uso Mac e Linux, però ho trovato una guida su un sito russo per configurare Eclipse Indigo con Arduino e relativo AVR Plugin in ambiente Windows, ho provato e sembra che funzioni bene;

unico problema è che non riconosce "Serial" e segna un errore, si può risolvere con: "HardwareSerial Serial;" ma in compilazione da errore perchè già dichiarato, poi alla fine ho tentato una prova e sembra che funzioni, metto tutti i Serial all'interno di:

ifdef DEBUG

endif

in questo modo non vedo l'errore di eclipse, poi prima della compilazione aggiungo all'inizio del programma "#define DEBUG" e compilo, l'errore lo segna ma sembra che la compilazione vada a buon fine. Carico l'HEX su Arduino tramite Eclipse e funziona tutto senza problemi.

Ora ho riscontrato un'altro problema, io attualmente ho:

  1. Arduino Duemilanove con ATmega328
  2. Arduino Ethernet Shield POE con microSD
  3. USB Host Shield -> http://www.sparkfun.com/products/9947

dovrei scrivere un software che monitora la USB (ho già la libreria pronta) e scrive i dati sulla microSD, poi reperire questi dati tramite la ethernet, e qui arrivano i problemi:

Ho scritto il programma con all'inizio solo, WProgram.h, SPI.h e Ethernet.h l'HEX veniva circa 45Kb e qui nessun problema funzionava perfettamente.

Poi ho aggiunto la libreria per la SD, reperibile qui per chi fosse interessato: https://github.com/adafruit/SD (l'HEX veniva circa 150Kb) ho apportato delle modifiche alla libreria ottimizzandola al massimo, lasciando solo quello che mi serve e usando il filesystem FAT16; il nuovo HEX era di 89Kb.

Ho tantato l'upload però arvdude mi genera questo errore (log completo): Launching C:\WinAVR-20100110\bin\avrdude -pm328p -carduino -P//./COM21 -b57600 -F -Uflash:w:MyApp.hex:a Output:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "MyApp.hex" avrdude: input file MyApp.hex auto detected as Intel Hex avrdude: writing flash (32054 bytes):

Writing | ################################################## | 100% 15.87s

avrdude: 32054 bytes of flash written avrdude: verifying flash memory against MyApp.hex: avrdude: load data flash data from input file MyApp.hex: avrdude: input file MyApp.hex auto detected as Intel Hex avrdude: input file MyApp.hex contains 32054 bytes avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 13.69s

avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x7800 0x50 != 0x0c avrdude: verification error; content mismatch

avrdude done. Thank you.

avrdude finished

Ora se riesco a risolvere questo problema, che non capisco ancora molto bene (forse la dimensione 32054 bytes, ho superato la disponibilità dell'atmega328 di 54 bytes?), vorrei ritentare il tutto in amibiente Mac e Linux e di conseguenza postare una guida completa.

Grazie a tutti in anticipo.

mi rispondo da solo

il problema è nella libreria scaricata da GitHub - adafruit/SD: fixes & updates to the Arduino SD library - totally in progress. works but in beta, però ho visto che è possibile riutilizzare gli esempi con la libreria base di arduino, io ho effettuato la prova con l’esempio “CardInfo”, apportando alcune modifiche al codice; ora la compilazione e l’upload sono ok (di seguito il log):

Launching C:\WinAVR-20100110\bin\avrdude -pm328p -carduino -P//./COM21 -b57600 -F -Uflash:w:MyApp.hex:a
Output:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file “MyApp.hex”
avrdude: input file MyApp.hex auto detected as Intel Hex
avrdude: writing flash (30628 bytes):

Writing | ################################################## | 100% 15.34s

avrdude: 30628 bytes of flash written
avrdude: verifying flash memory against MyApp.hex:
avrdude: load data flash data from input file MyApp.hex:
avrdude: input file MyApp.hex auto detected as Intel Hex
avrdude: input file MyApp.hex contains 30628 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 13.06s

avrdude: verifying …
avrdude: 30628 bytes of flash verified

avrdude done. Thank you.

avrdude finished

Ora non mi resta che vedere come integrare la gestione dell’USB Host Shield, in quanto la libreria fornita ha una dimensione elevata, qualche consiglio?

a breve effettuerò le prove in Mac e Linux, poi vi posto una guida completa per Eclipse Indigo su tutti e tre i sistemi operativi.

Grazie a tutti, per chi volesse provare, ho allegato l’hex (85Kb) attuale.

MyApp.hex (84.1 KB)

antwal: mi rispondo da solo

il problema è nella libreria scaricata da https://github.com/adafruit/SD, però ho visto che è possibile riutilizzare gli esempi con la libreria base di arduino, io ho effettuato la prova con l'esempio "CardInfo", apportando alcune modifiche al codice; ora la compilazione e l'upload sono ok (di seguito il log):

uhmm una libreria che ti fa fallire l'upload? mi sembra strano

32 kB di flash signficano 32768 byte, non 32000. Inoltre devi specificare su cosa stai caricando lo sketch tramite avrdude: sul micro montato sull'Arduino oppure su un Atmega vergine usando l'Arduino come programmatore ISP.

Se lo stai caricando sull'Atmega dell'Arduino ricordati che gli Atmega con bootloader dell'Arduino hanno 512 byte riservati per il bootloader, per cui la capacità massima della Flash scende a 32256. Se stai usando un Atmega con bootloader 2009 allora lo spazio per il bootloader è di 2048 byte per cui la capacità massima è di 30720

ora ho risolto tutti i problemi e sembra che funziona bene con Eclipse; c’è una sezione dove posso postare una guida, intanto per windows, oppure posso aprire un nuovo post?

Attualmente ho provato solo su Windows, ma in questi giorni ripasso tutto su Linux e Mac, che forse è meglio, unica cosa che ancora non ho provato è usare il debugger senza dover ogni volta scrivere il programma sulla board, ma farò anche questa prova.

unico problema riscontrato è che per poter utilizzare “Serial.???”, devo aggiungere “HardwareSerial Serial;” all’inizio del programma e poi commentarlo prima della compilazione, altrimenti vedo un sacco di errori che effettivamente non sono errori ma eclipse non li riconosce e non sò il motivo, però quando compila il software non ha problemi anche se ti segna gli errori; ci sono solo un pò di warnings che sarebbero da correggere, per il resto tutto ok.

allego gli screenshot di windows e grazie ancora per i chiarimenti.

sì, il palygorund è una wiki in cui puoi aggiungere i tuoi articoli. c'è anche la sezione in italiano.

lesto: sì, il [u]palygorund[/u] è una wiki in cui puoi aggiungere i tuoi articoli. c'è anche la sezione in italiano.

lesto, vedi cosa succede a stare al PC fino alle 3:11 di mattina? XD

leo72:

lesto: sì, il [u]palygorund[/u] è una wiki in cui puoi aggiungere i tuoi articoli. c'è anche la sezione in italiano.

lesto, vedi cosa succede a stare al PC fino alle 3:11 di mattina? XD

ho notato anche io l'errore, ma ho capito subito a cosa si riferifa :P

ah non ve l'hanno detto? da domani si chiamerà così 8)

stò cercando di capire come funziona il playground per creare nuove pagine e pubblicare la guida, nel frattempo ho testato su Linux e Mac e funziona, però c’è da cambiare qualcosa sulla configurazione, niente di difficile; allego lo screen di mac che ho finito poco fa di configurare.

arduino.tiff (343 KB)

non vedo l'ora di leggere la tua guida, ho un progetto bello grosso e vorrei portarlo in un IDE più comodo.

eclipse su linux (perlo di un annetto fà) mi crashava ogni 2 secondi, qualche possibilità di impostare netbeans?

Anch'io preferirei Netbeans: Eclipse è più pachidermico di Netbeans, che già non è una piuma.

Io ho trovato queste 2 guide: http://bleaklow.com/2010/06/22/configuring_netbeans_to_use_as_an_arduino_ide.html http://www.kerrywong.com/2010/05/16/arduino-development-using-netbeans/

Però non ho avuto ancora né il tempo né la voglia di vedere se si possono applicare con facilità.

leo72: Anch'io preferirei Netbeans: Eclipse è più pachidermico di Netbeans, che già non è una piuma.

Io ho trovato queste 2 guide: http://bleaklow.com/2010/06/22/configuring_netbeans_to_use_as_an_arduino_ide.html http://www.kerrywong.com/2010/05/16/arduino-development-using-netbeans/

Però non ho avuto ancora né il tempo né la voglia di vedere se si possono applicare con facilità.

anche io utilizzo su mac e linux, netbeans per fare tutto anche programmazione in java e per android, però delle due guide io avevo trovato la seconda insieme a molte altre; il problema che non sono ancora riuscito a risolvere è sul makefile, ne ho trovati anche tanti su internet ma nessuno sembra andare bene in quanto non compila dando degli errori strani se invece riesce a compilare poi quando crea l'HEX mi da errore che non ritrovava i files compilati.

avevo visto anche per crearlo io da zero il makefile, ma troppo complicato...

cmq stò ancora tentando di farlo funzionare.

lol appena scaricato nebeans 7, ha già tutto il necessario per compilare arduino... tool->option->c/c++-> selecziona arduino-> clicca default

peccato che a me non vada -.-"

Ora la scarico anch'io...

Non ho l'opzione che dici (Xubuntu 11.04 con Arduino NON dei repo).

uhh vuoi dire chè è un rimasuglio di qualche vecchia installazione?? ora mi spiego perchè non va :)

comunque il problema è nel makefile, cosa con cui non ho esperienza... ora provo a sminchiarci un pò :-)