Le schede di sviluppo sono una realtà già da parecchi anni. Esse permettono agli sviluppatori e ai tecnici d’ideare i propri progetti in minor tempo, in quanto lo sviluppo hardware viene ridotto al minimo. Vediamo come si muove il mercato e il progresso su questo enorme settore dell’elettronica, che coinvolge qualsiasi ambito tecnologico.
Introduzione: cos’è una scheda di sviluppo
A grandi linee, un dispositivo di sviluppo è una scheda contenente un microprocessore e tutta la logica di supporto minima necessaria per sperimentare direttamente sulla MCU e imparare a programmarla (vedi figura 1). E’ progettata per facilitare la sperimentazione di determinate funzionalità di un particolare microcontrollore o dispositivo. Ha la funzione di preparare i prototipi dei prodotti finali.
Se uno sviluppatore sta cercando di realizzare un prototipo per un nuovo prodotto, il primo passo è quello di scegliere un kit di sviluppo. Esso fungerà da unità intelligente per il progetto e comunicherà con tutti gli altri componenti elettronici connessi. Se si realizza da sé l’intera configurazione di base del circuito con un PCB o con una breadboard, non si può mai essere sicuri al 100% delle connessioni effettuate. Se qualcosa non funziona, non si sa se la colpa è della logica o delle connessioni. Per questo motivo si rischia di perdere molto tempo con il debug e a risolvere il problema.
Tipologie e funzionamento delle schede di sviluppo
Diversamente da un normale computer, la scheda di sviluppo prevede un hardware ridotto, per lo più dedicato all’interfaccia utente. Il suo dispositivo principale può essere programmato tramite un PC, attraverso una porta seriale. L’utente, poi, può interagire con esso attraverso diversi sensori e attuatori posti sulla stessa scheda. Esistono schede di sviluppo per tutte le esigenze e tutte le tasche. Alcune risultano molto economiche. Un progettista, in realtà, può realizzare da solo una scheda di sviluppo, che gli consenta di testare e collaudare le periferiche che egli utilizza con più frequenza.
Le schede, inizialmente, furono introdotte sul mercato solo per motivi didattici. Erano anche sprovvisti di box o di contenitore, proprio per diminuire i costi e rendere disponibili e accessibili tutte le parti del dispositivo. La maggior parte di esse prevede anche la possibilità di inserire espansioni e circuiti aggiuntivi, usate più di rado, per aumentarne le possibilità di utilizzo. Ultimamente la maggior parte delle schede di sviluppo è predisposta per l’IoT (Internet delle cose). Pertanto è garantita, come minimo, la presenza dell’hardware dedicata alla connessione WiFi con la Rete.
Come scegliere la scheda di sviluppo giusta?
Quali parametri sono più importanti per il proprio progetto? Occorre tanta memoria o necessitano alte velocità operative per migliorare l’esecuzione delle applicazioni? Gli sviluppatori devono scegliere tra schede basate su microcontrollori, schede System on Chip (SOC), computer a scheda singola (SBC). A volte scegliere un modello per le proprie esigenze è alquanto difficile. Un possibile aiuto si può ottenere dalle schede comparative, presenti su tantissime pagine d’Internet, nelle quali un certo numero di schede viene comparato per prestazioni, memoria, velocità, numero di porte e costi. Per iniziare con uno sviluppo integrato, occorrono due elementi principali:
- la scheda di sviluppo vera e propria;
- un IDE (Integrated Development Environment) visibile in figura 2.
Le schede di sviluppo contengono il processore e, opzionalmente, una memoria, un chipset e alcune periferiche integrate come un LCD, una tastiera, dei pulsanti, dei Led, un bus USB, una porta seriale, un RTC, slot per schede SD, Ethernet, ecc. Questa varietà di componentistica evita al progettista di fare confusione con le connessioni dei ponticelli e la scheda. Esistono centinaia di modelli, delle caratteristiche tra loro, ognuno con i propri pregi e inconvenienti. Molte persone pensano che se acquistano una scheda di sviluppo molto potente, essa sarà in grado di costruire qualsiasi tipologia di prototipo. Ma ciò non è vero.
Kit di sviluppo basati su MCU e MPU
A grandi linee, i kit di sviluppo possono essere suddivisi in due grandi categorie:
- quelli basati su un’unità microcontrollore (MCU);
- quelli basati su un’unità microprocessore (MPU).
La MCU è sicuramente più lenta, più facile da programmare, più semplice da gestire e non richiede alcun sistema operativo, consuma meno energia e costa meno. Può rilevare più segnali d’ingresso (analogici o digitali), elaborare le informazioni (sulla base di una logica programmata) e fornire segnali di uscita. Una MPU, al contrario, è molto più veloce e complessa da programmare e progettare. La maggiore capacità di elaborazione richiede anche molta più energia. Usa un sistema operativo completo come Linux o Android. Solitamente esso è il cervello di diversi prodotti come, ad esempio, i computer e i telefonini. Si possono usare come computer autonomi a tutti gli effetti. Anche l’aspetto del consumo elettrico è di vitale importanza: un Raspberry Pi consuma centinaia di milliampere di corrente mentre un Arduino consuma solo decine di milliampere. La finalità detta il passo della scelta. I microcontrollori e i microprocessori non sono un nuovo concetto ed esistono da decenni. Pertanto, fattori di scelta sono la tensione elettrica di funzionamento e d’ingresso, la corrente necessaria alla scheda, la velocità di clock, il numero di porte di I/O, il tipo di linguaggio di programmazione utilizzato, l’eventuale sistema operativo a bordo, la memoria presente, ecc.
Schede di sviluppo e microcontrollori
Il cuore di ogni scheda di questa tipologia è, naturalmente, il microcontrollore. Per esempio, nel caso dell’Arduino Uno, la MCU è l’ATmega328P. Essa deve interfacciarsi con il computer, permettendo la sua programmazione. Un chip esterno permette la traslazione tra i segnali differenziali utilizzati dalla porta USB (o seriale) del computer e il microcontrollore. Per mantenere i costi bassi, molte schede vengono vendute senza unità di alimentazione. Tuttavia esse montano a bordo un regolatore lineare, che risulta economico e semplice. Un modello molto diffuso e utilizzato è l’AMS1117.
Alcune schede di sviluppo, come Arduino, Raspberry Pi o BeagleBone (vedi figura 3), hanno ottenuto una grande popolarità per diversi motivi. Esse sono riutilizzabili, facili da usare e convenienti. I progettisti cercano proprio tali caratteristiche. La semplicità della programmazione da qualsiasi computer ne agevola, senza dubbio, la diffusione. Inoltre il passaggio dalla programmazione hardware di basso livello (linguaggio assembly) alla programmazione ad alto livello (C, C++, Basic, Prolog, Python) è stato un importante punto di svolta nell’industria elettronica. Il layout del PCB di una scheda di sviluppo è più critico quando sono coinvolti segnali analogici o ad alta velocità. I circuiti integrati analogici, infatti, sono molto sensibili al rumore di fondo.
Tuttavia l’uso di opportuni piani di massa contribuisce a ridurre il rumore e le interferenze. Le tracce analogiche devono essere tenute lontane dalle tracce digitali ad alta velocità. E’ anche il caso delle linee differenziali USB, che devono risultare molto brevi. Inoltre si devono evitare curve per ridurre le riflessioni e le variazioni d’impedenza.
Oggi è molto semplice ed economico creare un kit di sviluppo di microcontrollori a scheda singola e vi sono tanti software open source disponibili per sviluppare tali schede. Molti modelli sono basati sul “fai da te” (Do It Yourself o DIY) e possono essere realizzate a casa. I componenti devono essere saldati con cura sul PCB per ottenere un prodotto perfetto, assieme a un IDE adatto per programmare il microcontrollore.
Arduino tra le schede di sviluppo più popolari
Arduino è la piattaforma di prototipazione più popolare per creare applicazioni elettroniche. E’ usatissima nelle scuole di tutti i generi. Esso contiene tutto il necessario per realizzare un progetto e risulta molto semplice ai principianti e agli esperti. Arduino UNO R3 è basato sul microcontrollore ATmega328P.
Le sue caratteristiche sono le seguenti:
- MCU ATmega328P;
- 32 KB di memoria Flash;
- Tensione operativa di 5V;
- Tensione di alimentazione di 7-12V;
- Pin digitali di I/O: 14 (6 pins generano il PWM);
- Porte Analogiche d’ingresso: 6;
- Current per Pin di I/O: 40 mA.
Raspberry Pi: un piccolo computer su scheda
Un’altra scheda molto potente è Raspberry Pi (figura 4), grande quanto una carta di credito. Si collega facilmente a un monitor o TV usando, anche, una tastiera e un mouse standard. A differenza di altre schede di sviluppo, RPi è un vero e proprio computer, dotato di sistema operativo. Le sue caratteristiche sono di gran lunga superiori ad altri sistemi:
- Processore a 64-bit quad-core ARMv8 CPU 1.2GHz;
- LAN Wireless 802.11n;
- Bluetooth 4.1;
- Bluetooth Low Energy (BLE);
- 1 GB RAM;
- 4 porte USB;
- 40 pins GPIO;
- Porta HDMI;
- Jack audio 3.5mm e segnale video composito;
- Camera interface (CSI);
- Display interface (DSI);
- Micro SD card slot.
Stay tuned! Giovedì prossimo un nuovo capitolo sulle schede di sviluppo per l’industria!