Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

21
voti

Io microcontrollista

Da bambino vedevo alla televisione quelli che allora erano chiamati "cervelli elettronici". Non capivo cosa erano ma intuivo che erano oggetti meravigliosi, mi affascinavano. Mi affascinava vedere i monitor e tutti quei signori occhialuti, in camice bianco, che si aggiravano pensierosi fra quegli armadioni con le bobine che si muovevano a scatti. Non ricordo se mi sarebbe piaciuto di più fare l' astronauta o lavorare con (o meglio costruire) i cervelli elettronici. Sta di fatto che la vita è andata come è andata, non ho fatto l' astronauta ma oggi lavoro con i computer. E' la prima volta che in questa comunità scrivo di me. Non so perché lo sto facendo, so solo che ho voglia di farlo.
"Microcontrollista" è un termine coniato qui, nel forum, da un big: DirtyDeeds. E' un termine che mi piace, è veloce da dire e da scrivere per indicare chi sviluppa i programmi per i sistemi embedded.

Per chi non lo sapesse i sistemi chiamati embedded (che vuol dire incorporato, incastrato, immerso) sono quelle apparecchiature a se stanti che internamente hanno un computer. Il telefono cellulare, il lettore MP3, la scheda che comanda la lavatrice, il televisore, il circuitino che fa la musichetta di un giocattolo sono tutti sistemi embedded. Oddio, lo sviluppo dei sistemi embedded non è proprio solo lo sviluppo del programma ma anche della circuiteria che ci sta intorno perché circuito e programma sono strettamente interconnessi. Molte volte si modificano uno o l' altro a seconda delle necessità.

Mi sono sempre chiesto perché mi piaccia fare questo lavoro. Forse la risposta l' ho trovata nella prefazione di un libro. In pratica diceva che il microcontrollista è un tizio parte da zero per arrivare a realizzare un apparecchio che funziona. Ma non solo, l' apparecchio, non ostante abbia al suo interno un computer, non deve sembrare tale.
In effetti proprio quest' ultima caratteristica, quella di non assomigliare affatto ad un computer, racchiude quella che io definisco la magia dei microcontrollori.
Se ci facciamo caso la massaia che fa partire la lavatrice non deve pensare di avere a che fare con un computer, deve vederla solo ed esclusivamente come un elettrodomestico come tanti. Non si deve essere dei tecnici e fare un corso a posta per fare il bucato. Lo stesso è per il telefonino: deve sembrare un telefono e basta. Il successo di un buon sistema embedded si vede anche da questo, un esempio sono gli smartphones che più sono "umani" da utilizzare più sono apprezzati. Oggi le macchine fotografiche digitali riproducono il suono dell' otturatore. Non è necessario, è vero, ma rende la cosa meno tecnologica e più immediata da utilizzare ma sopratutto, secondo me, fa dimenticare il fatto che si sta utilizzando un computer per fare una foto dando l' impressione di usare un oggetto meccanico, cioè una semplice macchina fotografica.

Indice

Il passato

Ricordo ancora lo stupore di mio Papà buon' anima quando gli ho svelato che, dentro il telecomando della sua automobile, non c' era un semplice circuito elettronico ma un vero e proprio computer che faceva il telecomando. E quando gli ho fatto vedere un altro oggetto sviluppato con lo stesso micrcontrollore, ma che faceva una cosa completamente diversa, ha fissato il componente quasi incantato. Ma la cosa a cui faceva fatica a credere è stato quando gli ho fatto vedere il listato del programma che c' era dentro. Faceva davvero fatica a credere che tutto quella roba scritta era quella che serviva per far funzionare la baracca.
Allora erano gli anni in cui il lavoro di microcontrollista era più una guerra che altro. Infatti bisognava combattere continuamente con le piccole dimensioni dei micro. Effettivamente erano delle vere e proprie ciofeche con pochissime potenzialità, lenti come capre con l' artrite ma solo quello c'era. E con quello bisognava farci di tutto, sfruttarli al massimo. Era un sfida continua con un componente che diceva "no, quello non posso farlo" e tu che invece trovavi tutti i sotterfugi, i trucchetti per fargli fare anche quello per cui non era tagliato. Quello che mi stimolava era proprio questo: tirare fuori il sangue dalle rape!
La cosa è effettivamente affascinante sopratutto per un giovane scalpitante. E' una sfida contro se stessi, il micro, il mondo che progetta con i micro ma dura fino a quando il limite è il micro stesso. Passato questo limite il gioco non funziona più, ma la buona notizia è che, finito questo gioco, dopo non c'è il diluvio.

Il presente

Il presente è un qualcosa di diverso. Se è vero che i micro sono diventati più potenti è anche vero che sono più complessi, molto più complessi e, se questo bastevole non fosse, sono anche aumentate le esigenze degli utilizzatori. Lo vedo di continuo nelle discussioni del forum dove non è raro trovare qualcuno che, in buona fede, immagina di sostituire tre metri di filo elettrico per accendere una lampada con un canale wi-fi o bluetooth. Questo succede perché i microcontrollisti hanno fatto un ottimo lavoro, sono riusciti ad implementare i canali radio in modo che il loro utilizzo sembri semplice e banale. La stessa cosa capita con l' USB dove i dispositivi sono piccoli, semplici da utilizzare e molto economici. Se solo si sapesse (non si può immaginare, occorre sapere) quanto lavoro c'è dietro ad un oggetto di questi, si guarderebbero con un' ammirazione sconfinata i team di progettisti che sono riusciti a fare cose incredibili i spazi ristretti e costi bassissimi.
Tanta complessità comporta anche un impegno notevole a livello di programmazione perché niente deve essere ignorato o lasciato al caso o, ancora peggio, confidando sulla buona sorte. La centralina d' iniezione dell' automobile deve funzionare sempre, bene, in modo affidabile ma sopratutto non deve fare scherzi del cavolo. Immaginiamo solo per un istante cosa potrebbe succedere se la centralina impazzisse e desse massima potenza al motore, o se il servosterzo elettrico si bloccasse o girasse lo sterzo nella direzione opposta, sarebbe inaccettabile oltre che estremamente pericoloso se non mortale. Beh, in tal caso scuse del tipo "vabbè, ma un baco può capitare, ora abbiamo la versione aggiornata", che andrebbero bene per un programma che gira su un PC, non sarebbero accettate, sopratutto dai famigliari delle vittime. A proposito di complessità mi ricordo una simpatica conversazione che ho avuto con un guru dell' elettronica di questo forum che non ha molta simpatia verso i micro. Una sua amica aveva incontrato dei problemi con un micro e lui stava tentando di capire qualcosa di questo problema, mi ha quindi interpellato per sapere dove cercare informazioni. Gli ho risposto "nel datasheet ovviamente" e lui "ma sono 600 pagine! Bisogna per forza leggerlo tutto?". Al che io, pigolando, gli ho risposto "beh, si ... oddio, almeno una volta devi leggertelo ... magari velocemente ... giusto per sapere dove andare a cercare le informazioni che t' interessano". Mi dispiaceva dirgli "e ti va di lusso che sono solo 600 pagine" e quindi sono poi andato a da lui per cercare la soluzione (nel mentre abbiamo fatto un bel po' di chiacchere interessanti).

Tra il dire ed il fare ...

... c' è una montagna di lavoro. Un lavoro nascosto, di contorno, un qualcosa di invisibile ma necessario proprio perché le apparecchiature devono funzionare e basta, e devono farlo bene. Non è ammesso l' errore ed è facile sbagliare. Ricordo ancora una sfortunata esperienza che ebbi con un modulo GSM che non faceva quello che doveva fare. L' avevo scritto anche nel forum ed ho avuto risposte del tipo "Dovresti vedere la versione del firmware, eventualmente aggiornarlo" datemi probabilmente da qualcuno che ha sviluppato quel modulo. Io me ne sbatto della versione del firmware, ho comprato un modulo e questo deve funzionare punto e basta!
Ovviamente applico anche questa regola su quel che faccio io: il cliente, l' utente, se ne sbatte altamente di versioni, difficoltà o quant' altro perché vuole un qualcosa che funzioni. E' un po' come la storiella del "errore di calcolo" che si portava a giustificazione dei compiti in classe delle superiori. Un errore di calcolo rende la soluzione sbagliata e quindi automaticamente tutto l' esercizio svolto è sbagliato. Puoi avere utilizzato la teoria in modo perfetto, conoscerla a menadito ma se poi sbagli il calcolo sbagli tutto.
Sempre in tema di realizzazioni mi vengono in mente i ragazzi che devono fare la tesina per la matura. Esordiscono nel forum ipotizzando la costruzione di robot, droni, navicelle spaziali e cose del genere. Io suggerisco loro di realizzare un timer per cuocere la pasta. Ovviamente non vengo preso sul serio o, peggio ancora, sembra che io li voglia prendere in giro, infatti nessuno lo fa. Uno di loro però ha provato a farlo ed ha abbandonato il progetto perché si è accorto che non era affatto semplice. Se lo avesse finito, da bastardissimo che sono, gli avrei fatto notare che il lavoro non era finito. Eh si, perché il timer per cuocere la pasta non basta che faccia il timer! Lo si deve usare in cucina e quindi deve essere alimentato a batteria, e quindi non si possono utilizzare display a LED perché consumano e le batterie si esaurirebbero in fretta (lo terreste un timer al quale bisogna cambiare le batterie tutte le settimane o lo buttereste nel bidone dell' immondizia?), e poi deve avere una funzione di auto spegnimento, si deve svegliare dal sonno con la pressione di un tasto, deve essere immune ai disturbi emessi dal frullatore per esempio, e tante altre amenità. E se anche fosse riuscito a risolvere tutte queste cose non avrei smesso di fare la carogna infame perché il lavoro non sarebbe stato un lavoro finito. Questo perché il timer deve poi essere prodotto in serie e quindi bisogna prevedere un sistema per il suo collaudo, eventualmente un' autodiagnosi funzionale da sincronizzare con l' apparecchiatura di collaudo e via discorrendo.
L' amico guru che ho menzionato prima mi ha riferito di un incidente con un aereo militare causato da una divisione per zero. In pratica il computer che controllava i comandi fly-by-wire è andato in trap a causa di una divisione per zero. Quando capitano questi inconvenienti il micro richiama un' interrupt a posta. Sfiga vuole che la routine di servizio di quell' interrupt ... non fosse stata scritta. Risultato: comandi bloccati, pilota che si lancia con il seggiolino eiettabile ed aereo distrutto.

Ma chi me lo fa fare?

Questa è la domanda che mi faccio spesso. La risposta è che le realizzazioni con i micro sono affascinanti. Quando guardo un oggetto che ho prodotto mi soffermo, immagino tutti i segnali che comandano le periferiche, riesco a visualizzare la parte di programma che sta eseguendo, ci vedo dentro un mondo di cui io sono l' artefice dalla cosa più banale a quella più complessa. Mi ricordo di quando c' erano solo le specifiche, quando ho valutato le diverse opzioni per la realizzazione (quasi sempre con un occhio sul datasheet ed uno sul listino prezzi) e poi lo schema elettrico, il prototipo, le prove, le simulazioni delle situazioni anomale insomma, tutta la storia. Poi penso che ad un occhio non esperto quest' oggetto sembra semplice ed è (per forza) facile da usare. Questo mi da soddisfazione ed ancora oggi tanto entusiasmo.
L' idea di partire dal niente, progettare e far funzionare tutto dalla più infima cosa alla più complessa mi riempie di orgoglio ed entusiasmo e mi fa pesare di meno il lavoro. Purtroppo il tempo passa e riconosco di non avere più la stessa energia e l' elasticità di un tempo ma lo studio mi aiuta a tenere il cervello allenato.

In conclusione

Vorrei dire un'ultima cosa a te che stai leggendo e che non sei un microcontrollista. Lavorare con i micro è come suonare il basso elettrico in una band. Il basso elettrico è uno strumento non protagonista (come può essere il chitarrista o il cantante), lavora in silenzio, non può sbagliare perché l' errore si sentirebbe immediatamente, è quasi sempre nascosto e fa il suo lavoro con umiltà e dedizione. Ci si accorge del basso elettrico quando viene a mancare. Per provare questa cosa basta prendere un file midi, caricarlo su un sequencer, farlo partire e nel bel mezzo ammutolire la traccia di basso. La musica perde tutto il suo portamento, perde sostanza diventa insipida.
Quindi quando accendi l'autoradio o il televisore, oppure quando tocchi lo schermo del tuo telefonino o quando fai partire la lavastoviglie o quando metti in moto l'automobile, se ne hai voglia, pensa anche solo per un attimo a tutti quelli che, silenziosamente, mai da protagonisti e con tanta dedizione ed umiltà hanno fatto in modo che tu non sappia che quello che stai utilizzando (anche l'apparecchiatura più improbabile) sembri un computer, ma solo un qualcosa che ti aiuta a vivere o a divertirti o che ti fa sentire una voce amica quando chiami, o che ti fa sognare guardando un film.

Dedicato a tutti i microcontrollisti ed al loro lavoro.

10

Commenti e note

Inserisci un commento

di ,

Bell'articolo. Forse perchè - nel mio piccolo- sono anche io un "microcontrollista". E suono pure il basso! massimiliano

Rispondi

di ,

In ogni attività la passione toglie gran parte della difficoltà. Erasmo da Rotterdam ;)

Rispondi

di ,

Grazie!

Rispondi

di ,

Grande Stefano! Questo è quello che accade quando si lavora con amore. ;-)

Rispondi

di ,

Rispetto e ammirazione per questa speciale passione. Da hardwarista ho sempre disegnato lo schematico, fatto il master e dato tensione ai circuiti per la prima volta. Dopo eventuali aggiustamenti, quando le alimentazioni erano a posto e il tutto sembrava funzionare, consegnavo la scheda inanimata al team dei firmwaristi... ed ecco che prendeva vita! Il display iniziava a dire qualcosa, poi apparivano i colori... I pulsanti iniziavano a comandare funzioni, le interfacce iniziavano a comunicare. La vita iniziava a prendere possesso di quell'ammasso di rame, stagno e silicio, sostanza noetica che avevo solamente ordinato, in attesa di ricevere il soffio vitale del firmware. Che magia.

Rispondi

di ,

Bravo TardoFreak, si nota l'entusiasmo del bambino che per fortuna c'è ancora in te.

Dover inventare soluzioni nuove e poi farle funzionare è una sfida continua che richiede creatività e costanza.
È bello che nel serio e duro lavoro del microcontrollista ci sia anche un lato creativo e addirittura ludico che rende il tutto meno "palloso" e mette l'entusiasmo per andare avanti. Avevo provato sensazioni simili quelle volte che per risolvere problemi difficili mi era toccato lavorare direttamente sul "nudo metallo" dei registri dell'hardware, senza strati intermedi più o meno carenti che confondono più o meno le carte in tavola.

Poi scrivi anche che "Purtroppo il tempo passa e riconosco di non avere più la stessa energia e l'elasticità di un tempo". Eh già, noto lo stesso anche per me, e la cosa mi mette addosso un po' di inquietudine per il futuro...

Grazie per avercelo raccontato. Buon lavoro!

Rispondi

di ,

Io sono del parere che quando si riesce a fare della propria passione un lavoro che ti dia il pane quotidiano, è già una gran cosa. E'vero! I sacrifici, la perdita di sonno, si ammortizzano molto meglio. Del resto la tua passione e la tua soddisfazione per i risultati raggiunti mi è sempre stata tangibile, così come la voglia e la volontà di continuare a migliorare. Che dirti? Complimenti, grazie e in bocca al lupo! PS: io sono uno di quelli, che quando accende l'auto, non pensa minimamente ai microcontrollori o ai parametri della centralina, ma guardo solo l'orologio e il livello del serbatoio del gasolio, due informazioni indispensabili, e sì che anche là si tratta di computer :)

Rispondi

di ,

Articolo molto bello. Ma la domanda è? Come si fa ha intraprendere questo lavoro in un Italia allo sfascio come oggi? Non me ne vogliate non voglio fare il disfattista. Ma molti bontà loro sono stati fortunati a intraprendere queste carriere. Sarebbe un discorso molto ampio da fare. Ma oggi prendere un pezzo di carta affine, o addirittura una laurea non garantisce minimamente di finire a fare un lavoro tecnico, nel senso di mettere le mani in pasta. Forse sulla carta. Ma non nella realtà. Cmq con un pizzico di invidia. Bravo. Mi hai fatto per un attimo pensare a come poteva essere bello. Iniziare e continuare questa tua avventura. Che penso parta da molto lontano.

Rispondi

di ,

L'articolo mi piace, effettivamente il "dietro le quinte" non lo si immagina neppure, e secondo neanche chi si diverte ad assemblare circuiti ready-made e a caricare nei microcontrollori listati di software già scritti magari sulle pagine di una rivista, immagina tutto quanto scrivi... Ti piacerebbe scrivere una serie di articoli di "iniziazione" per chi vorrebbe creare applicazioni emebdded? Io qui sul forum, e penso tanti altri amici, te ne sarei veramente grato. Bravo, continua così, ciao.

Rispondi

di ,

Ogni professione ha il suo fascino che puo' generare entusiasmo oppure no. Il mio apprezzamento al tuo scritto, non e' tanto per la tua professione, che non conosco, ma per il fatto che tu ne sia entusiasta. Dalle tue parole traspare tutta la tua passione. Bravo.

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.