Routine per caricare una sketch

Buongiorno a tutti! un saluto da un novizio di Arduino! Volevo scrivere un software in VB .NET per uploadare una sketch nella scheda di Arduino, in modo che l'utente possa parametrizzare un fw col mio programma e poi caricarlo direttamente, senza passare per l'IDE. Posso usare liberamente le librerie che usa l'IDE per l'upload? (e dove le trovo?) Eventualmente, posso anche fare in modo di compilare dal mio programma?

si be effettivamente, e' come se dovessi fare un'IDE, ma dedicata. Thanks in advance per il supporto!

Ciao,
sinceramente non comprendo la necessità di un IDE con VB.NET.
Il bello di arduino è che è multipiattaforma e utenti win/linux/mac possono dialogare liberamente ma ti chiedo scusa per questo: non voglio sembrare scortese.
Per quanto riguarda quello che chiedi devi cercare informazioni su avrdude.
Arduino utilizza questo comando per compulare e uplodare lo sketch sulla scheda.
Se cerchi “avrdude arduino”, “avrdude commands” e similari inizi a farti una idea di questo programma che trovi già nelle cartelle dell’IDE.

Nessuna scortesia, anzi e' un punto di vista assolutam. condivisibile. Allora giro la domanda: posso "costruire" un'interfaccia grafica sopra la IDE, come serve e piace a me? Forse con Processing? (non lo conosco) Il fatto e' che devo far inserire all'utente determinati parametri, caricarli in Arduino e poi staccare il cavo USB e lasciare che la mia board Arduino lavori. Pensavo a VB perche' e' l'unico che so usare..per questo chiedevo quelle routine. Ma se mi consigli una soluzione piu multipiattaforma, stai pur certo che lo seguiro'!

Nel frattempo cerco e leggo le info about avrdude

Ti ringrazio ancora per il supporto!

Tieni conto che detta così è ancora diverso... Cosa intendi per "far inserire all'utente determinati parametri, caricarli in Arduino e poi staccare il cavo USB"? Questi parametri devono poi essere usati dal programma? In tal caso tieni conto che arduino ha una memoria da utilizzare... Se i parametri sono sempre gli stessi ma variano di valore puoi fare un programma che se rileva una connessione seriale permette di inserire i dati (ad esempio con VB.NET) e poi li memorizza. A quel punto non dovresti sbatterti tanto da avere un simil-IDE ma ti basterebbe un programma che comunichi in seriale con arduino.

se il programma è sempre lo stesso ma vuoi variare solo il valore di alcuni parametri allora, secondo me, potrebbe essere più semplice passargli i parametri che vuoi cambiare attraverso la seriale. Mi spiego meglio: - nel programma Arduino prevedi una modalità di "programmazione", ovvero quando Arduino si trova in questa modalità si mette in attesa dei parametri. - costruisci un'interfaccia in Processing o VB che una volta inseriti tutti i parametri richiesti li trasferisce tramite seriale ad Arduino. - una volta trasferiti i parametri rimetti Arduino in "Play" e lui esegue il programma con i nuovi valori impostati.

Mmh ho paura di non starci in 32k. Oddio, diciamo che li considero "abbastanza" sufficienti, pero' non avendo esperienza.. Devo pilotare l'LCD, controllare l'RTC, un po di spazio va via per il mio controllo (temperatura), le chiamate per la gestione di EE.. Aggiungerci anche la parte di comunicazione col PC un po' mi spaventa.

Volevo partire tranquillo, e fare una cosa complicata quindi! Cioe' spezzare le cose in 2: il mio tool accettera' le temperature dall'utente Babbo, poi scarichera' in Arduino un softwerino che non fa altro che ascoltare dal pc la trasmissione delle temperature e scriverle sulla EE, dopo di che il tool sovrascrivera' la flash col mio sw controllore di temperatura.

Mi sto fasciando un po troppo la testa? Mi sembra un bel esercizio.. :)

Quale sia il modo migliore per scrivere il tool, questo non lo so..Io ho detto VB perche' e' l'unico che conosco, ma daro' un'occhio anche ad altro ;) grazie mille intanto!

scusa ma non ho capito bene cosa vuoi fare, forse un sw che registra su eeprom e un altro che dopo fa il controllo? Secondo me riesci a scrivere tutto i programma in un unico sketch, parlando in termini di quantità di memoria.

Per EE intendi la EEPROM?

tyx perchè non ci racconti il progetto che hai in mente? Magari possiamo darti qualche suggerimento a tutto tondo.

si per EE intendevo EEprom, sorry!

Allora, il progetto in se non e' un granche', e' un banalissimo controllo di temperatura. E' quello che ci sta attorno che e' "difficile", ma anche interessante. Per me ovviamente.

Il famoso utente Babbo (di nome e di fatto) deve usare il mio futuro "scatolo" per controllare di temperatura, il quale e' dotato di LCD, un paio di LED, magari 2 tasti, un RTC (oltre a sonda ti temperatura e attuatore per il carico riscaldante).

E' importante che abbia una risoluzione giornaliera nel controllo della temperatura, quindi devo inserire molti dati (di temperatura) e tenere d'occhio l'andamento del tempo anche in caso di power failure, da qui la necessita' di un RTC.

La sfida qual'e': Babbo non e' un drago nell'uso del pc, quindi devo fornirgli un'interfaccia semplice per potersi programmare le sue temperature nell'arco del mese (o dell'anno, non lo so, dipende dallo spazio che avro'). Quindi prevedo che una volta al mese si colleghera' col pc al mio controllo per impostarsi le temperature del mese a venire. Le ipotesi quali sono: 1. di scrivere un programma lato pc che fa solo una spedizione seriale di temperature, e, come suggerito da Federico, che il mio firmware su arduino sia in grado di mettersi in "ascolto", leggersele (e magari salvarle in EEPROM), e poi ripartire col controllo; 2. spezzare in 2 il fw di arduino in una parte di controllo e in una parte di "ascolto" + salvataggio in EEprom dei dati spediti da pc. in questo caso il sw lato pc deve essere in grado di programmare la flash con i 2 firmware.

Spero di essermi spiegato bene... L'ipotesi 2 mi piace di piu perche mi permette di affrontare un sacco di problematiche diverse e, non ultima, se voglio cambiare il controllo (o perche c'e' un baco, o perche' mio padre vuole una modifica), basta che spedisca a mio padre una nuova versione del sw lato pc, al cui interno ci metto il mio firmware aggiornato. Se poi riesco a farlo in maniera multiplatform, ancora meglio! Ho letto qualcosa di Processing, dovro' recuperare un po di conoscienze java dimenticate nei libri di scuola, ma va bene cosi!

GRazie mille, se non altro per il tempo dedicato alla lettura di questo post!

Ho letto qualcosa di Processing, dovro' recuperare un po di conoscienze java dimenticate nei libri di scuola, ma va bene cosi!

Diciamo che di java ha molto la grammatica. Non aspettarti di lavorare con Eclipse o NetBeans :D

Se vuoi lavorare con VB.net, basta che leggi e scrivi sulla seriale virtuale. Quindi torni a lavorare sul PC con quello che conosci.

si per EE intendevo EEprom, sorry!

Ah... mannaggia alle abbreviazioni :-)

Allora, il progetto in se non e' un granche', e' un banalissimo controllo di temperatura. E' quello che ci sta attorno che e' "difficile", ma anche interessante. Per me ovviamente.

Guarda mi sono accorto che la maggior parte dei miei progetti non sono nulla di che ma il risolvere i problemi che comporta è molto edificante quindi non ti preoccupare di qeusto.

Il famoso utente Babbo (di nome e di fatto) deve usare il mio futuro "scatolo" per controllare di temperatura, il quale e' dotato di LCD, un paio di LED, magari 2 tasti, un RTC (oltre a sonda ti temperatura e attuatore per il carico riscaldante).

Ok e fino a qui non sembra nulla di troppo articolato. Con un arduino 2009 con ATMEGA328 non dovresti avere grossi problemi in merito.

E' importante che abbia una risoluzione giornaliera nel controllo della temperatura, quindi devo inserire molti dati (di temperatura) e tenere d'occhio l'andamento del tempo anche in caso di power failure, da qui la necessita' di un RTC.

Certamente. La risoluzione non è un grosso problema. Tempo fa il creatore di arduino, in un post, aveva parlato di questo aggeggio: http://it.farnell.com/ftdi/vdip1/modulo-di-sviluppo-per-vnc1l/dp/1329313 Lo puoi usare per interfacciare arduino con un hard disk quindi... non vedo grossi problemi di spazio anche settimanale e/o mensile.

La sfida qual'e': Babbo non e' un drago nell'uso del pc, quindi devo fornirgli un'interfaccia semplice per potersi programmare le sue temperature nell'arco del mese (o dell'anno, non lo so, dipende dallo spazio che avro'). Quindi prevedo che una volta al mese si colleghera' col pc al mio controllo per impostarsi le temperature del mese a venire. Le ipotesi quali sono: 1. di scrivere un programma lato pc che fa solo una spedizione seriale di temperature, e, come suggerito da Federico, che il mio firmware su arduino sia in grado di mettersi in "ascolto", leggersele (e magari salvarle in EEPROM), e poi ripartire col controllo;

La EEPROM è limitatina e secondo me non riesci a salvarci i dati di un lungo periodo. Se non vuoi attaccarci un PC secondo me la soluzione migliore è quella che ti ho linkato sopra. Alcuni sono anche riusciti a interfacciare arduino direttamente con una SD ma sinceramente mi sembra più uno sbattone e son troppo pigro per provare il tutto.

  1. spezzare in 2 il fw di arduino in una parte di controllo e in una parte di "ascolto" + salvataggio in EEprom dei dati spediti da pc. in questo caso il sw lato pc deve essere in grado di programmare la flash con i 2 firmware.

Vedi sopra. Puoi salvare i dati di "programmazione" della temperatura sulla EEPROM e fare il LOG dei dati su quell'apparecchio che ti ho linkato.

Spero di essermi spiegato bene... L'ipotesi 2 mi piace di piu perche mi permette di affrontare un sacco di problematiche diverse e, non ultima, se voglio cambiare il controllo (o perche c'e' un baco, o perche' mio padre vuole una modifica), basta che spedisca a mio padre una nuova versione del sw lato pc, al cui interno ci metto il mio firmware aggiornato. Se poi riesco a farlo in maniera multiplatform, ancora meglio! Ho letto qualcosa di Processing, dovro' recuperare un po di conoscienze java dimenticate nei libri di scuola, ma va bene cosi!

Ma sinceramente date le premesse puoi usare tranquillamente VB.NET (anche se personalmente non lo adoro...) La soluzione multipiattaforma era nel caso volessi "sostituire" l'IDE ma da cosa hai scritto lo scopo è tutto un altro...

GRazie mille, se non altro per il tempo dedicato alla lettura di questo post!

Figurati. In futuro tu farai, speriamo, la stessa cosa per qualcun altro. Benvenuto e tienici aggiornati.

Ti (Vi) ringrazio molto per la disponibilita'. Non sono un gran frequentatore di forum, e nella mia piccola esperienza non mi era mai capitato di trovare persone cosi affabili. Ok, do ancora una speranza al futuro del genere umano.. ;)

Cmq, per tornare a cose meno "auliche", non sono intenzionato a fare il LOG dei dati..volevo usare l'EE solo x salvare le temperature target che il controllo deve rispettare. Ne salvo quanto ce ne stanno, poi sara' mio padre a doversi adattare! ;)

Avevo parlato di sostituire IDE forse un po impropriamente, intendevo dire se potevo usare la parte di compilazione/upload gia' esistente dell'ambiente e "metterci sopra" una mia parte grafica (dove faro' inserire le N temperature). Mi devo informare meglio su avrdude prima di decidere..

Grazie ancora, quando questa cosa sara' andata in porto allora potro' pensare di aiutare anch'io i neofiti!

tramite interfaccia SPI puoi anche controllre una memoria SD, dove caricare temperature e log in file di testo leggibili da qualsiasi lettore di schede usb per pc.

libreria software e schema di collegamento http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206874649/8

ingegno Italiano per il connettore da esperimenti http://it.emcelettronica.com/sd-card-adattatore-breadboard