Salve,
per necessità devo creare un programma preferibilmente java per effettuare modifiche veloci alle variabili presenti nel codice già salvato all'interno di arduino.
In poche parole io programmo arduino tramite il proprio IDE e in futuro devo poter modificare i valori di alcune variabili tramite una GUI di facile uso che andrò a creare in modo tale da non dover lavorare direttamente dal codice.
grazie in anticipo per le risposte
Benvenuto.
Ti invitiamo a presentarti qui: Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! (Part 1) - Generale - Arduino Forum
e a leggere il regolamento: [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum
Per la tua domanda, se ho capito quel che ti serve.
L'unica è che questi parametri tu possa passarli ad Arduino tramite seriale tramite un tuo protocollo.
Lato PC puoi creare un programma in Processing (ha un IDE da cui deriva quello di Arduino) e si programma in Java.
Il firmware del microcontrollore è scritto in una memoria non volatile non direttamente modificabile dall'esterno a meno di non entrare in modalità di programmazione. Ma in questo caso, per cambiare qualcosa, dovresti rispedire il programma, il che vuol dire che lo dovresti editare, ricompilare e riflashare sul chip. Allora tanto vale usare l'IDE.
oppure trasmetti via seriale alcuni valori e li memorizzi a lato Arduino nella EEProm. Quando accendi Arduino quello prende i valori dal EEpom. Attenzione l' eprom memorizza solo valori di 1 BYTE per variabili int, long o float devi scomporli nei 2-4 byte.
Ciao Uwe
Non l'ho suggerito perché per fare ciò serve preparare un file hex da passare ad avrdude, e non tutti sono capaci di fare ciò
Non so neanche se i vari software con GUI che pilotano avrdude offrono una specie di editor per le memoria EEPROM.
ma non posso editare l'ide di arduino e far comparire solo un interfaccia creata da me?
Forse non hai capito una cosa che ti ha detto Leo ...
leo72:
Il firmware del microcontrollore è scritto in una memoria non volatile non direttamente modificabile dall'esterno a meno di non entrare in modalità di programmazione.
Il valore statico delle variabili che metti nel codice NON lo puoi modificare senza riprendere il codice, modificare le variabili, ricompilare e ricaricare il nuovo eseguibile su Arduino.
Come ti ha suggerito Uwe, il sistema più semplice è, probabilmente, mettere copia di tali variabili nella EEPROM, EEPROM che leggerai all'avvio e con i cui valori inizializzerai le tue variabili.
La EEPROM la puoi programmare, in modo indipendente, senza dover modificare, ricompilare e ricaricare il codice, tramite AVRDUDE, che puoi mettere in esecuzione da una tue semplice interfaccia in Java.
Guglielmo
jecky94:
ma non posso editare l'ide di arduino e far comparire solo un interfaccia creata da me?
Forse non capisco io che vuoi fare.
Arduino è separato dal tuo PC. L'IDE compila un programma e poi tramite la USB "scarica" (upload) il programma risultante su Arduino.
Per creare una interfaccia:
- la fai lato PC, ma sei costretto allora a colloquiare con Arduino tramite seriale,
2 oppure crei una interfaccia (spartana) su Arduino, ad esempio tramite un LCD 16x2 + tasti collegati ad Arduino (ma in C di Arduino, non in Java). - oppure se Arduino ha la ethernet shield puoi fare qualcosa come Web server (e puoi usare un pò di JavaScript).
la mia spiegazione non è stata delle migliori...l'arduino sarà sempre collegato con il pc che però servirà solo nel caso di modifiche veloci di alcuni valori, come ad esempio cambiare velocemente l'intensità luminosa di un led. Il salvataggio su eeprom sarebbe una cosa interessante da fare ma vale anche su arduino due?
jecky94:
Il salvataggio su eeprom sarebbe una cosa interessante da fare ma vale anche su arduino due?
Mi raccomando eh ... le cose sempre con il contagocce ... pare che vi fa fatica dirle tutte assieme ...
NO, la due non ha memoria EEPROM a bordo ... ti compri una EEPROM collegabile in SPI e ce l'aggiungi.
Guglielmo
Allora a 'sto punto, meglio comprare un adattatore per uSD. Visto che la Due va a 3V3 come le uSD, non c'è neanche bisogno del traslatore di livelli. Ci accedi via SPI e dentro ci metti un file .txt in cui inserisci i parametri di configurazione del software, così non devi neanche stare a menartela con EEPROM seriali da riempire con dati. La schedina la scrivi dal tuo computer con un banalissimo editor di testi e poi ad avvio sketch sulla Due non devi fare altro che leggere dalla SD questi valori. Se la scheda non c'è, basta far partire il programma con dei valori di default.
Punto. Fine.
Potresti usare la mia libreria lato PC. E' scritta in java
www.ardulink.org
Per una presentazione velocissima pui dare un'occhiata a questo video:
Se Arduino è sempre acceso probabilmente non hai bisogno di scrivere i valori modificati da nessuna parte, usa la memoria volatile e basta! O mi sono perso qualche passaggio?