Revisione 0.03.
Il primo I.o.T. Firmware per Arduino pubblicato, indicato come versione 0.18.06.05, permette di valutare concretamente il Progetto I.o.T.
E’ facile allestire l’ I.o.T. Controller con una qualsiasi scheda della famiglia Arduino mediante questa prima versione pubblicata del Firmware. Compilato e installato nel microcontroller, è possibile usare il terminale seriale per comunicare manualmente, laboratorio fondamentale per entrare nel progetto.
Si osservi come i comandi, stringhe con a capo, siano intellegibili per l’operatore umano, .
Questa prima versione riconosce il tipo di scheda, per esempio Uno o Mega, e tiene conto del numero di porte disponibili.
E’ prevista la configurazione dinamica delle porte nei limiti strutturali del tipo di scheda riconosciuto.
Infatti il codice controlla dinamicamente la coerenza dei comandi inviati con l’architettura disponibile. Per esempio se viene riconosciuta una Scheda Uno e si invia il comando set port 54 value high il firmware rende errore perché la scheda Uno non ha 54 pin digitali come la Scheda Mega. Nel caso di Scheda Mega se una porta è non è stata configurata oppure è stata configurata in lettura allora dovrà rendere errore alla medesima istruzione.
Si osservi il ruolo del comando CONFIG che permette la configurazione delle porte stesse del microcontroller, per esempio come porta digitale in uscita oppure in entrata o PWM.
Si adotta il principio di distinzione di comandi a basso livello, o comandi elementari o comandi, direttamente inviati al ed eseguiti dal controller, e di comandi ad alto livello, o macro comandi o macro, ai quali il servizio controller_communicate, in esecuzione nel processore, applica il parsing in comandi a basso livello che invia al controller.
Pertanto si ottiene una distribuzione delle computazioni e degli stati tra programmi eseguiti nel processore e comandi eseguiti nel controller, ben meno dotato del processore.
Le librerie e particolari righe di codice possono essere escluse dal compilatore per permette di non appesantire il compilato, e quindi poter essere eseguito in microcontroller meno dotati.
La Comunicazione con il Processore è mediante la porta USB che viene dedicata a questa attività. La velocità adottata è di 115200 baud che nelle molti test eseguito non ha mai dato problemi.
Il poll centrale contiene un primo ritardo che sarà perfezionato con demoltiplicatori, ovvero permetteranno l’esecuzione di codice ogni n cicli del poll principale.
La Comunicazione dal Processore al Controller è di ovvia realizzazione, il verso opposto, ovvero gestione eventi, richiede delle scelte che, in questa fase, sono realizzate mediante l’opzione repeat del comando inviato.
La gestione degli eventi sarà permessa dal parametro repeat legato al comando stesso, ovvero un comando con repeat nullo verrà eseguito una sola volta, realizzando quando si intende per eseguire il comando, altrimenti verrà continuamente eseguito ma con una frequenza demoltiplicata rispetto ai cicli eseguiti del poll principale. L’effetto è di mettere il comando in poll, ovvero riporto eventi dal controller al processore.
Seguirà la pubblicazione dell’immagine SD per realizzare un I.o.T. Processore con scheda ARM del tipo Raspberry Pi 3 Model B.