A volte i programmi possono presentare errori di runtime. A volte sono difficili da trovare e possono essere facilmente persi. Esiste un modo per testare il programma prima di masterizzarlo effettivamente sulla scheda?
A volte i programmi possono presentare errori di runtime. A volte sono difficili da trovare e possono essere facilmente persi. Esiste un modo per testare il programma prima di masterizzarlo effettivamente sulla scheda?
Risposte:
Esistono alcuni progetti di Arduino Simulator.
Forse uno dei più maturi è il Virtronics Simulator per Arduino , il video di YouTube qui .
La pagina Virtronics collegata sopra elenca anche alcuni altri simulatori Arduino, sia gratuiti che a pagamento.
Dato l'interesse che Arduino suscita, è probabile che ci siano molti più simulatori simili là fuori, quindi non ha senso cercare di elencarli tutti in una risposta qui.
Ciò che vale la pena notare è che esiste anche un'app per iPhone Arduino Simulator : questa non è una raccomandazione, non l'ho ancora vista in funzione.
In una nota a margine:
L'Arduino è di per sé una scheda di prototipazione / sperimentazione. È ideale per programmare codice sperimentale, eseguirne il debug, modificare e quindi riprogrammare il nuovo codice, praticamente tutte le volte che si desidera . Se il codice si blocca, ripristina e riflash con eventuali modifiche.
Pertanto, il merito di usare un simulatore, che non può mai emulare perfettamente i vari tempi del mondo reale o altri problemi che un'applicazione potrebbe dover affrontare, è discutibile.
Se il costo di Arduino è la preoccupazione, ci sono un paio di opzioni aperte:
È possibile trovare errori di runtime se è possibile scorrere manualmente il programma con Arduino collegato ed eseguire il debug ( dopo aver scaricato il codice su Arduino). Questo è disponibile in Visual Micro sebbene richieda Visual Studio. È possibile impostare i punti di interruzione, valutare le variabili e modificare i valori delle variabili. È inoltre possibile ottenere la visualizzazione della memoria nel tempo:
Un modo per farlo sarebbe quello di creare un programma wrapper per il codice effettivo che simuli tutti gli input e accetti gli output (creando così un loop di feedback) come per l'ambiente reale. Ciò richiederebbe un impegno variabile a seconda del tipo di programma, del grado di test e del numero di input.
Tieni presente che durante la scrittura del programma wrapper, dovresti seguire un approccio black-box .
In caso contrario, il codice esterno non può testare il programma nel miglior modo possibile come tenendo presente il codice vero e proprio durante la creazione del codice di prova potrebbe pregiudizi di ignorare i casi limite o aree problematiche (Questo è stato osservato per accadere mentre si fa white-box test che è l'alternativa).