Sommario
Vengono presentati programmi
per l’apprendimento dell’Elettronica, disponibili in Internet, e basati sulla
‘simulazione’ del funzionamento dei circuiti fondamentali.
Vengono in particolare
illustrati i criteri con cui questi sono stati sviluppati e i vantaggi che,
secondo l’autore, dovrebbero trarne sia i docenti che gli allievi.
L’autore auspica inoltre che, attraverso la Rete, possa essere instaurato con i docenti uno scambio di esperienze didattiche sull’uso appunto dei programmi di simulazione, per migliorare l’istruzione tecnica nelle scuole italiane.
1. Le premesse
La
serie di programmi didattici qui presentata ha una lunga storia.
Alcuni di questi risalgono ad oltre 35 anni fa, all’apparire sul mercato alla fine appunto degli anni ’60 dei primi minicalcolatori. Non erano ancora gli attuali personal computer (che cominciarono a diffondersi solo all’inizio degli anni ’80), non avevano monitor né memorie di massa e l’unica interfaccia con l’operatore era costituita da una telescrivente, quindi le capacità grafiche erano assai limitate.
Eppure
già allora si potevano intravedere le
enormi potenzialità di applicazione nella progettazione e nella didattica.
Gli
articoli di una serie [1] apparsa fra
la fine del 1969 e l’inizio del 1970, illustravano queste possibilità e
l’enorme evoluzione dei successivi personal computer non fece che potenziare
tali caratteristiche.
L’evoluzione
soprattutto dei linguaggi dalle primitive forme di Basic alla programmazione
per oggetti (come VisualBasic per Windows), permise infatti di produrre
programmi sempre più facili da usare e con grafica sempre più sofisticata.
Ma
mentre per scopi di progettazione è
ormai indiscusso e preponderante in tutti i campi l’utilizzo del calcolatore
elettronico, non appaiono però a tutt’oggi realizzate appieno le
prospettive di applicazione alla
didattica.
Questo è il principale argomento che verrà qui
trattato, assieme all’indicazione di come trarre effettivi vantaggi da un più intelligente uso del calcolatore e
della rete Internet, al di là delle troppe ed inutili chiacchiere che circolano
nella Rete stessa.
2.
La simulazione.
Il
concetto di simulazione è molto semplice: per l’analisi di un oggetto (ad es.
un componente, un circuito o un intero apparato), invece di impiegare l’oggetto
reale, si programma un calcolatore perché si comporti, al fine di
quell’analisi, nello stesso modo di come si comporterebbe l’oggetto stesso.
Se
ne possono quindi studiare le caratteristiche
senza fisicamente maneggiare
l’oggetto e senza nemmeno disporre degli apparati di misura che altrimenti
sarebbero necessari.
La
simulazione non è quindi altro che una ‘modellizzazione’ matematica che produce
determinate risposte a dati stimoli.
Si
realizza in effetti un ‘laboratorio
virtuale’ che permette di sperimentare
in modo oltremodo semplice e sicuro, sia per la messa a punto progettuale
dell’oggetto, sia per un’indagine conoscitiva sul suo comportamento.
Quest’ultimo
punto è di fondamentale importanza per la didattica, permettendo a chiunque di
‘sperimentare’ (e quindi capire meglio) come ‘funziona’ l’oggetto esaminato.
I
vantaggi di questo approccio sono evidenti, potendo ad esempio mettere in
risalto le caratteristiche teoriche, cioè studiare un oggetto ideale, senza i
limiti e le imperfezioni dell’oggetto reale, al fine di semplificarne la
comprensione.
L’obiezione
che ciò porta ad una conoscenza
astratta, è sicuramente fondata, ma si può facilmente ribattere che gran parte delle tecniche progettuali è di
fatto basata su assunzioni di questo tipo. Si pensi all’implicito
comportamento lineare dei componenti nel progetto di un circuito elettrico.
A
questo proposito si deve anzi sottolineare che la simulazione mediante
calcolatore può tener conto di limiti e non-linearità, che possono essere
introdotti nel modello, complicandone la struttura, ma riproducendo un
comportamento approssimato a piacere alla realtà.
3.
Un esempio concreto: il partitore di tensione.
Per
dare un’idea più concreta della simulazione mediante calcolatore, possiamo
riferirci ad un caso estremamente semplice di circuito elettrico come è quello
di un partitore di tensione (vedi fig.1), in cui un alimentatore è collegato ad
una serie di 2 resistenze e un
potenziometro centrale, dal cui cursore viene alimentato un carico resistivo
Rc.

fig.1
- Esempio di simulazione di un
partitore di tensione
Dati
i parametri, tutti prefissabili scrivendone i valori nelle rispettive caselle
gialle, della tensione dell’alimentatore Vi, delle resistenze e del
potenziometro, nonché di Rc, si vuole conoscere il valore della tensione sul
carico Vu, in funzione della posizione del cursore.
Quest’ultimo
è comandabile con il mouse per trascinamento o clickando sulle freccette superiore o inferiore del
potenziometro stesso.
La
posizione del cursore va da 0 (estremo inferiore) ad 1 (estremo superiore) con
indicazione nella casella gialla sotto il cursore.
La
casella in rosso indica la tensione d’uscita cercata, Vu, e varia appunto con
la posizione del cursore, da un valore minimo ad uno massimo.
Per
rendere visibile l’andamento qualitativo
di Vu in funzione della posizione del cursore è stato aggiunto, a destra
della figura, un apposito grafico a tratto rosso.
Ovviamente,
la staticità della fig.1 qui riportata non consente di apprezzare appieno la
facilità d’utilizzo dell’effettivo programma, che può solo essere immaginata.

fig.2
- Altro caso della stessa simulazione
di fig.1
Ma
per meglio apprezzare l’efficacia didattica, si riporta in fig.2 un’altra
situazione, in cui si sono invertiti rispetto alla fig.1, i valori nominali di
Rc e P, e si è azzerata R2: questo comporta una grossa non-linearità di Vu in
funzione della posizione del cursore (addirittura una curva ad S), a
dimostrazione della complessità di calcolo richiesta già da un’applicazione
così semplice.
E’
tuttavia evidente che molto più interessanti possano essere simulazioni di
funzionamento ad esempio di circuiti elettronici, in cui è di fondamentale
importanza mostrare l’evoluzione nel tempo di segnali o di stati che modificano il funzionamento stesso: i
circuiti riportati nei testi scolastici sono di per sé incomprensibili senza
lunghe descrizioni che li commentano.
In
questo senso una simulazione orientata a mettere in risalto le sequenze più
importanti, corredate di tutte le informazioni utili, possono illustrarne il funzionamento molto più efficacemente di
qualsiasi spiegazione e meglio anche delle stesse esercitazioni di laboratorio,
che spesso permettono soltanto di constatare il funzionamento, ma
non il come ed il perché.
3.
I requisiti per la
stesura di un programma di simulazione.
Da
quanto già detto, dovrebbe apparire chiaro che la stesura di un programma di
simulazione per usi didattici richiede
specifiche competenze.
Si
citano qui le 3 principali:
- conoscenza profonda dell’argomento trattato
- conoscenza degli algoritmi necessari alla
simulazione
-
conoscenza dei linguaggi di
programmazione adatti alla presentazione ed al colloquio con l’utente.
Esaminiamo
questi punti.
Il
primo è evidente: non si dovrebbe insegnare ciò che non si conosce (evidente,
ma non sempre rispettato, come spesso appare da molti testi scolastici in
circolazione).
Il
secondo riguarda l’elaborazione del modello matematico utilizzato per simulare
il comportamento dell’oggetto considerato: mentre per alcuni casi è sufficiente un’elaborazione algebrica delle
relazioni che legano tra loro i vari parametri in gioco, per altri (ad esempio
per fenomeni comportanti relazioni integro-differenziali) sono richieste procedure per differenze finite,
il che non è purtroppo abbastanza diffuso nel bagaglio culturale dei docenti
italiani.
(Per
gli algoritmi vedi ad es. [2] e [3],
per la simulazione in generale vedi [4] e [5]).
Il
terzo punto riguarda la scelta del linguaggio da adottare: anche qui si segue
troppo spesso la moda del momento. Se in principio è abbastanza vero che con
qualsiasi linguaggio si può risolvere
qualsiasi problema, non lo è in pratica.
Un
linguaggio attualmente di moda è Java, che ha indubbi vantaggi per le necessità
di collegamenti Internet, ma che
comporta (almeno allo stato attuale) qualche difficoltà nella stesura in modo semplice di programmi di calcolo e simulazione ( è vero
che ci sono meravigliosi programmi grafici di simulazione in Java, ma la loro stesura richiede la disponibilità di
intere ‘librerie’ di sottoprogrammi).
Personalmente
ritengo difficilmente superabile per questi scopi la semplicità formale
dei programmi scritti in VisualBasic
per Windows, anche se oggi ritenuti da molti ‘invecchiati’ .
Ad
ogni modo, la cosa più importante sarebbe di sfruttare il più possibile ed in
qualsiasi forma le potenzialità del calcolatore per migliorare l’insegnamento
scolastico ma la visita dei siti
italiani esistenti in Rete è, a questo proposito, desolante (vorrei
sinceramente essere smentito da segnalazioni che mi dimostrino il contrario).
Quei
pochi esempi di pagine Web dedicate in particolare all’Elettronica che mi è
capitato di visitare mi portano a concludere che siamo ben lontani da questo scopo, anche in uno dei settori più
trainanti dell’industria.
Per
questi motivi, rivolgendomi soprattutto agli Insegnanti di Elettronica,
propongo la mia collaborazione (ovviamente gratuita) per la stesura di programmi che abbiano appunto lo scopo di
migliorare l’insegnamento scolastico, basandosi sulla simulazione al
calcolatore degli esperimenti
didattici.
Ai
docenti è richiesto di segnalare, in base alla loro esperienza d’insegnamento,
argomenti e metodologie di illustrazione, che ritengano maggiormente
interessanti ed utili, il tutto mediante e-mail. (il mio indirizzo è: g.schgor@polaris-net.it )
4.
Le basi di partenza
Ovviamente
non si tratta di partire da zero. Come dovrebbe già essere chiaro, questa
proposta è basata su una ormai cinquantennale esperienza nel campo
dell’Elettronica (praticamente nata fin
dagli inizi di questa tecnologia), ed in particolare su quarant’anni di
attività professionale nell’applicazione di questa all’Automazione Industriale.
Nell’ultimo
decennio, ho avuto quindi modo di riordinare, rivedere ed aggiornare molti dei
programmi sviluppati in precedenza per scopi specifici (tra cui quello della
formazione aziendale di tecnici, in
tempi in cui l’elettronica non era ancora materia scolastica).
Questo
dunque ha portato a serie di programmi che coprono praticamente tutti i vari
settori applicativi di questa tecnologia, cioè l’Elettronica Analogica, la
Digitale e quella di Potenza. (Un discorso a parte riguarda il
settore Teletrasmissioni, che richiede particolari basi di conoscenza e
supporti di calcolo più complessi).
E’ impossibile dare in poche pagine una visione
completa di tutto questo.
Mi
limiterò quindi a pochi esempi, e limitatamente al settore Digitale, facendo
però una premessa.
Un
singolo programma di simulazione è uno strumento didattico che richiede il
supporto di un Insegnante, che ne inquadri le basi teoriche e le finalità applicative.
Di per sé non è quindi utilizzabile direttamente da un allievo, cioè non è
destinato ad un uso autodidattico.
I
numerosi programmi disponibili sono quindi pensati principalmente come supporto
all’Insegnante e, almeno inizialmente,
l’obbiettivo era una distribuzione via Internet riservata ai Docenti interessati.
Ma
la Rete offre una possibilità di
accesso a chiunque, quindi è parso opportuno fornire anche un supporto più
ampio, con Corsi applicativi illustranti le modalità di impiego dei vari programmi
di simulazione. I singoli corsi, scritti in linguaggio Java, rappresentano
quindi sia un suggerimento per
l’utilizzo da parte degli Insegnanti, sia una guida per autodidatti.

fig.3 -
Struttura modulare dei corsi di Elettronica Digitale
La
fig.3 rappresenta la pagina Web che
raggruppa e permette di accedere ad ogni corso.
Come
si vede, ciascun corso è pensato come un ‘modulo’ per seguire un percorso
finalizzato a dare una conoscenza di base per
i principali settori applicativi industriali delle tecniche digitali.
A
ciascun corso corrisponde in pratica un programma di simulazione (in
VisualBasic ed ottenibile per il momento solo su richiesta via e-mail) che
permette le esercitazioni suggerite dal corso stesso.
5.
Esempi tratti dai Corsi
Anche
qui è difficile scendere nei dettagli dei singoli argomenti e sono costretto a
dare solo dei flash che suggeriscano opportunità di applicazione.
La fig.4 , tratta dal Corso di Logica Booleana,
mostra la possibilità di composizione di un’espressione logica e la sua immediata interpretazione rispettivamente in
tabella della verità ed in diagramma di Venn.
La
connessione fra questi 3 modi di rappresentazione di condizioni logiche è resa
evidente ed aiuta a capire il
‘significato’ dell’espressione.
E’
ovvio che il corso introduce passo per passo le varie operazioni logiche,
dandone appunto un’interpretazione grafica, certamente più immediata ed
efficace delle definizioni astratte.

fig.4
– Esempio di programma per l’interpretazione delle espressioni booleane.
La fig.5, tratta dal Corso di Logica
Combinatoria, mostra un laboratorio virtuale in cui è possibile creare elementi
logici, collegarli in un circuito combinatorio e provarne il funzionamento.
Chiunque
abbia affrontato le difficoltà pratiche di realizzazione e di prova di circuiti
di questo tipo, dovrebbe apprezzarne la semplicità d’uso, ma l’apprezzamento
dovrebbe essere soprattutto per le
possibilità di verificare sperimentalmente (anche se in modo ‘virtuale’) il
comportamento di qualsiasi configurazione.

fig.5 – Esempio di schema realizzato con il programma di creazione e prova circuiti logici (fino a 9 elementi).
Con
il Corso di Logica Sequenziale, che illustra gli elementi di ‘memorizzazione’
dei segnali e quelli di temporizzazione, si conclude il primo percorso, quello
relativo all’Automazione Industriale.
Fra
gli esempi di questo corso, viene qui riportata (fig.6) la configurazione dei
comandi di un ascensore (in particolare viene qui mostrato solo il controllo
dell’apertura e chiusura della porta). Si sottolinea che il programma permette
di seguire in tempo reale l’evolversi dei segnali di comando in concomitanza
con i movimenti dell’ascensore, in modo da visualizzare le relative sequenze.
Questo
rende semplice l’apprendimento dei concetti di
applicazione dei Set-Reset Flip-Flop (i rettangoli riportati in
figura), altrimenti percepiti come
oggetti astratti, fine a sé stessi..

fig.6 - Esempio di automatismo sequenziale (comandi di un ascensore: circuito controllo porta).
A
questo proposito, devo esprimere una certa perplessità nel come questi
argomenti sono trattati nei libri di testo che vanno per la maggiore nelle
scuole tecniche superiori italiane: alcuni trattano solo la logica
combinatoria, altri associano i circuiti sequenziali esclusivamente alle
applicazioni di conteggio. Quasi nessuno cita i circuiti di
temporizzazione (essenziali nella
pratica degli automatismi industriali) ed i concetti di ‘fase’ in una sequenza.
Proseguendo
con la panoramica dei Corsi, deve essere
evidenziata l’importanza della
Numerazione Binaria che è basilare negli altri percorsi didattici verso
la Strumentazione Digitale ed i Calcolatori Elettronici.
Questa
numerazione viene presentata, nel corso relativo, in modo ‘naturale’ perché
venga compresa intuitivamente, comprese
le conversioni con quella decimale, ma è soprattutto la simulazione delle
operazioni (somma, sottrazione, moltiplicazione) che rende facile
l’apprendimento.
Da
questo corso è tratta la fig.7 , che simula appunto passo per passo, lo
svolgimento dell’operazione (come al solito l’immagine statica non rende
l’efficacia della sequenza).

fig.7
- Esempio di svolgimento di una
moltiplicazione in sistema binario.
Poche
esercitazioni, cambiando i termini dell’operazione, permettono di afferrare
l’essenza del procedimento.
Questo
è vero in generale per tutti i
programmi di simulazione, indipendentemente dall’argomento trattato.
Altri
esempi che vale la pena di citare sono i circuiti di conteggio impulsi.
Il
relativo corso presenta i blocchi di base, cioè i vari tipi di Flip-Flop, ed il
loro utilizzo per realizzare Shift-Register, Contatori Binari e Contatori
Decimali (BCD).
In
particolare la fig.8 mostra appunto lo
schema di una decade, sottolineando la possibilità di effettuare il conteggio e
l’azzeramento, rispettivamente con i tasti C ed R della tastiera del
calcolatore.
L’esercitazione
in questo caso consiste nel seguire le variazioni degli stati d’uscita dei vari
J-K Filp-Flop (rappresentati dai rettangoli) ad ogni impulso di clock (tasto C)
in ingresso.
Gli
stati sono rappresentati come ‘1’ o
‘0’ nei rettangolini gialli sia
agli ingressi che alle uscite dei singoli Flip-Flop.
La
comprensione di tutti questi elementi, eventualmente completati dai circuiti di
conversione D/A e A/D, è indispensabile per affrontare tutta la Strumentazione
Digitale.

fig.8 - Esempio di contatore decadico (funzionante nel programma di simulazione con i tasti C ed R)
L’ultimo
esempio , la fig.9, è tratto dal Corso sui Circuiti di Elaborazione, cioè
l’introduzione nella parte dei microprocessori (quindi di tutti i calcolatori
elettronici commerciali), che ‘elabora’ i dati.
In
questo corso, oltre alla presentazione dei circuiti semisommatori e sommatori,
viene fisicamente simulata l’unità aritmetico-logica (ALU), mostrandone le
funzioni appunto di elaborazione
La
fig.9 completa la visione della
funzionalità, associando all’ALU i vari registri (collegati dal Bus dati), ma
soprattutto mostra, passo per passo, lo svolgimento programmato di una
moltiplicazione binaria, come esempio di una tipica elaborazione.
Personalmente
ritengo che esercitazioni del genere siano estremamente efficaci ma, non
essendo un insegnante, pongo la
questione ai competenti, chiedendo in
che modo si potrebbe ulteriormente migliorare l’insegnamento di queste materie.
Per
completezza, devo citare che in quest’ultimo Corso, viene illustrato un analogo
programma di simulazione riguardante lo svolgimento di elaborazione di un’espressione logica (quindi un esempio
di ‘logica programmata’), per fornire una visione più ampia delle intrinseche
possibilità di applicazione del microprocessore.

fig.9
– Esempio di simulazione di un programma di moltiplicazione fra numeri binari.
A
conclusione di questa presentazione, ribadisco che sono già disponibili molti
programmi con gli stessi criteri di simulazione in vari settori quali
l’Elettrotecnica (analisi circuitale in continua e in alternata), l’Elettronica
Analogica (amplificatori operazionali e loro applicazioni, lineari e
non-lineari, regolazione automatica
con possibilità di progetto e prova
prestazioni) e l’Elettronica Industriale ( o di Potenza, con simulazione di
componenti e di interi apparati, quali choppers, invertitori e convertitori).
Mi
auguro che l’invito allo scambio di esperienze didattiche in questo senso non
vada perduto.
BIBLIOGRAFIA (solo per appassionati di archeologia informatica)
[1]
Rivista AUTOMAZIONE E STRUMENTAZIONE
G. Schgör - <I progettisti e i linguaggi di programmazione
semplificati>
n.11
- nov.1969 - < Il Focal nel calcolo
di una funzione di trasferimento >
n.12
- dic. 1969 - < Registrazione di grafici con calcolatore >
n. 1 - gen.1970 - <Il calcolatore come
mezzo didattico >
n. 2 - feb. 1970 - <Il calcolatore nel
progetto di schemi logici >
[2] Rivista
MARELLI 4° trim. 1972
G. Schgör -
<L’impiego di un minicalcolatore numerico nello studio di sistemi di
regolazione analogica>
[3] Rivista
TECNICHE DELL’AUTOMAZIONE n.
11 -
nov. 1973
G. Schgör - <Algoritmi per regolazioni automatiche con microelaboratori
>
[4] Rivista
TECNICHE ELETTRONICHE n. 1 -
gen. 1981
G. Schgör - <Il personal computer nell’insegnamento dell’elettrotecnica
>
[5] Rivista
TECNICHE ELETTRONICHE n. 3 -
mar. 1981
G. Schgör - <Il personal computer per la simulazione dei fenomeni fisici
>