
Lo sviluppo del movimento maker, cresciuto soprattutto negli ultimi tre anni, sta rapidamente cambiando il mercato dei microcontrollori che, al contrario di ciò che è avvenuto per i microprocessori e i computer, è rimasto fino a poco tempo fa un settore per specialisti, con formazione elettronica più che informatica. Le aziende che producono board per sistemi embedded devono oggi per la prima volta confrontarsi con un nuovo tipo di domanda.
Nel 1968 l’italiano Federico Faggin sviluppò la Fairchild presso la “Silicon Gate Technology” che, consentendo l’integrazione di circuiti logici su larga scala (LSI), rese possibile la realizzazione dei microprocessori, cioè chip contenenti un’intera CPU.
A partire dagli anni ‘80 l’utilizzo di questi chip è stato di fatto l’unica implementazione delle CPU e il loro sviluppo ha seguito con buona approssimazione la legge di Moore con un raddoppio del numero equivalente di transistor integrabili in un unico chip ogni 18 mesi circa.
Con l’aumentare del livello d’integrazione e la possibilità di realizzare nel singolo chip sistemi logici sempre più complessi i microprocessori hanno iniziato a specializzarsi a seconda dell’uso a cui erano destinati.
Al giorno d’oggi una classificazione molto grossolana può essere quella di dividere i prodotti esistenti sul mercato in due macro categorie: i microprocessori general purpose, quelli per intenderci che implementano le CPU dei moderni computer, e i microcontrollori, cioè processori specializzati verso il controllo e la gestione di segnali, prevalentemente usati nel campo dell’automazione e della robotica.
Tracciare una netta linea di demarcazione tra le due categorie è cosa sempre difficile e potenzialmente arbitraria, si veda ad esempio l'articolo di Rossella de Marchi comparso su questo blog per un possibile modello di classificazione, tuttavia è abbastanza facile individuare due mercati ben distinti.
Da un lato vi è il mercato dei microprocessori general purpose destinato alla realizzazione dei computer, dai grandi server ai piccoli dispositivi portatili quali tablet e smartphone. Questo segmento, con poche eccezioni, è oggi largamente dominato da Intel, architettura di riferimento per i personal computer, e da ARM, che non produce direttamente chip ma offre in licenza il progetto dei microprocessori che sono il cuore della maggior parte dei dispositivi mobili in commercio.
Dall’altro lato vi è il mondo dei cosiddetti sistemi embedded dove, oltre ad una certa presenza delle architetture ARM, troviamo prevalentemente impiegati microcontrollori specializzati per applicazioni real time. Atmel e Texas Instrument sono due dei principali leader di mercato in questo segmento.
Negli anni ’80 l’informatica era figlia ancora giovane dell’elettronica, la programmazione in assembler era molto diffusa e gli sviluppatori software non potevano prescindere da una certa conoscenza dell’architettura hardware. Basti ricordare le istruzioni PEEK e POKE del vecchio BASIC con cui si programmavano suoni, immagini e colori sui primi personal computer.
Lo sviluppo dei microprocessori general purpose negli ultimi anni è stato fortemente influenzato dal consolidarsi della monocultura che vede le architetture basate su Intel come lo standard di riferimento. Il progetto di ogni nuovo chip deve essere indirizzato a produttori che realizzeranno motherboard sempre più evolute e potenti ma che necessariamente dovranno essere retrocompatibili con i sistemi esistenti. Inoltre la programmazione dei microprocessori general purpose avviene in larga misura attraverso i tools di sviluppo applicativi di alto livello utilizzati dai moderni sviluppatori di software per PC e “app” mobili. La conoscenza dei diversi framework software come .Net, o Xcode ha sostituito nel patrimonio di competenze dei moderni coders la conoscenza delle architetture hardware.
Nel mondo della programmazione embedded le cose invece sono diverse.
I microcontrollori sono destinati a progettisti elettronici che li utilizzano in progetti di dispositivi elettronici specifici, destinati a mercati dove non esiste nulla di analogo alla monocultura che caratterizza il mondo dei computer.
La programmazione dei microcontrollori resta appannaggio degli elettronici. Gli ambienti di programmazione sono molto spartani e richiedono conoscenze tecniche molto approfondite sull’architettura dei microcontrollori stessi.
Il settore della programmazione embedded è stato finora un settore per specialisti e l’offerta di microcontrollori è sempre stata molto variegata così come è molto variegato il loro campo d’impiego, dal processamento dei segnali alla robotica.
Questo fino ad oggi, o meglio, fino all’avvento del movimento maker.
Il movimento maker affonda le sue radici nello stesso tipo di cultura in cui è nato il movimento Art & Craft statunitense tra la fine dell’800 e gli inizi del ‘900.
Il maker è di fatto un artigiano che utilizza tutti gli strumenti e le tecnologie a sua disposizione per i suoi fini creativi.
Molti maker posseggono delle buone conoscenze di elettronica e informatica e i microcontrollori sono lo strumento ideale per dare interattività ai loro manufatti.
Negli anni ’80 una scheda con microprocessore Z80, ottenuta spesso “hackerando” un home computer, era uno degli strumenti preferiti dagli hobbisti per realizzare i propri prodotti interattivi.
Gli acquirenti dei primi home computer erano prevalentemente hobbisti appassionati di elettronica. Non è un caso che la prima offerta di un minicomputer dal costo accessibile per un hobbista fosse proposta proprio dalla più diffusa rivista americana di elettronica amatoriale "Popular Electronics", che nel numero di gennaio 1975 presentava in copertina il kit dell'ormai celebre Altair 8800 acquistabile per meno di 1.000 dollari.
Con il tempo lo sviluppo dei personal computer ha assorbito anche il mercato home computer di fascia più economica e macchine destinate ad un uso professionale e gestionale hanno sostituito i vari Commodore 64 e Sinclair ZX Spectrum utilizzati in modo ludico dagli appassionati.
L'informatica si è allontanata dall'elettronica e i moderni linguaggi di programmazione, oggi facilmente disponibili a chiunque voglia cimentarsi nello sviluppo di applicazioni software, sono molto distanti dal livello dell'hardware.
Gli attuali PC non offrono più alcuna forma di accesso alla GPIO del microprocessore e non sono così facilmente "hackerabili".
A causa di questa chiusura nel mondo maker sono molto più usati i microcontrollori come gli Atmel che con pochi componenti elettronici aggiuntivi forniscono quello che serve alla maggior parte dei progetti sviluppati nei garage e negli hackerspace.
A partire dallo scorso decennio in questo mondo è improvvisamente comparso Arduino.
Su Arduino, e sul fatto che abbia molti limiti di impiegabilità in ambito industriale, si è discusso molto. Ne abbiamo parlato molto anche su questo blog.
Sarebbe sempre opportuno ricordare che Arduino è uno strumento nato in una scuola di design e non in un ambito ingegneristico. Il suo scopo iniziale era quello di abilitare artisti e creativi (persone che non hanno una specifica preparazione in elettronica o informatica) alla realizzazione di oggetti interattivi.
Arduino ha avuto successo dove i precedenti tentativi di creare una piattaforma standard di prototipazione hanno fallito. Arduino mutua oltre il 90% delle sue caratteristiche tecniche e funzionali, compreso il layout della piedinatura che costituisce il breackout del microcontrollore Atmel, dal progetto Wiring, tuttavia questo, al contrario di Arduino, non ha sfondato. Il motivo è da ricercarsi nel target di riferimento. Tutti i suoi predecessori erano in qualche modo indirizzati alla community degli sviluppatori embedded, che in ultima analisi snobbavano le semplificazioni, tagliate con l'accetta, che questi strumenti, orientati alla prototipazione, apportavano alla configurazione del microcontrollore. Arduino, al contrario, è stato indirizzato ad un target diverso che aveva un'esigenza latente e ciò ne ha determinato il successo.
Arduino ha avuto un grandissimo impatto sul mondo maker. La semplificazione dell’ambiente di sviluppo fornita dal suo IDE e soprattutto l’enorme disponibilità di librerie e applicazioni open source ha reso la programmazione dei microcontrollori Atmel accessibile anche a chi era a digiuno di informatica ed elettronica. Poco importa se le applicazioni fatte con Arduino non sono di classe industriale, meccanici, artisti e creativi dispongono di uno strumento perfettamente sufficiente ad automatizzare i propri lavori. Improvvisamente il mondo dell’automazione è diventato alla portata di tutti.
Come sempre accade quando una tecnologia diviene accessibile ad una larga base di utenti le applicazioni si moltiplicano e si innesca un processo di sviluppo esponenziale. Chiunque oggi voglia sviluppare un'applicazione che coinvolga sensori, attuatori e una certa intelligenza di controllo trova nella Rete un'enorme disponibilità di esempi e software già pronto.
L’effetto sul mercato è stato quello di incrementare la domanda di microcontrollori, ma non bisogna dimenticare che la maggior parte di questi nuovi utilizzatori non progetta le applicazioni secondo i paradigmi dell’ingegneria tradizionale ma applica il metodo del “tinkering”, utilizzando pezzi di software e spesso interi sottosistemi hardware e software alla stregua di mattoncini lego, spesso senza neanche comprendere appieno il funzionamento dei singoli elementi.
La disponibilità sulla Rete di questi mattoncini già pronti è stato uno dei fattori abilitanti per lo sviluppo della cultura maker.
Uno studio di Atmel rivela che attualmente 2/3 degli utilizzatori di microcontrollori sono classificabili come maker. E’ un dato importante che non può sfuggire al marketing delle grandi aziende del settore.
Tuttavia il nuovo importante mercato è cresciuto attorno ad una particolare declinazione del concetto di microcontrollore: quello rappresentato dallo standard Arduino.
L’utilizzabilità delle librerie sviluppate per Arduino è quindi un elemento che determina il successo delle nuove schede proposte sul mercato.
Qualcosa di molto simile sta avvenendo sul fronte delle schede a microprocessore con Raspberry Pi.
Raspberry Pi sta diventando sempre più la scelta d'elezione per i maker che hanno la necessità di sviluppare applicazioni che richiedono caratteristiche computazionali tipiche dei computer e sono meno critiche dal punto di vista della gestione real time degli eventi.
Anche in questo caso è l’enorme disponibilità di software open source, sviluppato da una community particolarmente attiva, a rendere la scheda così appetibile ai maker. La scarsità di componenti software open source già pronte e utilizzabili da coloro che progettano utilizzando il metodo del tinkering è il fattore che impedisce a molti ottimi prodotti, dalle caratteristiche tecniche competitive rispetto alla piccola scheda inglese, di affermarsi sul mercato, si pensi alle ottime board Beaglebone o all'italiana Udoo.
Oggi sono le board affermate nel settore maker che stanno dettando i nuovi standard di riferimento e condizionano l’attuale sviluppo dei microcontrollori e delle piattaforme embedded a microprocessore. I produttori tendono ad adeguarsi alla nuova domanda di mercato e devono confrontarsi con queste schede per mantenere un’offerta competitiva.
La situazione è ancora molto fluida, tuttavia la strada sembra essere stata segnata e all'orizzonte si intravede il nascere di una monocultura anche nel campo dei microcontrollori.
Stefano Capezzone
Aprile, 2015

Il movimento maker lo ha già cambiato il mondo dei microcontrollori, basta guardare il costo delle demoboard tipo Launchpad di TI o Freedom di Freescale che oggi per poco più di 10 euro offrono piattaforme di sviluppo straordinarie. 10 anni fa per quella cifra ci compravi solo il microcontrollore a 32 bit!
Ottimo articolo, ricco di affermazioni interessanti e motivi di riflessione. Alcune le condivido pienamente, altre solo in parte, nel senso che andrebbero approfondite per capirne le dinamiche.
Arduino è un prodotto straordinario, è proprio grazie a questa scheda che il movimento makers si è diffuso creando nuove opportunità economiche, quasi una vera e propria rivoluzione industriale. MA bisogna fare delle distinzioni ed in questo bisogna essere molto attenti perché ne vale il futuro della progettazione elettronica.
Arduino, inteso come ecosistema, nasce come prodotto per hobbisti e creativi, NON per professionisti, ed a mio avviso i problemi nascono quando esce dalla sua primitiva destinazione d’uso. Il problema non è mai lo strumento ma l’utilizzo che se ne fa. E’ ben spiegato nell’articolo che i progetti su Arduino nascono con il mondo del tinkering (che sarebbero gli “smanettoni” moderni) e questo è fantastico. Però nel momento stesso che Arduino “viene insegnato” nelle scuole, allora il discorso cambia e deve essere fatta una distinzione tra “progetto da smanettone” e progetto professionale. Il timore è che in un futuro prossimo, incantati dalla straordinaria semplicità di Arduino, i giovani ingegneri progettino con lo stesso metodo, ad esempio il prossimo ABS o il meccanismo di attivazione dell’airbag….
Ho scritto le mie preoccupazioni tempo fa in questo articolo: Arduino ha vinto, cerchiamo di non perdere noi ora!
Il problema si è allargato ultimamente, con i produttori di microcontrollori che allettati da un mercato orizzontale, quindi molto ricco (che per anni hanno snobbato) ora si trovano in ritardo e quindi tendono ad inseguire loro i makers, con il rischio di una tendenza verso “gli smanettoni”, il “basta che funzioni” piuttosto che il contrario, e cioè come dovrebbe essere quando si parla di progettazione elettronica. Sicurezza ed affidabilità prima di tutto.
Solo con la consapevolezza che i progetti professionali devono essere fatti con l’ATMEGA328 e NON con Arduino (se vogliamo rimanere in ambito ATMEL) è possibile uscire da questo paradosso!
Caro Emanuele.
Certamente un prodotto che va sul mercato richiede cautele e verifiche che un semplice progetto Arduino normalmente non ha.
Resistenza alle vibrazioni, Campo di temperature, testing intensivo del firmware etc. sono fondamentali.
E poi dev’essere ingegnerizzato.. Certamente !!!
Ma per l’uso consumer, e non aerospace /medical / automotive non vedo tutte quelle controindicazioni che vedi tu.
Una ditta che conosco e che produce macchine per taglio laser usa Arduino come controller. E i progettisti non sono pazzi e nemmeno pentiti.
A presto
Salve Francesco,
ti ringrazio molto di aver condiviso il tuo parere in merito.
Dei limiti tecnici hardware/software di Arduino ne ho parlato in modo approfondito in questo articolo: http://it.emcelettronica.com/arduino-ai-raggi-x-cosa-fare-renderlo-professionale-prima-parte
Per tua conoscenza, ti dico che molto spesso i prodotti consumer sono più rognosi dei vari aereospace/medical etc. Si va su molto facilmente di quantità, si hanno budget limitati ed al piccolo problema l’utente manda indietro il prodotto con danni pesanti sia a livello economico che di brand.
I tuoi amici che producono macchine per taglio laser produrranno sicuramente pochi pezzi, funzionanti in ambienti controllati, altrimenti sarebbero veramente folli 😉
Ciao..
In effetti le macchine prodotte non sono in gran numero.
Avevo già letto il tuo precedente articolo sull’affidabilità di Arduino. Molto interessante.
Prendo atto delle tue considerazioni.
A presto
Non è poi necessario polarizzare la questione. Se parteciperete alla prossima colazione, vi renderete conto di come sia possibile coniugare la semplicità di Wiring/Arduino con la potenza di strumenti di livello professionale con cui apprendere l’embedded “serio”, disponibili peraltro a costo zero. Sia che ci si avvicini a questo mondo per hobby che per professione, è sempre meglio lasciarsi aperta un’opportunità di crescita illimitata…Naturalmente ci terrei che maker come te, Stefano, vengano all’incontro.
Qui http://www.americanradiohistory.com/index.htm#Technical potete scaricare il testo di molte riviste d’epoca, tra le quali Popular Electronics (in pdf)
Ciao
Luciano
Grazie davvero tanto per i link.
Fa piacere rivedere quali erano le grandi passioni da ragazzi.. quando gli anni sulle spalle ormai pesano parecchio…