Il termine “sistemi integrati” si riferisce di solito ai dispositivi elettronici di dimensioni contenute, con un microprocessore o un microcontrollore, con dei programmi (generalmente sviluppati per un singolo compito, ma non necessariamente limitato a uno), e con una limitata interfaccia di interazione esposta all’utente (questa può anche non esserci, nel caso non ce ne fosse bisogno), e da questo non (ri)programmabili per altri usi e scopi.
Si tratta di solito di circuiti con capacità di calcolo e di memorizzazione dei programmi e dei dati molto inferiori ai tradizionali computer da scrivania, ma sufficenti per dei singoli compiti delegatigli. A causa di queste potenzialità ridotte i circuiti possono essere anche di dimensioni fisiche molto ridotte, adatte per essere inseriti negli altri dispositivi per controllarli o per ricevere da questi delle informazioni importanti. Le dimensioni e la potenza di calcolo ridotte fanno in modo che questi dispositivi consumino pochissima energia e non hanno nemmeno bisogno di sistemi di raffreddamento ne di dissipazione termica. Spesso hanno bisogno solo di batterie piccole, che grazie ai pochi consumi durano tanto. Alla fine i costi di questi sistemi sono nettamente inferiori a quelli dei tradizionali computer, e possono anche aggirarsi a pochi euro, con prezzi che aumentano per sistemi più complessi e potenti.
Così, i sistemi integrati li troviamo nelle centraline elettroniche a bordo dei veicoli, regolatori di temperatura nei condizionatori, lettori portatili di musica, telefoni cellulari delle vecchie generazioni (quelli moderni sono dei computer veri e propri), sistemi di irrigazione, circuiti con allarmi, distributori automatici, lavatrici, termometri digitali, ecc.
Sistemi integrati (più complessi) sono anche i nostri modem di casa o delle aziende, stampanti, fotocopiatrici. Li troviamo anche integrati dentro i nostri computer da scrivania o nei server, perché molti dei dispositivi all’ interno dei nostri computer (lettore DVD, dischi rigidi, schede di rete, schede grafiche,…) sono dei sistemi integrati.
L’Internet delle Cose si basa prevalentemente su sistemi integrati.
Esistono varie piattaforme di microprocessori e di microcontrollori, utilizzati per realizzare i sistemi integrati e differiscono anche i linguaggi di programmazione che si usano per programmarli. Quelli più semplici ed economici si possono di solito programmare nel linguaggio assembly o anche nel linguaggio C, mentre man mano che aumenta la complessità di questi sistemi e la potenza di calcolo la scelta dei linguaggi può aumentare, e in certi casi si possono usare dei linguaggi di programmazione di livello ancora più alto del linguaggio C, per esempio C++, Ada, Vala,Python, Lua, Ruby, Rust, Java o altri. Di solito questi sistemi non si programmano direttamente, ma vengono sviluppati i programmi su un comune computer da scrivania e con l’utilizzo di compilatori e pacchetti di sviluppo per applicazioni (“SDK”) per poi caricare i programmi compilati sulla scheda del sistema integrato.
Le piattaforme di sviluppo dei sistemi integrati che sono oggetto dei nostri corsi sono per adesso limitate a Raspberry PI e Arduino.
Chiaramente, i sistemi integrati, per poter interagire con sensoti ed attuatori, richiedono dal programmatore anche certe nozioni di elettronica. Anche questo tipo di corsi noi ce l’abbiamo, e le informazioni relative possono essere visionate seguendo il collegamento indicato.