Introduciamo tre grandi famiglie di Controller e Processori: AVR, ARM e Crestron.
I microcontroller AVR sono stati portati alla ribalda dal progetto Arduino, gli ARM dal Raspberry Pi, mentre Crestron è un marchio di riferimento per ogni applicazione professionale.
Potremmo dire che un progetto reale, per dire, predisporrre un centro commerciale all’IoT, non può prescindere da soluzioni quali Crestron.
Le schede ARM ed AVR sono da una parte emergenti nel mercatro delle applicazioni professionali e possono offrire delle possibilità per completare un mosaico.
La via maestra è l’integrazione di dispositivi apparetenti a famiglie diverse per poter sfruttare le peculiarità esclusive, per esempio l’apertura industriale di Crestron, oppure l’economicità e l’incredibile documentazione di Arduino o RaspberryPi.
Arduino, Raspberry e Crestron sono di fatto tre standard.
Arduino ha ADC di utilizzo immediato, RPi non ne ha.
RPi deve ricorrere al bus SPI a 3.3V con un 3008 dotato di 8 ADC, affrontando problemi di stabilità. La tensione riduce la velocità di campionamento dell’integrato. La gestione degli 8 canali via SPI è delicata: se si vuole acquisire i dati in tempo reale non è possibile usare la SD come buffer, ma bisogna costruire uno stream di rete. Pertanto si devono leggere 8 canali e inviare al servizio di rete che li archivia con tempi del milli secondo. L’interprete Python è insufficiente perchè rallenta, bisogna compilare C e interagire con moduli kernel SPI, …
Una scheda Due ha dodici ADC a 12 bit con velocità tale da gestire le letture dei dodici canali in un millisecondo. Il framework e la IDE Arduino semplificano ogni particolare realizzazione.
Si tenga presente che per le misure di potenza reale rispetto a f.e.m. a 50 cicli al secondo servono almeno tali velocità. Per misurare la potenza di un motore trifase servono tre letture di corrente e tre letture di tensione contemporanee: quindi 6 letture nei 50 Hz, ovvero costruire un arco di sinusoide a 50 cicli al secondo: le letture per la sinusoide devono essere fatte in 20 ms, supponendo di farne almeno 10 allora ci si confronta con il millisecondo.
RPi o BPi hanno la connessione di rete con il network di linux!
Un AVR con una costosa scheda di rete permette il solo TCP Row, quasi nenche un telnet client.
Avere un client telnet o meglio SSH con AVR è un sogno. Figurarsi un client RDBMS. Crestron mette a disposizione un client telnet, ci sono serie difficoltà con SSH, HTTP ed SSL.
Con un Linux ARM tutti i client citati sono nativi e naturali, ma anche i loro corrispondenti server! Una cheda con Linux ha client e server: TCP Row, telent, telnet in SSH, , FTP, SFTP, Samba, HTTP, HTTPS, REST 2, SOAP XML, WebDAV, SSL, client per i principali RDBMS, ….
Arduino richiede una interfaccia di rete dal costo anche superiore di un RPi e con capacità di network veramente all’osso.
La gestione della memoria di massa è praticamente un problema con AVR, mentre con le schede ARM e Linux ci si muove con gran margine e facilemente: mount samba, mount USB, BPi con SATA, SD di tutti i tipi, …
Collegare un LCD di base ad una scheda ARM significa usare I2C, mentre un Mega ha così tante porte che collegare un LCD controllato con pin separati non compromette la GPIO.
Arduino e le schede ARM hanno il bus seriale / USB incredibilmente robusto e facile da implementare. Fatto che spinge a gemellarle via USB.
Il gemellaggio via USB è estremamente potente: spinge la specializzazione, permette la costruzione di watch dog, permette di separare le attività e quindi un’implementazione non mescolata e quindi più pulità.
Inoltre il controllo del bus USB se fatto con Linux risulta incredibilmente stabile ed anche raffinato.