Sei sulla pagina 1di 164

P E R I O D I C O D I P R O G E T TA Z I O N E E L E T T R O N I C A • AT T U A L I TÀ S C I E N T I F I C A • N O V I TÀ T E C N O LO G I C H E

w w w . e l e t t r o n i c a i n . i t € 7,50 - Bimestrale, anno XXIX - n. 273 - GIUGNO / LUGLIO 2023

160 PAGINE

4G
 THREAD, il protocollo
low-power
 DONE, il PIC in assembler
Poste italiane Spa - Spedizione in abbonamento Postale: D.L. 353/2003 (conv. in L. 27/02/2004 n°46) art. 1 - comma 1 - DCB Milano. Prima immissione: 03/06/2023.

 Recensione oscilloscopio
DSO2D10
 Dado elettronico

Breakout
Board 4G Energy Meter
in Cloud

Jolly,
l’ Arduino Uno  Emulatore 555 con microcontrollore

diventa Wi-Fi  micro:bit ci ricorda di bere l’acqua


SO L E
 Misurare i condensatori con l’oscilloscopio CO
R
A G
 Cardio frequenzimetro Bluetooth E
Saldare diventa più facile!
Supporto per saldatura Supporto per saldatura a 4 bracci
con 6 bracci Supporto per saldatura flessibili con clip a coccodrillo
flessibili composto da 6 bracci
e accessori flessibili con clip a coc-
codrillo, lente d’ingran-
dimento 3x, ventola da cod. SHH4ARMS
30X30 mm per assorbire € 23,90
il fumo della saldatura
con alimentazione USB.

Postazione multifunzione
cod. HR2120
€ 39,00

Composta da lampada a 16 LED con


Ideale per saldare e dissaldare componenti elet-
lente d’ingrandimento 3X, terza mano,
tronici o per eseguire piccoli lavori di precisione.
braccio flessibile da 25 cm con clip a
Con spugnetta e un pulisci punta per saldatore
coccodrillo, porta saldatore e porta cod. TIP019 con paglietta in ottone.
rocchetto di stagno. Viene fornita com-
pleta di pasta per la saldatura (10g) e di € 48,00
spugnetta per rimuovere lo stagno dalla
punta del saldatore.

Terza mano con lente


d’ingrandimento
Terza mano con lente, Supporto per
luce e portasaldatore cod. VTHH serraggio scheda
€ 7,50 Permette di sorreggere e bloccare,
tramite due morsetti che possono ruo-
tare di 360, una scheda elettronica con
dimensioni max 20X14 cm.

cod. TP232
€ 17,00 cod. VTHH6
€ 12,00
Terza mano con luce LED, lente d’ingrandimento Terza mano con lente d’ingrandimento
3,5X e supporto per saldatore 2,5X e supporto per saldatore

Prezzi IVA inclusa

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
EDITORIALE
Anno XXIX n. 273
GIUGNO / LUGLIO 2023

La transizione EDITORIALE

energetica: Direttore Responsabile


Boris Landoni
@ boris.landoni@elettronicain.it

una sfida per tutti Redazione


Stefano Garavaglia, Paolo Gaspari,
Davide Scullino, Gabriele Daghetta
@ redazione@elettronicain.it
L’Europa, che ha già stabilito il divieto dei motori termici
Grafica
alimentati a benzina e diesel per le auto a partire dal 2035, Alessia Sfulcini
ha deciso di vietare anche la vendita delle caldaie autonome @ alessia.sfulcini@elettronicain.it
Ufficio Pubblicità
alimentate a gas dal 2029. Si tratta di una mossa importante
Monica Premoli (0331-752668)
nella lotta contro il cambiamento climatico, ma ha anche @ monica.premoli@elettronicain.it
sollevato preoccupazioni tra i produttori del settore. La Ufficio Abbonamenti
decisione, contenuta nella revisione del Regolamento Ecodesign  Tel. 0331-752668
@ abbonati@elettronicain.it
813/2013, è stata discussa in un Consultation Forum della
Direzione, Redazione, Pubblicità
Commissione europea il 27 aprile. Tuttavia, molti ritengono che FUTURA GROUP srl - Divisione Editoriale
le tempistiche siano troppo strette e le limitazioni troppo rigide e via Adige 11 - 21013 Gallarate (VA)
 Tel. 0331-752668
che una transizione verso
Abbonamenti
È necessario un approccio soluzioni ecocompatibili Annuo 6 numeri Euro 39,00
multi-tecnologico e multi-energetico richieda un approccio più Annuo 6 numeri digitale Euro 29,00
Le richieste di abbonamento vanno inviate a:
che permetta la coesistenza di più flessibile e diversificato. FUTURA GROUP srl
tipologie di apparecchi Per affrontare questo via Adige 11, 21013 Gallarate (VA)
 Tel. 0331-752668
problema, è necessario un
oppure tramite il sito
approccio multi-tecnologico e multi-energetico che permetta la https://futuranet.it/abbonamenti
coesistenza di più tipologie di apparecchi e incentivi la diffusione Distribuzione per l’Italia
di tecnologie “hybrid ready” e “green gas ready”, già pronte a SO.DI.P. Angelo Patuzzi S.p.A.
via Bettola 18 - 20092 Cinisello Balsamo (MI)
funzionare con miscele crescenti di biocombustibili e idrogeno.  Tel. 02-660301  Fax 02-66030320
Tuttavia, il Regolamento Ecodesign esclude dalla cerchia Stampa
degli apparecchi idonei anche quelli alimentati con biometano ROTO3 Spa - Via Turbigo, 11/b
20022 CASTANO PRIMO (MI)
e idrogeno, costringendo l’industria a puntare unicamente
sull’elettrico. Questo approccio potrebbe rappresentare un peso
eccessivo per i nostri impianti elettrici, che dovranno reggere
un’enorme quantità di energia necessaria per sostituire tutti gli Rivista registrata presso il Tribunale di Milano
impianti a gas, oltre che a ricaricare le nostre auto elettriche. con il n. 245 il 03/05/1995.
ON LINE Prezzo di copertina Euro 7,50.
È importante sottolineare che la transizione energetica è Gli arretrati nei formati cartaceo e digitale (pdf) sono acquistabili
elettronicain.it
sul sito della rivista al prezzo di Euro 7,50.
inevitabile e auspicabile, ma è altrettanto importante mantenere
Poste Italiane Spa - Spedizione in abbonamento Postale - D.L.
la flessibilità per consentire la convivenza di diverse soluzioni 353/2003 (conv. in L. 27/02/2004) art. 1 comma 1 - DCB Milano.
SI RINGRAZIA Futura Group srl è iscritta al Registro Operatori della
ecocompatibili per garantire una transizione fluida ed efficace. Comunicazione n. 23650 del 02/07/2013.
Futura Elettronica In questo modo, si potranno raggiungere gli obiettivi di riduzione
Impaginazione ed immagini sono realizzati in DeskTop Publishing
Microchip
delle emissioni di gas serra senza creare ulteriori problemi per la con programmi Adobe InDesign e Adobe Photoshop per Windows.
Mouser
Tutti i contenuti della Rivista sono protetti da Copyright.
Sicom stabilità del sistema energetico.
Ne è vietata la riproduzione, anche parziale, la traduzione e più in
generale la diffusione con qualsiasi mezzo senza l’autorizzazione
scritta da parte dell’Editore. I circuiti, il firmware ed il software
descritti sulla Rivista possono essere realizzati solo per uso
personale, ne è proibito lo sfruttamento a carattere commerciale
Boris Landoni e industriale. Tutti possono collaborare con Elettronica In.
In copertina: @ boris.landoni@elettronicain.it L’invio di articoli, materiale redazionale, programmi, traduzioni,
La breakout board ecc. implica da parte del Collaboratore l’accettazione dei compensi
4G rappresenta e delle condizioni stabilite dall’Editore (per maggiori informazioni
una soluzione per scrivere a redazione@elettronicain.it). Manoscritti, disegni e
l’aggiornamento foto non richiesti non verranno in alcun caso restituiti. L’utilizzo
di dispositivi che dei progetti e dei programmi pubblicati non comporta alcuna
utilizzano la vecchia responsabilità da parte della Società Editrice.
rete 2G. © 2023 Futura Group srl

1
Contenuti
01 RUBRICHE 11 ARTICOLI
01 Editoriale NETWORKING
05 T&T Tips & Tricks 11 THREAD, il protocollo
156 Scienza & Tecnologia low-power
Conosciamo Thread, il protocollo di
comunicazione wireless basato su IPv6,
progettato per connettere dispositivi IoT
a bassa potenza.
Progetto di Copertina
DIDATTICA

BREAKOUT 19 DONE, il PIC in assembler


Sperimentiamo con il PIC12F675

BOARD 4G realizzando circuiti comuni e


programmandolo in assembler per gestire
3 input e altrettanti output.

IN VETRINA
33 DSO2D10 Hantek
Abbiamo provato per voi l’oscilloscopio
digitale professionale con generatore
di funzioni integrato DSO2D10 e ne
condividiamo le impressioni.

GADGET
47 Dado elettronico
Mostra un numero pseudo-casuale su 7
LED che lampeggiano rallentando sempre
più come un dado che rotola sul tavolo da
93 gioco, fino a fermarsi.

NETWORKING DIDATTICA IN VETRINA


Protocollo DONE, il PIC DSO2D10
low-power Thread in Assembler Hantek

11 19 33
2
CONTENUTI

GADGET DIDATTICA HEALTHCARE HOME PROJECT


Dado elettronico Emulatore 555 con micro:bit ci ricorda Energy Meter
microcontrollore di bere l’acqua in Cloud

47 55 71 79

DIDATTICA MISURE
55 Emulatore 555 103 Misurare i condensatori
con microcontrollore con l’oscilloscopio
Misuriamo la capacità dei condensatori utilizzando
Confrontiamo, a scopo didattico, un Timer 555 con
un circuito RC, un oscilloscopio e un generatore di
un microcontrollore ATtiny85 programmato per
segnale ad onda quadra.
emulare il funzionamento del famoso timer.

HEALTHCARE
HEALTHCARE
109 Heart rate monitor
71 micro:bit ci ricorda di bere
l’acqua Colleghiamo un pulsiossimetro a un modulo ESP32,
che invierà tramite BLE i dati sulla frequenza
Vediamo come utilizzare micro:bit e il modulo cardiaca ad un touch LCD basato su ESP32-S3.
ESP8266 per inviare messaggi su Telegram come
memo per bere un bicchiere d’acqua ogni ora.

ARDUINO
HOME PROJECT
123 Con JOLLY l’Arduino Uno diventa
79 Energy Meter in Cloud
Wi-Fi
Abbiniamo un contatore di energia ad un transceiver
WiFi per pubblicare in Cloud e sull’interfaccia di una Presentiamo Jolly, un add-on per dotare la più
App le statistiche sui consumi elettrici di casa. famosa board open-source della funzionalità Wi-Fi.

WIRELESS DIDATTICA

93 Breakout board 4G 135 Impariamo ad utilizzare Eagle


Proseguiamo il nostro viaggio alla scoperta di
Implementa la connessione cellulare in banda LTE,
EAGLE, un potente strumento di progettazione
sia per le telefonate che per l’accesso a Internet a
elettronica, che permette di coprire l’intero ciclo di
banda larga, ed è intercambiabile con la sezione
sviluppo di una scheda elettronica. Seconda Puntata.
GSM dei telecontrolli della serie TDG.

MISURE HEALTHCARE ARDUINO DIDATTICA


Misurare capacità Heart rate JOLLY, l’Arduino Impariamo ad
dei condensatori monitor Uno diventa Wi-Fi utilizzare Eagle

103 109 123 135


3
Proteggi la tua Applicazione Embedded
con la Famiglia dsPIC33C MPT di Secure DSC
Integra una Robusta Sicurezza con la Semplicità di un MCU
Proteggi e mantieni l’integrità del tuo sistema con la nostra famiglia dsPIC33C MPT di secure Digital Signal Controller
(DSC), dotati di sottosistema sicuro integrato con architettura HSM classificato JIL-High che offre algoritmi avanzati per
motori crittografici e archiviazione sicura delle chiavi. Conformi a EVITA Full Specification, questi controller soddisfano i
requisiti di sicurezza nei progetti automotive, industriali, medicali e IoT. I secure DSC dsPIC33C MPT, AUTOSAR Ready e
Functional Safety Ready, offrono funzionalità di elaborazione in tempo reale che operano a 100 MHz, con un ricco set
di periferiche che li rende una scelta eccellente per applicazioni embedded che richiedono l’esecuzione di funzioni time
critical e safety critical. La nostra famiglia dsPIC33C MPT di secure DSC rappresentano una scelta eccellente per potenza
digitale, controllo motori, alimentazione wireless, rilevamento e controllo avanzati, robusto rilevamento tattile capacitivo
e applicazioni embedded generiche ad alte prestazioni. Questi secure DSC supportano l’implementazione dei seguenti
robusti casi d’uso della sicurezza:

Caratteristiche salienti
• Secure boot
• Upgrade Sicuro del firmware
• Comunicazione on-board Sicura o autenticazione messaggi
• Autenticazione Electronic Control Unit (ECU)
• Autenticazione caricatore wireless WPC Qi® 1.3
• Protezione IP
• Autenticazione rete e gestione delle sessioni
• Validazione e archiviazione dei certificati X.509
• Gestione ciclo di vita

Il nome il logo Microchip e il logo Microchip sono


marchi industriali registrati di Microchip Technology
Incorporated negli U.S.A. e in altri Stati. Tutti gli altri
marchi appartengono ai loto titolari.
© 2023 Microchip Technology Inc. Tutti i diritti riservati.
microchip.com/Secure-DSC MEC2492A-ITA-04-23
TT
TIPS & TRICKS

Il FET GaN
I GaN sono particolati MOSFET

&
basati su una tecnologia differente
da quella tradizionale, nel senso
che il canale viene creato in una
regione di semiconduttore arti-
ficiale, che è appunto il nitruro di
gallio. I semiconduttori artificiali
sono semiconduttori non presenti
in natura e costruiti combinando
elementi trivalenti come il gallio e
l’indio, e pentavalenti come l’arseni-
co e l’azoto; il primo che ricordiamo
essere stato usato in elettronica è
Tips & Tricks sono i nostri suggerimenti in pillole
e i piccoli trucchi riguardanti sia l'hardware che
il firmware, che sperimentatori, tecnici e progettisti
elettronici vorrebbero conoscere per sviluppare meglio
l’arseniuro di gallio impiegato nella la propria passione: quella per l'Elettronica applicata.
costruzione dei LED rossi e dei diodi
laser a luce rossa. Ecco quelli che abbiamo preparato questo mese per voi.
Il nitruro di gallio è una combina-
zione di gallio e azoto la cui realiz- dispositivi a parità di potenza com- i 6 volt, pena il danneggiamento della
zazione è stata resa possibile solo mutata, cosa che oggi è determinan- regione di gate. Altra accortezza è pre-
poco tempo fa e che nei FET GaN te per realizzare applicazioni sempre venire elevati transitori con caratteristica
viene deposto epitassialmente su più piccole e indossabili. dV/dt che potrebbero alterare il compor-
un substrato di silicio intrinseco A questi pregi, il FET GaN contrap- tamento in commutazione.
(cioè non drogato) eventualmente pone qualche ostacolo da superare Per avere un’idea delle prestazioni di un
previa interposizione di uno strato di come ad esempio la più bassa MOSFET GAN in questa pagina è propo-
nitruro di alluminio. Lo strato di GaN tensione gate-source sopportabile sto un grafico che confronta le caratteri-
è anch’esso non drogato. L’elettrodo (parliamo di MOSFET enhancement- stiche di un componente del genere con
di gate è isolato con nitruro di gallio mode, dove il canale viene creato un MOSFET a tecnologia tradizionale di
e alluminio. dalla Vgs) che non deve superare caratteristiche analoghe.
Rispetto ai tradizionali MOSFET, che
sono fatti di silicio e ossido o nitruro
di silicio, i nuovi MOSFET enhance-
ment mode in nitruro di gallio GaN
consentono di raggiungere livelli di
densità di potenza molto più elevati
e offrono perciò un significativo van-
taggio nelle applicazioni di potenza
come i convertitori DC/DC, gli inver-
ter e in generale i circuiti che devono
gestire utilizzatori di potenza come i
motori elettrici.
L’utilizzo del nitruro di gallio con-
sente di abbassare la Rdson (ossia
la resistenza del canale in stato di
piena conduzione) rispetto a quella
permessa dai migliori MOSFET in
silicio e questo permette di ridurre
la potenza dissipata nelle applica-
zioni in circuiti a commutazione, di
lavorare a più elevate frequenze di
commutazione (grazie alla ridotta
capacità parassita di gate), ma
anche di ridurre le dimensioni dei  Curva di efficienza del MOSFET GAN al variare della corrente di drain.

5
Una termocamera molto interessante per chi vuole
sperimentare con l’imaging termico
Un esempio è la breakout board repe-
ribile on-line su www.futuranet.it con il
low-cost e poi passare a sensori d’immagi- codice prodotto AMG8833MODULE, in
ne più prestanti. Una caratteristica grado di rilevare il calore di un oggetto
Esistono fotocamere nate per scat- del sensore termico a infrarossi o di un corpo umano ad una distanza
tare foto agli infrarossi e rilevare il AMG8833 è la frequenza di aggior- fino a 7 metri, funzionante a 3 volt
calore delle superfici: sono dette ter- namento dei dati (refresh-rate) che (l’assorbimento è di soli 4,5 mA), nel
mocamere e tipicamente si utilizzano arriva a 10 Hz, che utilizzando una range di temperatura compreso fra
in ambito industriale, tuttavia è possi- scheda microcontrollore ESP32 per 0 e 80°C (da 32°F a 176°F) con una
bile anche sperimentarne la tecnolo- la sua gestione è possibile sfruttare precisione di circa 2,5°C; l’angolo di
gia con soluzioni hobbistiche tirando al massimo. Il dispositivo Panasonic apertura, ossia quello di rilevazione
in mezzo l’immancabile scheda di nasce per essere utilizzato in elet- del sensore di immagine è 60 gradi.
prototipazione, che nello specifico è trodomestici, dispositivi di risparmio Il tutto sta su un circuito stampato
la ESP32, il cui pregio è coniugare po- energetico, sensori per porte automa- che misura appena 17,6×17,1×7 mm
tenza di calcolo e periferiche wireless tiche e comunque per riprese che non e che può essere montato mediante
con la facilità di programmazione richiedono dettaglio, ma una semplice pin-strip, in virtù del fatto che le sei
caratteristica dell’ambiente Arduino. analisi per macro aree. piazzole di collegamento sono a pas-
Con essa è possibile gestire un sen- In queste pagine vedete lo schema so 2,54mm e tutte disposte su un lato
sore d’immagine AMG8833 Grid-EYE a blocchi che descrive la struttura della breakout board.
della Panasonic, in grado di “foto- dell’AMG8833. Per la gestione in ambiente Arduino,
grafare” ad infrarossi scene nella La gestione tramite microcontrollore Adafruit rende disponibile una libreria
gamma di temperatura da 0 a 80 e nello specifico mediante schede chiamata AMG88xx.
gradi Celsius, con una risoluzione 8×8 di prototipazione rapida come le Lavorando con un refresh-rate di
pixel: pochi, però grazie all’utilizzo di ESP32, è semplificata dal fatto che 10 Hz, dato che ogni “pixel” del
tecniche di interpolazione è possibile l’AMG8833, così come i suoi similari sensore d’immagine acquisisce la
ottenere immagini termiche di di- 8831 e 8832, è reperibile in commer- temperatura dieci volte al secondo, il
mensioni maggiori, come ad esempio cio su breakout board di cui sono flusso di dati completo su I²C-Bus è
240x240. Le riprese possono essere accessibili sei contatti: VIN, GND, SCL costituito da 10 serie di 64 temperatu-
visualizzate in real-time su un display (clock) SDA (dati) INT e AD0. INT è il re al secondo.
LCD/TFT di quelli controllabili tramite pin di interrupt configurabile che può Il compito del microcontrollore è con-
I²C-Bus come ad esempio un TFT da essere attivato quando un singolo frontare ciascuna delle “temperature”
3,2 pollici 320x240 pixel. pixel è al di sopra o al di sotto della con una tabella di corrispondenza dei
Questo sensore presenta numero- soglia impostata. La comunicazione colori, determinare il colore corrispon-
se caratteristiche che lo rendono avviene tramite il protocollo I²C-Bus. dente e inviare quel colore al display,

 Schema a blocchi del sensore d’immagine termico AMG8833.

6
TIPS & TRICKS

l’umidità accumulata all’interno, tanto


da causare crepe e lesioni che posso-
no addirittura distaccare le connes-
sioni interne tra il chip e gli elettrodi,
rendendo inservibile il componente
che incappa in tale problema.
Questo problema in verità riguarda
anche i circuiti stampati, soprattutto i
multilayer, perché sono realizzati con
materiali laminati incollati e compres-
si, fra i quali può insinuarsi dell’umi-
dità dovuta alla condensa dell’acqua
presente nell’ambiente dove vengono
conservati. Nei PCB, la rapida espul-
sione dell’umidità durante il reflow
soldering può causare la delamina-
zione e la conseguente comparsa
di bolle sulle superfici esterne, il
 A sinistra, l’immagine originale in risoluzione 8x8 pixel; a destra quella distacco di vie e piazzole, ma anche la
corrispondente interpolata a 24x24. formazione di fori nelle saldature.
Per evitare tutto ciò occorre provve-
dere, prima della saldatura, a riscal-
dare in ambiente asciutto le schede e
con questa convenzione: freddo equi- colorati che possono essere più i componenti da saldare, per un perio-
vale a blu e caldo a rosso vivo. I dati piccoli rispetto alle immagini di do che dipende dai materiali costi-
del sensore termico vengono solita- visualizzazione di prima generazione. tuenti e che mediamente varia tra una
mente visualizzati in riquadri a colori La rappresentazione visiva dei dati e quattro ore, in forno a una tempera-
8×8 in cui ogni riquadro è alto e largo termici è nell'immagine interpola- tura di 80÷110 °C; questo permette di
quanto il display può contenere, nel ta molto più apprezzabile rispetto essiccare i dispositivi e i PCB, prima
senso che la visualizzazione prevede- all'immagine originale a blocchi 8x8 della saldatura, che dovrà avvenire,
rà singoli “pixel” quadrati grandi come mentre non vi è alcuna perdita di in base alla categoria dei dispositivi,
la risoluzione dello schermo divisa informazioni. nel giro di ore o pochi giorni. Per i
per 8 in ciascuna delle dimensioni. circuiti stampati, il tempo massimo
Ad esempio, l’immagine richiederà 16 che deve trascorrere tra il trattamen-
pixel di altezza e 16 pixel di larghezza to di essiccazione e la saldatura dei
su uno schermo da 128x128 pixel MSD: componenti componenti dipende dalle condizioni
(128/8 da appunto 16…) o 32x32 su sensibili all’umidità di conservazione: al 50% di umidità
uno da 256x256 pixel. relativa, il circuito stampato deve
Con l'algoritmo di interpolazione for- Uno dei termini ricorrenti nell’elet- essere lavorato entro 8 ore, mentre
nito nella libreria Adafruit_AMG88xx il tronica pratica è MSD (Moisture se gli stampati vengono conservati
valore di temperatura di ogni pixel del Sensitive Devices) e sta a indicare i in una camera alla temperatura di
sensore viene confrontato con quello componenti elettronici che posso- 35°C, tale intervallo può diventare di
dei pixel che lo circondano, per creare no incamerare quantità di umidità qualche giorno.
pixel artefatti ma abbastanza realisti- tali da costituire un pericolo per la
ci. La particolarità è che il valore della loro integrità durante la saldatura.
temperatura di ciascun pixel originale In verità questo termine è diventato
(padre o parent...) viene trasferito a un attuale da quando la tecnologia del
blocco di 9 pixel “figli” (child). Il pixel montaggio superficiale ha visto arri-
centrale in questo blocco 3x3 pixel vare la saldatura per rifusione, anche
rimane inalterato. I valori di tempera- nota come reflow soldering, la quale Web Forum
tura di tutti gli otto pixel che circon- consiste nel riscaldare il circuito e supporto tecnico
dano il pixel "figlio" centrale vengono stampato e i componenti da montarvi
mediati con quelli dei pixel adiacenti alla temperatura di fusione della lega
Hai un problema con uno
appartenenti al blocco successivo di saldante, sia essa deposta già fusa o
dei circuiti pubblicati?
pixel "figlio". Pertanto, da una prima sotto forma di pasta saldante. Vorresti effettuare una modifica?
generazione di 64 pixel parent viene In questo caso i componenti elettro- Accedi al nostro Web Forum
calcolata una seconda generazione nici che accumulano quantità rile- dove i nostri tecnici
composta da 576 pixel child, con va- vanti di umidità per via della porosità (ma anche gli altri lettori)
lori di temperatura media. L'immagine delle resine in cui sono incapsulati (i ti aiuteranno a chiarire qualsiasi
sullo schermo di seconda generazio- componenti a semiconduttore, per dubbio di natura tecnica.
ne ha dimensioni di 24x24 pixel. esempio) possono essere danneggia- Collegati a:
Il risultato può anche essere vi- ti dal fatto che il forte riscaldamento
www.elettronicain.it/webforum
sualizzato sotto forma di quadrati del corpo fa espellere rapidamente

7
ABBONAMENTO
ANNUALE

Abbonati a Elettronica In!


Realizza i Progetti descritti sulla rivista,
rimani aggiornato con i nostri Corsi,
approfondisci la conoscenza delle
tecniche e dei componenti
più avanzati con i Tutorial
e le nostre News.

Visita: www.elettronicain.it
ABBONAMENTO
6 NUMERI
ANNUALE PER RIVISTA
€29
A SOLI

DIGITALE
In OMAGGIO avrai
ANZICHÉ € 45, 00

il 10% DI SCONTO per i tuoi ordini


su Futuranet.it

C O M E A B B O N A R S I
 on-line  e-mail  telefono
nella pagina “Riviste e Corsi Gratuiti” scrivendo a telefonando a
del nostro sito www.elettronicain.it abbonati@elettronicain.it +39-0331-752668

NUOVO FORMATO 160 PAGINE CON PIÙ CONTENUTI

ABBONAMENTO ANNUALE
PER RIVISTA CARTACEA 6
NUMERI
In OMAGGIO avrai A SOLI

€39
il 10% DI SCONTO per i tuoi ordini
su Futuranet.it
GRATIS 1 VOLUME A SCELTA della collana
ANZICHÉ € 45,00
"L'elettronica per tutti" oppure
BUONO SCONTO DA 5€ valido 12 mesi
da utilizzare su Futuranet.it nelle categorie "Libri" o "Riviste"
La possibilità di LEGGERE GRATUITAMENTE
la versione digitale di ELETTRONICA IN
Gli strumenti di sviluppo
in un unico posto
Migliaia di strumenti da centinaia
di produttori fidati

Scegli tra i prodotti della


nostra vasta selezione su
mouser.it/dev-tools
NETWORKING

IL PROTOCOLLO
LOW-POWER
di MARCONATALE PARISE e VINCENZO GERMANO

M
atter ha risolto uno dei grossi
Conosciamo problemi degli ultimi anni, ovvero la
Thread, il compatibilità tra prodotti connessi
all’interno di una abitazione con
protocollo di l’obiettivo di creare uno standard
comunicazione utilizzabile da chiunque e facilmen-
te integrabile. È nato per mettere
wireless ordine nella frammentazione degli ecosistemi IoT (Internet of
basato su IPv6, Things), che creano ancora confusione tra gli utenti e le azien-
de, che vogliono espandere i loro prodotti in più ecosistemi.
progettato per Anche l’utilizzatore poco esperto che in questi anni ha scelto
connettere di utilizzare prodotti smart all’interno della propria abitazione,
si è sicuramente trovato davanti a prodotti che non comu-
dispositivi IoT a nicano facilmente tra loro spesso a causa delle scelte fatte
bassa potenza. dalle aziende produttrici.

11
Matter tecnicamente non è un protocollo ma uno so consumo energetico, generalmente utilizzato
strato software, invisibile all’utente, che potrà dia- per dispositivi a batteria. Una singola rete può
logare con i dispositivi di casa attraverso l’invio e la ospitare oltre 250 dispositivi in grado di comuni-
ricezione di istruzioni. La sua stratificazione preve- care tra loro e di adattarsi alla variazione della rete,
de un livello di trasporto attraverso i protocolli già facendo anche fronte ad eventuali guasti. Questo
noti TCP e UDP, un livello di collegamento dati e un protocollo è basato su IPv6 e sviluppato per con-
livello fisico (ovvero i mezzi per trasmettere i dati) nettere direttamente e in modo sicuro i dispositivi
come Ethernet, Wi-Fi, Thread e Bluetooth LE (Low a una rete internet e Cloud.
Energy - BLE). Il BLE, solitamente, viene usato Solo come linea generale, possiamo dire che una
per operazioni di pairing (accoppiamento) ovvero rete Mesh è una topologia di rete locale in cui i
inserimento del dispositivo all’interno della rete, dispositivi sono collegati tra loro direttamente, di-
Ethernet e Wi-fi possono essere usati per gestire namicamente e non gerarchicamente; tali reti sono
una quantità di dati notevole come ad esempio semplici da installare, altamente sicure, scalabili su
un video, ed infine Thread come protocollo radio centinaia di dispositivi e sviluppate per funzionare
per gestire la connessione dei dispositivi che su dispositivi IEEE 802.15.4 a basso consumo e a
non richiedono una banda di trasmissione ampia. basso costo.
Quest’ultimo presenta innumerevoli vantaggi Basato su standard aperti e con protocolli
che vedremo in dettaglio nel proseguo di questo IPv6/6LoWPAN, l’approccio di Thread alla rete
articolo. wireless offre una rete mesh sicura e affidabile
infatti la presenza di eventuali errori non minaccia
INTRODUZIONE THREAD il funzionamento della rete.
Thread è un protocollo rilasciato nel 2015 dalla Le sue principali caratteristiche possono essere
Thread Group Inc. che conta più di 200 compagnie riassunte in:
tra i quali emergono ARM (Softbank), Freescale 1. Semplice da utilizzare - Thread supporta
(NXP), Nest Labs (Google), Samsung e Silicon Labs, diverse topologie di rete. L’installazione è
presenti nello sviluppo del protocollo. È stato semplice utilizzando uno smartphone, un tablet
ideato come protocollo IoT e nello specifico in o un computer. In corrispondenza di una nuova
ambito domotica e quindi per un sistema chiuso di installazione vengono generati dei codici univoci
impianti interconnessi tra loro, strutturati in modo garantendo la connessione solo ed esclusiva-
gerarchico e ben organizzati; questo approccio ver- mente a dispositivi autorizzati.
ticale permette di centralizzare la gestione di tutto La semplicità dei protocolli per la formazione e
l’ambiente domestico, sia interno che esterno, in l’unione delle reti consentono ai sistemi di auto-
un unico pannello di controllo e di coordinare le configurare e risolvere i problemi di indirizza-
diverse funzionalità in scenari, sequenze d’azioni mento man mano che si verificano.
pre-programmate che possono essere attivate 2. Sicuro - I dispositivi non entrano in rete se
con un singolo comando. non autorizzati e tutte le comunicazioni sono
Thread è un protocollo di rete mesh wireless a bas- crittografate. La sicurezza è garantita a livello di


I nuovi dispositivi
Echo di Amazon
integrano Matter.

12
rete e a livello di applicazione.
Tutte le reti Thread sono crittografate utilizzan-
do un’autenticazione che prevede l’utilizzo dello  Fig. 1
Livelli della
smartphone e la crittografia Advanced Encryp- struttura
tion Standard (AES). Thread.
3. Adattabile - Le reti domestiche variano da
diverse a centinaia di dispositivi. Il livello di rete
è progettato per ottimizzare il funzionamento
della rete in base all’utilizzo previsto.
4. Rilevamento e connettività di servizi bidi-
rezionali - Per la comunicazione fuori dalla
rete (off mesh), Thread fornisce un registro di
servizio in cui i dispositivi possono registrare la
loro presenza e servizi/clienti possono utilizzare
specifiche richieste (query) per scoprire i servizi
registrati.
5. Range - I dispositivi tipici forniscono un range
sufficiente in grado di ricoprire il perimetro di
un’abitazione.
La nuova progettazione disponibile con gli
amplificatori di potenza estendono il range con
uno spettro di diffusione distribuito e utilizzato
al livello fisico (PHY) per essere più immune alle 7. Basso consumo - I dispositivi comunicano in
interferenze. modo efficiente per offrire un’esperienza utente
6. Immunità - L’architettura è progettata per migliorata. I dispositivi possono in genere fun-
fornire operazioni sicure e affidabili anche con il zionare per diversi anni con batterie di tipo AA
guasto o la perdita di dispositivi individuali. utilizzando cicli di funzionamento adeguati.

 Fig. 2
PAN (Private
Area Network).

13
8. Conveniente - I chip compatibili hanno un nella rete avviene tramite onde radio che operano
prezzo agevolato per la distribuzione di massa e su frequenze di 2450MHz e si basano sullo stan-
sono progettati per avere un consumo estre- dard IEEE 802.15.4, uno standard tecnico nato
mamente basso. nel 2003 con lo scopo di definire il funzionamento
di una rete wireless a bassa frequenza in un’area
COMUNICAZIONI DELLE STRUTTURE personale (PAN).
Entriamo nel dettaglio della struttura del proto- In linea con lo standard IEEE 802.15.4 (2006) e
collo e quindi nel flusso di informazioni tra livelli con i livelli della struttura Thread di Fig. 1, i di-
(che chiameremo layer) che possono essere di spositivi supportano un’interfaccia fisica (Physical
tipo fisico (Physical Layer), dati (Data Link layer), di Layer) ovvero definisco il mezzo di trasmissione
rete (Network Layer) e infine per la trasmissione dati (indicati in formato bit) lungo il Data Link
e ricezione dati (Transport Layer) come mostrato Layer. Quest’ultimo può essere associato ad un
in Fig. 1. circuito elettronico che ha il compito di trasmette-
Con rifermento a quella che può essere un’ap- re e ricevere le informazioni in informato digitale.
plicazione in ambito domotica, è importante che Nel protocollo Thread, è implementato attraver-
venga prevista un’area di rete privata (Private so il Media Access Control (MAC) che contiene
Area Network o più comunemente PAN) come funzionalità di controllo di accesso al mezzo fisico
rappresentata in Fig. 2. (Physical Layer) per canali broadcast, funzionalità
Thread PAN è costituito da bordi e nodi. Ogni nodo di framing e controllo di errore.
ha determinate capacità, alcuni garantiscono il I dispositivi all’interno di una rete Thread sup-
collegamento della PAN a Internet, altri possono portano un’architettura di indirizzamento auto
solo trasmettere al nodo più vicino e altri facilitano configurato IPv6, acronimo di Internet Protocol
la trasmissione dati da un nodo all’altro. Una rete versione 6 ovvero un protocollo di comunicazione
 Fig. 3
Architettura
può essere di diversa topologia ma per il proto- che fornisce al dispositivo un’identificazione e una
domestica. collo Thread si ha una rete di tipo Mesh per la sua posizione in rete attraverso Internet. Lo strato di
scalabilità, robustezza e capacità di rigenerarsi in rete Thread (Network Layer) è rappresentato dal
caso di guasto. La trasmissione delle informazioni 6LoWPAN (acronimo di “IPv6 over Low-Power
Wireless Personal Area Networks”) ovvero un
protocollo creato con l’intenzione di applicare il
protocollo Internet (IP) anche ai dispositivi più
piccoli consentendo ai dispositivi a bassa potenza
con capacità di elaborazione limitate di partecipa-
re in applicazioni IoT.
Analizzato brevemente il protocollo di comunica-
zione, è necessario definire come i dati possono
essere instradati attraverso il layer di Routing (di-
rettamente legato alle proprietà della rete Mesh).
La rete Mesh rende i sistemi wireless più affidabili
attraverso la trasmissione di onde radio verso altri
nodi. Per esempio, se un nodo non può inviare un
messaggio direttamente ad un altro nodo, la rete
mesh inoltra il messaggio attraverso uno o più
nodi intermediari, oppure in caso di errore i mes-
saggi possono essere inviati lungo altri percorsi.
Queste caratteristiche rendono la rete robusta e
forniscono una continuità alla rete con la possibi-
lità di connettere fino a 32 nodi router. Per quanto
riguarda l’ultimo strato di trasporto (Transport
Layer), esso è basato principalmente da proto-
collo UDP (User Datagram Protocol), il protocollo
Internet che consente di inviare i pacchetti verso
altri nodi lungo la rete Internet, e dal Constrai-
ned Application Protocol (CoAP), progettato per

14
soddisfare i requisiti dei dispositivi alimentati a • Border Router: forniscono connettività dalla
batteria con risorse CPU/RAM limitate. Il CoAP è rete 802.15.4 alle reti adiacenti su altri livelli  Fig. 4
un protocollo destinato all’uso in dispositivi Inter- fisici (Wi-Fi, Ethernet, ecc.) ma anche servizi Architettura
commerciale.
net con risorse limitate, ad esempio nodi di rete di routing e di individuazione dei servizi per le
con sensori wireless e quindi sistemi IoT. Nello operazioni fuori rete.
scambio delle informazioni il protocollo CoAP non • Leader: che gestisce un registro per l’assegna-
può utilizzare SSL/TLS per garantire la sicurezza zione di identificativi router utilizzando CoAP
della comunicazione (questo richiede il livello di e accetta le richieste dei dispositivi REEDs
trasporto TCP). La sicurezza delle comunicazioni è (router-eligible end devices) per diventare rou-
fornita dallo standard Datagram Transport Layer ter. Tutte le informazioni contenute nel Leader
Security (DTLS), che funziona su UDP e fornisce un sono presenti negli altri Thread Router ma nel
alto livello di sicurezza con l’obiettivo di prevenire caso di errori o perdita di connettività con la
intercettazioni, manomissioni o falsificazioni di rete Thread, verrà eletto un altro Thread Router
messaggi. Infine, come ultimo layer si ha l’Appli- che prenderà il posto di Leader senza l’inter-
cation, che può essere definito come “il linguaggio vento dell’utente.
dei dispositivi”, ovvero assicura che un’applica- • Thread Router: forniscono servizi di indiriz-
zione possa effettivamente comunicare con altri zamento (routing) ai dispositivi di rete. Forni-
dispositivi su differenti sistemi. scono anche servizi di adesione e sicurezza
per i dispositivi che cercano di entrare in rete.
ARCHITETTURE DI RETE Non sono progettati per entrare in uno stato
Analizzato a grandi linee il protocollo senza dormiente (sleep) e possono declassare le loro
estremizzarne la trattazione, vediamo brevemen- funzionalità e diventare REEDs.
te alcune tipologie di rete e i dispositivi chiave • REEDs: (router-eligible end devices) può diven-
nell’architettura in ambito residenziale, vedi Fig. 3, tare un Thread Router o un Leader, ma non ne-
i seguenti tipi di dispositivi sono inclusi in una rete cessariamente un Border Router. A causa della
Thread, a partire dalla rete Wi-Fi: topologia di rete o di altre condizioni, REEDs

15
 Fig. 5
Modello Thread
Domain.

non agiscono come router, non trasmettono della rete o il volume dei dati vengono ridimen-
messaggi o forniscono servizi di adesione o di sionati.
sicurezza per altri dispositivi nella rete. I Backbone Border Routers (BBRs) indicati nella
• End devices: che non sono idonei per diventa- Fig. 5 con l’acronimo BR sono una classe di Bor-
re router ma possono essere sia FEDs (full end der Router nello spazio commerciale che facilita-
devices) or MEDs (minimal end devices). no la sincronizzazione del Thread Domain di più
• Sleepy end devices: (SEDs) comunicano solo segmenti di rete. Mentre il Backbone Link è un
attraverso il Thread Router e non possono collegamento IPv6 al quale un BBR si connette
inoltrare messaggi verso altri dispositivi. utilizzando un’interfaccia esterna utilizzata per
• Synchronized Sleepy End Devices: (SSEDs) implementare il Thread Backbone Link Protocol
sono una classe di dispositivi che utilizzano (TBLP) per la sincronizzazione con altri BBR.
IEEE 802.15.4-2015 per mantenere una pia-
nificazione sincronizzata con un Thread Router, CONCLUSIONI
evitando l’uso di regolari richieste. Abbiamo visto come Thread sia stato progettato
per supportare al meglio il sistema Matter e le
In Fig. 4 viene rappresentata un’architettura di applicazioni IoT.
rete Thread in ambito commerciale che applica il È un protocollo di rete wireless a bassa potenza,
modello in ambito residenziale e aggiunge nuovi basato sul Internet Protocol (IP) universalmente
concetti, infatti gli utenti comunicano con una supportato e costruito utilizzando standard aperti
rete commerciale tramite dispositivi (smartpho- e collaudati. Consente comunicazioni da disposi-
ne, tablet o computer) tramite Wi-Fi o tramite la tivo a dispositivo e da dispositivo a cloud, collega
loro rete aziendale. in modo affidabile centinaia (o migliaia) di prodotti
Infine analizziamo a grandi linee una tipologia di e include funzionalità di sicurezza obbligatorie da
modello Thread Domain, come mostrato in Fig. 5. implementare.
Questo supporta l’integrazione di più reti Thread, Si basa sullo standard radio IEEE 802.15.4 am-
con il vantaggio principale che i dispositivi sono piamente supportato, progettato da zero per un
in una certa misura “flessibili” di unirsi a qualsi- consumo energetico estremamente basso e una
asi rete Thread disponibile, mediante un Thread bassa latenza consolidando la robustezza del pro-
Domain comune. Ciò riduce la necessità di una tocollo che sarà disponibile nel breve tempo nelle
pianificazione manuale della rete o di costose nostre abitazioni utilizzando architetture efficienti,

riconfigurazioni manuali quando le dimensioni sicure e affidabili.

16
Precisione fino all’ultimo grammo!
Celle di carico ed elettronica necessari per la misura del peso di oggetti
in moltissimi ambiti dalle bilance elettroniche alle pese industriali.

Cella di carico tipo “S”


Cella di carico 50 kg range1 Tonnellata Cella di carico 10 kg

Composta da una struttura in metallo e Cella di carico di tipo “S” realizzata in Composta da una struttura in metallo e
da piccoli elementi chiamati estensimetri acciaio inossidabile, classe di precisione da piccoli elementi chiamati estensimetri
(strain gauges) montati in precisi punti C3, range 1 tonnellata e due fori filettati montati in precisi punti sulla struttura.
sulla struttura. Fornisce in uscita un M12. Fornisce in uscita un segnale Fornisce in uscita un segnale elettrico
segnale elettrico che varia in funzione elettrico che varia in funzione della che varia in funzione della deformazione
della deformazione che la forza, deformazione che la forza (trazione o che la forza applicata sul componente
applicata sul componente, produce. compressione) applicata sul componente produce.
produce.

€ 64,00
Cod. LCST1TONS
€ 7,00
Cod. 10KGLOADCELL

DISPONIBILE ANCHE IN DIFFERENTI DISPONIBILE ANCHE IN DIFFERENTI


RANGE: RANGE:

€ 9,90
500 Kg cod. LCST500KG € 64,00 20 Kg cod. 20KGLOADCELL € 7,00
200 Kg cod. LCST200KG € 64,00 5 Kg cod. 5KGLOADCELL € 7,00
Cod. LC50KG
100 Kg cod. LCST100KG € 64,00 1 Kg cod. 1KGLOADCELL € 7,00

Con elettronica integrata o separata

Prezzi IVA inclusa.


Kit cella di carico Scheda elettronica con
con elettronica chip HX711 per cella di carico
Set composto da una scheda Scheda elettronica basata sul chip
elettronica di interfaccia e da una HX711, un convertitore analogico-
cella di carico da 20 kg montata digitale a 24 bit, specifico per
all’interno di una struttura interfacciare la cella di carico a un
meccanica. La scheda elettronica microcontrollore come Arduino,
è basata sul chip HX711, un Fishino o compatibili. Dimensioni:
convertitore analogico-digitale 33,6x20,5x3 mm.
a 24 bit, specifico per
interfacciare la cella di carico
a un microcontrollore come
Arduino, Fishino o compatibili.

€ 28,00
Cod. LOADCELLKIT
€ 5,00
Cod. HX711BOARD

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
Piastre
Piastre sperimentali
Ideali per creare velocemente un circuito sperimentale per effettuare test,
senza dover necessariamente realizzare un PCB.

MILLEFORI
CODICE MISURA (mm) FACCIA DISTANZA PREZZO
Piastra Millefori 150×90 mm PIAZZOLE (€)
(mm)
doppia faccia
cod. YK653

€ 4,50
YK604 150×90 singola 2,54 3,80

YK647 100×50 singola 2,54 2,60

YK009 70×30 doppia 2,54 1,50


Distanza tra
piazzole: 2,54 mm HR2570 120×80 doppia - 4,50

BREADBOARD
Breadbord 170 contatti Breadbord con base Breadboard 1660 contatti
colore bianco autoadesiva 400 contatti con base in metallo
45x35 mm 82x55 mm e boccole
ROSSO Misura piastra:
cod. BBMINIW 164x109x9,5 mm
cod. BBMINIR
€ 2,50
cod. BB400 cod. YJ319
Misura base:
€4 ,00
€ 14,00
NERO 215x131x1 mm
cod. BBMININ

BLU
cod. BBMINIB COD. MISURA N. PREZZO COD. MISURA MISURA N. PREZZO
(mm) CONT. (€) PIASTRA BASE CONT. (€)
VERDE (mm) (mm)
cod. BBMINIV BB830 165x55 830 5,50 BB3220 188x182x9,5 240x210 3220 21,00

RAMATE PRESENSIBILIZZATE
Piastra Ramata 160×100 mm Piastra Presensibilizzata
singola faccia 160×100 mm singola faccia
cod. P-951 cod. 4062

€2 ,50
€ 5,50

CODICE MISURA (mm) FACCIA PREZZO (€) CODICE MISURA (mm) FACCIA PREZZO (€)
Prezzi IVA inclusa.

P-952 200×150 singola 4,20 4072 160×100 doppia 7,80

P-956 160×100 doppia 5,40 P-995 233×160 singola 13,50

P-957 200×150 doppia 6,20 P-997 233×160 doppia 17,00

Futura Group srl


Caratteristiche tecniche di questi prodotti
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
DIDATTICA

DONE,
IL PIC IN ASSEMBLER
di VINCENZO LIGORIO

C
apita spesso di dover realizzare sempli-
ci circuiti elettronici per risolvere delle
necessità contingenti; in tal caso si
prende una basetta millefori, ci si mon-
Sperimentiamo ta la manciata di componenti neces-
sari e si realizza un montaggio cablato,
con il PIC12F675 collegando gli elementi tra loro con dei
realizzando pezzetti di filo. Si prova il circuito, si
correggono gli eventuali errori riscontrati in esso, lo si collega
circuiti comuni e ai dispositivi periferici e si riprova il tutto.
programmandolo Con DONE il lavoro si semplifica: si prende DONE, si collega-
no i dispositivi periferici e si scrivono poche righe di codice
in assembler per in Assembler e il controllore è pronto a funzionare in modo
gestire 3 input e affidabile. La scrittura del firmware è semplice e veloce grazie
ad un template già pronto e ai molteplici esempi proposti.
altrettanti output. Provare a programmare un microcontrollore in Assembler

19
schema ELETTRICO

può essere inoltre, una buona strada per imparare


a comprendere come funzionano i microcontrollori.
DONE è una scheda di prototipazione molto basila-
re, realizzata utilizzando come elemento principale
un microcontrollore PIC12F675 della Microchip;
si tratta di un dispositivo a 8 bit di taglia molto
piccola, ma molto potente in quanto associa una
CPU RISC a numerose periferiche interne.
Questo microcontrollore dispone di 8 pin: 2 sono
riservati all’alimentazione e 6 pin sono di uso
generale e possono essere configurati come I/O
digitali o ingressi analogici.
Nella scheda DONE; i GPIO sono configurati per
avere tre ingressi e altrettante uscite.

SCHEMA ELETTRICO
Lo schema elettrico del circuito è riportato in
queste pagine e da esso appare la semplicità del
progetto. Le quattro sezioni di cui si compone
DONE, alimentazione, microcontrollore, ingressi e
uscite, sono descritte qui di seguito.

Sezione di alimentazione
La tensione di alimentazione +12Vcc (in realtà è
ammesso un valore da 8,5 a14V ) è collegata ai
morsetti Vin e GND del connettore J1. Il diodo D1
protegge la scheda dall’ inversione di polarità.
Il LED LD1, in serie al quale abbiamo inserito un
resistore di limitazione della corrente, segnala
la presenza dell’alimentazione. Il regolatore IC2
ricava la tensione di alimentazione (+5V) per il
microcontrollore e si avvale dei condensatori C2 e
C3 che filtrano la tensione in ingresso e in uscita,
per renderne il funzionamento stabile e fornire
un’alimentazione pulita al microcontrollore.
Notate che la scheda può essere alimentata con
una tensione stabilizzata di +5V (ad esempio da un
alimentatore da rete con uscita +5V su connettore
USB ); in questo caso il regolatore IC2 non deve
essere montato e deve essere sostituito da un
collegamento tra i suoi piedini di Input e di Output.
La resistenza R1 deve essere sostituita con una da
100 ohm.

Microcontrollore
IC1 è il microcontrollore che gestisce la sche-
da DONE. In questa versione che acquisisce 3
ingressi digitali e controlla 3 uscite è stato usato
il PIC12F675. Sono comunque disponibili altri
microcontrollori compatibili, i quali differiscono per
quantità di EEPROM, RAM e periferiche interne. Un
esempio della popolosa famiglia PIC12FXXX sup-
portati dalla scheda è il PIC12F629 (1.024 word da

20
 Fig. 1
Principali
elementi
di input
della scheda
DONE.

14 bit di Flash Memory, 64 byte di SRAM, 128 byte Uscite


di EEPROM e 6 I/O). Nel nostro circuito, sono previste tre uscite digitali
basate su transistor NPN utilizzati nella confi-
Ingressi gurazione open-collector, funzionanti quindi in
La scheda, come configurata in questa versione, è modo on/off. La Fig. 2 illustra alcuni dei dispositivi
dotata di tre ingressi digitali pilotabili in tensione collegabili ad esse:
o da contatto pulito. La Fig. 1 illustra alcuni dei • relé;
dispositivi e componenti collegabili agli ingressi: • optoisolatore;
• contatto pulito di un interruttore o microswitch, • segnalatore ottico (lampeggiante a bassa ten-
per esempio; sione);
• optoisolatore; • LED.
• potenziometro / trimmer;
• fotoresistore; I tre circuiti di uscita sono uguali tra loro e sono
• sensore di temperatura. costituiti da T1, T2, T3, che sono dei particolari
transistor NPN (DDTD123YC) con resistenze di
I tre circuiti di ingresso sono uguali tra loro e sono bias interne. Nel circuito, i transistor sono utiliz-
costituiti da R2, R5, R8 (che sono resistori da 10 zati in configurazione a collettore aperto (open
kohm per il pull-up degli ingressi quando sono pilo- collector). Le specifiche piu’ importanti di questi
tati da contatti puliti) nonché da R3, R4, R6, R7, R9, transistori sono BVCE0 = 40V, IC = 500mA e PD =
R10, C4, C5, C6 che realizzano tre filtri passa-basso 200 mW @ 25 °C.
a T. La costante di tempo relativa a ciascun ingresso Abbiamo poi i diodi di protezione siglati D2, D3, D4,
è data da R=10 K e da C=100nF, quindi vale 1 ms. che sono dei comuni 1N4004 collegati ciascuno al
La scheda può essere configurata e programmata
per avere queste combinazioni:
• 3 ingressi digitali e nessun ingresso analogico;
• 2 ingressi digitali ed 1 ingresso analogico; CARATTERISTICHE TECNICHE
• 1 ingresso digitale e 2 ingressi analogici;
• 3 ingressi analogici e nessun ingresso digitale.
Tensione di alimentazione: Ingressi digitali:
Nel caso sorgesse la necessità di avere degli 8,5 ÷ 14 Vcc 3
ingressi analogici, deve essere usato il microcon-
trollore PIC12F675 (il PIC12F629, che non ha
convertitori A/D a bordo, può essere usato nelle Corrente assorbita (max): Uscite digitali oper collector da 400 mA:
100 mA 3
applicazioni con soli ingressi digitali).
Negli ingressi analogici, in alcuni casi, non deve
essere montata la resistenza di pull-up; bisogna
Architettura PIC: Programmazione in
inoltre valutare se la costante di tempo presente 8 BIT Assembler
risponde alle esigenze (con i valori di R=10K e
C=100 nF la costante di tempo è di 1 millisecondo).

21
 Fig. 2
Alcuni componenti
e dispositivi di usci-
ta per la DONE.

collettore di uno dei transistor per il ricircolo della Memoria Programma usando un programmatore
corrente in caso di pilotaggio di carico induttivo, adatto: più avanti in questo articolo esporremo
come lo è, ad esempio, la bobina di un relé. l’impiego del PicKit2.
Le uscite sono quindi idonee a pilotare direttamen- Per creare il vostro firmware dovete procedere
te relé con bobina a 12V o piccoli attuatori lineari e così: innanzitutto aprire il template BASE.TXT (sca-
motoriduttori o motori elettrici a 12Vcc. ricabile gratuitamente dal sito www.elettronicain.it
nella pagina di questa rivista) con un editor di te-
IL FIRMWARE sto; questo template è l’ossatura di tutti i firmware
La scheda DONE supporta tutti i microcontrol- applicabili alla scheda DONE e lo riportiamo nel
lori Microchip della serie PIC12FXXX; per questa Listato 1.
configurazione è stato utilizzato il PIC12F675, del
quale le specifiche più significative per questa Notate quindi quanto segue: le righe che iniziano
applicazione sono: con ; sono commenti e non sono eseguite.
• CPU RISC con sole 36 istruzioni, il che rende L’istruzione:
veloce apprendere come programmarlo;
• 8 livelli di stack hardware, per un uso modo include “BASE.inc” ; File definizioni progetto
facile delle routine;
• opzione oscillatore interno a 4 MHz, che permette di includere nel programma delle defi-
significano risparmiare due pin e ottenere una nizioni standard, senza dover ripetere di scriverle
velocità di calcolo di 1 microsecondo di ciclo ogni volta.
istruzione; Invece l’istruzione:
• range esteso di tensione di alimentazione
(2÷5,5Vcc); __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF
• A/D converter a 10 bit assegnabile a un massi-
mo di 4 linee; configura il microcontrollore per l’ uso dell’ oscil-
• 2 timer interni che consentono di implementare latore interno a 4MHz, nonché per escludere il
due basi dei tempi indipendenti; Watch Dog ed il reset dall’esterno (quindi liberare il
• In Circuit Serial Programming (ICSP) per garanti- relativo piedino del PIC).
re semplicità di programmazione. Le istruzioni seguenti:

Il firmware viene scritto in Assembler ed editato in banksel 0x00 ; operazioni in banco 0


formato testo con un qualunque editor di testo. clrf INTCON ; No interrupt
Quando è stato scritto e salvato in un file, il clrf GPIO ; I 3 output =0
firmware deve essere assemblato usando movlw 0x07
l’Assembler Microchip, che è di utilizzo gratuito, nel movwf CMCON ; Comparator Off GPIO
modo che spiegheremo tra breve.
Il file Hex generato deve essere caricato nella configurano il microcontrollore per escludere l’uso

22
 Listato 1
list p=12f629 ; Il microcontroller e’ il PIC12F629
; Include i seguenti file
include “P12f629.inc” ; File definizioni standard micro
include “BASE.inc” ; File definizioni progetto

; Programma il Micro per:


; Oscillatore interno - No W.D. - No Reset esterno

__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF

; I sei GPI/O sono nel registro GPIO (bit 0 .. bit 5)


; In questa scheda sono 3 input e 3 output
; Out0 xx pin 7 GPIO,0
; Out1 xx pin 6 GPIO,1
; Out2 xx pin 5 GPIO,2
; In2 xx (Solo in) pin 4 GPIO,3
; In1 xx pin 3 GPIO,4
; In0 XX pin 2 GPIO,5

;********************** Inizio codice ****************************

org 0x000 ; Vettore di reset: Il programma inizia qui


nop ; Nessuna operazione
goto start ; Salto a start

; - - - - - - Inizializzazioni - - - - - - -

org 0x008 ; Il programma inizia a 008

start
; istruzioni per configurare il micro come serve

banksel 0x00 ; operazioni in banco 0

clrf INTCON ; No interrupt


clrf GPIO ; I 3 output =0
movlw 0x07
movwf CMCON ; Comparator Off GPIO

; Versione PIC12F675 ( con A/D non usato)


; movlw 0x01
; movwf ADCON0 ; 8bit-No ext.ref. - can 0 - acceso fermo

banksel 0x80 ; operazioni in banco 80

clrf WPU ; No pull up resistors

; Vref Off (power off comparator voltage, saves power)

clrf VRCON

; Definizione degli I/O (0= Out 1=In)


; TRISIO x x in1 in2 in3 out3 out2 out1
; - - 1 1 1 0 0 0
; -- 3 -- ------- 8 ----------

movlw 0x38
movwf TRISIO ; 1-2-3 out, 1-2-3 input

; Versione PIC12F675 ( con A/D )


; movlw 0x60
; movwf ANSEL ; freq. A/D /64 no analogic

banksel 0x00 ; torna in banco 0 che e’ quello principale

; * * * * * * * * * * * * * MAIN * * * * * * * * * * * *

; - - - - - - Ciclo principale - - - - - - -

23
 Listato 1 - segue

main
banksel 0x00

; mettere le istruzioni necessarie

goto main

; * * * * * * * * * * * * * Routine * * * * * * * * * * * *

;--------------------------------------------------------------------

; mettere le routine necessarie

;********************** FINE CODICE ************************

end

---------------------------------------------------------------------------------------

degli interrupt, mettere le uscite in stato OFF ed re l’assegnazione dei 6 I/O come 3 per gli ingressi e
escludere il comparatore. 3 per le uscite.
Ancora, le istruzioni qui sotto: L’istruzione per configurare il convertitore A/D
è stata contrassegnata come commento, non
banksel 0x80 ; operazioni in banco 80 essendo, l’ADC, utilizzato; se intendete utilizzarlo,
le relative istruzioni vanno decommentate.
clrf WPU ; No pull up resistors A partire dalla locazione di programma “main” de-
vono essere scritte le righe di programma.
; Vref Off (power off comparator voltage, saves power) Più avanti in questo articolo, nell’apposita sezione
descriveremo due esempi di applicazioni complete
clrf VRCON di codice commentato.

; Definizione degli I/O (0= Out 1=In) REALIZZAZIONE PRATICA


; TRISIO x x in1 in2 in3 out3 out2 out1 Bene, visti gli aspetti hardware e software possia-
; - - 1 1 1 0 0 mo passare alla parte costruttiva, vedendo come
; -- 3 -- ------- 8 -------- realizzare il circuito DONE; per prima cosa bisogna
preparare il circuito stampato, che in tema con la
movlw 0x38 natura didattica del progetto è stato pensato a
movwf TRISIO -2-3 out, 1-2-3 input singola ramatura. Partite dunque dalla tracce lato
rame scaricabile dal nostro sito www.elettronicain.it
; Versione PIC12F675 ( con A/D ) insieme ai file di questo numero della rivista, che vi
; movlw 0x60 serve a preparare la pellicola per la fotoincisione.
; movwf ANSEL ; freq. A/D /64 no analogic Notate che questo circuito è praticamente alla
portata di tutti, anche degli hobbisti alle prime armi,
banksel 0x00 ; torna in banco 0 che e’ quello principale giacché la sua realizzazione richiede soltanto com-
ponentistica a montaggio tradizionale, saldabile
operano su registri locati nel banco 80 e configu- con facilità e con un comune saldatore.
rano il microcontrollore per escludere i resistori di Quindi, una volta incisa e forata la basetta, iniziate
pull-up applicabili ai pin configurati come ingressi, il montaggio inserendo e saldando per primi i
escludere l’ alimentazione del comparatore, defini- componenti a basso profilo come i diodi al silicio e i

24
tre transistor, dei quali va notata una particolarità:
il tipo scelto è in realtà per montaggio superficiale
ma si può ugualmente saldare sul PCB sia dal lato  Fig.3
Pin-out dei
saldature sia, prolungando dei pezzetti di reoforo transistor T1,
avanzato da resistenze, diodi o condensatori, dal T2, T3.
lato componenti. Per chiarire ciò, nella Fig. 3 pro-
poniamo il dettaglio del package del transistor, che
è un SOT-23.
Proseguite il montaggio con lo zoccolo per il micro-
controllore, da orientare come mostrato nel piano
di montaggio (che vi sarà utile anche per l’orien-
tamento dei diodi e transistor) e poi con i conden- ingressi e la massa e altrettanti LED sulle uscite,
satori, badando di rispettare la polarità di quelli ciascuno dotato di una resistenza da 1 kohm posta
elettrolitici; montate quindi il LED LD1. Completate in serie; ricordate che l’anodo (reoforo più lungo)
il montaggio inserendo e saldando le morsettiere a dei LED va rivolto verso il contatto positivo dell’u-
passo 5 mm. scita ed il catodo (reoforo posto dal lato smussato
del contenitore) sul contatto collegato al collettore
ESEMPI APPLICATIVI del transistor.
Andiamo dunque a vedere due semplici programmi Alimentate la scheda DONE tramite i contatti
di esempio che potete sperimentare collegando VIN e GND del connettore (morsettiera) J1 con un
alla scheda DONE tre interruttori a pulsante tra gli alimentatore da 12Vcc in grado di erogare almeno

piano di MONTAGGIO

Elenco Componenti:

R1: 2 kohm 1% IC1: PIC12F675-I/P (MF1668)


R2, R3, R4, R5, R6, R7, R8, R9, R10: IC2: 7805
10 kohm 1%
C1, C4, C5, C6: 100 nF 50 VL Varie:
multistrato - Zoccolo 4+4
C2, C3: 22 µF 25 VL elettrolitico - Morsetto 2 vie passo 5 mm
D1: 1N4004 - Morsetto 6 vie passo 5 mm (2 pz.)
LD1: LED 5 mm bianco - Strip femmina 3 vie passo 2.54 mm
T1, T2, T3: DDTD123 (SOT23) - Circuito stampato S1668 (50x50 mm)

25
 Listato 2

list p=12F675 ; Il microcontroller e’ il PIC12F675


; Include i seguenti file
include “P12F675.inc” ; File definizioni standard micro
include “BASE.inc” ; File definizioni progetto

; Programma il Micro per:


; Oscillatore interno - No W.D. - No Reset esterno

__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF

; I sei GPI/O sono nel registro GPIO (bit 0 .. bit 5)


; In questa scheda sono 3 input e 3 output
; Out0 xx pin 7 GPIO,0
; Out1 xx pin 6 GPIO,1
; Out2 xx pin 5 GPIO,2
; In2 xx (Solo in) pin 4 GPIO,3
; In1 xx pin 3 GPIO,4
; In0 XX pin 2 GPIO,5

org 0x000 ; Vettore di reset: Il programma inizia qui


nop ; Nessuna operazione
goto start ; Salto a start

; - - - - - - Inizializzazioni - - - - - - -

org 0x008 ; Il programma inizia a 008

start
; istruzioni per configurare il micro come serve

banksel 0x00 ; operazioni in banco 0

clrf INTCON ; No interrupt


clrf GPIO ; I 3 output =0
movlw 0x07
movwf CMCON ; Comparator Off GPIO

; Versione PIC12F675 ( con A/D non usato)


; movlw 0x01
; movwf ADCON0 ; 8bit-No ext.ref. - can 0 - acceso fermo

banksel 0x80 ; operazioni in banco 80

clrf WPU ; No pull up resistors

; Vref Off (power off comparator voltage, saves power)

clrf VRCON

; Definizione degli I/O (0= Out 1=In)


; TRISIO x x in1 in2 in3 out3 out2 out1
; - - 1 1 1 0 0 0
; -- 3 -- ------- 8 ----------

movlw 0x38
movwf TRISIO ; 1-2-3 out, 1-2-3 input

; Versione PIC12F675 ( con A/D )


; movlw 0x60
; movwf ANSEL ; freq. A/D /64 no analogic

banksel 0x00 ; torna in banco 0 che e’ quello principale

; * * * * * * * * * * * * * MAIN * * * * * * * * * * * *

; - - - - - - Ciclo principale - - - - - - -

main
banksel 0x00

btfsc GPIO,5 ; test se il pulsante 1 premuto


goto mainoff ; se non premuto spegne le uscite

26
bsf GPIO,0 ; Out1 ON
bcf GPIO,1 ; Out2 OFF
bcf GPIO,2 ; Out3 OFF
call sec1 ; delay 1 sec

btfsc GPIO,4 ; test se il pulsante 2 premuto


goto mainoff ; se non premuto spegne le uscite

bcf GPIO,0 ; Out1 OFF


bsf GPIO,1 ; Out2 ON
bcf GPIO,2 ; Out3 OFF
call sec1 ; delay 1 sec

btfsc GPIO,3 ; test se il pulsante 3 premuto


goto mainoff ; se non premuto spegne le uscite

bcf GPIO,0 ; Out1 OFF


bcf GPIO,1 ; Out2 OFF
bsf GPIO,2 ; Out3 ON
call sec1 ; delay 1 sec

goto main

mainoff
bcf GPIO,0 ; Out1 OFF
bcf GPIO,1 ; Out2 OFF
bcf GPIO,2 ; Out3 OFF

goto main

goto main

; * * * * * * * * * * * * * Routine * * * * * * * * * * * *

;--------------------------------------------------------------------

; Routine di ritardo di 1 secondo

sec1
movlw 0xFF ; carica il registro W (accumulatore)con FF
movwf RTA ; e sposta FF nel registro RTA

sec1a
movlw 0xFF ; carica il registro W (accumulatore)con FF
movwf RTB ; e sposta FF nel registro RTB

sec1b
nop ; istruzione di nessuna operazione
; per 1 microsecondo di ritardo
nop
nop
nop
nop
nop ; totale 6 microsecondi
decfsz RTB,1 ; decrementa RTB che aveva caricato a FF
goto sec1b ; e continua fino ad azzerarlo
nop ; ha fatto FF cicli
decfsz RTA,1 ; decrementa RTA che aveva caricato a FF
goto sec1a ; e continua fino ad azzerarlo

; a questo punto sono stati fatti FF cicli grandi


; che contenevano FF cicli piccoli
return

end

200 mA di corrente, dopo aver innestato nello scaricabili dal nostro sito www.elettronicain.it insie-
zoccolo da 8 pin il microcontrollore che avrete già me ai file del progetto. Il primo esempio richiede il
programmato con uno dei programmi di esempio caricamento del firmware Lampeggiatore1.ASM che

27
 Fig. 4
Impostazioni del
compilatore
MPASM.

fa lampeggiare il LED corrispondente al pulsante UTILIZZO DELL’ASSEMBLATORE


premuto, con un lampeggio di 1 secondo On e 1 Spendiamo infine due righe per spiegare come
secondo Off. Il codice corrispondente in Assembler utilizzare l’assemblatore Microchip (MPASM) allo
è riportato nel Listato 2. scopo di creare il codice assemblato e quindi il file
Quanto al secondo esempio, è relativo al firmware .hex, a partire dal codice sorgente. Dopo averlo
Lampeggiatoree.ASM che una volta caricato fa installato, per prima cosa andate a eseguire il
lampeggiare il LED1 se il pulsante 1 viene premuto, programma MPASM, allorché otterrete la finestra
con un lampeggio di 1 secondo ogni 3 secondi. di dialogo proposta nella Fig. 4.
Il relativo codice è proposto nel Listato 3. Nella maschera proposta dalla finestra di dialogo
dovete selezionare il programma da assemblare
(cercandolo con il pulsante Browse e selezionan-
do, nel percorso in cui si trova, il rispettivo file
ad estensione .asm) il tipo di microcontrollore
(scegliendolo dal menù a tendina accanto alla voce
Processor) per cui compilare il codice sorgente
contenuto nel file selezionato, quindi impostare le
selezioni e ponendo le spunte nella sezione Op-
tions come indicato nella suddetta Fig. 4. Quando
tutto è stato impostato come esposto, potete fare
clic sul pulsante Assemble che si trova in fondo a
sinistra nella finestra di dialogo.
Se il programma non presenterà errori apparirà il
messaggio visibile nella Fig. 5, ad indicare che la
compilazione è avvenuta con successo; cliccate
 Fig. 5
quindi sul pulsante OK per chiudere la relativa
Compilazioni finestra di notifica.
avvenuta con A questo punto siete pronti per trasferire il file
successo.
compilato in linguaggio macchina nella memoria di
programma del vostro microcontrollore; per prima

28
 Listato 3
list p=12f675 ; Il microcontroller e’ il PIC12F675
; Include i seguenti file
include “P12f675.inc” ; File definizioni standard micro
include “BASE.inc” ; File definizioni progetto

; Programma il Micro per:


; Oscillatore interno - No W.D. - No Reset esterno

__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF

; I sei GPI/O sono nel registro GPIO (bit 0 .. bit 5)


; In questa scheda sono 3 input e 3 output
; Out0 xx pin 7 GPIO,0
; Out1 xx pin 6 GPIO,1
; Out2 xx pin 5 GPIO,2
; In2 xx (Solo in) pin 4 GPIO,3
; In1 xx pin 3 GPIO,4
; In0 XX pin 2 GPIO,5

;********************** Inizio codice ****************************

org 0x000 ; Vettore di reset: Il programma inizia qui


nop ; Nessuna operazione
goto start ; Salto a start

; - - - - - - Inizializzazioni - - - - - - -

org 0x008 ; Il programma inizia a 008

start
; istruzioni per configurare il micro come serve

banksel 0x00 ; operazioni in banco 0

clrf INTCON ; No interrupt


clrf GPIO ; I 3 output =0
movlw 0x07
movwf CMCON ; Comparator Off GPIO

; Versione PIC12F675 ( con A/D non usato)


; movlw 0x01
; movwf ADCON0 ; 8bit-No ext.ref. - can 0 - acceso fermo

banksel 0x80 ; operazioni in banco 80

clrf WPU ; No pull up resistors

; Vref Off (power off comparator voltage, saves power)

clrf VRCON

; Definizione degli I/O (0= Out 1=In)


; TRISIO x x in1 in2 in3 out3 out2 out1
; - - 1 1 1 0 0 0
; -- 3 -- ------- 8 ----------

movlw 0x38
movwf TRISIO ; 1-2-3 out, 1-2-3 input

; Versione PIC12F675 ( con A/D )


; movlw 0x60
; movwf ANSEL ; freq. A/D /64 no analogic

banksel 0x00 ; torna in banco 0 che e’ quello principale

; * * * * * * * * * * * * * MAIN * * * * * * * * * * * *

; - - - - - - Ciclo principale - - - - - - -

main
banksel 0x00

btfsc GPIO,5 ; test se il pulsante 1 premuto

29
 Listato 3 - segue
goto mainoff ; se non premuto spegne le uscite

bsf GPIO,0 ; Out1 ON


bcf GPIO,1 ; Out2 OFF
bcf GPIO,2 ; Out3 OFF
call sec1 ; delay 1 sec

btfsc GPIO,5 ; test se il pulsante 1 remuto


goto mainoff ; se non premuto spegne l’ uscita

bcf GPIO,0 ; Out1 OFF


bcf GPIO,1 ; Out2 ON
bcf GPIO,2 ; Out3 OFF
call sec1 ; delay 1 sec

bcf GPIO,0 ; Out1 OFF


bcf GPIO,1 ; Out2 OFF
bcf GPIO,2 ; Out3 OFF
call sec1 ; delay 1 sec

bcf GPIO,0 ; Out1 OFF


bcf GPIO,1 ; Out2 OFF
bcf GPIO,2 ; Out3 OFF
call sec1 ; delay 1 sec

btfsc GPIO,5 ; test se il pulsante 1 premuto


goto mainoff ; se non premuto spegne l’ uscita

goto main

mainoff
bcf GPIO,0 ; Out1 OFF
bcf GPIO,1 ; Out2 OFF
bcf GPIO,2 ; Out3 OFF

goto main

; * * * * * * * * * * * * * Routine * * * * * * * * * * * *

;--------------------------------------------------------------------

; Routine di ritardo di 1 secondo

sec1
movlw 0xFF ; carica il registro W (accumulatore)con FF
movwf RTA ; e sposta FF nel registro RTA

sec1a
movlw 0xFF ; carica il registro W (accumulatore)con FF
movwf RTB ; e sposta FF nel registro RTB

sec1b
nop ; istruzione di nessuna operazione
; per 1 microsecondo di ritardo
nop
nop
nop
nop
nop ; totale 6 microsecondi
decfsz RTB,1 ; decrementa RTB che aveva caricato a FF
goto sec1b ; e continua fino ad azzerarlo
nop ; ha fatto FF cicli
decfsz RTA,1 ; decrementa RTA che aveva caricato a FF
goto sec1a ; e continua fino ad azzerarlo

; a questo punto sono stati fatti FF cicli grandi


; che contenevano FF cicli piccoli
return

end

30
 Fig. 6
Schermata
principale del
programma
PICkit2
Programmer.

cosa collegate il programmatore al computer, punto non dovrete fare altro che attendere che la

inserite il microcontrollore nell’apposito zoccolo scrittura del firmware sia stata eseguita.
mantenendolo orientato come indicato (altrimenti
la programmazione non avverrà e verosimilmente
il chip si danneggerà).
Come tool di programmazione utilizzeremo il noto
programmatore PICkit2.
Cosa occorre?
Dopo avere installato il relativo software, aprite il
programma PICKkit2 e vi troverete di fronte la sua Il circuito stampato di questo progetto è realizzabile con il
servizio PCB (cod. PCBPRODUCTION). Il relativo file Gerber è
interfaccia utente, proposta nella Fig. 6. scaricabile dalla pagina di presentazione di questo numero.
Nella schermata dovete cliccare sul menù File, Il microcontrollore PIC12F675 (cod. PIC12F675-I/P) è in
quindi impartire il comando Open e selezionate vendita a Euro 4,30. I prezzi si intendono IVA compresa.
il percorso dove si trova il file da caricare, quindi Il materiale va richiesto a:
selezionate il file stesso, contenente il programma
caricare, cliccando sul pulsante Import. Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - www.futurashop.it
Fatto ciò, cliccate sul pulsante Write e a questo

31
SERVOMOTORI, INDISPENSABILI
PER GLI APPASSIONATI DI ROBOTICA!
INGRANAGGI IN METALLO

cod. MG946R cod. SERVO213 cod. MG996R cod. SERVO360M9G cod. SERVO09METAL

€8 ,50
€ 11 ,00
€9 ,00
€9 ,00
€ 9,00 MINI
MINI SERVO
SERVO

SERVO ANALOGICO
AD ALTE PRESTAZIONI SERVO ANALOGICO MINI SERVO
CON ROTAZIONE DI 60° CON ROTAZIONE DI 180° SERVO ANALOGICO ANALOGICO
CON ROTAZIONE DI 360° MINI SERVO CON ROTAZIONE
• Coppia di torsione: • Coppia di torsione:
ANALOGICO DI 180°
10,5kg/cm (4,8V), 13kg/cm (4,8V) – 15kg/ • Coppia di torsione:
13kg/cm (6V) cm (6V) 9,4kg/cm (4,8V) - 11kg/ CON ROTAZIONE • Coppia di torsione:
• Velocità a 4,8V: • Velocità a 4,8V: cm (6V) CONTINUA DI 360° 1,8kg/cm (4,8V)
0,20sec/60° senza 0,20sec/60° senza • Velocità a 4,8V: 0,19sec • Coppia di torsione: • Rapporto di riduzione:
carico, velocità a 6V: carico, velocità a 6V: /60° senza carico, 1,8kg/cm (4,8V) 320:1
0,17sec/60° senza 0,16sec/60° senza velocità a 6V: 0,15sec • Rapporto di riduzione: • Velocità a 4,8V: 0,12
carico carico /60° senza carico 320:1 sec/60° senza carico
• Alimentazione: • Alimentazione: • Alimentazione: • Alimentazione: • Alimentazione:
da 4,8 a 7,2V da 4,8 a 6V da 4,8 a 6V • da 4,8 a 6V • da 4,8 a 6V
• Dimensioni: • Dimensioni: • Dimensioni: • Dimensioni: • Dimensioni:
40,7x19,7x42,9mm 40,6×39,5×20mm 42,7×40,9×20mm 22,6x32x12mm 22,6×11,8×26,7mm
• Peso: 55g • Peso: 55g • Peso: 55g • Peso: 12g • Peso: 12g

INGRANAGGI IN PLASTICA

cod. SERVO214 cod. SERVO360LC cod. SERVO209 cod. SERVO207

€8 ,50
€9 ,90
€8 ,00
€ 9,90
cod. SERVO206

MINI
SERVO
€ 7,50

MINI
SERVO ANALOGICO SERVO ANALOGICO SERVO
CON ROTAZIONE DI 120° CON ROTAZIONE DI 180° MINI SERVO
• Coppia di torsione: SERVO ANALOGICO • Coppia di torsione: ANALOGICO
13kg/cm (4,8V) – 15kg/ CON ROTAZIONE 5,5kg/cm (4,8V) - CON ROTAZIONE DI 160°
cm (6V) CONTINUA DI 360° 6,5kg/cm (6V) MINI SERVO • Coppia di torsione
• Velocità a 4,8V: • Coppia di torsione: • Velocità a 4,8V: ANALOGICO 1,2kg/cm (4,8V) - 1,5kg/
0,20sec/60° senza 5,5kg/cm (4,8V) 0,19sec/60° senza CON ROTAZIONE DI 60° cm (6V)
carico, velocità a 6V: • Velocità a 4,8V: carico, velocità a 6V: • Coppia di torsione: • Velocità a 4,8V:
0,16sec/60° senza 0,22sec/60° senza 0,15sec/60° senza 2,3kg/cm 0,12sec/60°, velocità a
carico. carico carico • Velocità: 0,18 sec/60° 6V: 0,11sec/60°
• Alimentazione: • Alimentazione: • Alimentazione: • Alimentazione: • Alimentazione:
da 4,8 a 6V da 4,8 a 6V da 4,8 a 6V da 4,8 a 6V da 4,8 a 6V
• Dimensioni: • Dimensioni: • Dimensioni: • Dimensioni: • Dimensioni:
54,2×39,5×20mm 40×39,1×20mm 40,6×39,5×20mm 28,5×13,3×30,6mm 22,5x12x29mm
• Peso: 55g • Peso: 38g • Peso: 42,5g • Peso: 17g • Peso: 9g

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
IN VETRINA

DSO2D10
HANTEK
del Prof. MICHELE MENNITI

G
ià altre volte abbiamo recensito
strumenti da laboratorio a marchio
Abbiamo provato per Hantek, riscontrando come il rapporto
tra prezzo e prestazioni (e qualità) si sia
voi l’oscilloscopio sempre rivelato interessante per qual-
digitale professionale siasi tecnico. Oggi vi presentiamo un
DSO a due canali con 100 MHz di banda
con generatore di passante e Generatore di Funzioni inte-
funzioni integrato grato da 25 MHz, denominato DSO2D10, che abbiamo voluto
“aprire” e provare in laboratorio per fare alcune valutazioni che
DSO2D10 e ne condividiamo con voi in queste pagine.
condividiamo le La confezione contiene lo strumento, il cavo di alimentazione,
un’ottima sonda 1x/10x accessoriata, due cavi BNC-cocco-
impressioni. drilli, un cavo USB ed un folder in inglese con alcune indicazio-
ni riguardanti la garanzia ed i contatti (Fig. 1).

33
In basso, sotto il display, l’interruttore di accen-
 Fig. 1 sione, decisamente migliorato rispetto ai primi
Il contenuto della modelli di questo marchio, oltre a una porta USB
confezione del
DSO2D10.
prevista per il collegamento di una pen drive
(upgrade del firmware o memorizzazione di dati
e/o immagini visualizzate sul display).
Tutta la parte destra dello strumento è rappresen-
tata dal pannello comandi, costituito da manopole
e pulsanti, organizzati in sezioni:
• tasto MENU On/Off (F0, attiva/disattiva la
visualizzazione dei menu laterali sul display);
• tasti Menu (F1÷F6, per le singole opzioni del
menu selezionato);
• manopola Multifunzione V0 (selezione dei valori
dei menu);
• tasti Menu funzioni (salva/carica, misure, acqui-
sizione, display, cursori, utility);
• tasti funzione (default setup, help, salva su USB,
ASPETTO ESTERNO decode);
Dal punto di vista estetico anche questo modello • controlli del verticale;
rispecchia lo standard Hantek. In Fig. 2 è possibile • controlli dell’orizzontale;
vedere l’intero pannello frontale del DSO. • menu trigger;
Sulla sinistra c’è l’ampio schermo LCD TFT da 7” • generatore di funzioni;
con 16 milioni di colori (24 bit true color) e risolu- • segnale di test 1 kHz 5V per la calibrazione delle
zione di 800 pixel orizzontali e 480 pixel verticali. sonde;

 Fig. 2
Organizzazione del
pannello frontale.

34
 Fig. 3
Versione
software e
firmware.

• ingresso Trigger e uscita generatore funzioni; con quella visualizzata sul display non bisogna
• ingressi CH1 e CH2. effettuare l’aggiornamento, ma se è più recente è
opportuno caricare il file in una Pen Drive, da inse-
Il pannello posteriore presenta la presa per rire successivamente nella porta localizzata sotto il
l’alimentazione a 230 Vac e una presa USB per il display del DSO. Durante le nostre prove, utilizzan-
collegamento ad un PC. do numerosi modelli di Pen Drive, abbiamo riscon-
trato in un paio di modelli dei malfunzionamenti;
PREPARIAMOCI A USARLO contattato il produttore ci è stato chiarito che la
Prima di iniziare ad usare lo strumento è indispen- Pen Drive deve essere formattata con formato
sabile effettuare alcune operazioni: l’Aggiornamen- FAT 32 ed effettivamente dopo la formattazione
to del firmware, l’autocalibrazione dello strumento una delle due ha funzionato regolarmente, quindi
e la calibrazione delle sonde. possiamo ritenere che il problema dell’unica che
Ricordiamo che i manuali originali d’uso e di ha continuato a non funzionare fosse insito in essa,
programmazione, entrambi in lingua inglese, sono anche se sul PC veniva riconosciuta normalmente.
scaricabili dal link http://hantek.com/download?key Ad ogni modo, una volta introdotta la chiavetta
=yhsc&sid=3&pid=17182 . Il software per la pro- USB nello strumento, bisogna entrare nel menu
grammazione è scaricabile mediante il link http:// UTILITY e premere F3 (Firmware Upgrade) quindi
hantek.com/download?key=yyrj&sid=3&pid=17182. F5 per iniziare l’aggiornamento (o F2 se si vuole
Per la verifica della versione software/firmware annullare l’operazione). In questa fase e fino a
bisogna premere il tasto Menu funzione “utili- quando l’operazione non sarà completata NON
ty”, quindi il tasto F5 (System Info), si aprirà un BISOGNA ASSOLUTAMENTE SPEGNERE LO
riquadro al centro del display come quello proposto STRUMENTO! Ad aggiornamento completato il
nella Fig. 3. Nella riga relativa al software si vedrà DSO adotterà automaticamente il nuovo firmware
il numero di versione (nel nostro caso 1.0.2.0.0) e senza bisogno di riavviarlo.
la data (220517.00) mentre l’ultima riga riporta la
versione firmware (3204). Occorre segnare questi Autocalibrazione del DSO
valori, in particolare la data. Per questa operazione bisogna disconnettere
Per l’aggiornamento del firmware bisogna aprire tutti i cavi e sonde dalle porte BNC, entrare nel
il browser web del computer e andare all’indirizzo menu UTILITY e premere F4 (Self Calibration) e
http://hantek.com/download?key=zxgj&sid=0&pid=0 F5 per confermare (o F4 se si vuole annullare
quindi, nella pagina web che si apre, cliccare l’operazione). Anche in questo caso NON bisogna
sulla voce DSO2000 Firmware: istantaneamente spegnere lo strumento prima che l’operazione sia
verrà scaricato sul PC un file siglato “dso3kb_ completata, sono 38 step che saranno eseguiti in
aaaammgg.zip”, in cui aaaammgg rappresenta circa 15 minuti, al termine dei quali un messaggio
la data del firmware; se questa data coincide inviterà a premere un qualsiasi tasto per tornare

35
CARATTERISTICHE TECNICHE
HANTEK DSO2D10

• 2 canali controllati da manopo- • Possibilità di salvare diversi


le indipendenti. formati di dati: impostazioni,
• Banda passante analogica 100 forme d’onda, forme d’onda di temporanea, occorre dotarsi di una seconda sonda,
MHZ. riferimento, file CSV, immagini. e stabilire a quale canale associarla, ripetendo
• Campionamento fino a 1 Gsa/s. • Voltmetro digitale a 3 cifre e l’operazione di compensazione. Ogni sonda va
• Profondità di memoria 8 Mpts. frequenzimetro a 6 cifre. quindi contrassegnata per collegarla sempre al
• Ampiezza verticale 2 mV/div ÷ • 32 tipi di misurazioni automati- canale sul quale è stata compensata; a tale scopo
10 V/div. che con statistiche, statistiche nella sua confezione ci sono degli anellini colorati,
• Generatore di funzioni 1 CH in tempo reale di massima, bisogna agganciare quello giallo sulla sonda del
25MHz integrato. minima, deviazione standard CH1 e quello verde sulla sonda del CH2, in modo
• Risoluzione Verticale 8 bit. ecc. che corrispondano ai colori assegnati alle due
• Tipi di Trigger: Edge, Pulse, Vi- • 2 set di voltmetri digitali. porte BNC.
deo, Slope, Overtime, Window, • Supporta test di soglia e misu- Una volta fatto ciò, il DSO è pronto per essere usa-
Pattern, Interval, Under, Amp, razioni libere all’interno dello to correttamente; per farvi un’idea di cosa potete
UART, LIN, CAN, SPI, IIC. schermo. misurare, prima di entrare nel vivo delle prove vi
• Decodifica del BUS e analisi del • Sistema di controllo remote suggeriamo di dare uno sguardo alle sue caratteri-
protocollo: RS232/UART, I²C- mediante SCPI. stiche tecniche, riportate nell’apposito riquadro.
Bus, SPI, CAN, LIN. • USB IN/OUT.
I TEST
Disponendo del Generatore di funzioni integrato
non abbiamo necessità di ricorrere a fonti di se-
gnale esterne per testare il nostro DSO.
alle normali operazioni. Consigliamo di effettuare Quindi iniziamo proprio decidendo quale tipo di
questa operazione anche se non è stato necessa- segnale generare. Senza collegare alcuna son-
rio aggiornare il firmware; inoltre è bene ripeterla da, premendo il tasto WAVE GEN si accende il
ogni 5-6 mesi. Generatore integrato e si accede al menu specifi-
co, interamente gestibile tramite i tasti funzione
Calibrazione delle sonde F1÷F6, vediamoli nello specifico:
Per questa terza e ultima operazione bisogna • F1: WAVE, menu che mette a disposizione
inserire la prima sonda nel canale CH1, impostare numerose forme d’onda: Sine (Sinusoida-
nel menu verticale i VOLTS/DIV su 1 V, accoppia- le), Square (Quadra), Ramp (Triangolare), Exp
mento AC, Sonda 10x, impostare la manopola SEC/ (Esponenziale) , Noise (Rumore), DC (piatta), e
DIV (orizzontale) su 200 µs, il menu trigger su CH1; quattro forme d’onda arbitrarie programmabili
la sonda deve avere lo swicth su x10, lo spinotto dall’utente, mediante il software Wave Editor,
deve essere innestato nella presa BNC CH1, men- scaricabile dal link http://hantek.com/uploadpic/
tre il puntale della sonda va sul gancio di sinistra e hantek/files/20210916/HantekDSO2000_
il coccodrillo sul gancio di destra della sezione Test. Ver1.0.3.zip; selezioniamo Square.
Il segnale sarà costituito da circa tre onde quadre • F2: FREQUENCY, una volta selezionata questa
stabili quasi a pieno schermo, in caso contrario non voce, si apre un sottomenu con 4 voci, tra le
sono state eseguite tutte le precedenti istruzioni quali si naviga continuando a premere F2:
sulle impostazioni. In base a come si vedono i punti - Frequency: regolazione della frequenza del
di transizione tra la linea verticale e quella orizzon- segnale, la manopola V0 permette di modifi-
tale del segnale, la sonda sarà definita sovracom- care le prime due cifre della scala visualizzata;
pensata, compensata o sottocompensata. Agendo - Frequency fine: la manopola V0 permette di
con il piccolo giravite in dotazione occorrerà, se ne- modificare la cifra meno significativa della
cessario, agire sul compensatore localizzato nello scala visualizzata;
spinotto lato BNC della sonda, fino ad ottenere un - Period: regolazione del periodo del segnale,
segnale compensato perfettamente simmetrico. la manopola V0 permette di modificare le
A questo punto si può ripetere l’intera operazione prime due cifre della scala visualizzata;
togliendo la sonda dal BNC CH1, inserendola nel - Period fine: la manopola V0 permette di
BNC CH2 e configurando questo canale come visto modificare la cifra meno significativa della
in precedenza per l’altro. scala visualizzata.
In questo modo la stessa sonda potrà essere usa- Da notare che passando da frequenza a periodo,
ta indifferentemente su ognuno dei due canali. o viceversa, il valore impostato viene automa-
Naturalmente per poterli usare entrambi in con- ticamente convertito in quello corrispondente;

36
per esempio se la frequenza è 1 kHz, passando • F6F3: MODULATION, questa funzione serve
al periodo, esso diventa di 1.000 ms. per modulare il segnale impostato; una volta
selezionata questa voce, si apre un nuovo menu
Impostiamo una frequenza di 1 kHz. con 5 voci, oltre al comando Return, presente
• F3: AMPLITUDE, una volta selezionata questa nella seconda sezione, associate ai tasti F1 ÷
voce, si apre un sottomenu con 4 voci, tra le F5: Modulation (ON/OFF), Type (AM/FM), Wave
quali si naviga continuando a premere F3: (Sine, Square, Ramp), Mod Freq (1 Hz ÷ 50 kHz),
- Amplitude: regolazione dell’ampiezza del Depth (1 ÷ 120).
segnale, la manopola V0 permette di modifi- Nota bene: in alcuni casi di impostazione dei
care la prima cifra della scala visualizzata; valori la manopola V0 può assumere un funzio-
- Amplitude fine: la manopola V0 permette di namento particolare: premendola, la presenza
modificare la cifra meno significativa della di due freccette verticali indica che ruotandola
scala visualizzata; si può modificare il valore visualizzato, mentre
- High Level: regolazione della ampiezza della la presenza di due freccette orizzontali indica
fase HIGH del segnale, la manopola V0 per- che ruotandola ci si può spostare tra le cifre del
mette di modificare la prima cifra della scala valore impostato, decidendo quale modificare.
visualizzata; Un esempio, proprio su quest’ultima funzione
- High Level fine: la manopola V0 permette di MODULATION, chiarirà la modalità d’uso.
modificare la cifra meno significativa della Premendo F4 si attiva la voce Mod freq, appare
scala visualizzata; il valore attuale (per esempio 100) con due
freccette verticali sul lato sinistro, ruotando la
Impostiamo un’ampiezza di 5 V. manopola V0 è possibile variare questo valore,
• F4: OFFSET(DC)/Low Level, una volta seleziona- ma se esso dovesse essere molto distante da
ta questa voce, si apre un sottomenu con 4 voci, quello attuale, per esempio 20, occorrerebbe
tra le quali si naviga continuando a premere F4: ruotare la manopola moltissime volte.
- Offset: regolazione della componente continua In questo caso basta premere V0, sulla sinistra
del segnale, la manopola V0 permette di modi- appaiono due freccette orizzontali con due pic-
ficare la prima cifra della scala visualizzata; coli indicatori azzurri sopra e sotto la prima cifra
- Offset fine: la manopola V0 permette di a sinistra; se ora si ruota V0 i riferimenti ciclano
modificare la cifra meno significativa della fra le tre cifre; quando si trovano sulla seconda,
scala visualizzata; premere di nuovo V0 e poi ruotarlo fino a leg-
- Low Level: regolazione della ampiezza della gere il valore 20. Non useremo la modulazione
fase LOW del segnale, la manopola V0 per- per il nostro test, quindi è sufficiente lasciare
mette di modificare la prima cifra della scala Modulation OFF.
visualizzata;
- Low Level fine: la manopola V0 permette di Chiudiamo la sezione relativa al Generatore di
modificare la cifra meno significativa della funzioni con l’opzione “Burst”, attivabile mediante
scala visualizzata; il relativo tasto posto sul pannello del DSO, sotto
quello di attivazione del Generatore.
Da notare che la voce F4 assume di partenza il Questa funzione aggiuntiva permette di generare
valore Offset o Low Level, in base all’impostazione treni di onde; premendo il tasto si apre un menu con
del tasto F3, se è Amplitude appare Offset, se è 3 voci:
High Level appare Low Level. • F1 TYPE: l’opzione Infinite in pratica genera
Impostiamo un offset di 0 V (dovrebbe essere il segnale impostato all’infinito, senza alcuna
sufficiente la pressione della manopola V0). variazione rispetto alla modalità senza burst;
• F6F1: DUTY/SYMMETRY, è attivo solo se l’opzione N Cycle invece permette di limitare il
la forma d’onda selezionata è Square (Duty) numero di cicli del treno.
o Ramp (Symmetry) e serve appunto per • F2 COUNT: permette di impostare il numero di
modificare queste due componenti del segnale; cicli per l’opzione N Cycle, mentre è ininfluente
impostiamo 30(%); con l’opzione Infinite.
• F6F2: IMPEDANCE, è l’impedenza sul BNC • F3 TRIGGER: serve per dare l’avvio ad un singo-
d’uscita, può variare tra 50 Ω e High-Z; impo- lo treno nel momento desiderato, è ininfluente
stiamo High-Z; con l’opzione Infinite.

37
 Fig. 4
Impostazioni del
Generatore di
Funzioni e segnale
sul DSO.

Non useremo il burst per il nostro test, quindi sarà MENU e si accende con un colore arancione, con-
sufficiente evitare di premere il relativo tasto. testualmente apparirà la relativa traccia (di colore
A questo punto possiamo inviare il segnale in giallo) e potrebbe essere visualizzata già la forma
uscita dal BNC del Generatore all’ingresso CH1 del d’onda impostata (Fig. 4).
DSO. La cosa migliore sarebbe un cavo BNC ma- Se il segnale non dovesse corrispondere a quello
schio – BNC maschio, per il collegamento diretto della figura occorre procedere in questo modo:
tra i due connettori; in mancanza, con quelli in • Premere il tasto CH1 e poi F4, quindi ruotare V0
dotazione, basta collegare il cavo BNC-coccodrilli fino a leggere “X1”;
all’uscita del Generatore e la sonda (impostata • Ruotare la manopola VOLTS/DIV in modo da
x1) al CH1, agganciando poi la pinzetta rossa con leggere “2V” nel box giallo alla base del display;
il puntale della sonda, mentre quella nera può • Ruotare la manopola SEC/DIV fino a leggere
restare libera, essendo la massa delle due prese “500 us” accanto alla lettera H nella parte supe-
BNC collegata internamente. riore del display.
Se il CH1 non è ancora attivo (traccia gialla non
visibile sul display) basta premere il tasto CH1 In Fig. 5 proponiamo le impostazioni del CH1.

 Fig. 5
Impostazioni del
CH1 per il test.

38
 Fig. 6
Modalità
Dual-Window.

Se il test non va a buon fine, occorrerà controllare • F5: INVERT, se si imposta su ON capovolge il
e ripetere tutti i passaggi, se invece avete ottenuto segnale misurato di 180°.
la stessa immagine della nostra figura, significa
che è tutto a posto. Nella sezione verticale c’è anche il pulsante MATH,
che attiva le operazioni matematiche tra le tracce
UTILIZZO DEI COMANDI dei due canali analogici: + (addizione), - (sottrazio-
Descriviamo ora tutte le sezioni del pannello del ne), * (moltiplicazione), / (divisione) e FFT (trasfor-
nostro DSO, illustrando i vari menu associati ai mata di Fourier veloce).
pulsanti. Per le misure si può ricorrere all’uso dei cursori.

Impostazioni verticale Impostazioni orizzontale


Come abbiamo appena visto la manopola La manopola SEC/DIV serve per impostare la base
VOLTS/DIV serve per settare il valore della scala dei tempi del DSO, in funzione della frequenza del
dell’ampiezza, in base a quella del segnale da segnale da visualizzare.
visualizzare. La manopola POSITION invece serve Premendo la manopola SEC/DIV si attiva la Dual-
per regolare la posizione verticale del segnale sul Window Mode, che permette di zoomare la traccia
display, se invece di ruotarla la si preme, la traccia attuale, ruotando poi la stessa manopola si regola
va esattamente al centro dell’escursione verticale, il valore dello zoom (Fig. 6).
sulla posizione 0 V. Per uscire da questa modalità basta premere
Premendo il tasto CH1 o CH2 MENU si accede al nuovamente la manopola SEC/DIV.
menu delle opzioni: La manopola POSITION invece serve per regolare
• F1: COUPLING, accoppiamento AC/DC della la posizione orizzontale del segnale sul display.
sonda, con opzione GND per chiuderla a massa; Attenzione a questo piccolo particolare: se invece
• F2: BW 20M, attivazione della limitazione della di ruotarla la si preme, la traccia va esattamente al
larghezza di banda a 20 MHz, per filtrare il centro dell’escursione orizzontale, sulla posizione
rumore ed altre componenti di alta frequenza 0 sec.
non necessarie; Nella modalità Dual-Window, questa manopola
• F3: DIV, serve per l’impostazione della regola- permette di spostarsi all’interno dello zoom.
zione della manopola VOLTS/DIV, Coarse serve Premendo il tasto HORIZ MENU si accede all’unica
per le regolazioni intere 1-2-5, mentre Fine opzione disponibile, che serve per settare la
permette regolazioni sulle cifre meno significa- modalità di analisi orizzontale tra YT (standard), XY
tive; (analisi differenze di fase tra CH1 e CH2) e ROLL
• F4: PROBE, imposta l’attenuazione della sonda (scorrimento continuo da destra a sinistra con
in uso, selezionabile tra 1X, 10X, 100X e 1000X; base dei tempi massima di 100 ms/div).

39
 Fig. 7
Misure attivate e
dati statistici

Trigger MEASURE
Mediante la manopola Level è possibile sincroniz- Questa funzione permette di effettuare molteplici
zare la scansione orizzontale rispetto al segnale, al misurazioni sul segnale in acquisizione. Con la
fine di ottenere la massima stabilità possibile sul pressione del relativo tasto si apre un menu con 8
display. Il tasto FORCE TRIGGER va utilizzato per opzioni.
completare un’acquisizione indipendentemente • F1: SOURCE, selezionare il canale che sta visua-
da un segnale di trigger adeguato. Questo tasto lizzando il segnale da misurare.
diventa inutile se l’acquisizione è già stata interrotta • F2: TYPE, apre una maschera con l’elenco delle
o effettuata. Con il tasto TRIGGER MENU si accede possibili misure, per selezionarle usare la mano-
al menu specifico: pola V0, ruotandola per il posizionamento sulla
• F1: TYPE, tipologia di Trigger: Edge, Pulse, Video, voce e premendola per la selezione/deselezione.
Slope sono le principali, ma ce ne sono altre. Un riquadro di help alla base del display spiega
• F2: SOURCE, sorgente del Trigger, normalmente la funzione della misura scelta. Man mano che si
si setta il canale in uso o quello col segnale prin- selezionano delle voci, esse appaiono istantane-
cipale tra i due CH1 o CH2; altre possibilità sono amente alla base del display, mostrando i valori
l’applicazione di segnali di sincronismo esterno rilevati. Premere F0 al termine della selezione, le
(external) all’apposito BNC, oppure la sincroniz- opzioni attivate resteranno visualizzate.
zazione rispetto alla frequenza di rete elettrica di • F3: DVM, apre un sottomenu che permette di
50 Hz (Line). attivare un Multimetro digitale/analogico ed un
• F3: SLOPE, fronte del segnale sul quale deve frequenzimetro nella sezione in alto a destra del
agire il trigger: Rising (salita), Falling (discesa) o display; i tasti F1-F2 attivano il Multimetro per
Either (entrambi). i corrispondenti canali (a patto che siano attivi),
• F4: MODE, modalità di azione del Trigger, la mentre i tasti F2-F4 permettono di selezionare
Normal è la migliore per la maggior parte delle il tipo di misura che ogni multimetro deve effet-
applicazioni di trigger a larghezza di impulso; tuare, tra DC RMS, AC RMS e DC; al termine delle
l’alternativa è la modalità Auto. impostazioni premere F5 per tornare al menu
• F5: 50%, setta il Trigger esattamente a metà principale. Questa eccellente opzione permette
dell’escursione verticale del segnale; di avere costantemente sott’occhio due valori
• F6F1: HOLDOFF, serve per stabilizzare forme fondamentali della misura in corso.
d’onda complesse, agendo sul tempo di ritardo • F4: STATISTIC, se impostata su ON effettua una
tra un evento di Trigger ed il successivo. serie di calcoli statistici sulle misure attivate con
l’opzione TYPE: Cur (misura corrente standard),
SEZIONE MENU FUNZIONI Avg (media), Max (picco massimo), Min (picco mi-
Vediamo ora la serie di sei funzioni raggruppate nimo), RMSe (deviazione radice quadrata media),
nella specifica sezione sul pannello. Count (conteggio dei cicli).

40
In Fig. 7 sono visibili le misure attivate con i utilizzare questa modalità per ridurre il ru-
calcoli statistici. more casuale. Attivando questa opzione, con
• F5: CLEAR ALL, deseleziona e cancella tutte le il tasto F3 si può scegliere il numero di medie
misure attive. da applicare (da 4 a 128).
• F6F1: All Measure, attiva tutte le misure - Peak: rileva i valori massimo e minimo del
disponibili, relativamente al segnale applicato segnale di ingresso e li utilizza per visualiz-
al canale selezionato in Source, assumendo lo zare la forma d’onda. In questo modo il DSO
stesso colore della traccia (Fig. 8). può acquisire e visualizzare quegli impulsi
• F6F2: Settings, serve per impostare la sor- stretti che altrimenti sarebbero stati persi in
gente per le misure di delay, quando sono attive. modalità Normale. Tuttavia il rumore sem-
• F6F3: Gate, apre il menu di Gate, attivan- brerà più alto.
dolo con F1 è possibile impostare i parametri - HR: questa modalità utilizza una sorta di tec-
per rilevare le misure all’interno dello spazio nica di ultra-campionamento per calcolare
racchiuso tra i cursori attivi. la media dei punti vicini della forma d’onda
del campione, e ridurre il rumore casuale sul
ACQUIRE segnale di ingresso, generando una forma
Questa funzione permette di ottimizzare l’acquisi- d’onda molto più uniforme sullo schermo.
zione del segnale. Viene generalmente utilizzato quando la fre-
• F1: ACQ TYPE, tipo di acquisizione: Real Time quenza di campionamento del convertitore
(tempo reale con la tecnica digitale) o Equ-Time digitale è superiore alla velocità di archivia-
(ricostruzione dell’immagine mediante una zione della memoria di acquisizione.
tecnica equivalente di campionamento). • F3: AVERAGE COUNT, numero di medie da
• F2: ACQ MODE, modalità di acquisizione: applicare alla modalità Average, se attiva: 4, 8,
- Normal: il DSO campiona il segnale a 16, 32, 64, 128.
intervalli equidistanti per stabilire la forma • F4: MEM DEPTH, profondità della memoria
d’onda; questa modalità garantisce una buo- dedicata all’acquisizione (4-40-400 Kpoints e
na accuratezza dei segnali, ma non rileva le 4-8 Mpoints).
variazioni rapide che possono verificarsi tra
due campioni nel segnale analogico, ciò può DISPLAY
comportare l’aliasing e la perdita di impulsi Questa sezione agisce sulle impostazioni del
stretti. display e su alcuni parametri di visualizzazione del
- Average: (media) il DSO acquisisce diversi segnale.
cicli del segnale, ne calcola la media e visua- • F1: TYPE, visualizzazione segnale Points o Vec-
lizza la forma d’onda risultante. È possibile tors. Nel primo caso i fronti verticali vengono

 Fig. 8
Tutte le
misure
disponibili
nel DSO.

41
 Fig. 9
Memorizzazione
di un segnale nella
Pen Drive.

visualizzati sotto forma di punti, nel secondo due cursori a croce selezionando AXBX. Sul
invece sono linee continue. display vengono visualizzate tutte le coordi-
• F2: INTENSITY, intensità luminosa delle tracce. nate dei cursori, il t (BX – AX), il modulo del
• F3: GRID, modalità di visualizzazione della suo inverso (|1/dX|) cioè la frequenza, ed il
griglia del display: a punti, disattiva, a linee. V (BY – AY). Mediante i tasti F2-F3 è possi-
• F4: GRATICULE, intensità luminosa della griglia. bile associare un canale ad ogni cursore.
• F5:BRIGHTNESS, intensità luminosa del display. • F2: SOURCE, seleziona il CH da misurare.
• F6F1: PERSIST, tempo di persistenza della
traccia sul display: OFF, infinito, 1-5-10-30 UTILITY
secondi. Abbiamo già visto all’inizio alcune voci del menu
UTILITY, per la preparazione iniziale dello strumen-
CURSOR to, vediamo ora tutte le funzioni:
Questa sezione gestisce la misurazione dei segnali • F1: LANGUAGE, selezione della lingua dei menu,
mediante attivazione di cursori regolabili, sia sul c’è anche l’Italiano, ma consigliamo di lasciare la
verticale che sull’orizzontale. versione Inglese, in quanto alcuni termini sono
• F1: MODE, attiva due linee tratteggiate (cursori) tradotti in modo improbabile.
per misurare il tempo (X, due linee verticali), • F2: SOUND, attivazione o disattivazione del
l’ampiezza (Y, due linee orizzontali) o l’intera beep alla pressione dei tasti.
traccia (X-Y, due linee verticali e due orizzontali). • F3: UPDATE, serve per l’aggiornamento del
Esistono due opzioni : software/firmware mediante apposito file da
- Manu: le linee visualizzate sono regolabili inserire in una pen drive USB.
manualmente mediante la manopola V0 • F4: PASS/FAIL, attiva un menu per l’analisi della
(pressione per la selezione, rotazione per lo regolarità del segnale.
spostamento), sono attivi i tasti F3 (atti- • F5: SYSTEM INFO, tutti i dati relativi alle versio-
vazione cursori Y), F4 (attivazione cursori ni hardware e software dello strumento.
X), F5 (attivazione cursori X e Y) e F6F1 • F6F1: CALIBRATE, autocalibrazione dello
(disattivazione dei singoli cursori, in base alle strumento.
tipologie attive). • F6: EXIT, uscita dal menu utility.
- Track: si attiva un cursore orizzontale inter-
secato con un cursore verticale per formare SAVE/RECALL
un cursore a croce. Da questo menu è possibile salvare una serie di file,
Il cursore a croce si posiziona automatica- per poterli successivamente richiamare.
mente sulla forma d’onda e la sua posizione Nota bene: se si usa una pen drive USB è con-
si può regolare selezionando AX o BX me- sigliabile che non contenga file di altro genere,
diante il tasto F4, oppure si possono attivare oppure è preferibile creare una cartella specifica da

42
selezionare in fase di salvataggio. 5. Premere F5, selezionare ed entrare nella
• F1: SAVE, serve per salvare un file, apre un cartella DSO usando la manopola V0;
menu con le seguenti voci: 6. Premere F4, il file .ref sarà memorizzato
1. F1 Type, seleziona il tipo di file da salvare: sulla pen drive;
Setup (impostazioni attuali del DSO), Wave 7. Applicare a CH1 un segnale diverso da quello
(parametri della traccia visualizzata in for- precedente (per esempio una sinusoide con
mato binario), Ref (traccia e dati in formato frequenza di 2 kHz e ampiezza di 3 V);
REF, canali RefA o RefB), CSV (parametri in 8. Premere nuovamente il tasto SAVE/RECALL;
formato .csv della traccia visualizzata), Pic- 9. Premere F2 e selezionare Ref, F2-RefA, F3-
ture (screenshot in formato .bmp dell’imma- external;
gine visualizzata). 10. Premere F5, selezionare ed entrare nella
2. F2 Save To, selezione della memoria di cartella DSO usando la manopola V0;
destinazione: internal o external (pen drive 11. Selezionare il file .ref e premere la manopola
USB). V0.
3. F3 n. File, numero del file da salvare nella 12. Il risultato sarà quello visibile nella Fig. 10,
memoria interna (1 ÷ 9) ma dipende dalla la traccia gialla è quella del segnale at-
selezione di F1, se è selezionata la memoria tualmente applicato al CH1, mentre quella
esterna questo campo non è visibile. grigia sullo sfondo è quella memorizzata in
4. F4 Save, premere questo tasto per aprire le precedenza nel file .ref, con le caratteristiche
opzioni di file manager e salvare in base alla mostrate sul display in alto a sinistra;
selezione corrente (Fig. 9). 13. Premere SAVE/RECALL, quindi F2 (Recall)
• F2: RECALL, serve per richiamare un file salvato ed infine F6F1 (Close) per cancellare dalla
in precedenza, apre un menu con le seguenti schermata il segnale memorizzato.
voci:
1. F1 Type, seleziona il tipo di file da richiamare TASTI FUNZIONE
in memoria (elenco identico a quello descrit- • DEFAULT SETUP: quando si preme questo pul-
to per Save). sante, il DSO sarà ripristinato alle impostazioni
2. F2 Recall From, selezione della memoria di di default (Tabella 1) ed entrambe le tracce CH1
origine: internal o external (pen drive USB). e CH2 saranno visibili.
3. F3 n. File, numero del file da richiamare dalla L’operazione è annullabile premendo F1 finché
memoria interna (1 ÷ 9) ma dipende dalla è visibile sul display il riquadro Cancel.
selezione di F1, se è selezionata la memoria • HELP: premendo questo pulsante si attiva l’help
esterna questo campo non è visibile. integrato nel software del DSO; da questo mo-
4. F4 Recall, premere questo tasto per mento, premendo un qualsiasi tasto, sul display
richiamare il file interno oppure per aprire apparirà una schermata con il testo associato al
la finestra con la root della pen drive USB, tasto premuto.
in base alla selezione corrente. In questo Per disabilitare questa funzione è sufficiente
secondo caso il file va ricercato e selezionato premere nuovamente il tasto HELP.
mediante la manopola V0. • SAVE TO USB: memorizza su una pen drive
• COMPARAZIONE, vediamo ora come sfruttare USB lo screnshoot della schermata attuale del
questa sezione per confrontare un file memo- display; se la pen drive non è inserita sul display
rizzato in precedenza con una traccia letta in appare un messaggio di avviso.
tempo reale dallo strumento. • DECODE: questa funzione attiva il menu
Bisogna seguire questa procedura: DECODE PROTOCOL, rimandiamo al manuale
1. Inserire una pen drive nella presa USB an- originale per approfondimenti.
teriore del DSO, dopo aver creato su di essa
una cartella (per esempio “DSO”); TASTI OPERAZIONI
2. Visualizzare un segnale sul DSO (per esem- • AUTOSET: in alcuni casi è problematico settare
pio quello che abbiamo usato come test); manualmente il DSO per mostrare correttamente
3. Premere il tasto SAVE/RECALL sul pannello un segnale sul display; questa funzione serve per
del DSO; trovare automaticamente la migliore combina-
4. Premere F1 e selezionare Ref, F2-CH1, F3- zione possibile in funzione del segnale che si sta
external; rilevando.

43
 Fig. 10
Comparazione tra
un segnale memo-
rizzato ed uno in
tempo reale.

• SINGLE SEQ: è molto utile per agganciare segnali livello, ma anche come secondo strumento per un
sporadici, premendolo blocca l’immagine appena progettista professionale.
trova un segnale valido.
• RUN/STOP: serve per bloccare il campionamento Pro: due strumenti in uno, leggero, silenzioso,
del segnale e mostrare l’ultima immagine acquisi- maneggevole, ampio schermo, comandi intuitivi,
ta; premendolo nuovamente riparte l’acquisizione. un buon manuale con esempi spiegazioni tecni-
che, programmazione di forme d’onda mediante
CONCLUSIONI software PC e cavo USB in dotazione.
Questo DSO e Generatore di funzioni della Hantek
è posizionabile nella gamma della strumentazione Contro: gestione del generatore migliorabile con
semi-professionale di fascia alta con una elevata l’aggiunta di poche funzioni; dotazione di una sola
dotazione di funzioni. sonda pur disponendo di due canali, ma comunque

Chiaramente chi acquista uno strumento deve c’è il cavo adattatore BNC-coccodrilli.
spendere la cifra corretta in base alle proprie esi-
genze. Uno strumento di questo tipo va benissimo
per il banco di un riparatore, un hobbista di buon

Cosa occorre?
L'oscilloscopio da laboratorio 2 canali 100 MHz con generatore
di forme d’onda della Hantek (cod. DSO2D10 ) è in vendita a
Euro 358,00.
E' disponibile anche una versione da 2 canali 100 MHz ma
senza generatore di funzioni (cod. DSO2C10) a Euro 298,00.
I prezzi si intendono IVA compresa.
 Tabella 1
Parametri di default Il materiale va richiesto a:
del DSO.
Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - www.futurashop.it

44
Affidabilità e precisione!
CON
Generatore di forme d’onda TECNOLOGIA

arbitrarie 2 Canali-25 MHz DDS


- Canali: 2
- Lunghezza record: 2 Mpts
- Range frequenza: 25 MHz
- Frequenza di campionamento: 300 MSa/s
- Risoluzione di tensione: 16 Bits
- Uscita forma d’onda standard: sinusoidale, quadra,
triangolare, pulsante, noise, armoniche
- Uscita forma d’onda arbitraria: 160 tipi di forme d’onda
arbitrarie, tra cui: exponential rise, exponential fall, ECG
signal, Gauss, half vector, Lorentz, dual tone μlti-frequency,
DC voltage, etc.
- Noise (3 db): Larghezza di banda 100 MHz
- Onda Arbitraria: 1 μHz ~ 15 MHz Cod. HDG3022B

€ 388
388,,00
- Risoluzione: 1 μHz
- Precisione: ±1 ppm, 18~28 °C

Generatore di segnali con


frequenzimetro 2 CH-60 MHz
- Canali: 2
- Frequenza max. di uscita: 60 MHz
- Frequenza di campionamento: 100 MSa/s
- F orme d’onda standard: sinusoidale, quadra, rampa,
triangolare, impulso, noise, arbitraria, impulso di Lorenz,
aumento/diminuzione esponenziale, CMOS
- Interfaccia: USB
- Display: 2.4” TFT LCD colori
Cod. JDS6600 ​

€ 189
189,,00
Generatore di funzioni
e forme d’onda arbitrarie
2 Canali-25 MHz
- Display: TFT LCD a colori da 4,3 pollici
- Frequenza di campionamento: 125 MS/s
- Forme d’onda standard: sinusoidale, quadra, rampa, triangolare,
impulso, rumore gaussiano, DC, arbitrarie
- Ampiezza del segnale di uscita: fino a 5 Vpp con impedenza
di 50 Ω o fino a 10 Vpp in modalità ad alta impedenza
Prezzi IVA inclusa.

- Impedenza di uscita regolabile


- Tipo di modulazione: AM, FM, PM, ASK, FSK, PSK, PWM
- Modalità Sweep e Burst
- Distorsione armonica totale: 20 kHz, 1Vpp (valore tipico): <0,2% Cod. TP388

€ 498
498,,00
- Interfaccia: USB

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
Scuola di saldatura!
Stazione saldante Stazione saldante/ Saldatore stilo Aspirafumi da banco
48 W con display dissaldante per 30 Watt per saldatura – 23W
componenti SMD

cod. VTSSC40N cod. VTSS230 cod. TP0055 cod. TP0065


€ 94 ,00
€ 165 ,00
€9 ,90
€ 56,00

Pompetta dissaldante Pompetta Stagno per saldatura Pulisci punta


con riscaldatore succhiastagno senza piombo per saldatore
100GR – 0,56 mm

cod. VTDESOL3 cod. VTD7 cod. SOLD100G6SPB cod. WT45239


€ 11 ,80
€3 ,60
€ 19 ,50
€ 6,00

Pasta saldante Pasta per saldare Pasta saldante per SMD Anti flussante spray
per SMD – Vol. 10cc 50 g (senza piombo)- 50g 200 ml

cod. SMDPASTASALD cod. WT45238 cod. SOLDER50G cod. F02


€8 ,90
€3 ,90
€ 34 ,00
€ 10,80

Lacca isolante Tappeto in silicone per Set di componenti per Set di componenti SMD
spray 200 ml saldatura 337×227 mm imparare a saldare per imparare a saldare

cod. V66 cod. AS10 cod. YX286 cod. YX672


€ 11 ,50
€9 ,00
€4 ,00
€ 5,00

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
GADGET

DADO
ELETTRONICO
di DAVIDE SCULLINO

U
no dei classici progetti dell’elettronica
hobbistica è sicuramente il dado da
gioco, ossia un circuito che mediante un
Mostra un numero display a LED a 7 segmenti o una serie
pseudo-casuale di diodi luminosi mostra un numero suf-
ficientemente casuale a seguito di ogni
su 7 LED che pressione di un pulsante; in tal modo va
lampeggiano a simulare quello che è il comportamen-
to del classico dado utilizzato per sorteggiare numeri in giochi
rallentando sempre di società e non solo. Il circuito che proponiamo in queste
più come un dado pagine si basa sulla visualizzazione pseudo-casuale dello
stato di uscita di un contatore decimale, tramite un gruppo di
che rotola sul tavolo LED disposti a formare la faccia di un classico dado da gioco,
da gioco, fino a con sette punti; la visualizzazione pseudo-casuale deriva dal
fatto che il contatore (un comune CMOS di tipo CD4017) riceve
fermarsi. il clock da un multivibratore astabile che viene attivato per un

47
schema ELETTRICO

tempo dipendente dalla carica di un condensatore, pulsante normalmente aperto S1, per un intervallo
così da generare un segnale rettangolare la cui di tempo dipendente dai valori di C1 ed R1. Ana-
frequenza è massima inizialmente e decresce fino lizziamo dunque in singoli stadi (comando manua-
all’arresto del multivibratore stesso. La casualità è le, generatore di clock a frequenza decrescente,
ottenuta da numerose variabili, tra cui la durata di contatore e visualizzatore a LED) singolarmente,
pressione del pulsante che può essere scelta da noi, iniziando dal comando di “lancio” del dado: questo
l’esatto istante in cui il relativo contatto si chiude, la è affidato al pulsante S1, il quale una volta premuto
tolleranza del condensatore e della rete di tempo- porta la tensione di alimentazione della linea +PWR
rizzazione del clock e via di seguito. sulla base del transistor Q1, il quale passa dalla
A rendere ancora più suggestivo il progetto, c’è condizione di interdizione alla saturazione e, me-
la particolare visualizzazione che fa avvicendare diante il partitore resistivo R2-R3, alimenta la rete
le combinazioni di LED illuminati con una velocità di temporizzazione del monostabile U1. Rilasciando
decrescente, esattamente come un dado lanciato il pulsante, il transistor NPN rimane polarizzato
rotola sempre più lentamente, fino a fermarsi con e in conduzione per un periodo che dipende dalla
una faccia rivolta verso l’alto. costante di tempo:

SCHEMA ELETTRICO  = C1xR1


Ma andiamo a vedere com’è fatto e in che modo
funziona il circuito che realizza il dado elettronico, ossia fin quando la tensione ai capi di questo bipolo
appoggiandoci allo schema elettrico proposto in non scende abbastanza da non consentire più la
queste pagine, dal quale possiamo desumere la polarizzazione del Q1, ovvero da rendere la tensio-
struttura dell’insieme: i LED vengono pilotati dalle ne tra base e massa inferiore alla soglia di funzio-
uscite del contatore decimale U2, opportunamen- namento del bistabile, aumentata della minima
te collegate mediante diodi che consentono una Vbe del transistor (tipicamente 0,6V). A riguardo va
determinata visualizzazione, ed il contatore riceve notato che nella curva di scarica del condensatore,
il clock da un generatore di segnale rettangolare a dopo un tempo pari a  la tensione tra le armature
frequenza variabile implementato con il popolare scende di 0,632 volte rispetto alla tensione iniziale
timer integrato NE555 (o equivalente) impiegato (con S1 chiuso).
nella configurazione da multivibratore astabile, ma Per capire quale sia l’effetto del transitorio di
disattivato in condizioni normali (a transitorio esau- accensione del Q1, bisogna analizzare il funziona-
rito) e reso operativo solamente dalla pressione del mento del multivibratore astabile basato sul 555

48
(IC1), con la precisazione che questo stadio, sep- Voltage) il che permette, quando occorre, di alterare
pure costantemente alimentato, genera il proprio le tensioni di riferimento dei comparatori, così da
segnale d’uscita solamente quando i piedini 7, 2, 6 controllare con una tensione esterna la frequenza
sono posti ad un livello di tensione minimo. di lavoro nella configurazione astabile (operando lo
Per comprendere il funzionamento dell’astabile shift di frequenza come si fa negli oscillatori con-
è opportuno riepilogare come funziona il 555 e trollati in tensione) oppure la durata degli impulsi in
prima ancora vedere cosa c’è all’interno di questo quella da timer (monostabile). Nel nostro circuito il
integrato, cosa per la quale ci viene utile lo schema piedino 5 non lo abbiamo utilizzato.
a blocchi proposto nella Fig. 1: questo integrato Notate che essendo le resistenze del partitore di
contiene due comparatori aventi in comune un par- uguale valore, il comparatore superiore ha l’ingres-
titore di tensione a scala di resistenze che fornisce so invertente polarizzato con 2/3 della tensione
il riferimento di tensione ai due operazionali interni, che alimenta il piedino 8 del 555 e quello inferiore
ciascuno connesso come comparatore; all’opera- ha il non-invertente a 1/3 della stessa Vcc.
zionale superiore polarizza l’ingresso invertente, La configurazione qui adottata per il 555 è decisa-
mentre a quello inferiore fornisce il riferimento al mente diversa da quella canonica suggerita dal co-
non-invertente. I termini superiore e inferiore si struttore dell’integrato nel datasheet e serve, come
riferiscono al potenziale di riferimento che ricevono accennato, per ottenere una frequenza descre-
dal partitore, quindi quello superiore riceve il poten- scente e l’arresto ad una certa soglia di tensione, la
ziale più elevato. quale, come vedremo tra breve, dipende dallo stato
Dei suddetti comparatori, vengono resi accessibili dei comparatori interni all’integrato.
dall’esterno gli ingressi non-invertente di quello Le uscite dei comparatori comandano una il RESET
superiore, corrispondente al piedino 6 (THR, ossia (quella del comparatore superiore) e l’altra il SET
Threshold) e l’invertente di quello superiore, corri- (comparatore inferiore) di un flip-flop di tipo RS,
spondente al piedino 2 (TRIG, ossia Trigger). Il nodo che è un circuito logico la cui uscita diretta (Q) va a
tra la prima e la seconda (considerate dall’alimenta- livello alto (corrispondente a circa il potenziale del
zione positiva) resistenza del partitore di riferimen- piedino 8) quando il SET è a livello alto, ovvero as-
to dei due comparatori (alimentato, come il resto sume lo zero logico se SET è posto a circa zero volt;
degli stadi interni al 555, dal piedino 8) viene por- l’uscita presenta un comportamento esattamente
tato all’esterno tramite il piedino 5 (CONT, Control opposto quando ad essere eccitato è l’ingresso

 Fig. 1
Schema a
blocchi del
timer 555.

49
 Fig. 2 RESET, il quale, posto a livello logico alto, resetta il tore C2 scarico e quindi la differenza di potenziale
Schema flip-flop, intendendo con ciò che ne azzera lo stato tra i suoi capi è nulla. Sia il trigger (piedino 2) che il
interno e
diagramma di Q. Threshold (6) si trovano a zero volt e quindi l’uscita
di funziona- Il flip-flop ha anche un’uscita complementata (/Q), del comparatore inferiore è a livello alto; ciò deter-
mento del
CD4017.
la cui condizione logica è sempre l’inverso di quella mina il livello logico alto sull’ingresso SET del flip-
Q; nel 555 è collegata, tramite una resistenza, alla flop e lo stesso sull’uscita Q (la /Q si porta a zero
base di un transistor NPN configurato ad open logico lasciando interdetto il transistor collegato
collector il cui emettitore è connesso a massa e il al Discharge e quindi il condensatore libero di cari-
collettore al piedino DIS (7, ossia Discharge). carsi). L’uscita del comparatore superiore è a livello
Tale transistor può commutare una corrente dell’or- basso, perché il piedino 6 (input non-invertente) è
dine dei 200 mA, in modo sink (ad assorbimento di anch’esso a zero volt; il Reset del comparatore è
corrente da parte del suo collettore). L’uscita diretta, inattivo.
Q, è invece collegata al piedino OUT (3) dell’integra- Questa condizione si mantiene fin quando Q1 è
to attraverso un buffer interno push-pull, capace di interdetto e l’uscita del 555 rimane a livello logico
erogare un massimo di 200 mA. alto.
Il negativo di alimentazione, vale a dire la massa Quando viene premuto S1 e per un certo intervallo
di riferimento del 555 corrisponde al piedino 1, di tempo conseguente il rilascio, questa situa-
mentre al 4 è connesso il reset a logica invertita zione viene sbloccata: con il pulsante premuto,
del flip-flop: questo piedino permette di resettare l’emettitore del Q1 fornisce al partitore R2-R3 un
forzatamente il circuito dall’esterno applicando un potenziale pari a quello di +PWR diminuito di 0,6V;
livello logico basso. ipotizzando un’alimentazione di 5 volt, il partitore
Ciò detto, andiamo a vedere come il nostro timer riceve circa 4,4V e quindi applica all’elettrolitico C3
555 è stato utilizzato nel circuito: la configurazione inizialmente una tensione pari a:
scelta è quella astabile, ma è un po’ particolare
perché nel nostro caso non c’è alcuna resistenza Vc = 4,4V x 470Kohm /480Kohm
collegata tra i pin 4-8 e il 7 ed i pin 2 e 6 sono colle-
gati direttamente al 7, oltre che terminanti a massa che praticamente è 4,4V, dato che R3 ha un valore
da un condensatore elettrolitico, che nello schema resistivo 47 volte quello di R2 (tale resistore ha il
è siglato C2. solo scopo di limitare il picco di corrente di emet-
Vediamo dunque come funziona questo circuito, ri- titore del Q1 quando il pulsante viene premuto e
ferendoci allo schema interno proposto nella Fig. 1 quando il pin 7 del 555 commuta a zero logico).
e supponendo che il transistor Q1 sia interdetto: in La carica del C2 è estremamente rapida e attiva
questa condizione possiamo ritenere il condensa- l’astabile, perché infatti ora la tensione sui piedini

50
2 e 6 supera le tensioni di soglia del comparatore rilevato uno stato logico alto (ovvero un passaggio
inferiore e di quello superiore; per effetto di ciò, 0/1 logico) da parte dell’ingresso di clock (CLK)
l’uscita del comparatore inferiore si porta a zero lo stato del contatore incrementa di 1, nel senso
logico e pone allo stesso livello il SET del flip-flop, che si porta a livello alto l’uscita di peso decimale
mentre quella del comparatore superiore attiva immediatamente successivo a quello dell’uscita
il reset dello stesso, la cui uscita commuta a zero attualmente attiva. Quindi, partendo dalla condi-
logico, ma essendo complementata si porta ad 1 zione di contatore resettato, inizialmente è a livello
(passa a zero il piedino 3) mandando in saturazione alto l’uscita Q0; un primo impulso di clock porta
il transistor interno collegato al piedino 7, il quale ad 1 logico l’uscita Q1, un secondo pone a livello
causa la scarica praticamente immediata del C2. alto la Q2 e via di seguito, fin quando non si conta
A questo punto l’uscita del comparatore inferiore il decimo impulso, che attiva la Q0, oltre il quale il
torna a livello logico alto e setta il flip-flop, che ri- conteggio riprende da 1 (grafico in Fig. 2). Le uscite
porta Q a 1 logico e /Q a zero. In questa condizione assumono lo stato alto una sola per volta.
il condensatore C3 prende a caricarsi attraverso R2 Per come abbiamo collegato il circuito, quando
perché il piedino 7 torna aperto. viene contato il settimo impulso, lo stato alto viene
La carica avviene nuovamente fino a 2/3 della riportato sul piedino di reset (RST) e il contatore
tensione applicata tra i piedini 1 e 8 del 555, quindi viene azzerato; pertanto il CD4017 conta fino a
il ciclo ricomincia, andando avanti a ripetersi finché, sette.
dopo il rilascio del pulsante S1, la tensione presente Per il controllo dei LED, che sono stati divisi in quat-
sull’emettitore del Q1 non scende al disotto del tro gruppi (tre da due diodi ed uno da un solo LED...)
minimo indispensabile per far commutare anche il sono state combinate le uscite del contatore Q0,
comparatore superiore. Il tempo dipende, come già Q2, Q3, Q4 e Q5, le quali pilotano ciascuna più di un
esposto, dalla costante di tempo di C1 e indicativa- LED attraverso dei diodi che funzionano da porta
mente si può dire che è dell’ordine di 4 secondi. logica OR, consentendo di pilotare i gruppi con più
Durante il calo della tensione ai capi del C1 e di di un’uscita evitando però che lo stato logico su
riflesso agli estremi del partitore R2-R3, la fre- un gruppo cortocircuiti altre uscite. Per esempio il
quenza di lavoro dell’U1 cala perché se è vero che LED1 può essere acceso dallo stato logico su Q0,
la scarica del condensatore C2 è quasi immediata Q2 ed anche Q5, quindi si illumina in corrisponden-
a prescindere dalla tensione di lavoro, la ricarica di- za del primo, terzo e quinto impulso.
pende dal tempo che la tensione applicata ai piedini La coppia LED2-LED3 si illumina in tutti i casi
2 e 6 impiega a superare la soglia di commutazio- eccetto quando è attiva Q5 (perché D4 ne collega
ne del comparatore superiore del 555 e siccome i catodi al pin 1 dell’U2) mentre LED4 e LED5 si
i riferimenti interni dei comparatori sono fissi e accendono in concomitanza con il livello logico alto
dipendono dal potenziale applicato al piedino 8 su almeno una delle uscite Q0, Q3 e Q4.
mentre il partitore R2-R3 viene alimentato da una Infine, la coppia LED6-LED7 si illumina quando è a
tensione decrescente, a parità di capacità dell’elet- livello logico la sola uscita Q4.
trolitico si hanno dei tempi di commutazione via-via Questa soluzione consente di mantenere accesi
più lunghi. più LED e quindi di comporre un numero di pallini
Per effetto di ciò abbiamo l’uscita OUT dell’integra- luminosi superiore ad 1, come invece avverrebbe
to che si mantiene a livello alto per periodi sempre se ciascun gruppo venisse pilotato esclusivamente
più lunghi e quindi impulsi a frequenza progressi- da un’uscita, perché il CD4017, lo ricordiamo, attiva
vamente decrescente, fino al blocco del piedino 3 una sola uscita alla volta.
sul livello logico alto. Questo significa l’arresto del Simuliamo, insomma, quello che il contatore fareb-
clock per il contatore decimale U2 e al mancare del be componendo numeri su un display a segmenti.
segnale di clock il CD4017 mantiene attiva l’uscita Ogni LED o coppia di LED è dotata di una resistenza
corrispondente all’ultimo valore contato. in serie per limitarne la corrente diretta: R4 per
Visto che siamo passati al CD4017, vediamo come LED1, R5 per LED2-LED3, R6 per LED4-LED5
funziona e in che modo pilota il visualizzatore a ed R7 per LED6-LED7. Notate inoltre che la sola
sette LED: tale integrato è un decade counter e coppia LED2-LED3 ha il catodo rivolto verso l’uscita
dispone di 10 uscite, di peso crescente da 1 a 10, corrispondente del CD4017 e pertanto è attiva
che sono nell’ordine Q1, Q2, Q3, Q4, Q5, Q6, Q7, sempre, eccetto quando ad essere a livello alto è
Q8, Q9, Q0. Partendo dall’istante del reset (che può l’uscita Q5.
essere forzato o all’accensione) ogni volta che viene Il circuito del dado elettronico si alimenta tra i

51
piano di MONTAGGIO

Elenco Componenti:

R1, R3: 470 kohm 1%


R2: 10 kohm 1%
R4: 330 ohm
R5, R6, R7: 100 ohm
D1, D2, D3, D4, D5, D6, D7, D8: 1N4148
LED1, LED2, LED3, LED4, LED5, LED6, LED7:
LED 5 mm rosso
Q1: S9014
C1: 47 µF 63 VL elettrolitico
C2: 4,7 µF 63 VL elettrolitico
S1: Microswitch
U1: NE555
U2: CD4017

Varie:
- Zoccolo 4+4
- Zoccolo 8+8
- Pin strip maschio 2 vie
- Circuito stampato S1669 (70x24 mm)

contatti + e – PWR, cui va applicata una tensione sante e i condensatori, prestando attenzione alla
continua di valore compreso fra 3 e 6 volt, preleva- polarità dei due elettrolitici, quindi procedete con
ta da una fonte in grado di erogare almeno 100 mA. lo zoccolo dip 4+4 contatti per il 555 e con quello
a 8+8 poli per il CD4017 (in tal caso inserirete gli
REALIZZAZIONE PRATICA integrati una volta saldati tutti gli altri componenti).
Bene, esplicata la teoria, passiamo adesso alla par- Passate quindi ai sette LED (per il corretto orienta-
te pratica del progetto: il nostro gadget si realizza mento ricordate che il catodo è l’elettrodo dal lato
molto semplicemente partendo dal circuito stam- smussato del contenitore) e al pin-strip a 2 poli per
pato, che è del tipo a doppia faccia e va ottenuto l’alimentazione (PWR).
per fotoincisione, seguendo le tracce lato rame Per l’orientamento dei componenti polarizzati
scaricabili dal nostro sito www.elettronicain.it; dalle fate riferimento al disegno di montaggio visibile in
tracce, ovvero da stampe dei file corrispondenti queste pagine.
su carta da lucido o foglio di acetato trasparente, Una volta completato il montaggio e verifica
potete ricavare le pellicole con cui impressionare l’esattezza, il vostro dado elettronico è pronto per il
la basetta (procuratevi una presensibilizzata, che gioco: inseritelo in un piccolo contenitore in plastica
rende più facile il lavoro). Visto che talvolta le vie dal quale lasciar uscire il pulsante e la cima dei

di interconnessione tra i due lati sono la parte sette LED e siete pronti a utilizzarlo.
critica che ostacola l’autocostruzione, una solu-
zione più semplice è quella di utilizzare il servizio
PCBPRODUCTION, disponibile dal sito di Futura
Elettronica, per farvi realizzare il circuito stampato.
Comunque l’abbiate ottenuto, una volta che avete
inciso e forato il circuito stampato dovete iniziare
il montaggio dei componenti, che sono tutti a foro
Cosa occorre?
passante (THT=Through Hole Technology) e quindi
di facile gestione da parte anche di chi ha poca Il dado elettronico presentato in questo articolo (cod. HR3042)
è disponibile in scatola di montaggio a Euro 7,00. I prezzi si
esperienza e attrezzatura essenziale: bastano
intendono IVA compresa.
un saldatore a stagno e del filo di lega saldante,
oltre a un tronchesino per elettronica per tagliare
Il materiale va richiesto a:
l’eccedenza dei reofori. Iniziate il montaggio con le
resistenze, i diodi al silicio (1N4148, che vanno tutti Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - www.futurashop.it
orientati con il catodo opposto al CD4017) il pul-

52
LA TENSIONE DI RETE
OVUNQUE TU SIA
INVERTER DA 12 VDC A 220 VAC CON FORMA D’ONDA D’USCITA SINUSOIDALE PURA O MODIFICATA
DOTATI DI PROTEZIONE DA SOVRACCARICO, SOVRATENSIONE D’INGRESSO, CORTOCIRCUITO
E ALLARME BATTERIA SCARICA. DISPONGONO DI USCITA USB SUPPLEMENTARE (5 V – 500 mA),
PRESA DI TIPO SCHUKO E CAVI PER IL COLLEGAMENTO ALLA BATTERIA.

FORMA D’ONDA MODIFICATA

300W 600W 1500W

cod. FR670M300 cod. FR670M600 cod. FR670M1500

€ 48 ,00
€ 69 ,00
€ 148,00
INVERTER DA 12VDC A 220VAC/300W INVERTER DA 12VDC A 220VAC/600W INVERTER DA 12VDC A 220VAC/1500W
CON PRESA USB E DISPLAY A LED CON PRESA USB E DISPLAY A LED CON PRESA USB E DISPLAY A LED
• Tensione di ingresso: 12 Vdc nominali • Tensione di ingresso: 12 Vdc nominali • Tensione di ingresso: 12 Vdc nominali
• Tensione di uscita: 220-240 VAC – 50 Hz • Tensione di uscita: 220-240 VAC – 50 Hz • Tensione di uscita: 220-240 VAC – 50 Hz
• Allarme batteria scarica: 10,5-11,5 Vdc • Allarme batteria scarica: 10,5-11,5 Vdc • Allarme batteria scarica: 10,5-11,5 Vdc
• Dimensioni (mm): 175x112x56 • Dimensioni (mm): 205x112x58 • Dimensioni (mm): 270x150x70
• Peso: 612 grammi • Peso: 760 grammi • Peso: 1.890 grammi

FORMA D’ONDA PURA


IDEALE
SU CAMPER,
CAMION, ROULOTTE,
300W 600W
PER ALIMENTARE TV,
VCR, PC E MOLTO
ALTRO!
cod. FR668P300 cod. FR668P600

€ 98 ,00
€ 178,00
INVERTER DA 12VDC A 220VAC/300W INVERTER DA 12VDC A 220VAC/600W
CON PRESA USB CON PRESA USB E DISPLAY A LED
• Tensione di ingresso: 12 Vdc nominali • Tensione di ingresso: 12 VDC nominali
• Tensione di uscita: 220-240 VAC – 50 Hz • Tensione di uscita: 220-240 VAC – 50 Hz
• Allarme batteria scarica: 10,5-11,5 Vdc • Allarme batteria scarica: 10,5-11,5 Vdc
• Dimensioni (mm): 205x112x60 • Dimensioni (mm): 220x115x55
• Peso: 880 grammi • Peso: 980 grammi

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
Easy to Program
MICRO:BIT È UNA PICCOLA SCHEDA
DI SVILUPPO CHE INTEGRA
UN MICROCOMPUTER A 32 BIT;
PUÒ ESSERE UTILIZZATA PER IMPARARE
LE BASI DELLA PROGRAMMAZIONE
ED È ADATTA A TUTTE LE ETÀ.

Prezzi IVA inclusa.

cod. MICROBITGOV2 UTILIZZALA SUBITO CON IL NUOVO SET!

€ 37 ,00 Set con tutto quello che serve per chi - la scheda micro:bit
vuole muovere i primi passi nel campo - due pile ministilo AAA
della programmazione con micro:bit. - un cavetto USB-micro USB
Il set comprende: - un portapile

ROBOT MAQUEEN LITE


Mini robot didattico programmabile basa-
to su micro:bit. Maqueen Lite è compatibi-
le con micro:Bit V1 e V2 e può essere pro-
grammato utilizzando la piattaforma di
programmazione grafica Mind+ di DFRO-
cod. DFMAQUEENLB cod. DFMAQUEENLW
BOT oppure MakeCode. Il robot viene
fornito completamente assemblato! Sarà Blu € 57 ,90
Bianco € 57,90
necessario aggiungere solo le batterie e
la scheda micro:bit (acquistabili separata-
mente) e programmarlo con uno dei molti
esempi presenti nella Wiki page. Dispone
di connettore per l’inserimento della sche-
da micro:bit, 2 motori in miniatura con
ingranaggi in metallo, 2 ruote in ABS con
pneumatico in gomma, 2 sensori ad infra-
rossi, un buzzer, un ricevitore a infraros-
si, 2 luci a LED, 4 LED RGB, un sensore di cod. DFMAQUEENLR cod. DFMAQUEENLG

€ 57 ,90
€ 57,90
distanza ad ultrasuoni, un portabatteria e
una mappa per l’inseguimento della linea. Rosa Verde

Futura Group srl


Caratteristiche tecniche di questi prodotti
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
DIDATTICA

EMULATORE 555
CON MICROCONTROLLORE

VS

del Prof. MICHELE MENNITI

A
bbiamo trattato diverse volte il timer
Confrontiamo, a 555 sulle pagine di questa rivista,
scopo didattico, un approfondendo sia gli aspetti teorici
(n. 255 Introduzione al timer 555), che
Timer 555 con l’analisi circuitale (n. 266 Analizzatore
un microcontrollore per 555); abbiamo inoltre presentato
molti circuiti basati su questo integrato
ATtiny85 estremamente versatile (n. 267 e n. 268 Circuiti test per Ana-
programmato lizzatore, n. 269 Light Control). Sono proprio la versatilità e la
semplicità realizzativa e funzionale che hanno fatto di questo
per emulare il circuito integrato uno dei più longevi della storia dell’Elettro-
funzionamento del nica, visto che è stato prodotto per la prima volta nel 1972,
ossia più di 50 anni fa; inoltre nel tempo è stato riprogettato
famoso timer. anche in tecnologia CMOS, con tensione di alimentazione

55
 Fig. 1
L’organizzazione
interna del timer
555

più bassa, minore consumo e maggiore frequenza LE CONFIGURAZIONI BASE DEL TIMER 555
operativa. Diamo un rapido sguardo alle tre configurazioni
Vediamo le principali caratteristiche del modello base del timer 555, iniziando dalla sua organizza-
standard, aggiungendo tra parentesi quelle della zione interna (Fig. 1).
versione CMOS: In pratica ci sono due comparatori di tensione
• Alimentazione: 5÷15 V (3÷16 V); interni le cui uscite pilotano un LATCH SET-RESET,
• Frequenza massima: 200 kHz (500 kHz); la cui uscita negata (Q’) pilota contemporaneamente
• Corrente massima in uscita: 200 mA (100 mA). una porta invertente e un transistor NPN in confi-
gurazione a collettore aperto. In base al rapporto
555 VS MICROCONTROLLORE tra le tensioni applicate agli ingressi 2 (SOGLIA) e
Abbiamo pensato, a scopo didattico, di fare un 6 (TRIGGER) dei due comparatori (in genere il pin 5
confronto tra il timer 555 ed un piccolo microcon- CONTROLLO non viene utilizzato) il LATCH porta su
trollore, programmando quest’ultimo per emulare HIGH o LOW l’uscita Q’. Nel primo caso il transistor
il funzionamento del 555, per valutare pro e contro NPN va in saturazione ed il pin 7 (SCARICA) viene
delle due configurazioni. È chiaro che se avessimo cortocircuitato a massa, mentre l’USCITA sul pin
utilizzato il microcontrollore sfruttando tutte le sue 3 si trova a livello LOW, in quanto il livello HIGH in
potenzialità, il confronto sarebbe stato iniquo, ecco ingresso all’inverter viene appunto invertito.
perché abbiamo cercato di metterli alla pari, confi- Nel secondo caso il transistor NPN è interdetto,
gurandolo come emulatore. Nel prosieguo dell’arti- mentre l’USCITA va a livello HIGH. Per approfondi-
colo vedremo il comportamento del microcontrol- menti consigliamo la lettura dell’articolo presentato
lore durante l’emulazione delle tre configurazioni sul n. 255, già citato in precedenza.
standard del timer 555: astabile, monostabile e Ma come funziona il comparatore? La risposta ci
bistabile, dimostrando che in linea teorica potrebbe viene data dalla Tabella 1, che riporta la cosiddetta
sostituirlo senza particolari problemi, e spiegando tavola della verità o tabella funzionale (semplificata
quali sono i miglioramenti che esso può apportare rispetto a quella del datasheet) cioè il comporta-
con la propria tecnologia. mento delle uscite dell’integrato in base allo stato

 Tabella 1
Tabella funzionale
del timer 555.

56
degli ingressi. La prima colonna serve esclusiva- che si ha un funzionamento a ciclo continuo, con
mente per fornire un riferimento esplicito ad ogni alternanza degli stati HIGH e LOW dell’USCITA;
riga. Come si può notare nella riga 1, il pin 4 (RESET quindi le due condizioni sono instabili, ed è questa
del 555) se posto a livello logico basso, fissa la ragione per la quale questo tipo di configurazio-
l’USCITA (pin 3) su LOW e le tensioni o segnali ap- ne viene definita ASTABILE.
plicati sui pin SOGLIA e TRIGGER vengono ignorati, In Fig. 3 abbiamo riprodotto la configurazione
quindi questo pin può essere utilizzato per blocca- monostabile.
re temporaneamente l’attività del 555. Se invece Da notare che in questo caso l’ingresso SOGLIA è
viene fissato su HIGH (collegandolo all’alimenta- scollegato dal TRIGGER ed è invece collegato al pin
zione del circuito) abbiamo tre possibili condizioni: SCARICA.
1. TRIGGER < 1/3 VCC: SCARICA OFF (quindi scol- Al momento dell’accensione il TRIGGER si trova ad
legata dalla massa) e USCITA HIGH (poco meno un livello maggiore di 1/3 VCC a causa del resistore
di VCC), la tensione applicata al pin SOGLIA è di pull-up R1 e l’USCITA è bassa (LOW), con conse-
irrilevante; guente accensione di LD2. Contestualmente il pin
2. TRIGGER > 1/3 VCC e SOGLIA > 2/3 VCC: SCARI- SCARICA è collegato a massa e mantiene a livello
CA ON (quindi collegata a massa) e USCITA LOW LOW il pin SOGLIA, impedendo al condensatore CX
(circa 0 V); di caricarsi, in quanto la corrente che attraversa RX
3. TRIGGER > 1/3 VCC e SOGLIA < 2/3 VCC: SCARI- finisce direttamente a massa; pertanto, finché non
CA e USCITA non cambiano lo stato attuale fino interviene un fattore esterno, si ha un comporta-
a che non si verifica una delle due precedenti mento stabile.
combinazioni. Il fattore esterno è dato dalla pressione del

Quindi, ovviamente, il comportamento dei pin di


uscita del 555 dipende dallo stato dei pin di ingres-
so. I riferimenti del comparatore sono espressi in
frazioni di VCC, in quanto l’alimentazione, come  Fig. 2
abbiamo detto, ha un elevato range di valori, per Il timer 555 in
cui essi variano al suo variare. configurazione
astabile
Vediamo ora lo schema base della configurazione
astabile, caratterizzata dal fatto che trasforma il
555 in un oscillatore a frequenza fissa (Fig. 2).
Il funzionamento è abbastanza semplice. Al mo-
mento dell’accensione del circuito CX è scarico, il
pin TRIGGER (TRI collegato assieme a SOGLIA TRE)
si trova pertanto ad un livello inferiore ad 1/3 VCC,
si verifica la condizione della riga 2 della Tabella 1
e di conseguenza l’USCITA (OUT) è alta (HIGH), con
accensione di LD1. Poiché contemporaneamente
il pin SCARICA (DIS) è scollegato dalla massa, inizia
la carica del condensatore CX, mediante la corrente
che passa attraverso RA ed RB, e la tensione sugli
ingressi inizia gradualmente a salire; quando essa
supera i 2/3 VCC, si verifica la condizione della riga
3 della Tabella 1, l’USCITA diventa bassa (LOW),
con conseguente spegnimento di LD1 ed accensio-
ne di LD2; inoltre ora il pin SCARICA viene colle-
gato alla massa e CX inizia a scaricarsi attraverso
il solo resistore RB, e la tensione sugli ingressi  Fig. 3
Il timer 555 in
ricomincia a diminuire, portandosi al di sotto di configurazione
2/3 VCC; si verifica quindi la condizione della riga 4 monostabile
della Tabella 1, e lo stato dell’USCITA non cambia.
Quando la tensione scende nuovamente al di sotto
di 1/3 VCC l’USCITA ritorna alta, per cui è evidente

57
costante di tempo risultante dai valori di RX e CX.
 Fig. 4 Ecco la ragione per la quale questo tipo di configu-
Il timer 555 in confi- razione viene definita MONOSTABILE.
gurazione bistabile.
In Fig. 4 abbiamo riprodotto la configurazione
bistabile.
Anche in questo caso l’ingresso SOGLIA è scolle-
gato dal TRIGGER, ma questa volta il pin SCARICA
resta inutilizzato, poiché nel circuito non ci sono
condensatori, infatti questa configurazione non
prevede alcuna temporizzazione, ma solo due stati
logici stabili.
Al momento dell’accensione il TRIGGER si trova ad
un livello maggiore di 1/3 VCC, a causa del resisto-
re di pull-up R2, l’USCITA si trova inizialmente al
pulsante S1, che cortocircuita il TRIGGER a massa, livello LOW (fase STOP); La SOGLIA si trova ad un
portandolo ad un livello inferiore a 1/3 VCC, si veri- livello minore di 2/3 VCC, e questa combinazione,
fica quindi la condizione della riga 2 della Tabella 1 in base alla riga 4 della Tabella 1, non provoca
e l’USCITA diventa alta (HIGH), si spegne LD2 e si cambi di stato; a conferma di ciò il LED LD2 risulta
accende LD1. Rilasciando il pulsante il TRIGGER costantemente acceso.
ritorna a livello maggiore di 1/3 VCC. Il pin SCARICA Se si preme il pulsante S2 (STOP) la SOGLIA viene
intanto è stato scollegato dalla massa e la corrente portata ad un livello maggiore di 2/3 VCC, e ci
che attraversa RX inizia a caricare il condensatore si trova nella condizione prevista dalla riga 3
CX, quindi la tensione sulla SOGLIA inizia gradual- della Tabella 1, quindi lo stato dell’USCITA non
mente a salire. cambia perché si trova già a livello LOW. Se invece
Durante tutta la fase di carica l’USCITA si mantiene si preme il pulsante S1 (START) il TRIGGER viene
alta, in quanto, come abbiamo visto, la combina- portato ad un livello minore di 1/3 VCC, e ci si trova
zione TRIGGER > 1/3 VCC e SOGLIA < 2/3 VCC (riga nella condizione della riga 2 della Tabella 1, quindi
4 della Tabella 1) non provoca modifiche di stato. l’USCITA diventa HIGH, si spegne il LED LD2 e si
Nel momento in cui il condensatore è abbastanza accende LD1. Rilasciando S1 la combinazione degli
carico da avere ai suoi capi (e quindi sulla SOGLIA) ingressi ridiventa quella della riga 4, e quindi anche
una tensione maggiore di 2/3 VCC, si verifica la questo stato è stabile. Poiché entrambi gli stati
combinazione della riga 3 della Tabella 1, e avviene dell’USCITA restano stabili finché non si interviene
la nuova commutazione dell’USCITA a livello basso premendo uno dei due pulsanti, questo tipo di
(LOW), il condensatore si scarica istantaneamente configurazione viene definita bistabile.
attraverso il pin SCARICA, ora collegato nuova-
mente a massa; tale condizione resterà stabile fino EMULARE IL 555 CON UN ATTINY
ad una nuova pressione del pulsante. Riepilogando, Per realizzare l’emulatore del timer 555 abbiamo
mentre lo stato di USCITA bassa è stabile, quello di utilizzato un piccolo microcontrollore, della famiglia
USCITA alta è instabile, in quanto dipendente dalla AVR ATtiny, precisamente l’ATtiny85P, per le cui
caratteristiche rimandiamo al datasheet presente
sul sito del produttore Microchip, e precisamente
al link https://www.microchip.com/en-us/product/
ATtiny85#document-table. Poiché possiamo
considerarlo un fratello minore del celeberrimo
ATMega328P, cuore dell’Arduino UNO, questo
microcontrollore si può programmare con l’IDE di
Arduino, mediante tecnica ISP, come vedremo nella
parte dedicata alla sua programmazione.
Trattandosi di un articolo didattico abbiamo
 Tabella 2
Corrispondenza realizzato un emulatore concettuale, quindi
dei pin tra il 555 bisogna considerare che alcuni comportamenti
e l’ATtiny85.
non saranno identici e le formule tipiche di calcolo
delle tempistiche non sono applicabili, anche se in

58
qualche caso i risultati possono essere simili. pin RESET e CONTROLLO in emulazione è diverso
Nella Tabella 2 abbiamo riportato la corrisponden- dai corrispondenti dei 555. Il RESET del 555 si
za dei pin del timer 555 con quelli del microcontrol- limita a mantenere bloccato il timer, mentre quello
lore emulatore. del microcontrollore non lo fa proprio funzionare;
Descriviamo questa tabella: il CONTROLLO del 555 è collegato ai comparatori
• i pin di alimentazione V+ e GND dei due inte- interni e permette di agire sul range di intervento,
grati sono fissi e non modificabili; per esempio aggiungendo un resistore tra il pin
• il TRIGGER del 555 corrisponde al pin analogi- stesso e la massa, mentre il corrispondente D2
co A2, collegato al pin 3 dell’ATtiny85; può essere solo collegato direttamente al positivo
• l’USCITA del 555 corrisponde al pin digitale D1, di alimentazione o alla massa per settare un range
collegato al pin 6 dell’ATtiny85; prestabilito via firmware, identico o diverso da
• il RESET del 555 corrisponde all’equivalente quello tipico del 555.
pin dell’ATtiny85, collegato al suo pin1; Per l’emulazione dei pin d’ingresso SOGLIA e TRIG-
• il CONTROLLO del 555 corrisponde al pin digi- GER abbiamo fatto ricorso a due pin analogici del
tale D2, collegato al pin 7 dell’ATtiny85; micro, mentre per i pin USCITA e SCARICA servono
• la SOGLIA del 555 corrisponde al pin analogi- due pin digitali. Mentre l’USCITA può essere uti-
co A3, collegato al pin 2 dell’ATtiny85; lizzata direttamente come tale, l’emulazione della
• la SCARICA del 555 corrisponde al pin digitale SCARICA ha richiesto l’aggiunta di un transistor
D0, collegato al pin 5 dell’ATtiny85. NPN esterno, che in pratica ha lo stesso compor-
tamento di quello integrato nel 555.
Come si può notare non c’è alcuna corrispondenza
pin-to-pin, e d’altra parte sarebbe stata impossibi- CIRCUITI DI TEST
le da realizzare. Inoltre il reale comportamento dei Abbiamo approntato 4 circuiti per testare il nostro

IL LABORATORIO
VICINO AI SUOI CLIENTI
Il laboratorio di collaudo
e certificazione che rende
l’immissione dei prodotti
sul mercato semplice,
veloce e sicura.

Per tutti i settori si eseguono:


• prove di conformità durante
il processo di certificazione
• sessioni di pre-testing durante
le fasi di progettazione del prodotto
• prove per il controllo di produzione
durante tutta la vita del prodotto

www.sicomtesting.com 59
 Fig. 5
Lampeggiante
a due LED.

emulatore 555, per i primi tre vedremo lo schema re più chiara l’equivalenza tra di essi.
elettrico a confronto con l’equivalente circuito Il funzionamento del circuito basato sul 555 è
originale, mentre per tutti e quattro illustreremo quello della configurazione astabile descritta all’ini-
la realizzazione su una breadboard, affinché si zio, per cui il gruppo R1-R2-C1 serve per generare
possano replicare agevolmente i nostri test; inoltre la frequenza di oscillazione e quindi di lampeggio
riportiamo i valori di tensione, frequenza o tempo dei due LED LD1 e LD2. Il pin RESET, normalmente
ottenuti da noi, per fornire un riferimento certo. collegato a +5 V, mediante lo switch S1 può essere
collegato a massa, bloccando il funzionamento del
Circuito n. 1: Lampeggiante a 2 LED circuito e lasciando acceso il solo LED rosso LD2.
Questo circuito emula la configurazione astabile, Nel circuito basato sul microcontrollore abbia-
nel momento in cui viene alimentato inizia auto- mo gli stessi valori RC, che danno origine ad una
maticamente l’accensione alternata dei due LED temporizzazione simile ma non uguale a quella del
rosso e giallo, con frequenza dipendente dal grup- circuito originale, a motivo delle differenti impe-
po RC utilizzato. In Fig. 5 mettiamo a confronto lo denze interne dei due integrati.
schema del circuito originale basato sul timer 555 La particolarità del circuito basato sull’ATtiny85 è
e quello realizzato con il microcontrollore. nell’emulazione del pin SCARICA, ottenuto median-
I componenti che svolgono la stessa funzione nei te il transistor NPN T1 che, nel momento in cui il
due circuiti hanno sigla identica, in modo da rende- pin 5 del micro viene portato a livello HIGH, va in

60
conduzione e scarica istantaneamente il conden-
satore C1 (SCARICA ON); viceversa, quando il pin
 Tabella 3
5 è su LOW, il transistor T1 è interdetto e C1 può Comparazione
caricarsi. All’accensione il firmware imposta l’USCI- frequenze tra
circuito originale
TA su LOW (LED rosso LD2 acceso) e la SCARICA ed emulatore.
su ON (transistor T1 in conduzione), quindi i pin
TRIGGER e SOGLIA si trovano a livello < 1/3 VCC.
Questa condizione (riga 2 della Tabella 1) por-
ta istantaneamente ad un cambio di stato, con
l’USCITA su HIGH (LED giallo LD1 acceso) e la SCA-
RICA su OFF (transistor T1 interdetto), quindi C1
inizia a caricarsi tramite i due resistori in serie R1 e in quanto la fase HIGH dipende da R1-R2-C1 men-
R2. Fino a che la tensione ai capi di C1 non supera tre la fase LOW dipende da R2-C1.
i 2/3 VCC, i pin TRIGGER e SOGLIA si trovano nella Nella Tabella 3 abbiamo riportato le frequenze
condizione della riga 4 della tabella, quindi non ottenute col circuito originale del 555 e quelle
avviene alcun cambiamento. Nel momento in cui ottenute, con gli stessi valori RC, con l’ATtiny85.
la tensione ai capi di C1, e quindi sui pin TRIGGER Si può osservare come per i valori di capacità più
e SOGLIA, supera i 2/3 VCC, si verifica la condizio- alti le frequenze siano praticamente identiche,
ne della riga 3 della Tabella 1 ed avviene il nuovo mentre man mano che essi diminuiscono la diffe-
cambio di stato, con l’USCITA su LOW (LED rosso renza si accentua. Naturalmente avremmo potuto
LD2 acceso) e la SCARICA su ON, C1 inizia a scari- ottenere gli stessi valori con qualche modifica ma,
carsi tramite R1 e la giunzione C-E di T1. Fintanto come già spiegato, questo è un articolo con scopi
che la tensione ai capi di C1 non raggiunge 1/3 VCC, didattici, quindi è più utile comprendere che ci si-
i pin TRIGGER e SOGLIA si trovano nella condizione ano delle potenziali differenze. Per ottenere valori
della riga 4 della Tabella 1, quindi non avviene al- di frequenza simili a quelli del circuito originale,
cun cambiamento. Nel momento in cui la tensione sarebbe sufficiente diminuire leggermente il valore
ai capi di C1, e quindi sui pin TRIGGER e SOGLIA, di R1; per ottenere i valori identici si potrebbe so-
scende al di sotto di 1/3 VCC, si verifica la condi- stituire R1 con un trimmer o un potenziometro da
zione della riga 2 della tabella ed avviene il nuovo 10 kohm, tarandolo poi fino ad ottenere il risultato
cambio di stato, con l’USCITA su HIGH e la SCARICA desiderato. Bisogna come sempre considerare che
su OFF, e ricomincia il ciclo. La frequenza di lavoro replicando il circuito con gli stessi valori usati da noi
del circuito è data dalla somma del periodo dei due si potrebbero comunque ottenere lievi differenze,
stati logici dell’USCITA, che hanno diversa durata, dovute alle tolleranze del gruppo R1-R2-C1.

 Fig. 6
Il circuito del
lampeggiante
a due LED su
breadboard

61
caricare istantaneamente C1 e portare il circuito in
 Tabella 4 condizione di STOP.
Temporizzazione Nel circuito basato sul microcontrollore abbia-
in base ai valori
R1-C1. mo gli stessi valori RC, che danno origine ad una
temporizzazione simile ma non uguale a quella del
circuito originale, a motivo delle differenti impe-
denze interne dei due integrati. All’accensione i due
resistori di pull-up R1 e R2 portano la condizione
TRIGGER > 1/3 VCC e SOGLIA-SCARICA > 2/3 VCC,
quindi la riga 3 della Tabella 1, l’USCITA va a livello
LOW (LED rosso LD2 acceso) e la SCARICA su ON
In Fig. 6 abbiamo riprodotto i collegamenti effettua- (transistor T1 in conduzione); istantaneamente i
ti su breadboard nei nostri test su questo circuito. pin SOGLIA e SCARICA passano a livello < 2/3 VCC,
In questa immagine il pin RESET non è stato colle- mentre il TRIGGER resta > 1/3 VCC, questa è la
gato ad un deviatore, come prevedrebbe lo schema condizione della riga 4 della Tabella 1, e quindi lo
elettrico, ma è stato fissato al positivo di alimen- stato del circuito resta stabile finché non inter-
tazione; volendo sperimentare il funzionamento di viene un fattore esterno che, nel nostro caso, è il
questo pin, sarà sufficiente spostare il ponticello pulsante S2 (START). Premendo questo pulsante il
dal positivo al negativo dell’alimentazione e si TRIGGER viene portato a livello < 1/3 VCC e avvie-
vedrà che l’oscillazione si bloccherà all’istante ed i ne istantaneamente il cambio di stato, con l’USCI-
due LED si spegneranno. TA su HIGH (LED giallo LD1 acceso) e la SCARICA
In realtà il microcontrollore funziona anche senza su OFF; in queste condizioni C1 inizia a caricarsi
collegare il pin 1 all’alimentazione, infatti nei suc- tramite R1. Fino a che la tensione ai capi di C1 non
cessivi circuiti non lo abbiamo utilizzato. supera i 2/3 VCC, il circuito si trova nella condizione
della riga 4 della Tabella 1 e non interviene alcuna
Circuito n. 2: Timer a temporizzazione fissa variazione. Nel momento in cui la tensione ai capi
Questo circuito emula la configurazione monosta- di C1 supera i 2/3 VCC, con il TRIGGER > 1/3 VCC e
bile, nel momento in cui viene alimentato va auto- la SOGLIA > 2/3 VCC si verifica la condizione della
maticamente in condizione STOP, con l’accensione riga 3 della tabella ed avviene il cambio di stato:
del LED rosso LD2, e resta stabilmente in questa l’USCITA va su LOW (LED rosso LD2 acceso) e la
situazione finché non si preme il pulsante S2, SCARICA su ON, con T1 in conduzione e C1 che vie-
allorché l’uscita cambia di stato e va in START (ac- ne istantaneamente scaricato, mantenendo il pin
censione del LED giallo LD1), dando inizio al ciclo SOGLIA stabilmente a livello < 2/3 VCC; poiché il
di temporizzazione, al termine del quale il circuito TRIGGER è mantenuto a livello > 1/3 VCC da R2, si
torna nuovamente e stabilmente in condizione di verifica la condizione della riga 4 della Tabella 1, ed
STOP. In Fig. 7 mettiamo a confronto lo schema il circuito resta stabilmente in questo stato, fino ad
del circuito originale basato sul timer 555 e quello una nuova pressione di S2. Naturalmente anche in
realizzato con il microcontrollore. questo caso la durata della temporizzazione dipen-
I componenti che svolgono la stessa funzione nei de dal gruppo R1-C1. Il pulsante S1 (STOP) svolge
due circuiti hanno sigla identica, in modo da rende- la funzione di azzeramento della temporizzazione,
re più chiara l’equivalenza tra di essi. in quanto collegando C1 direttamente all’alimenta-
Il funzionamento del circuito basato sul 555 è zione, lo carica istantaneamente e di fatto anticipa
quello della configurazione monostabile descritta la fine del ciclo. Nella Tabella 4 abbiamo riportato
all’inizio, quindi all’avvio si ha una condizione stabi- alcuni esempi di temporizzazione del timer, in base
le di STOP, con l’USCITA a livello LOW e l’accensio- a diverse combinazioni R1-C1. Volendo ottenere
ne del LED rosso LD2. Alla pressione del pulsante delle tempistiche precise, si potrebbe diminuire il
S2 (START) l’USCITA passa istantaneamente a valore di R1 portandolo ad 1 kohm e poi aggiunge-
livello HIGH, con accensione del LED giallo LD1 ed re in serie ad esso un potenziometro o un trimmer
inizio della temporizzazione, la cui durata dipende da 22 kohm, con funzione di reostato; questo com-
dal gruppo R1-C1. Al termine del ciclo di temporiz- ponente permetterebbe di avere una escursione
zazione (C1 carico) il circuito torna automaticamen- lineare della temporizzazione, tra un minimo ed un
te in condizione di STOP. Il pulsante S1, se premuto massimo dipendenti dai valori utilizzati.
durante la fase di temporizzazione, permette di Una piccola nota riguarda il condensatore C2 da

62
 Fig. 7
Timer a
temporizza-
zione fissa.

220 uF sull’USCITA. Durante i nostri test abbia- Circuito n. 3: Commutatore START-STOP


mo notato che all’accensione, per un istante si Questo circuito emula la configurazione bista-
accendeva prima il LED giallo LD1 e poi stabilmen- bile. In realtà, rispetto alle due precedenti, non
te quello rosso. Nel nostro caso, trattandosi di un c’è alcuna differenza circuitale tra la versione
esempio dimostrativo, la cosa non ha particolare basata sul micro e quella originale del timer 555,
rilievo, ma in un circuito reale potrebbe causare in quanto non sono previste temporizzazioni. Nel
problemi, pensiamo per esempio se si volesse pilo- momento in cui viene alimentato, il circuito si
tare un relè, si avrebbe una commutazione iniziale mette stabilmente in condizione di STOP. Lo stato
indesiderata, seppur di breve durata. Abbiamo di questo circuito varia solo quando si preme il
allora aggiunto questo condensatore in parallelo pulsante che attiva la condizione opposta a quella
all’USCITA, che riesce ad assorbire questo breve attuale, quindi se è in fase STOP occorre premere
picco HIGH iniziale e fa accendere direttamente START, se è in fase START occorre premere STOP.
il LED giallo LD1. Precisiamo che il condensatore In Fig. 9 mettiamo a confronto lo schema del
non ha alcuna altra influenza sul funzionamento circuito originale basato sul timer 555 e quello
normale del circuito. realizzato con il microcontrollore.
In Fig. 8 abbiamo riprodotto i collegamenti ef- I componenti che svolgono la stessa funzione
fettuati su breadboard per i nostri test su questo nei due circuiti hanno sigla identica, in modo da
circuito. rendere più chiara l’equivalenza tra di essi. Il fun-

63
 Fig. 8
Il circuito del
temporizzatore su
breadboard.

 Fig. 9
Commutatore
START-STOP

64
 Fig. 10
Il circuito del
commutatore
su breadboard

zionamento del circuito basato sul 555 è quello basato sul 555, sul quale abbiamo sfruttato due
della configurazione bistabile descritta all’inizio, importanti peculiarità del microcontrollore. La
quindi all’avvio si ha una condizione stabile di prima consiste nella possibilità di alimentarlo ad
STOP, con l’USCITA a livello LOW e l’accensione una tensione più bassa di quella minima del timer
del LED rosso LD2. In questo stato la pressione 555 che, nella versione CMOS, parte da 3 V; la
del pulsante S1 (STOP) non influenza il circuito. seconda ci viene offerta proprio dalla possibilità di
Alla pressione del pulsante S2 (START) l’USCITA programmare il micro, impostando un comporta-
passa istantaneamente a livello HIGH, con accen- mento variabile a seconda delle nostre esigenze.
sione del LED giallo LD1, e resta stabile fino alla Nello specifico, ormai sappiamo bene che i
pressione del pulsante S1 (STOP), allorché cambia comparatori di tensione interni al 555 hanno due
di nuovo stato. Per quanto riguarda la versione in livelli di intervento, uno per il TRIGGER, che è di
emulazione col micro, il funzionamento è identico, 1/3 VCC (1,67 V circa nel caso di alimentazione
unica variante è il condensatore C1, aggiunto per a 5 V), ed uno per la SOGLIA, che è di 2/3 VCC
lo stesso motivo descritto nel circuito n. 2. (3,34 V circa, sempre nel caso di alimentazione
In Fig. 10 abbiamo riprodotto i collegamenti ef- a 5 V). Questi valori possono essere modificati
fettuati su breadboard per i nostri test su questo aggiungendo un resistore tra il pin CONTROLLO e
circuito. la massa; per esempio un resistore da 10 kohm
porterebbe i livelli rispettivamente ad 1/2 e 1/4
TIMER 555 E ATTINY85 A CONFRONTO VCC, ma si tratta comunque di valori simmetrici
Fino a questo punto abbiamo messo a confronto obbligati. Un microcontrollore invece permette
il timer 555 con un microcontrollore utilizzato di programmare queste due soglie a piacimento,
per emularlo. Lo scopo è stato quello di dimo- l’ATtiny85 da noi utilizzato è stato programmato
strare che un integrato di nuova generazione può per avere due coppie di livelli, una che è quella
sostituire senza particolari problemi un vecchio tipica del 555, e l’altra con livello di TRIGGER a
integrato. Chiaramente se questo fosse l’unico 1/5 VCC (1 V circa nel caso di alimentazione a 5 V)
vantaggio non avrebbe alcun significato, in parti- e livello di SOGLIA a 4/5 VCC (4 V circa nel caso di
colar modo per il timer 555, visto che è regolar- alimentazione a 5 V). Abbiamo deciso di utilizza-
mente prodotto ed a costi bassissimi, inoltre non re per comodità questi due livelli, ma potevano
necessita di programmazione e quindi chiunque essere benissimo asimmetrici, sarebbe bastato
potrebbe implementarlo facilmente in un circuito adottare altri valori nell’ADC. La commutazione
che necessiti delle sue funzionalità. tra le due coppie di valori avviene semplicemente
Vediamo allora quali altri vantaggi può offrire un mediante collegamento al positivo o al negativo
microcontrollore, affinché valga la pena usarlo di alimentazione di un pin del micro, al quale
al posto di un timer 555, quando si progetta un abbiamo dato il nome virtuale di CONTROLLO, in
circuito. Abbiamo realizzato un altro semplice riferimento all’equivalente pin del 555. Vediamo
schema, sempre partendo da quello originale quest’ultimo circuito.

65
 Fig.11
Comparatore di
tensione con
microcontrollore.

Circuito n. 4: Comparatore di tensione centrale a quello laterale collegato a V+.


Questo circuito controlla il livello di tensione Sui due pin d’ingresso si viene a trovare la
applicato ai pin SOGLIA e TRIGGER e accende il tensione di alimentazione e quindi abbiamo la
LED LD1 o LD2 in base al superamento dei due condizione TRIGGER > 1/3 V+ e SOGLIA > 2/3 V+,
livelli impostati, cioè quando la tensione diventa che corrisponde alla riga 3 della Tabella 1, di
maggiore del livello di SOGLIA oppure quando di- conseguenza l’USCITA va a livello LOW e si
venta minore del livello di TRIGGER. La variazione accende il LED rosso LD2. Iniziando a ruotare il
avviene mediante rotazione di un potenziometro potenziometro verso il capo opposto, la tensione
o un trimmer, utilizzato come partitore resistivo inizia a diminuire, ma fintanto che non scende al
variabile, ai cui estremi viene collegata l’alimen- di sotto di 1/3 V+, si ha la condizione della riga
tazione del circuito, ed il cui centrale è collegato 4 della tabella, quindi l’USCITA non cambia. Nel
contemporaneamente ai pin SOGLIA e TRIGGER. momento in cui si scende al di sotto di 1/3 V+, si
In Fig. 11 è visibile lo schema del circuito del verifica la condizione della riga 2 della Tabella 1
comparatore di tensione realizzato con il micro- ed avviene il cambio di stato dell’USCITA, che va
controllore. a livello HIGH, provocando l’accensione del LED
Descriviamo il funzionamento partendo dalla giallo LD1, e lo stato resta stabile anche ruotando
posizione del potenziometro che collega il suo pin il potenziometro fino ad avere 0 V. Ricominciando
a ruotare il potenziometro verso V+, lo stato con-
tinua a restare stabile fino a quando non si supera
il valore di 2/3 V+, perché si ha ancora la condi-
zione della riga 4. Solo quando la tensione sarà
> 2/3 V+ si verificherà nuovamente la condizione
 Tabella 5
I livelli di SOGLIA della riga 3 della Tabella 1 ed avverrà il nuovo
e TRIGGER col cambio di stato.
CONTROLLO.
Come spiegato in precedenza, abbiamo previsto
un deviatore che porta al pin 7 (CONTROLLO) del
micro la tensione di alimentazione V+ o il GND:
nel primo caso i livelli sono quelli tipici del 555,
 Tabella 6 nel secondo caso invece sono quelli alternati-
Temporizzazione in
vi, predisposti nel firmware. Il circuito è stato
base ai valori R1-C1
ed al pin alimentato prima con i canonici 5 V e successiva-
CONTROLLO. mente con due batterie AA in serie, per un totale
di 2,4 V. Nella Tabella 5 abbiamo riepilogato tutti
i livelli di SOGLIA e TRIGGER rilevati, in base alla

66
 Fig. 12
Il circuito del
comparatore su
breadboard.

tensione di alimentazione scelta per il circuito ed tato tale livello, nel caso della tensione a 5 V, da
alla posizione del deviatore S1. 3,34 V a 4 V, è ovvio che per raggiungerlo il con-
Per replicare questo interessante test, in Fig. 12 densatore dovrà essere caricato maggiormente,
abbiamo riprodotto i necessari collegamenti su impiegando più tempo. Per avere un’idea tangibile
breadboard. dell’influenza di questa opzione, abbiamo prepa-
La gestione del pin CONTROLLO è importante rato la Tabella 6, che è una versione estesa della
anche nei circuiti di tipo astabile e monostabile, in precedente Tabella 4, che contiene le temporiz-
quanto la differenza di valore dei livelli di SOGLIA zazioni del circuito n. 2 (Timer a temporizzazione
e TRIGGER incide sulle tempistiche legate ai grup- fissa) alimentato a 5V.
pi RC. Infatti, se con i valori standard trascorre un Confrontando i valori si può notare come l’amplia-
certo periodo di tempo affinché un condensatore mento dei livelli abbia comportato un aumento
raggiunga il livello 2/3 VCC, avendo noi aumen- delle tempistiche del 50% o oltre.

 Fig. 13
Aggiunta
delle board
ATtiny.

67
PROGRAMMAZIONE
 Listato 1 DEL MICROCONTROLLORE ATTINY85
/*
Nel Listato 1 abbiamo riportato il semplice
* Emulatore Timer 555 con TINY85 1MHz (Fuse 62-DF-FF) firmware che ci ha permesso di realizzare questo
*/
emulatore per timer 555. La sezione delle dichia-
#define scarica 0 //pin 5 razioni contiene le attribuzioni dei pin, che abbiamo
#define uscita 1 //pin 6
#define trigger A2 //pin 3
già visto, un flag e due variabili che servono per le
#define soglia A3 //pin 2 due opzioni di CONTROLLO. Nel Setup vengono
#define controllo 2 //pin 7
//il reset del tiny (pin 1) viene usato proprio come reset
settati i pin digitali e viene forzato lo stato iniziale
//se reset=LOW il tiny è bloccato ed i LED sono spenti di USCITA LOW e SCARICA HIGH (ON). Nel Loop
//gestione tensioni intermedie
//”1” forza l’uscita su LOW nei circuiti bistabili
vengono impostati i livelli del comparatore, in base
byte inState=1; allo stato logico del pin abilitato al CONTROLLO,
int compH; //valore di soglia
int compL; //valore di trigger
seguono le 4 possibili combinazioni del compara-
tore: TRIGGER < 1/3 VCC, tensione sul TRIGGER in
void setup()
{
aumento, SOGLIA > 2/3 VCC, tensione sulla SOGLIA
pinMode(uscita, OUTPUT); in diminuzione. Come si può notare sono bastate
pinMode(scarica, OUTPUT);
pinMode(controllo, INPUT_PULLUP);
poche righe di codice per permettere al microcon-
digitalWrite(uscita, LOW); //LED ROSSO trollore di emulare il timer 555. Naturalmente, affin-
digitalWrite(scarica, HIGH);
}
ché tutto funzioni, bisogna programmare l’ATtiny85,
quindi forniamo subito le necessarie istruzioni.
/*******************************************
* loop() function
La prima operazione da fare è collegare un Ardui-
*******************************************/ no UNO al PC, aprire l’IDE e caricare nella board lo
void loop()
{
sketch ArduinoISP in dotazione all’IDE (noi abbiamo
//set comparatore usato la versione 1.8.15). La seconda operazione
if (digitalRead(controllo)==HIGH)
{
consiste nell’abilitare l’IDE a programmare il micro-
//controllo disattivo controIlore ATtiny85, in “File – Impostazioni – URL
//alim. 5V o 2,4V
compL=341; //1,67V - 0,80V
aggiuntive per il Gestore schede”
compH=683; //3,34V - 1,60V occorre inserire il seguente link:
}
else //controllo attivo
https://www.leonardomiliani.com/repository/packa-
//alim. 5V o 2,4V ge_leonardomiliani.com_index.json (Fig. 13).
{
compL=204; //1V - 0,48V
Subito dopo occorre chiudere e riaprire l’IDE, per
compH=818; //4V - 1,92V attivare le nuove board, e aprire nell’IDE il file Emu-
}
latore_555.ino, scaricabile dalla sezione download
//trigger <= compL della pagina di presentazione di questa rivista. Ora
if(analogRead(trigger) <= compL)
{
bisogna selezionare la board che serve per la pro-
digitalWrite(uscita, HIGH); //LED GIALLO grammazione, seguendo le immagini della Fig. 14.
digitalWrite(scarica,LOW);
inState=0;
A questo punto si può realizzare il collegamento
} ISP tra Arduino UNO ed il micro da programmare,
//trigger in aumento
if(analogRead(trigger) > compL && inState==0)
saranno sufficienti la solita breadboard e alcuni
{ cavetti jumper, come in Fig. 15. Occorre fare molta
digitalWrite(uscita, HIGH); //LED GIALLO
digitalWrite(scarica,LOW);
attenzione a non sbagliare i collegamenti, in caso
}
//soglia >= compH
if(analogRead(soglia) >= compH)
{
digitalWrite(uscita, LOW); //LED ROSSO
digitalWrite(scarica, HIGH); Cosa occorre?
inState=1;
} Il timer 555 (cod. 555) è in vendita a Euro 0,60 mentre
//soglia in diminuzione
il microcontrollore ATtiny85 -20PU (cod. ATTINY85) è
if(analogRead(soglia) < compH && inState==1)
{ disponibile a Euro 4,90. I prezzi si intendono IVA compresa.
digitalWrite(uscita, LOW); //LED ROSSO
digitalWrite(scarica,HIGH);
} Il materiale va richiesto a:
}
Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - www.futurashop.it

68
 Fig. 14
Impostazione
della board
ATtiny85
1MHz.

 Fig. 15
Collegamento
ISP tra Arduino
UNO e ATtiny85.

contrario la programmazione non andrà a buon matore”, seguiranno le brevi fasi della compilazione
fine. Ora bisogna settare nell’IDE “Arduino as ISP” in e del caricamento, ed il micro sarà pronto per la
Strumenti – Programmatore. L’ultima operazione è sperimentazione.
quella di caricare lo sketch dell’ATtiny85 mediante Non ci resta che augurarvi buon divertimento con la

il comando “Sketch – Carica tramite un program- Didattica di Elettronica In!

69
Fai il pieno di energia!
BATTERIA RICARICABILE ULTRACELL AL PIOMBO
SENZA MANUTENZIONE
6V-4,5AH Batterie al piombo senza manutenzione, ad alta densità d’energia e a
bassissima autoscarica, prodotte dalla ULTRACELL. Per uso generico,

€ 12,90
la loro robustezza e affidabilità le consentono un ampio campo di
applicazioni: solare, antifurto, backup, UPS, illuminazione d’emergenza
Cod. UL45-6 ecc. La modalità di ricarica consigliata è quella a corrente costante.

6V-1,3AH

12V-1,3AH
€ 7,90
Cod. UL13-6

€ 13,90
Cod. UL13-12
6V-3,4AH

€ 11,90
Cod. UL34-6

12V-7AH 12V-2,1AH

€ 26,90
Cod. UL7-12
€ 15,90
Cod. UL24-12

BATTERIE RICARICABILI AL NI-MH VARTA “READY TO USE”

MINISTILO STILO MEZZA TORCIA


Prezzi IVA inclusa.

€ 14,50
Cod. HR03AAA800
€ 15,80
Cod. HR6AA2100
€ 13,80
Cod. HR14C3000

Futura Group srl Caratteristiche tecniche


®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA) di questi prodotti e acquisti on-line
Tel. 0331/799775 su www.futurashop.it
HEALTHCARE

micro:bit
CI RICORDA DI BERE
L’ ACQUA
di VINCENZO GERMANO e MARCONATALE PARISE

S
e si pensa che il corpo umano di un
adulto è per circa il 65% composto
di acqua (nei neonati la percentuale
Vediamo come oscilla tra il 75 e 80%) si può immedia-
utilizzare micro:bit tamente affermare che l’acqua è una
componente fondamentale della salute
e il modulo del nostro organismo perché permette
ESP8266 per di svolgere numerose attività come la
lubrificazione delle articolazioni e dei muscoli, regola la tem-
inviare messaggi peratura corporea, previene le malattie, fornisce sostanze
su Telegram nutritive alle cellule, aiuta la digestione e la vista, mantiene
buona la pressione sanguigna e tanto altro. Questo fa subito
come memo per capire che una corretta idratazione, associata a una buona
bere un bicchiere alimentazione, permette di mantenersi in salute e quindi
bere una quantità sufficiente di acqua ogni giorno è fonda-
d’acqua ogni ora. mentale per molte ragioni. Partendo da queste considerazio-

71
 Fig. 1
Port Expander
e pinout

ni abbiamo pensato di realizzare un promemoria creare progetti semplici o complessi, come giochi,
che ci ricorda di bere acqua tramite una notifica robot, strumenti musicali e molto altro.
su Telegram utilizzando la scheda micro:bit e il Progettato per essere accessibile a tutti, indipen-
modulo ESP8266. dentemente dal livello di conoscenza tecnica, è
stato creato per essere utilizzato da studenti di
IL MICRO:BIT tutte le età, dai bambini delle scuole elementari ai
Come visto in vari articoli su numeri preceden- ragazzi delle scuole superiori e poi ha preso largo
ti della rivista, il micro:bit è un mini-computer piede anche tra gli hobbisti viste le sue caratte-
programmabile progettato per l’educazione e ristiche tecniche hardware e software altamente
l’apprendimento delle tecnologie digitali. sofisticate.
Realizzato dalla BBC in collaborazione con altre Nelle sue dimensioni ridotte (4x5 cm) troviamo un
organizzazioni e aziende, è dotato di una serie di processore ARM Cortex-M0 a 32 bit (della Nordic
sensori, pulsanti, LED e connessioni, che lo ren- Semicondustor), una memoria flash da 256 KB,
dono un dispositivo versatile e adatto a molteplici 16 KB di RAM, un accelerometro a tre assi, un ma-
scopi. Risulta possibile utilizzarlo per insegnare gnetometro, un sensore di luminosità e una serie
concetti di fisica, matematica e informatica. di LED programmabili; caratteristiche che variano
Uno dei punti di forza del micro:bit è la sua a seconda della versione acquistata.
versatilità, infatti si possono realizzare controlli Può essere programmato attraverso un’inter-
(anche da remoto) di robot o la creazione di giochi faccia grafica o attraverso il codice scritto in lin-
multiplayer/interattivi dato che è facilmente guaggio Python, JavaScript, Scratch e Microsoft
integrabile con altri dispositivi, come sensori e MakeCode, che lo rendono compatibile con di-
attuatori, mediante la presenza di diversi pin GPIO. versi sistemi operativi, tra cui Windows, macOS
È stato pensato per essere resistente e durevole e Linux. Grazie ad un display a LED a matrice, si
con un’attenzione particolare alla sicurezza, dispo- riescono a visualizzare testo, grafica e animazioni,
nendo di una serie di funzionalità avanzate, tra perciò lo si può programmare per mostrare ciò
cui la crittografia dei dati e la protezione contro gli che si vuole, dallo stato del tempo alle notifiche di
attacchi informatici. messaggi.
La principale idea di utilizzo è per le classi di Un ulteriore vantaggio è la presenza di connes-
studenti come strumento didattico per insegnare sioni wireless come il Bluetooth, che lo rende
ai giovani le basi della programmazione e dell’e- compatibile con altri dispositivi come smartphone
lettronica, se a questo si aggiunge la sua facilità e tablet, aprendo le porte a molte applicazioni
d’uso e la sua versatilità, può essere utilizzato per interessanti.

72
LA SCHEDA D’ESPANSIONE standard IEEE 802.11 (mediante l’intero stack
Il micro:bit è una board molto potente a livello TCP/IP) quindi si può utilizzare per connettersi
computazionale, flessibile per i suoi protocolli di ad una rete Wi-Fi, a Internet, ospitare un server
comunicazione e immediatamente utilizzabile Web con pagine Web o altri servizi, consentire al
grazie all’astrazione dall’hardware delle librerie tuo smartphone di connettersi ad esso, e molto
di programmazione, tuttavia per un suo facile altro; in più è programmabile sia con un linguaggio
utilizzo è consigliabile l’utilizzo di una scheda dedicato che mediante l’IDE di Arduino, perciò non
d’espansione (in Fig. 1 a sinistra), che permette c’è da stupirsi che sia diventato uno dei dispositivi
una facile interconnessione tra la scheda e il IoT più popolare disponibile.
“mondo esterno”. Questo perché il suo connettore, Esistono molti moduli diversi o schede di sviluppo
pur essendo molto compatto, non è standard complete che possono avere pin, antenne Wi-Fi o
come altre schede tipo Arduino, Raspberry Pi e una quantità di memoria flash a bordo differenti.
simili, che facilmente si riescono a connettere con Bisogna però fare una distinzione, i formati con
board aggiuntive mediante pin header (con passo i quali è possibile acquistare l’ESP8266 sono
2,54mm e singolo pin da 1mm). sostanzialmente tre, il primo è la versione in chip,
Perciò prima di introdurre le varie periferiche del ovvero direttamente il componente da saldare su
sistema, è doveroso parlare di una delle schede circuito stampato ma presuppone di realizzare un
d’espansione per il micro:bit. progetto dedicato su cui applicarlo; il secondo è
Ci sono alcune soluzioni possibili sul mercato mediante modulo, come riportato in Fig. 2, con il
ma tra le varie proposte abbiamo scelto il “Port chip montato su una scheda e l’elettronica minima
Expander” acquistabile sullo store futuranet.it con per mettere in funzione il dispositivo; infine
il codice MICROBITPROTO in grado di rendere di mediante schede di sviluppo dedicate che hanno
facile utilizzo tutte le porte di input/output della preinstallati i moduli e si differenziano principal-
board. mente a seconda della tipologia di antenna, pin
Essendo una scheda d’espansione non ha un disponibili analogici/digitali, schermatura, led a
hardware complesso, monta infatti solamente un disposizione e memoria.
LED di alimentazione e vari pin header con passo Nel nostro caso abbiamo scelto l’ESP-01 acqui-
2,54mm di colore giallo e blu per le porte di I/O e stabile direttamente dal sito futuranet.it, perché
protocolli di comunicazione (I2C, SPI e Seriale), di ampiamente utilizzato in progetti di smart home
colore blu per il riferimento GND e di colore rosso e networking. Grazie al firmware predefinito ne
per il positivo d’alimentazione. consente l’utilizzo in combinazione con un Arduino,
Ulteriore vantaggio è dato dalla disponibilità di tuttavia per l’applicazione in questione bisogna
un interruttore a due posizioni (ON/OFF) che utilizzare un nuovo firmware che possa comunica-
permette di accendere e spegnere comodamente re in “automatico” con il micro:bit.
la scheda. È facile immaginare come l’utilizzo Per fare ciò si può utilizzare il firmware delle
di questa board risulta essenziale quando si Cytron scaricabile da Github al seguente link:
vogliono connettere immediatamente componenti https://github.com/CytronTechnologies/esp-at-
esterni al connettore micro:bit, come possono binaries.
essere schede di sensori che richiedono specifici
collegamenti fisici magari complessi da collegare
direttamente al micro:bit.

IL MODULO ESP8266
Per quanto non ha bisogno di nessuna presenta-
zione, vediamo brevemente le caratteristiche prin-
cipali del modulo ESP8266, ovvero è un System
on a Chip (SoC) prodotto dalla società Espressif,
costituito principalmente da un’unità di controllo
 Fig. 2
(microcontrollore) e un ricetrasmettitore Wi-Fi.
Il modulo
Dato il suo basso costo, le dimensioni ridotte e ESP8266.
l’adattabilità, è ampiamente utilizzato in appli-
cazioni IoT (Internet of Things), infatti permette
una connessione Wi-Fi a 2,4 GHz utilizzando lo

73
 Fig. 3
Il firmware per il
Nella Fig. 3 vengono riportati due firmware, il Firmware_V2.2.0.bin”, si deve inserire poi 0x00
modulo ESP-01. primo è quello di nostro interesse per questa come indirizzo di destinazione e selezionare le
applicazione con il modulo ESP-01, mentre il seguenti opzioni:
secondo può essere utilizzato nel caso in cui si ha SPI SPEED: 40MHz
a disposizione un ESP-12. SPI MODE: DIO
Dunque scaricate il firmware “Cytron_ESP- Attivare “DoNotChgBin”
01S_AT_Firmware_V2.2.0.bin” e tenetelo da parte,
questo è relativo ai comandi AT per ESP8266 Continuate selezionando la porta COM su cui si è
compilati dal codice sorgente ESP-AT di Espressif. collegato il convertitore USB-seriale (nel caso in
A questo punto per aggiornare il modulo abbiamo Fig. 5 la COM è la 3) e cliccare su “START”. Termi-
necessità di un hardware aggiuntivo, ovvero un nata l’operazione con successo il modulo ESP-01
convertitore USB/seriale. è pronto per essere collegato al micro:bit.
In commercio ne esistono di vario genere, un
esempio è riportato nella Fig. 4 distribuito da DESCRIZIONE DEL SETUP
Futura Elettronica con il codice YM203. Dopo aver illustrato le caratteristiche di ogni
A questo punto non ci resta che collega- componente del progetto, prima di passare all’im-
re l’USB al PC e scaricare il software per il plementazione software su micro:bit, vediamo
download del firmware al seguente link: brevemente le interconnessioni fisiche.
https://www.espressif.com/en/support/download/ Riconsiderando il port expander, con riferimento
other-tools. Il software da scaricare è il “Flash all’immagine di Fig. 1, abbiamo scelto di utilizzare la
Download Tools” che permette di aggiornare il tensione di alimentazione V1, il riferimento di mas-
firmware nel modulo ESP-01. Una volta estrat- sa G ed i connettori gialli per le periferiche. Partendo
to e avviato il software selezionare la modalità dalle considerazioni sulle tensioni di alimentazione è
“Sviluppatore” e nella finestra successiva compi- importante impostare la linea V1 su 5V collegando i
lare i campi come in Fig. 5. Come si può notare è due jumper appositi. Per semplicità i pin d’interesse
necessario selezionare il firmware precedente- (legati alla periferica di comunicazione) vengono ri-
mente scaricato dal nome “Cytron_ESP-01S_AT_ portati in Tabella 1. Per i meno esperti, come vedre-
mo successivamente, le librerie software utilizzate
ci astrarranno da tutti questi dettagli e impostazioni,
permettendoci di semplificare enormemente lo
sviluppo software e rendendo la sua configurazione
 Fig. 4 immediata, illustrando le funzioni più importanti per
Il modulo ESP-01 e
il convertitore USB/
implementare la lettura dei dati d’interesse. Perciò,
UART. una volta collegato il protocollo di comunicazione,
l’alimentazione e la massa, siamo pronti per l’imple-
mentazione su micro:bit del software d’interesse.

SVILUPPO SOFTWARE
Ora che il nostro setup è completo, possiamo
procedere con l’attività di sviluppo software così
da “animare” il sistema.

74
Come anticipato, lo scopo di questo progetto è in-
viare messaggi su Telegram mediante il micro:bit e
 Fig. 5
il modulo ESP-01, per ricordarci di bere un bicchier Configurazione
d’acqua. Possiamo scegliere la temporizzazione, del Flash
Download
tuttavia bere un bicchiere d’acqua ogni ora potreb- Tools.
be essere l’ideale.
Come visto in precedenti articoli, utilizziamo per
semplicità il MakeCode di micro:bit al seguente
indirizzo Internet, https://makecode.microbit.org/,
come da Fig. 6.
Creiamo un nuovo progetto che possiamo chiama-
re “Water Drink Reminder” e la prima operazione
da effettuare è aggiungere, alle librerie già presen-
ti nell’ambiente di sviluppo, la libreria per l’invio di
messaggi su Telegram mediante ESP8266.
Per fare ciò, clicchiamo su impostazioni (ovvero
la rotellina grigia in alto a desta nella Fig. 6) e poi
selezioniamo “Estensioni”; saremo riportati in una
nuova pagina nella quale possiamo inserire nella
barra di ricerca la stringa “ESP8266” in modo da
ottenere quanto riportato in Fig 7.
Tra le varie opzioni presentate, selezionare l’esten-
sione della Cytron. Verremo riportati nell’ambiente
di sviluppo e potremo notare la nuova libreria
aggiunta dal nome “ESP8266 WiFi”.
A questo punto non ci resta che scrivere il codice
come riportato in Fig. 8.
Vediamone le parti salienti. Si ha la necessità di PIN FUNZIONI  Tabella 1
Connessioni tra
inserire due blocchi, “all’avvio” e “per sempre”; il P0 ESP8266 (Tx) moduli ESP-01
primo per configurare la connessione, il secondo e port expander
come ciclo principale che verrà reiterato. P1 ESP8266 (Rx) del micro:bit

Nel blocco “all’avvio” bisogna inizializzare i pin


della trasmissione verso il modulo ESP8266,
ovvero P0 e P1, scegliendo contestualmente la Fatto ciò va configurata la connessione internet,
velocità della comunicazione che nel nostro caso perciò bisogna inserire al posto di “SSID” il nome
è 115200. della rete a cui deve connettersi il modulo e nel

 Fig. 6
Sito ufficiale
del Make
Code
micro:bit

75
 Fig. 7
Selezione
dell’estensione campo “Password” la password della stessa rete. sempre”, ma con qualche altra piccola accortez-
d’interesse. Come riscontro viene inserito un ciclo “se…altri- za. Come da Fig. 8, la prima istruzione riguarda
menti” con delle icone che indicano il successo l’aggiornamento della tempistica in modo tale che
dell’operazione di connessione, in modo tale da micro:bit possa sempre avere l’ora esatta.
capire se micro:bit ha la possibilità di mandare Successivamente inseriamo un blocco “se” e
messaggi mediante internet o meno. Ultima istru- consideriamo l’orario in cui si è svegli; nel caso
zione è la configurazione del Timezone, impostata dell’esempio abbiamo inserito dalle 6 alle 22 ma
 Fig. 8 nel nostro caso a 1. ovviamente si può inserire una qualsiasi soglia
Il codice in Effettuati i precedenti passaggi, non rimane altro entro la quale mandare i messaggi. All’interno
micro:bit
che l’invio del messaggio mediante il blocco “per del blocco inseriamo l’istruzione per l’invio del

76
messaggio Telegram, che avrà la necessità di del codice QR e selezionando la chat di gruppo  Fig. 9
alcuni dettagli aggiuntivi che vedremo a breve in cui abbiamo aggiunto il bot creato, si trova l’ID Il bot di Telegram.

come ricavare. Infine inseriamo una pausa di un Chat direttamente nell’URL all’interno della barra
ora ricalcolata in millisecondi. degli indirizzi. Perciò abbiamo il tutto per comple-
Mediante il progetto appena illustrato il micro:bit tare il nostro progetto micro:bit illustrato prece-
con l’ausilio del modulo ESP8266 sarà in grado di dentemente.
inviare il messaggio “è tempo di bere un bicchiere
d’acqua” su Telegram, tuttavia mancano i due CONCLUSIONI
campi che permettono al codice di raggiungere Siamo al termine di questo progetto che illustra
proprio il telefono d’interesse, ovvero “API Key” e come utilizzare il micro:bit e il modulo ESP8266
“Chat ID”. Generiamoli insieme. in modo tale da poter sfruttare il canale Telegram
per l’invio di messaggi e ricordarci di bere ogni ora,
CREAZIONE BOT SU TELEGRAM tuttavia lo stesso progetto può essere sfruttato
Una volta effettuato l’accesso sul proprio account per qualsiasi funzionalità che preveda l’invio di
Telegram, nella ricerca inserire “BotFather” e sele- messaggi su smartphone o più in generale su un

zionarlo, assicurandosi che sia quello etichettato particolare account Telegram.
come “bot”, come il primo della lista di Fig. 9A, a
questo punto cliccare su avvia come da Fig. 9B e
poi su “/newbot” come da Fig. 9C per creare un
nuovo bot di Telegram. Inserire il nome del nuovo
bot (ad esempio “EIN_WDR”) e digitare il nome
utente per il nuovo bot che deve terminare con
“bot” (ad esempio “EIN_WDR_bot”), come in Fig. Cosa occorre?
9D.
Dopo aver creato con successo un nuovo bot, Bot- Il modulo micro:bit è disponibile in un comodo starter kit
(cod. MICROBITGOV2) a Euro 37,00, la board di prototipazione
Father invierà un messaggio contenente la chiave (cod. MICROBITPROTO) è in vendita a Euro 15,00, il modulo
API http come riportato in Fig. 9D. Wi-Fi (cod. ESP8266) costa Euro 5,00.
Non ci resta che creare un nuovo gruppo di chat in I prezzi si intendono IVA compresa.

Telegram e aggiungere il bot appena realizzato nel Il materiale va richiesto a:


gruppo di chat. Per ottenere l’ID Chat del gruppo,
facilmente si può accedere a Telegram mediante il Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - www.futurashop.it
browser Internet con la procedura della scansione

77
NUOVE TELECAMERE

technology
Le telecamere Full-color IP CAMERA 4 MPX – FULL COLOR
sono dotate di una nuova
Risoluzione immagine: 4 MPX
tecnologia che permette Obiettivo: 3,6 mm
di ottenere immagini a Illuminatore luce bianca - numero LED luce bianca: 2 - portata: 30 metri
colori anche in condizioni Grado di protezione: IP66
di scarsa luminosità, sia di Alimentazione: 12 VDC
giorno che di notte.

€ 75,00
cod. FR836

€ 52,00 € 69,00 € 44,00


cod. FR816N cod. FR816VAR cod. FR817

TELECAMERA FULL COLOR TELECAMERA FULL COLOR TELECAMERA DOME


2 MPX 2 MPX - VARIFOCAL FULL COLOR - 2 MPX

Risoluzione immagine: 2 MPX Risoluzione immagine: 2 MPX Risoluzione immagine: 2 MPX


Obiettivo: 3,6 mm Obiettivo: varifocal 2,8-12 mm Obiettivo: 3,6 mm
Portata Illuminatore: 20-30 metri Portata Illuminatore: 40 metri Portata Illuminatore: 20-30 metri
Grado di protezione: IP67 Grado di protezione: IP67 Grado di protezione: IP67
Alimentazione: 12 VDC Alimentazione: 12 VDC Alimentazione: 12 VDC

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
HOME PROJECT

ENERGY METER
IN CLOUD
di ALESSANDRO SOTTOCORNOLA

S
icuramente ha visto crescere l’interesse
intorno a sé per via della crisi energeti-
ca di fine 2022, ma questo dispositivo
Abbiniamo un noto come Energy Meter, sia stand-alo-
contatore di ne che connesso in Rete, è utilizzato già
da tempo perché consente di monito-
energia ad un rare ed anche programmare i consumi
transceiver WiFi per di elettricità di casa, dell’ufficio e non
solo; noi stessi, in questi ultimi anni, lo abbiamo declinato in
pubblicare in Cloud e vari modi, presentando progetti finalizzati sia al monitoraggio
sull’interfaccia di una dell’assorbimento e alla gestione dei carichi energivori, sia alla
mera quantificazione dei consumi.
App le statistiche sui Dato l’interesse crescente verso la materia, in queste pagine
consumi elettrici vogliamo tornare sull’argomento proponendo un progetto
che si basa su un prodotto reperibile in commercio e on-line
di casa. su www.futurashop.it con il codice EMDIN02 interfacciato alla

79
nostra scheda con ESP8266 FT1456K allo scopo consumo sia parziale che totale (ossia dall’accensio-
di rilevare i consumi e trasmetterne i dati a Blynk e ne) fino a 999999,99 kWh. Implementa la funzione
da esso a un’apposita App per smartphone (ossia di reset per il valore parziale (il consumo totale non è
la Blynk App) sempre utilizzando il servizio Blynk, azzerabile) e dispone di LED che lampeggia ad ogni
raggiungibile sul web alla pagina blynk.io. impulso fornito all’apposita uscita (localizzata tra i
L’hardware potrà prendere posto nel quadro elettrico morsetti 20 e 21) la quale fornisce un impulso ogni
del locale da monitorare, purché non sia comple- Wh, quindi 1.000 impulsi corrispondono al consumo
tamente in metallo o in luogo schermato o troppo di 1 kWh di energia.
distante per raggiungere l’access point della rete WiFi Il nostro contatore è conforme ai requisiti tecnici
cui verrà abbinato per poter avere accesso a Internet pertinenti di Classe 1, Classe 2 e IEC62052-11,
e interfacciarsi quindi con lo smartphone da utilizzare IEC62053-21 e pertanto può essere collegato alla
come monitor. rete elettrica civile a 230 Vca garantendo isolamento
Entriamo subito nel vivo di questo progetto affron- e sicurezza richiesti dalle apparecchiature del genere,
tando per primo l’hardware necessario, che è meglio quindi risolve il problema della conformità della con-
descritto dallo schema di cablaggio in queste pagine: nessione all’impianto.
vi trovate l’Energy Meter da barra DIN (quindi installa- Per i nostri scopi leggiamo gli impulsi tra i contatti
bile direttamente nel quadro elettrico) con display 20 e 21 attraverso la scheda FT1456, la quale non
LCD retroilluminato, interconnesso mediante la fa altro che interfacciare il modulo WiFi di bordo,
propria uscita ad impulsi ad una linea di I/O (IO2) della ossia un ESP01 basato sul popolare SoC ESP8266;
scheda WiFi FT1456. i contatti 20 e 21 del contatore corrispondono
Abbiamo preferito utilizzare un prodotto “finito” internamente a un’ uscita open-collector.
perché non ci espone alle problematiche correlate Come mostrato dallo schema elettrico che vedete
alla realizzazione di circuiti elettronici collegati diretta- in queste pagine, la FT1456 è sostanzialmente
mente alla rete elettrica a 230Vca. un supporto meccanico che rende accessibili su
Il dispositivo EMDIN02 è un modulo contatore di morsettiere le connessioni utili dell’ESP01 e che,
energia da barra DIN (2 moduli) per sistemi mono- mediante un regolatore integrato, ricava i 3,3V
fase, dotato di display LCD in grado di visualizzare il necessari al funzionamento del modulo WiFi, il

| schema di CABLAGGIO
L
N

Scheda elettronica
L N
per ESP8266
(cod. FT1456K)

- +

1: GND
2: IO2
3: 1O0
4: +5V
5: PWR+
6: PWR-

80
 Fig. 1
I due
programma-
tori da poter
utilizzare per
ESP8266.

quale nello schema è contrassegnato come U2; quest’ultimo servirà per caricare il firmware nella
tale dispositivo è interfacciato all’esterno tramite scheda ESP8266 da un Personal Computer con
la propria porta seriale accessibile dal connettore installato l’IDE di Arduino, attraverso la connessio-
CN1, che riporta anche tutti gli altri pin significativi. ne USB, giacché integra un convertitore USB/TTL.
Come vedete dallo schema, il connettore (pin-strip) Il programmatore è autoalimentato attraverso il
è connesso alla morsettiera di destra limitatamen- connettore USB, quindi durante la programmazio-
te alle linee di I/O IO0 e IO2 (due GPIO del modulo ne non serviranno fonti di alimentazione esterne
U2); la stessa morsettiera ripete +5V e GND prove- per la scheda ESP8266.
nienti dall’altra morsettiera (quella bipolare) siglata Il programmatore dispone di un connettore femmi-
PWR) che serve ad alimentare il tutto. na da 2x4 pin a passo 2,54 mm idoneo ad ospitare
L’intero circuito si alimenta con 5Vcc stabilizzati, il modulo ESP8266. Una volta caricato il firmware
prelevati da un alimentatore qualsiasi (switching potete rimuovere l’ESP e applicarlo alla scheda
o lineare) purché ad uscita stabilizzata, filtrati base FT1456K rispettando l’orientamento visibile
adeguatamente dai condensatori C1 e C3 posti in nelle foto in queste pagine.
parallelo alla linea di alimentazione; gli stessi 5V Ricordiamo che quest’ultima board è disponibile
vengono portati al connettore CN1 e alle morset- solo in kit di montaggio con allegate istruzioni,
tiere di uscita, nonché all’ingresso del regolatore quindi dovrete montare i pochi componenti occor-
U1 (un LD1117S33TR) che è un LDO a tre terminali renti, che però sono in SMD; niente paura, comun-
utilizzato per ricavare una tensione stabilizzata di que, perché si saldano anche con un saldatore a
3,3 volt (filtrata da C2 e C4) necessaria al modulo punta fine e della lega saldante in filo sottile (da
con ESP8266 per funzionare correttamente. 0,5 o 0,75 mm) verificando a montaggio ultimato,
Il firmware che inserirete nel modulo ESP è strut- con l’aiuto di una lente d’ingrandimento, che non vi
turato in modo da utilizzare il solo GPIO IO2, per sia dello stagno in eccesso a creare cortocircuiti.
leggere gli impulsi a livello TTL che l’Energy Meter Una volta montata la scheda, potete procedere al
fornisce, quindi convertirli in un valore numeri- cablaggio secondo lo schema proposto in queste
co che verrà sommato nel tempo e trasmesso pagine, prestando attenzione alle connessioni
tramite interfaccia WiFi al servizio Blynk; allo di alta tensione, da fare rigorosamente a quadro
scopo, nello sketch che potete scaricare dal nostro elettrico spento (interruttore della linea in OFF).
sito www.elettronicain.it insieme ai file di questo Ricordiamo che la rete 230Vca si connette ai mor-
progetto dovrete (nelle define) sostituire i valori setti corrispondenti dell’Energy Meter (1-4) e che
predefiniti di SSID e password con quelli della rete i morsetti di uscita (2-3) vanno ai fili della linea da
cui vorrete connettere il sistema. monitorare, che può anche essere un ramo dell’im-
pianto. Solo dopo aver verificato che i collegamenti
PREPARAZIONE DELL’HARDWARE sono corretti, potete dare tensione.
I dispositivi che ci occorrono per realizzare la parte A questo punto lasciate da parte l’hardware perché
hardware sono, oltre che il modulo ESP8266 (co- dovrete concentrarvi sul servizio Blynk IoT e sull’in-
dice ESP8266) la scheda base FT1456K e l’Energy terfacciamento con lo smartphone.
Meter per guida DIN (codice EMDIN02) anche un
programmatore per ESP8266 (reperibile anch’esso CREAZIONE PROGETTO SU BLYNK
su www.futurashop.it) a scelta tra quello con il codi- Per la gestione da device mobile, per prima cosa
ce ESP8266DEB e quello con codice YM203 (li ve- è necessario scaricare l’applicazione “Blynk IoT”
dete rispettivamente a sinistra e a destra in Fig. 1); da AppStore o PlayStore a seconda del disposi-

81
LA SCHEDA ESP8266

Per semplificare la connessione


e l’utilizzo del modulo ESP8266
lo montiamo su una scheda adat- Nel nostro caso utilizzeremo il piano “Free”, quindi
tatrice, la FT1456K, che riporta senza sottoscrivere un abbonamento (chi vuole,
su due morsettiere i due GPIO e può farlo anche in un momento successivo).
l’alimentazione; a bordo si trova Seguire la procedura guidata di registrazione inse-
anche il regolatore che dai 5V di rendo la propria mail, quindi confermando l’account
alimentazione ricava i 3,3V per il dalla mail ricevuta così da creare una password
modulo ESP. alfanumerica da abbinare al proprio username
(indirizzo e-mail).
A registrazione completata non vi resterà altro
che accedere con i propri dati al sito web poco fa
riportato, cliccando su “LOG IN” in alto a destra.
Essendo la prima registrazione, nella propria
sezione utente non si troverà alcun dispositivo
associato, ma sarà invece disponibile un Template
di esempio (Fig. 2) che dovrà essere personalizza-
to in tutto e per tutto, così da avere poi accesso dal
proprio Smartphone.
Dalla scheda “Info” provvedete a compilare tutti i
campi richiesti. Alcuni campi, per l’integrazione del
nostro codice devono essere compilati esattamen-
te come di seguito (Fig. 3):
• Template Name: EnergyMeter;
• Hardware: ESP8266;
• Connection Type: WiFi.

Nella scheda “Metadata” dovete impostare


“EnergyMeter” come campo “Value” inerente al
Device Name.
Adesso il passaggio più importante da svol-
gere consiste nell’aggiungere nella scheda
“Datastreams” tutti i campi virtuali che andre-
mo ad usare nell’app di controllo del nostro
Smartphone. Nello specifico tramite il tasto “+
New Datastream” sulla destra andranno aggiunte
cinque tipologie di stream, che riportiamo nella
Tabella 1 e che vedete, a configurazione effettua-
tivo che si vuole utilizzare. Per la realizzazione ta, nella schermata riportata nella Fig. 4.
dell’applicazione grafica in grado di gestire il nostro Ora dalla scheda “Events” andrà aggiunto un
Energy Meter, dovremo come prima cosa creare un nuovo evento che servirà per consentire di inviare
Account su https://blynk.io. notifiche nel caso venga effettuato un reset della
memoria inerente il conteggio dei Watt Cumulati
nel tempo e i Watt totali da ultimo avvio..
Come “Name” indicare “Reset Memoria”, mentre
TIPO NAME PIN DATA come “Code” scrivere “reset_mem”.
STREAM / ALIAS TYPE
Quest’ultimo campo non deve essere modificato,
Virtual Pin IndirizzoIP V0 String in quanto è un riferimento evento inserito nel
codice del nostro progetto.
Virtual Pin Info V4 String
Vediamo ora di stabilire dove dovrà essere
Virtual Pin Watt_Reale V3 String recapitata notifica; nello specifico, consigliamo
 Tabella 1
Gli stream da Virtual Pin Watt_Totali V1 String di abilitare l’invio nella TimeLine e nella Notifica-
aggiungere. tionTab del vostro dispositivo mobile. Se volete
Watt_TotCu-
Virtual Pin V2 String potrete abilitare la notifica sotto “Notifications”
mulato
nella schermata dove vi trovate, andando anche a

82
limitare il numero massimo di invii, ma nel nostro
caso si è scelto di non farlo.
Consigliamo di impostare tali parametri come  Fig. 2
Il template
proposto nelle schermate di Edit Event (scheda vuoto da cui
Warning) che vedete nella Fig. 5. partire.
Fatto ciò, tutto il necessario è stato effettuato, quindi
premendo il tasto “Save and Apply” in alto a destra
salverete tutto ciò che è stato fatto fino ad ora.
Nella scheda “Web Dashboard” potrete, se lo
desiderate, aggiungere qualche controllo accessi-
bile dalla pagina web, come ad esempio quella di
Google Chrome, in modo da vedere i dati in tempo
reale senza l’App da smartphone, ma semplice-
mente accedendo dal browser.
Ultima cosa che rimane da fare è quella di ag-
giungere un dispositivo alla lista dispositivi, quindi
premete sulla sinistra l’icona con il simbolo della
lente e poi su “+ New Device”.
Selezionate ora l’aggiunta tramite Template
(From template) come mostrato nella Fig. 6.
A questo punto dovete selezionare il template che
avete appena creato, che nel nostro caso è “Ener-
gyMeter”; fatto ciò, assegnategli un nome, che nel
caso specifico sarà sempre “EnergyMeter” (Fig. 7). remota (Fig. 8).
Una volta premuto il tasto “Create” avrete il lista il Prima di procedere con la configurazione dei para-
vostro dispositivo che figurerà come offline, dato metri nel firmware, sarà molto importante salvare
che l’interfaccia hardware non è ancora stata pro- dalla scheda “DeviceInfo” le tre righe che trovate
grammata a dovere per effettuare la connessione in “Firmware Configuration”, poiché questi sono dei

 Fig. 3
Compilazione
dei campi del
Template.

83
parametri essenziali per consentire la connessione mostrati nella Fig. 9, che sono generici ed esempli-
 Fig. 4 da remoto del vostro dispositivo (Fig. 9). ficativi; diversamente il sistema non funzionerà.
Gli stream
aggiunti nella A riguardo prestate attenzione al fatto che il La parte Web ora è pronta e ben configurata,
configura- parametro TEMPLATE_ID da salvare sarà quello pertanto adesso sarà necessario procedere dal
zione.
corrispondente al vostro ID del template, ossia vostro smartphone con la creazione dell’interfaccia
quello che la procedura vi restituirà; quindi inserite di gestione.
i dati presenti nella vostra Dashboard e non quelli Attenzione che l’interfaccia sullo smartphone sarà

 Fig. 5
Impostazioni delle
notifiche.

84
 Fig. 7
Assegnazione
del nome al
nuovo device.
 Fig. 6 effettuato e dal menu in alto a destra “Add
Aggiunta di nuovi
dispositivo da
Template” assegnate quindi un nome, che nel
template. nostro caso sarà “EnergyMeter”, ovvero lo stesso
creato dalla Dashboard.
Trattandosi del medesimo nome, sullo schermo
del vostro smartphone dovrebbe comparire
automaticamente anche l’immagine ad esso
collegata a dei pin virtuali della “Datastreams” e associata, tipo quella proposta nella Fig. 10.
questi, a loro volta, al firmware, quindi un solo Cliccando sul nome del dispositivo “EnergyMeter”
parametro immesso in modo errato non permet- potrete aggiungere alla vostra interfaccia grafica
terà l’interazione tra il vostro device mobile e il utente fino a un massimo di 10 widget, che sono
controller del vostro hardware (dispositivo conta il limite imposto dal fatto che state utilizzando
energia interfacciato al WiFi). una versione Free.
Nel nostro caso inseriremo cinque widget, secon-
CREAZIONE INTERFACCIA GRAFICA do la collocazione e la disposizione mostrate nella
SU SMARTPHONE schermata di Fig. 11.
Per costruire la GUI dello smartphone dovete Per aggiungere un widget all’interfaccia dovete
avviare l’App BlynkIoT e fare il Login con i vostri premere il tasto menu e selezionare un tipo: ad
 Fig. 8
dati di Account creati in precedenza. esempio “Label Value”. Il nuovo dispositi-
L’app vi darà la possibilità di accedere come Il widget verrà automaticamente posizionato vo è inizialmente
offline.
sviluppatore, quindi scegliete Developer a Login casualmente nella pagina; sarete poi voi, tenendo

 Fig. 9
Le righe da salvare
che si trovano
in Firmware
Configuration.

85
11, iniziando dalla prima Label, il cui nome deve
 Fig. 10 essere autoesplicativo (cioè deve consentire di
Immagine
associata all’appli- identificare mnemonicamente il relativo parame-
cazione. tro), perché verrà mostrato quando vorrete visio-
nare i dati in tempo reale: ad esempio inseriremo
“Watt in Tempo Reale” (Fig. 12). Invece come
Datastream andrà associato dal menu a tendina
un nome diverso ad ogni Label corrispondente; i
nomi saranno quelli creati in precedenza, vale a
dire Watt_Reale, Watt_Totali, Watt_TotCumulato,
Info, IndirizzoIP (Fig. 13). Notate che tra le varie
Label ne è presente una che non è obbligatoria,
ma serve per mostrare l’indirizzo IP del disposi-
tivo: il dato corrispondente si aggiornerà ad ogni
connessione e può venire comodo per le configu-
premuto a lungo su di esso con il dito e trasci- razioni in locale, ad esempio sul router per limi-
nandolo, a spostarlo in un punto a piacimento, tare eventuali accessi dall’esterno. Appunto per
andando anche a modificarne l’eventuale forma. questo l’indirizzo mostrato è di tipo locale. Sulla
Giusto per preparare già il tutto, dovete inserire falsa linea del precedente, impostare Datastream
cinque Label value. Ma vediamo la configurazione su “IndirizzoIP”, mentre l’etichetta “Label” dovrà
dei cinque elementi proposti nel layout di Fig. essere “Indirizzo IP: /value/”.

 Fig. 12
Configu-
razione
 Fig. 11 degli elementi
Inserimento dell’interfaccia
dei widget. utente.

86
La configurazione si può considerare terminata,
quindi ora si potrà uscire dall’area sviluppatore  Fig. 13
(Developer) premendo il simbolo in alto a sinistra, Configurazione
degli elementi
ossia l’icona con l’omino, fino a tornare alla scher- dell’interfac-
mata principale (Fig. 14). cia utente per
Indirizzo IP.

IL FIRMWARE DELLA SCHEDA ESP


Bene, con la parte Blynk abbiamo terminato,
quindi adesso dobbiamo concentrarci sulla pro-
grammazione della scheda di controllo che per-
metterà di mostrare i dati dell’energia consumata.
Tali dati saranno desunti dal conteggio degli im-
pulsi forniti in uscita dall’Energy Meter per guida
DIN che abbiamo scelto e che fa parte dell’har-
dware che avete cablato.
La sua uscita open-collector genera un impulso in
uscita ogni watt, quindi, ad esempio, in corri-
spondenza di un assorbimento di 1.000 W, si avrà
all’uscita un impulso ogni 3,6s.
Gli impulsi vengono letti dal modulo ESP grazie al
firmware che imposta il GPIO corrispondente con
una resistenza di pull-up interna.
Partiamo dalla preparazione dell’ambiente di
programmazione Arduino, che useremo in virtù
del fatto che le schede ESP sono compatibili e
programmabili con esso.
Ricordiamo che l’IDE di Arduino da utilizzare per
questo progetto deve essere nella versione 1.8.9 o
superiore.

PREPARAZIONE IDE ARDUINO


Prima di aprire l’IDE di Arduino bisogna inserire
le librerie che verranno utilizzate per compilare
il progetto, quindi è necessario copiare le librerie
contenute nella cartella “libraries” in “C:\Users\
utente\Documents\Arduino\libraries”.
Prima di caricare lo sketch è necessario instal-
lare la board ESP8266 all’interno dell’IDE così
da poterlo programmare; ricordate, infatti, che
la programmazione di un hardware Arduino-
compatibile, come del resto di qualsiasi hardware,
richiede che il compilatore conosca su quale
piattaforma deve declinare il codice sorgente.
Per fare ciò, come prima operazione apriamo
File > Impostazioni e andiamo a inserire l’URL
http://arduino.esp8266.com/stable/package_
esp8266com_index.json nella casella URL aggiun-
tive per il gestore schede in modo da indicare il  Fig. 14
percorso di ricerca dei driver. Schermata
principale
Una volta confermata la configurazione, dal menu dell’app.
“Strumenti > Scheda > Gestore Schede”, andate a
cercare “esp8266” e procedete all’installazione
cliccando sul pulsante Installa (Fig. 15).

87
 Fig. 15
Aggiunta del driver
di terze parti del
controller.

Ad installazione completata, attraverso il coman- CONFIGURAZIONE FIRMWARE


do di menù “Strumenti > Scheda” selezionate Tramite l’IDE di Arduino aprite lo Sketch
“Generic ESP8266 Module” come proposto nella “EnergyIoT.ino”. Una volta aperto correttamente
Fig. 16. A questo punto il vostro ambiente di pro- lo sketch, sarà molto importante personalizzare
grammazione (ossia l’IDE di Arduino) è configura- cinque righe di codice, procedura indispensabile per
to per poter compilare il codice sorgente (ossia lo consentire la corretta connessione del dispositivo
sketch) per la piattaforma ESP8266. alla rete WiFi, e quindi di conseguenza al servizio

 Fig. 16
Selezione della
scheda corretta

88
 Fig. 17
Le righe da
personaliz-
zare.

Blynk. Come prima cosa dovete sovrascrivere le l’orientamento mostrato nella Fig. 18, che riguarda
prime tre righe del codice con quelle ottenute in la scheda programmatore YM203.
precedenza tramite la scheda “Device Info” della Dal comando di menu “Strumenti > Porta” dell’IDE
Dashboard (Fig. 8): si tratta di quelle esposte nella andate a selezionare la porta COM che verrà creata
Fig. 17, le prime tre evidenziate dalla cornice rossa. dopo aver collegato il programmatore e installato i
Successivamente andate a modificare anche la driver occorrenti per farlo funzionare.
variabile “ssid” e “password” con i dati di accesso
corretti per potere accedere via WiFi alla connes-
sione internet (sono le due righe evidenziate dalla
cornice rossa nella solita Fig. 17).
Ora tutto il codice necessario è stato modificato,
pertanto si potrà procede con la compilazione
e quindi il caricamento del firmware sul proprio
dispositivo.
Per procedere sarà necessario munirsi di un pro-
grammatore USB tipo quelli mostrati nella Fig. 1,
ossia uno di quelli reperibili presso Futura Elettro-  Fig. 18
La scheda
nica (YM203 oppure ESP8266DEB).
ESP8866 sul
Il programmatore potrà essere collegato diretta- programma-
mente ad una porta USB del computer, mediante tore YM203.

un classico cavo USB A-A, dopo avere inserito su


di esso il modulo ESP8266 nel connettore con

89
da quando il dispositivo è stato avviato e infine i
 Fig. 19
Watt Totali Cumulati, ovvero quelli rilevati fin dalla
Applicativo da prima accensione, salvo che il dato non venga can-
Smartphone. cellato tramite pulsante di reset connesso su IO0
della nostra scheda di interfaccia verso l’Energy
Meter.
Nel caso della schermata proposta nella Fig.19
i Watt Cumulati sono appunto più bassi rispetto
a quelli Totali in quanto è stato fatto un reset del
valore.
Infine, nella parte più bassa della schermata, sarà
possibile avere informazioni sul dispositivo, sapere
se è connesso o meno e conoscere la relativa ver-
sione firmware, oltre che l’indirizzo IP attualmente
assegnato al dispositivo stesso (che si identifica
nell’IP address della connessione WiFi cui il nostro
hardware si appoggia).

CONCLUSIONI
Terminiamo qui la descrizione di questo progetto di
smart metering tramite app e smartphone; come
avete avuto modo di vedere consiste nell’esposi-
zione sul web, tramite il servizio IoT Blynk, di un
hardware semplice e facilmente reperibile, quindi
di una vera e propria applicazione IoT per uso
domestico, implementabile senza troppa fatica,
malgrado la complessità insita nell’insieme, grazie
ad un servizio on-line come quello offerto da Blynk.
Il progetto, oltre che ben finalizzato, è anche
l’occasione per imparare a utilizzare gli strumenti
descritti in questo articolo, che una volta appresi a
Come già anticipato, ricordatevi di selezionare fondo vi permetteranno di evolverlo o adattarlo ad
“Generic ESP8266 Module” come scheda target altri ambiti applicativi.

(Fig. 16) dal menù Strumenti. Non ci resta quindi che augurarvi buon lavoro!
Una volta fatto ciò, cliccate sul secondo tasto della
barra menu dell’IDE per consentire la compilazione
del codice sorgente ed il caricamento del firmware
sulla scheda ESP. A caricamento avvenuto, l’IDE ve
ne darà comunicazione; allora potrete sconnettere
il programmatore dall’USB e rimuovere il modulo
ESP per poi montarlo sulla scheda FT1456K; ora
potrete mettere sotto tensione il sistema, alimen-
tando la FT1456K con l’alimentatore da 5Vcc.
Cosa occorre?
UTILIZZO DELL’APP BLYNK Il modulo Energy Meter da barra DIN con display LCD
Usare la parte applicativa è davvero semplice e (cod. EMDIN02) è in vendita a Euro 54,50, la scheda per
ESP8266 (cod. FT1456K) a Euro 5,00, il modulo ESP8266 da
lascia poco spazio a qualsiasi dubbio. utilizzare (cod. ESP8266) a Euro 5,00, il programmatore per
Avviare BlynkIoT e selezionare “EnergyMeter”. ESP8266 (cod. YM203) a Euro 2,50. I prezzi si intendono IVA
Aperta la schermata, ci si troverà di fronte ad una compresa.
schermata simile a quella proposta nella Fig. 19:
Il materiale va richiesto a:
Come si vede, vengono mostrati i dati relativi al
consumo, in particolare i Watt consumati in tempo Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
reale dal carico connesso, i Watt Totali consumati Tel: 0331-799775 - www.futurashop.it

90
Dai la giusta tensione
al tuo progetto.
SCEGLI TRA LA VASTA GAMMA DI CONVERTITORI DC-DC
QUELLO CHE FA PER TE.
STEP UP

CONVERTITORE DC/DC CONVERTITORE DC/DC CONVERTITORE DC/DC


CON INGRESSO 3,5-30V CON INGRESSO 10-60V CON INGRESSO 3-30V
E USCITA 4-30V CON USCITA 12-80V E USCITA 5-35V
cod. MODSTEPUP cod. BOOSTDCDC cod. YXA347
€5 ,00
€ 25 ,00
€ 6,00

STEP DOWN

CONVERTITORE DC/DC CONVERTITORE DC/DC CONVERTITORE DC/DC


CON INGRESSO 4-40V CON INGRESSO 9-35V CON INGRESSO 7-36V
E USCITA 1,25-37V E USCITA 5V E USCITA 1,25-32V
cod. STEPDOWNDISP cod. DCDCSTEPDOWN cod. YB728

€6 ,90 €6 ,50
€ 14,00

CONVERTITORE DC/DC CONVERTITORE DC/DC CONVERTITORE DC/DC


CON INGRESSO 5-32V CON INGRESSO 3-40V CON INGRESSO 7,5-20V
E USCITA 1,2-30V CON USCITA 1,5-35V E USCITA 5V-1,2A
cod. STEPD5V32 cod. MODULODCDC cod. YM355
€5 ,90
€4 ,30
€ 5,00

STEP UP/DOWN

CONVERTITORE DC/DC
CON INGRESSO 4-35V
Prezzi IVA inclusa.

E USCITA 1,5-25V
cod. STEPUPDOWN
€ 16,00

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
Tutti a caccia di
tesori nascosti !

Cercametalli Cod. CS100

base con sonda € 64,00 Cercametalli


impermeabile Cod. CS102 professionale
Rileva la presenza di piccoli
oggetti metallici. Dispone di
€ 138,00 con sonda
uscita per cuffia, VU-meter impermeabile
analogico. Sonda a tenuta
Dotato di sonda a tenuta
stagna da 170 mm.
stagna da 215 mm, strumento a
Lunghezza dell’asta regolabile.
lancetta, discriminatore di oggetti
metallici non significativi (funzione
notch), discriminatore audio a toni,
controllo della sensibilità, modalità ‘all
metal’ in grado di rilevare tutti i tipi
di metalli, uscita per cuffia e indicatore
Prezzi IVA inclusa

di batteria scarica.
Lunghezza dell’asta regolabile.

Cercametalli digitale Cod. CS300


professionale € 228,00
Cercametalli con sensibilità fino a 27 cm
(in base al tipo di terreno), ampio display LCD
(75 x 40 mm) e sonda impermeabile da 220 mm. Dispone
inoltre di funzione pinpoint (ricerca accurata degli oggetti
metallici rilevati) funzione notch (discrimina gli oggetti metallici
non significativi), discriminatore audio a tre toni, controllo della
sensibilità a 12 livelli, lettura di profondità, uscita per cuffia
e asta regolabile.

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
WIRELESS

BREAKOUT
BOARD 4G di BORIS LANDONI

S
Implementa la ono molte le applicazioni in cui serve
disporre di una connessione telefonica
connessione cellulare radiomobile, per esempio dove non è ac-

in banda LTE, sia cessibile o economicamente conveniente


installare una linea telefonica cablata; in
per le telefonate che casi del genere si ricorre a varie soluzioni,

per l’accesso a Internet in base allo scopo da raggiungere.


Se la connessione serve per far operare
a banda larga, ed è un sistema di controllo più o meno automatico, come ad

intercambiabile con esempio i nostri telecontrolli GSM della serie TDG (commer-
cializzati da Futura Elettronica su www.futurashop.it), bisogna
la sezione GSM dei disporre di un modulo cellulare qualsiasi (perché utilizzare

telecontrolli della allo scopo uno smartphone o un moderno telefonino è più


scomodo e dispendioso) mentre se bisogna interfacciare un
serie TDG. computer, microprocessore o microcontrollore a Internet, è
utile adottare un modulo cellulare con tecnologia di accesso

93
schema ELETTRICO

dati idonea (anche qui è fattibile con lo smartpho- 2G (GSM) o il GPRS (2,5G).
ne, ma la gestione è più complessa e richiede In questo contesto è nata la breakout board qui
driver compatibili). In quest’ultimo caso, conside- proposta, la quale è basata su un recente modulo
rato che attualmente si punta molto sulle reti 4G GSM della SIMCom, capace di supportare sia le
e 5G e che l’UMTS/HSDPA (meglio noto come 3G) comuni chiamate telefoniche e il correlato servizio
viene gradualmente abbandonato (per esempio di messaggistica SMS (Short Message Service)
lo sta facendo Vodafone…) bisogna disporre di un sia le tecnologie di scambio dati fino al 4G, ovvero
modulo/modem che sia almeno compatibile con LTE (Long Term Evolution). La scheda è rivolta sia
la tecnologia LTE, mentre per le telefonate (tipiche a chi vuole dotare un certo sistema di connettività
dei telecontrolli, che operano con semplici chiama- 4G/LTE, sia a chi ha un telecontrollo della serie TDG
te o SMS) è ancora disponibile, ma non per molto, il e vuole sostituire la scheda cellulare con una più

94
moderna; infatti questa breakout board ha lo stes-
so fattore di forma della TDGGSM_800C (dotata di
modulo SIMCom SIM800C) e nasce per l’upgrade
dei telecontrolli da noi pubblicati in passato.

SCHEMA ELETTRICO
Per farvi comprendere bene di cosa si tratta, dia-
mo dunque uno sguardo allo schema del circuito,  Fig. 1
pubblicato in queste pagine, dal quale si vede che Il progetto
proposto è
tutto è basato sul modulo SIMCom A7682E, che compatibile
in pratica è l’unico elemento attivo della scheda; con il modulo
TDGGSM_800
gli fanno da contorno alcuni componenti passivi, (in foto)
sei transistor bipolari NPN, oltre ad un array di montato sui
soppressori TVS (Transient Voltage Suppression) e telecontrolli
della serie
un socket per SIM-Card in versione microSIM. TDG.
Partiamo dunque con la descrizione del circuito,
che ricalca quello del TDGGSM_800C presentato
nel fascicolo n° 147 con il progetto del Telecon-
trollo modulare; a suo tempo disegnammo un PCB
in grado di offrire una certa versatilità e libertà
di scelta, grazie al fatto che poteva ospitare due
moduli GSM uno in alternativa all’altro: il SIM900
(sostituito poi con il SIM800C) della SIMCom ed
l’M10 della Quectel. Stavolta abbiamo previsto
solo un modulo cellulare, ossia l’A7682E della
SIMCom, che rispetto ai due succitati è in grado di
coprire fino allo standard 4G ed è quindi aggiornato
alle nuove tecnologie di comunicazione wireless su
rete telefonica radiomobile, con supporto dati fino
alla velocità di 10 Mbps.
Come il precedente, questo è realizzato su un
circuito stampato delle dimensioni di 45x50 mm, linea PWR, la quale serve a comandare l’accensio-
così da mantenere la compatibilità e, sempre ne e lo spegnimento del modulo GSM pur mante-
in quest’ottica, dispone di due pin-strip per le nendolo costantemente alimentato dai contatti Vcc
connessioni con il circuito base del telecontrollo e GND dei pin-strip; infatti il nostro modulo GSM1
TDG133, 134, 140 ecc., uno da 3 pin ed uno da 16 rimane sempre sotto tensione, fornita dalla linea
pin; il primo trasporta positivo e negativo dell’ali-
mentazione digitale, oltre alla linea di controllo
dell’accensione (PWR), mentre il secondo contiene
tutti i segnali e le linee di comunicazione da e verso
CARATTERISTICHE TECNICHE
il modulo GSM, ma anche la massa della sezione
analogica del modulo SIMCom (AGND, facente
capo al contatto 11).
Bande di frequenza:
Il layout dei pin e la disposizione dei contatti sui Tensione di alimentazione:
GSM/GPRS/EDGE 900/1800 MHz
4 Vcc
pin-strip rimangono invariati rispetto al modulo
originario basato su SIM900 della SIMCom o M10
della Quectel che vedete nella Fig. 1 a confron- Corrente assorbita: Velocità dati uplink in LTE:
to con il nostro; questo permetterà a chi ha dei 800 mA 5 Mbps
telecontrolli TDG l’agevole sostituzione della sola
sezione cellulare.
Vediamo dunque di descrivere il funzionamento Standard supportati: Velocità dati dowlink in LTE:
LTE-FDD B1/B3/B5/B7/B8/B20 10Mbps
partendo dalla sezione di controllo dell’alimenta-
zione, che avviene intervenendo dall’esterno sulla

95
IL MODULO 4G DI SIMCom

La sezione cellulare del nostro zione agevole dai dispositivi 2G a


circuito è implementata da un quelli LTE e facilita notevolmente
modulo GSM/4G siglato A7682E la progettazione.
prodotto dalla SIMCom: si tratta Il modulo A7682E supporta i Vcc ai piedini 34 e 35 (siglati Vbat, perché il modulo
sostanzialmente di un cellulare protocolli di rete integrati TCP, nasce per l’utilizzo in dispositivi alimentati a
Quad-band compatibile GSM/ IP, IPV4, IPV6,Multi-PDP, FTP, batteria) e viene acceso o spento mediante il livello
GPRS e 4G/LTE, privo del display, FTPS, HTTP, HTTPS, DNS, nonché logico applicato al pin 39 (PWR, appunto) il quale
di microfono e altoparlante e della il protocollo di sicurezza della internamente è collegato ad una resistenza di pull-
tastiera, operante sulle frequenze comunicazione SSL. up ed è attivo a zero logico, quindi per accendere il
di 850/900/1800/1900MHz, uti- Dispone dei driver per i principali modulo GSM1 bisogna portare a livello logico alto
lizzabile sia per accessi a Internet, sistemi operativi (driver USB per la linea ON/OFF (contatto 1 del pin-strip) e man-
sia per la comunicazione vocale, le Microsoft Windows 7/8/10, Linux dare in saturazione il transistor T2, il quale pone a
comuni telefonate e gli SMS. e Android). Ha il supporto RIL livello basso la linea PWR del GSM1.
È contenuto in un package grande per Android 5.0/6.0/7.0/8.0/9.0 Il controllo del reset avviene in maniera analoga: il
19,6x19,6x2,4 mm di tipo LCC+LGA, e l’aggiornamento firmware via modulo SIMCom prevede un ingresso di reset
con i contatti posti quindi sotto al USB/FOTA. (RST, localizzato al pin 83, attivo a zero logico e
corpo, il che implica la saldatura I comandi AT sono compatibili provvisto di resistore interno di pull-up); il
a getto d’aria calda o in apposite con i moduli della serie SIM800, reset si ottiene portando il pin 6 (RST) del pin-strip
macchine per reflow soldering. quindi sia gli AT standard, sia la ad 1 logico, allorché il transistor T3 va in satura-
Il SIMCom A7682E è un modulo ma maggior parte di quelli del set zione e pone a livello basso la linea RST del GSM1;
LTE Cat 1 che supporta le moda- proprietario SIMCom enhanced AT. contestualmente, VDD_EXT dello stesso modulo
lità di comunicazione wireless di Inoltre l’A7682E integra le princi- viene portata ad 1 logico.
LTE-FDD/GSM/GPRS/EDGE; più pali interfacce standard industriali, Procediamo con le linee di controllo dell’UART,
esattamente, LTE-FDD B1/B3/ con una potente espandibilità, ossia TXD, RXD, DTR, RTS, CTS, DCD, che vanno
B5/B7/B8/B20. Supporta una ve- comprese numerose interfacce all’esterno mediante i contatti, rispettivamente,
locità di downlink massima di 10 come UART, USB 2.0, I²C-Bus, 15, 16, 14, 14 e 18 del pin-strip; lo stesso dicasi
Mbps e una velocità di uplink di 5 GPIO, adatte per le principali per VRTC (contatto 7) e ADC0 (10). Notate che
Mbps. In modalità EDGE le velo- applicazioni IOT come telematica, mediante i ponticelli JP1, JP2, JP3 e JP4 è possibile
cità sono in Uplink/Downlink fino dispositivi di sorveglianza, router connettere disconnettere on board i segnali di
a 236,8 kbps e in GPRS Uplink/ industriali e diagnostica remota controllo CTS, RTS, DTR e DCD; normalmente tali
Downlink fino a 85,6 kbps. ecc. Il modulo si alimenta a tensio- jumper sono aperti e, come verrà spiegato nella
L’A7682E adotta un fattore di ne continua di valore compreso fra sezione “Realizzazione pratica” di questo articolo,
forma compatibile con SIM800C, 3,4 e 4,2 V (tipicamente a 3,8V) ed si chiudono stagnando le piazzole di quelli che
serie SIM868 (moduli GSM/ assorbe un massimo di 0,8 A occorre collegare.
GPRS), che consente una migra- in trasmissione. Il segnale di RI (indicatore di arrivo chiamata) esce
dal contatto 12 del pin-strip, che fa capo al col-
lettore del transistor T6, un NPN utilizzato come
interruttore statico per trasportare all’esterno l’RI
del GSM1; pertanto quando il contatto 7 del GSM1
si porta a livello alto, il pin 12 dello strip assume
il livello ligico basso e viceversa. Questo, a patto
che il 12 piloti un ingresso dotato di resistore di
pull-up. L’aver adottato un transistor montato in
configurazione open-collector permette di fornire il
segnale di chiamata in arrivo a dispositivi e sistemi
con alimentazione differente da quella del nostro
circuito, quindi magari a 12V, ovvero di comandare
attuatori.
Dell’UART va notata la particolare configurazione
delle linee TXD ed RXD, ciascuna delle quali è inter-
facciata mediante un transistor NPN configurato a
base comune, in modo da non affacciarsi diret-
 Fig. A tamente sui contatti corrispondenti del pin-strip;
Schema a blocchi del
modulo A7682E. in particolare, RXD (che è un ingresso), provvista
di resistore di pull-up, è connessa al collettore
del T5, il cui emettitore è connesso al polo RXD

96
(contatto 16) del pin-strip e pertanto quando utilizzata per accendere e spegnere (alimentare e
quest’ultimo è open o a livello alto (tensione ugua- privare dell’alimentazione) la SIM ed è gestita dal
le a VDDEXT del modulo GSM1) il T5 è interdetto e modulo GSM1. Notate la presenza del quadruplo
RXD del modulo è a livello alto. Invece TXD (che è Zener D1 (TVS), i cui diodi servono a proteggere la
un’uscita del GSM1) pilota l’emettitore del T4, il cui SIM-Card da eventuali picchi di tensione dovuti a
collettore è provvisto di resistore di pull-up R13, in disturbi, che possono arrivare dalla linea di alimen-
parallelo al condensatore C11 che filtra i disturbi) tazione fino alle linee del bus di comunicazione tra
e quindi è a livello alto (lo stesso potenziale di SIM e cellulare; nello schema è presente per futuri
VDDEXT) quando il pad del modulo SIMCom è ad sviluppi, pur non essendo stato montato nel proto-
1 logico e a zero quando lo stesso si trova a livello tipo perché la SIMCom non lo ritiene necessario per
basso. il modulo A7682E. Lo abbiamo comunque previsto,
I transistor T4 e T5 servono, in definitiva, come a livello di circuito stampato, perché la scheda
ripetitori degli stati logici e da adattatori di livello può supportare altri moduli SIMCom pin-to-pin
dalla tensione VDDEXT del modulo (che è 1,8V compatibili. Un’ulteriore protezione è fornita dai
come i livelli logici con cui lavorano i segnati TXD e condensatori C5-C9, C6, C7, C8 collegati rispetti-
RXD) e lo standard TTL, i cui livelli sono 0/5V. vamente alle linee SIM_VDD, SIM_RST, SIM_CLK,
L’audio, facente capo a due contatti per il mi- SIM_DATA verso massa, la cui funzione è filtrare
crofono (si tratta di un ingresso differenziale) ed tali linee da disturbi impulsivi che potrebbero af-
altrettanti per l’altoparlante, transita dai contatti fliggere la comunicazione tra la scheda (chip-card)
4, 5, 8, 9, che corrispondono rispettivamente a e il modulo GSM1.
MIC1P e MIC1 N (positivo e negativo del microfo- L’alimentazione Vcc è previsto che sia di circa 4V,
no) ed SPK1N e SPK1P (rispettivamente negativo e perché il modulo è progettato per essere alimen-
positivo dell’altoparlante). tato da una batteria a litio 1s (singola cella, quindi
L’antenna del modulo GSM, in questo caso si colle- fra 3,6 e 4,2V) ed anche perché abbiamo pensato il
ga direttamente sullo stampato del cellulare: nostro progetto come sostituto della sezione GSM
ciò evita tutti quei problemi che possono manife- dei telecontrolli della serie TDG (Fig. 2). Quindi
starsi portando le connessioni d’antenna dallo se lo utilizzate sui TDG non c’è alcun problema
stampato del cellulare a quello base del telecon- di alimentazione, come anche se lo dovete far
trollo. La presa d’antenna è localizzata al piedino funzionare a batteria con una cella al litio; se
60 per entrambi i moduli, ma sullo stampato, si invece intendete alimentarlo con un’alimentazione
trova su facce differenti a seconda del modulo standard, come ad esempio quella delle schede
utilizzato; mettendo in comune i collegamenti, la Arduino, siccome partite da 5 volt occorre mettere
presa del modulo su un lato verrebbe collegata in serie un diodo di tipo 1N4002 per abbassare la
alle piste dell’altro, alterando l’impedenza com- tensione fino a portare Vcc a circa 4,2V.
plessiva e, di conseguenza, il funzionamento della Terminiamo la descrizione dello schema elettrico
sezione radio. con il connettore siglato UPG, composto da due
Proseguiamo con il transistor T1, che qui usiamo
per comandare localmente il LED di campo del
cellulare: la sua base viene polarizzata dal livello
logico presente sul piedino 52 (NETLIGHT) del
GSM1 o sul 6 (NET) del GSM2. Dal collettore del Jumper
transistor parte la linea che porta al contatto 19
del pin-strip e che fa capo alla linea LED, con la
quale il microcontrollore host (o in generale il
sistema che utilizza il nostro modulo) si informa
sull’eventuale presenza della rete GSM e sullo
stato di connessione del modulo (assenza segnale 
di rete, presenza rete ecc.). I ponticelli
JP1÷JP4 si
Concludiamo l’analisi del circuito occupandoci realizzano
delle linee di gestione della SIM, che si interfaccia unendo le
piazzole con
ai contatti del bus dedicato sul modulo GSM1
lo stagno.
tramite le linee SIM_CLK (clock) SIM_RST (reset)
e SIM_DATA (canale dati); la linea SIM_VDD viene

97
piano di MONTAGGIO

Elenco Componenti:

R1, R2, R3: 22 ohm (0603)


R4: -
R5, R9, R10, R12, R13, R14, R15, R16:
4,7 kohm (0603)
R6, R8, R11, R17, R18: 10 kohm
(0603)
R7: 330 ohm (0603)
C1, C2, C5: 100 nF ceramico
(0603)
C3, C4: 470 µF 6,3 VL tantalio
(CASE-D)
C6, C7, C8: 22 pF ceramico (0603)
C9: 1 µF ceramico (0603)
C10, C12: 1 nF ceramico (0603)
C11: 470 pF ceramico (0603)
LD1: LED verde (0805)
T1, T2, T3, T6: BC817
T4, T5: MMBT3904,215
GSM1: SimCom A7682E
SIM1: Porta micro-SIM Molex
786463001
D1: BZA420A
ANT1: Connettore SMA 90°

Varie:
- Strip maschio 3 vie
- Strip maschio 16 vie

pin-strip da tre contatti a costituire una connessio- componentistica a montaggio superficiale (solo
ne maschio da 6 poli a passo 2,54x2,54 mm: oltre i pin-strip sono componenti a foro passante);
a trasportare l’alimentazione a 5 volt e la massa, richiede inoltre un minimo di attrezzatura che
veicola le linee DP, DM, Vbus della connessione consta di almeno un saldatore a punta molto fine,
USB 2.0 integrata e la linea Boot da utilizzare per del filo di lega saldante (o pasta salda) del diame-
la programmazione del SIMCom A7682E. tro massimo di 0,5 mm, della pasta flussante a
media densità, una lente d’ingrandimento e una
REALIZZAZIONE PRATICA pinzetta per il posizionamento dei componenti.
Bene, spiegato lo schema elettrico dobbiamo pas- Inoltre la saldatura del modulo SIMCom richie-
sare agli aspetti pratici: la scheda richiede la realiz- de una stazione ad aria calda e preferibilmente
zazione di un circuito stampato a doppia faccia, le una piastra che riscaldi inferiormente il circuito
cui tracce dei lati rame si possono scaricare dalla stampato a una temperatura di almeno 100 °C;
sezione Download nella pagina di presentazione in alternativa è possibile utilizzare quei “fornetti”
di questo numero della rivista; una volta stampati per la saldatura o il reballing dei chip BGA ed in
a grandezza naturale su carta da lucido o acetato, tal caso la saldatura si effettua spalmando della
potete ottenere le pellicole per procedere con la pasta-salda sulle piazzole del modulo SIMCom
fotoincisione. Una volta inciso e forato il PCB po- dopo averle spalmate con del flussante a bassa
tete montarvi i componenti occorrenti seguendo, densità, quindi appoggiando ben centrato il
per quelli polarizzati, l’orientamento mostrato dal modulo (orientato rigorosamente come indicato
piano di montaggio che vedete in queste pagine. nelle foto del prototipo e del piano di montaggio)
La realizzazione richiede una certa attenzione, in e, senza spostarlo, inserire il circuito stampato
quanto il circuito è composto principalmente da sul piano interno al cassetto. A quel punto si

98
accenderà la macchina eseguendo la procedura ARDUINO TELEFONA IN 4G
di saldatura con la curva corrispondente al tipo Non è un mistero che moduli come quello qui
di pasta salda, ovvero lead-free (Pb-free, senza descritto siano accessibili anche ad un hardware
piombo, conformemente alle normative Rohs) o dotato di poche risorse quale quello di Arduino,
leaded (lega saldante contenente piombo); a tal non a caso anni fa realizzamo una shield GSM
proposito va precisato che questo genere di forni compatibile sia con Arduino che con Raspberry Pi.
ha memorizzate in fabbrica delle curve predefinite Vogliamo quindi proporvi un esempio applicativo
e che in qualche caso è possibile costruire curve che contempla la gestione del nostro circuito me-
personalizzate di saldatura. diante una comune scheda Arduino, che nel caso in
Sistemato il modulo A7682E, che è il primo com- oggetto è la popolare Arduino UNO.
ponente da saldare per evitare di dover scaldare Il nostro modulo 4G è interfacciabile con una qual-
gli altri nel “fornetto” e perciò di sottoporli a siasi scheda Arduino che lavora in logica 5V; allo
stress termico, potete procedere con i compo- scopo si devono collegare i pin nel seguente modo:
nenti restanti. Volendo sarebbe possibile saldare • D2 al TXD del modulo;
tutti i componenti in una volta sola (ad eccezione • D3 all’RXD del modulo;
dei pin-strip, da saldare alla fine, nonché dello • D5 ad un pulsante esterno;
zoccolo per la microSIM, da saldare manualmente) • D6 all’uscita LED del modulo;
ed in questo caso prendete il circuito stampato, • D8 all’ingresso ON/OFF del modulo;
spalmate con la pasta salda le piazzole destina- • D9 alla linea RST del modulo;
te ai componenti SMD e poi mettete il tutto nel • GND al GND del modulo;
fornetto assicurandovi che nessun elemento si sia • 5V, tramite un diodo al VCC del modulo.
spostato. Se optate per la saldatura manuale dei
componenti discreti, spalmate con del flussante le Queste connessioni corrispondono allo schema di
piazzole e quindi stagnate per prime le resistenze cablaggio del circuito da realizzare, proposto nella
e i condensatori, poi il LED e i transistor; questi Fig. 3, rammentando che il diodo da noi utilizzato
ultimi possono essere saldati solo nel verso giusto, nelle prove è della serie 1N400x (se ne può usare
per l’univoca disposizione dei terminali, mentre uno qualsiasi).
per i condensatori elettrolitici al tantalio e il LED Per testare il nostro modulo 4G abbiamo scritto  Fig. 2
dovete fare riferimento all’orientamento indicato un codice di esempio per Arduino che permette di ll telecontrollo GSM
TDG133 con il mo-
nel piano di montaggio che trovate in queste pagi- rispondere automaticamente ad ogni telefonata in dulo 4G installato.
ne. Per quanto riguarda il LED, cercate di scaldarlo arrivo, consentendo, tramite il pulsante collegato
il meno possibile, perché altrimenti è facile che al pin D5, di terminare la chiamata (riaggancio),
si deformi la finestrella in resina trasparente da oppure se la chiamata non è in corso, può essere
cui esce la luce. Infine inserite nei rispettivi fori
i pin-strip per il montaggio della scheda e quelli
per realizzare il connettore di aggiornamento del
firmware e in generale la programmazione (UPG). I
pin-strip sul lato inferiore sono utili per realizzare
le connessioni con Arduino o altra scheda host.
Per l’antenna è previsto un connettore dorato THT,
da stagnare manualmente nelle apposite piazzole.
Notate che i ponticelli JP1, JP2, JP3 e JP4 non
sono realizzati con i classici pin-strip ma tramite
piazzole, sul lato inferiore del circuito stampato,
da unire con una goccia di stagno; in condizioni
normali, quindi, sono sconnessi e se vi occorre
connettere i segnali di controllo CTS, RTS, DTR e
DCD dovete unire le rispettive piazzole fondendovi
sopra dello stagno fino ad unire quelle di ciascun
jumper. Per l’utilizzo, ricordate che il circuito
richiede un alimentatore capace di erogare 4 volt
e una corrente di circa 800 mA, che è il picco di
assorbimento.

99
 Listato 1
#include <SoftwareSerial.h>

#define ON_OFF 8
#define TX_GSM 3
#define RX_GSM 2
#define STATUS 6
#define RST 9
#define DTR 12
#define PUSH 5

SoftwareSerial GSM_Serial(RX_GSM, TX_GSM);

boolean Stato_ON = false; //0: GSM spento - 1: GSM acceso


boolean Stato_Chiamata = false; //0: nessuna chiamata in corso - 1: chiamata in corso
String rx_gsm;
int Fun = 0; //Rappresenta la funzione che si sta eseguendo (0: standby - 1: chiamata in corso - 2:
fine chiamata)
int i = 0; //Contatore

String Numero_Chiamata = “+393487654321”;

//*************************************** S E T U P ***************************************
void setup()
{
pinMode(ON_OFF, OUTPUT);
pinMode(STATUS, INPUT_PULLUP);
pinMode(PUSH, INPUT_PULLUP);
pinMode(RST, OUTPUT);
pinMode(DTR, OUTPUT);
digitalWrite(ON_OFF,LOW);
digitalWrite(RST,LOW);
digitalWrite(DTR,LOW);
GSM_Serial.begin(115200);
GSM_Serial.setTimeout(1000);
Serial.begin(9600);
Serial.println(“Avvio”);
Accendi_Modulo();
}

//**************************************** L O O P ****************************************
void loop()
{
while (digitalRead(PUSH)==LOW) //Gestione pulsante
{
while (digitalRead(PUSH)==LOW) delay(1);
if ((Fun==0) && (Stato_Chiamata==false) && (Stato_ON==true))
{
//Chiamo perchè non ci sono chiamate in corso
Fun=1;
String comando = “ATD” + Numero_Chiamata + “;”;
GSM_Serial.println(comando);
Serial.println(“Chiamata in corso”);
Stato_Chiamata = true;
}
if ((Fun==1) && (Stato_Chiamata==true))
{
//Termino la chiamata in corso
Fun=2;
GSM_Serial.println(“ATH”);
delay(1000);
}
}

Controllo_Seriale(); //Verifica dei dati sulla seriale


delay(1);
}

100
RESET
ICSP2
R15
C12
R14
C10
R12
C11
R13
TDGGSM_A7682E
AREF

RX
TX

L
3

4
C1 C4

R18 GND
T6

VCC MIC1P
R10 13
GND R17 R11 MIC1N IOREF
R16 12
ON/OFF RST RESET

Arduino
T5

T4
T3

~11
1

VRTC 3V3
R4 C2
R8

~10

D1
R9 SPK1N 5V
~9
SPK1P
C7 C8 C6
GND
8

POWER
ADC GND

TM
T2 R7

STATUS 7

DIGITAL (PWM=~)
VIN

UNO
RI ~6
C9
C5
R2
R3
R1

CTS A0 ~5

RTS A1 4
LD1

C3
C7
C2
C6
C1
C5
GSM1

ANALOG IN
TXD A2 ~3
A3 2
VCC DP DM RXD
R5 R6 T1
SIM1

A4 ICSP TX0 1
DTR

ON
ANT1
UPG

A5 RX0 0
DCD
VBUS GND BOOT LED

effettuata una telefonata al numero impostato non necessariamente basati su Arduino; è anche  Fig. 3
Cablaggio
tramite variabile. Lo sketch d’esempio serve a un valido upgrade per i telecontrolli GSM della
del circuito di test
dimostrare come comunicare in modo semplice serie TDG, cui consente di connettersi anche alla con Arduino.
con il modulo. Ovviamente possono essere intro- più diffusa rete radiomobile 4G/LTE. A tale riguardo
dotti comandi per l’invio di SMS, di connessione dobbiamo precisare che, sebbene il circuito stam-
internet e altro ancora basandosi sul set comandi pato dotato degli strip sia pin-to-pin compatibile
AT standard e specifici per il modulo A7682E. A ri- con il modulo GSM originale dei telecontrolli TDG,
guardo va precisato che pur rispettando il set base per eseguire l’upgrade non è sufficiente la modifica
SimCom, per l’A7682E sono stati creati nuovi co- hardware, vale a dire che non basta togliere il
mandi AT; tra le più importanti variazioni, possiamo modulo GSM (2G) e montare quello qui descritto:
far presente il comando ATH che permette di ter- bisogna anche sostituire il firmware del micro-
minare una telefonata: se eseguito da solo non ha controllore di bordo con la versione appropriata,
alcun effetto, salvo quando sia stato in precedenza scaricabile dalla versione dedicata ai telecontrolli

inviato un comando AT che permette di prendere il del sito di Futura Elettronica, www.futuranet.it.
controllo della chiamata via seriale. Nello specifico
il comando da eseguire all’avvio del modulo o alla
prima occasione che si vuole gestire una chiamata
è “AT+CVHU=0”. Per impostazione predefinita il
parametro del comando è 1, quindi il modulo non
accetta il comando ATH e per terminare la Cosa occorre?
chiamata si basa sulla linea DTR. Per tutti i dettagli Il modulo GSM/GPRS 4G con A7682E (cod. TDGGSM_A7682E)
consigliamo di visionare il set comandi AT. è in vendita a Euro 65,00.
I telecontrolli sono ora disponibili anche con connettività 4G.
Il codice è diviso come al solito nella parte di defini- La versione 2IN/2OUT (cod. TDG133_4G) è in vendita a
zione di pin e variabili, quindi in un setup e un loop, Euro 96,00, l’apricancello (cod. TDG134_4G) a Euro 92,00, il
nonché da sezioni di gestione del modulo (accen- teleallarme con antijammer (cod. TDG140_4G) a Euro 96,00,
il termostato (cod. TDG139_4G) a Euro 96,00 e il telecontrollo
sione, setup GSM e controllo seriale); per con comandi DTMF (cod. TDG140_4G) a Euro 105,00.
brevità, nel Listato 1 proponiamo la parte iniziale,
contenente include, define, setup e loop. I prezzi si intendono IVA compresa.

Il materiale va richiesto a:
CONCLUSIONI
Il modulo qui descritto offre la connettività 4G che Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - http://www.futurashop.it
potete facilmente implementare nei vostri progetti,

101
Ora i componenti non hanno più segreti!
DISPOSITIVI PROFESSIONALI PER MISURE E ANALISI PRECISE

MINI OSCILLOSCOPIO A 1 CANALE TESTER PER


CON DISPLAY TFT LCD DA 2,4 POLLICI COMPONENTI
ELETTRONICI

Cod. JT-LCRT7

€ 34,00

Prezzi IVA inclusa.


Cod. DSO138MINI

€ 68,00
Dispone di display da 2,4“ TFT LCD - 320x240, larghezza di banda da Dotato di display LCD da 3.5” a colori, ricevitore a infrarossi e batteria
200 kHz e frequenza di campionamento 1 MSa/s con risoluzione 12 bit. ricaricabile integrata da 3,7 volt 350 mAh. Permette di misurare diodi,
I circuiti di alimentazione sono stati semplificati rispetto al modello diodi zener, resistori, condensatori, l’ESR (Resistenza Equivalente Serie)
precedente, così come la portabilità grazie alle dimensioni del case di un condensatore, induttori, tiristori, triac, FET, transistor bipolari
notevolmente ridotte. L’ingresso di trigger esterno accetta segnali (indicando se è NPN o PNP) e batterie (max. 4,5 V). Funziona anche
TTL e LVTTL come sorgente e permette infine di esportare (in formato con condensatori elettrolitici polarizzati e non polarizzati in entrambi
testo) la forma d’onda in seriale. Alimentazione attraverso connettore gli orientamenti. Grazie al ricevitore a infrarossi integrato possono
micro USB. Questo oscilloscopio è particolarmente indicato per gli hob- essere decodificati anche i segnali a infrarossi e visualizzati sul display,
bisti interessati a misurare e visualizzare la maggior parte dei segnali in forma d’onda e codice esadecimale. Le misurazioni vengono avviate
elettronici. automaticamente premendo semplicemente un pulsante.

Analizzatore di Analizzatore di Misuratore di induttanza,


componenti DCA55 semiconduttori DCA75 capacità, resistenza
e impedenza LCR45

€ 199,00
€ 135,00
cod. DCA75

€ 89,00 cod. LCR45


cod. DCA55
Strumento multifunzione. Misura
Consente di analizzare una vasta gamma Analizza svariati tipi di semiconduttori. induttanza, resistenza e impedenza
di componenti attivi, identificando la Può essere interfacciato al PC e, grazie al arbitraria. Riconosce automaticamente
pinout e fornendo informazioni relative software in dotazione, fornisce un’analisi il tipo di componente, e fornisce
ai principali parametri. dettagliata del componente. informazioni relative ai principali parametri.

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
MISURE

MISURARE
I CONDENSATORI
CON L’OSCILLOSCOPIO
di VALERIO CONICELLA

L'
Misuriamo la oscilloscopio è uno strumento indi-
spensabile in qualsiasi laboratorio di
capacità dei elettronica ed è ampiamente usato sia
condensatori dai tecnici di laboratorio che da appas-
sionati del fai da te. Viene comunemen-
utilizzando un te impiegato in laboratorio per analiz-
circuito RC, un zare graficamente la forma d’onda della
tensione in funzione del tempo.
oscilloscopio e In questo articolo vedremo come effettuare delle misure di
un generatore di capacità di un condensatore sfruttando un circuito RC, un
oscilloscopio e un generatore di segnale ad onda quadra.
segnale ad onda
quadra. APPLICAZIONI DEL CIRCUITO RC: IL PACEMAKER
I circuiti RC hanno moltissime applicazioni nella vita quotidia-
na e trovano utilizzo anche nelle applicazioni mediche, come

103
muscolo cardiaco. Gli elettrocateteri trasmettono
informazioni dal pacemaker al cuore e inviano
gli impulsi elettrici, qualora necessario. Viene
programmato mediante un computer apposito,
grazie al quale lo specialista può visualizzare tutte
le informazioni che riguardano il cuore del paziente
e il suo funzionamento.
Il pacemaker basa il suo funzionamento su un
circuito RC. I processi di carica e scarica della rete
RC vengono regolati attraverso un apposito circu-
ito e permettono di generare impulsi elettrici ad
intervalli precisi, regolarizzando il battito cardiaco.
Vediamo nell’immagine un pacemaker e in parti-
colare notiamo gli elettrocateteri (1); l’involucro
che contiene al suo interno l’elettronica (2) e una
batteria al Litio (3).

RISPOSTA DEL CIRCUITO RC ALL’ONDA QUADRA


Un circuito RC (Fig. 1), è un circuito elettrico del pri-
mo ordine, basato su una resistenza e su un con-
densatore. Si può calcolare la risposta di un circuito
RC all’onda quadra, usando le equazioni di carica
e scarica della capacità. Consideriamo dapprima
la fase di carica, che si verifica quando il segnale
del generatore Vo va a livello “ON”. Nell’istante di
tempo t = 0, nel circuito inizia a circolare corrente
che sarà data da:
nei pacemaker cardiaci. Un pacemaker è un dispo-
 Un esempio sitivo che stimola elettricamente la contrazione del
dell’utilizzo del
circuito RC in cuore, quando questa non viene assicurata in ma-
ambito medico: niera normale dal tessuto di conduzione cardiaca.
il pacemaker.
Dalla sua invenzione, avvenuta nel 1960 - da parte Istantaneamente, sulle armature del condensato-
di Wilson Greatbatch - e la successiva introduzione re inizia ad accumularsi della carica che crea una
nella pratica chirurgica, il pacemaker ha contri- differenza di potenziale tra le armature stesse,
buito a salvare moltissime vite e a stabilizzare le indichiamo questa differenza di potenziale con Vc.
condizioni patologiche di milioni di persone in tutto Analizzando il circuito si ottiene che:
il mondo. Il pacemaker viene impiantato sottopelle
nel corso di un intervento chirurgico in anestesia
locale. Il posizionamento avviene nella zona toraci-
ca, sotto la clavicola.
Il dispositivo è collegato a uno o due fili (elettro- All’aumentare della carica q sulle armature, la
cateteri) a loro volta posti in comunicazione con il corrente nel circuito diminuisce; quando il conden-
satore è carico, Vc ha il suo valore massimo pari a
Vo e la corrente è nulla. L’andamento della tensione
ai capi del condensatore nella fase di carica è
descritto dalla seguente formula:

 Fig. 1
Circuito RC. dove τ è la costante di tempo del circuito τ = RC.
Viceversa, il processo di scarica avviene nell’istante
in cui il segnale inverte il suo valore da “ON” ad

104
 Fig. 2
Risposta
del circuito
RC all’onda
quadra

 Fig. 3
Relazione
tra costante
di tempo e
frequenza

“OFF”. In fase di scarica ai capi del condensatore vi è MISURA DELLA CAPACITÀ


una differenza di potenziale che costringe le L’idea alla base della misura è quella di sfruttare la
cariche ad abbandonare le rispettive armature, costante di tempo τ per calcolare la capacità di un
facendo si che la carica del condensatore tenda ad condensatore. Consideriamo il circuito RC serie in
annullarsi. L’andamento della tensione ai capi del Fig. 1, costituito da un resistore R di valore noto
condensatore nella fase di scarica, invece, è (possibilmente con tolleranza inferiore all’ 1%) e un
descritto dalla seguente formula esponenziale: condensatore di capacità C incognita. Possiamo
facilmente calcolare la capacità C del condensatore
tramite la seguente relazione:

Come possiamo osservare dal grafico (Fig. 2), il


condensatore si carica molto rapidamente all’inizio
per poi passare ad una fase più lenta. Man mano
che il condensatore si carica, la differenza di poten- Possiamo definire la costante di tempo τ come il
ziale (ddp) tra le armature inizia ad aumentare e tempo necessario per caricare il condensatore C,
nel tempo t = τ, la ddp sul condensatore ha già attraverso la resistenza R, da un valore di tensione
raggiunto il 63% del suo valore massimo, indicato iniziale Vi = 0 fino ad un valore pari al 63% della
nel grafico con 0,63 Vo. Questo punto di tensione tensione DC applicata all’ingresso del circuito.
viene anche indicato con 1T. Allo stesso modo si Attraverso l’utilizzo dell’oscilloscopio è possibile
ricava che con un tempo t = 4τ si passa al 98% del misurare proprio τ e di conseguenza, sfruttando la
suo valore massimo. Quando al tendere di t → ∞ formula appena citata, calcolare il valore di capa-
la tensione Vc(t ) →V0 , il condensatore si comporta cità C. Tuttavia, è importante notare che riducendo
come un circuito aperto. Analogamente nel proces- il periodo di tempo totale della forma d’onda di
so di scarica avremo che al tempo t = τ, la ddp sul ingresso (frequenza più alta), per esempio “4RC”, il
condensatore è pari a 0,37Vo . condensatore non avrebbe tempo sufficiente per

105
 Fig. 4
Simulazione con
t = 10RC

 Fig. 5
Simulazione con
t = 2RC

caricarsi completamente durante il periodo “ON” o SETUP DI MISURA


scaricarsi completamente durante il periodo “OFF”. Il setup di misura è costituito da un generatore di
Pertanto, la caduta di tensione risultante attraver- funzioni, dall’oscilloscopio e dal circuito RC, come
so il condensatore Vc, sarebbe inferiore alla sua mostrato in Fig. 6. Possiamo utilizzare una bread
tensione di ingresso massima, producendo una board dove montare il circuito RC, questo facilita
forma d’onda RC come mostrato in Fig. 3. di molto le operazioni di misura. Nel nostro caso,
Appare evidente che la frequenza (o periodo) il circuito RC è composto da un resistore pari a
dell’onda quadra, va regolata in funzione della R = 1 Kohm e C supponiamo sia incognito (47 nF).
costante di tempo del circuito RC. È necessario Arrivati a questo punto, siamo pronti per ef-
quindi, rispettare la seguente condizione: fettuare la misura: regoliamo la scala verticale
dell’oscilloscopio costituita da 8 divisioni, in modo
da visualizzare il segnale di uscita all’interno del
display. Procediamo regolando anche la scala
Dove t è il periodo dell’onda quadra. Facciamo un orizzontale (base dei tempi) per ingrandire il
esempio: supponiamo di avere un resistore da 1 fronte di salita finché non si vede la curva cor-
Kohm e un capacitore da 1 uF, la costante di tempo rispondente alla carica del condensatore, come
vale τ = 1ms, questo implica che il periodo dell’on- mostrato in Fig. 7.
da quadra dovrà essere all’incirca di 10 ms, ovvero Per misurare la costante di tempo τ, è necessario
una frequenza di 100 Hz con duty cycle del 50% misurare il tempo che impiega la tensione da 0V
(Fig. 4). Viceversa, se riduciamo il periodo dell’onda fino al valore di 63 Vo , in altri termini il 63% della
quadra, per esempio a 2RC, otteniamo il segnale tensione massima, che in questo caso risulta
come rappresentato in Fig. 5. essere:

106
 Fig. 6
Setup di
misura.

 Fig. 7
Oscillogramma
carica
condensatore.

sottolineare l’importanza dell’oscilloscopio, che


abbiamo detto essere indispensabile in qualsiasi
laboratorio di elettronica.
Posizioniamo il cursore Y1 alla base dell’onda e il Abbiamo visto, inoltre, come i circuiti RC abbia-
cursore Y2 in corrispondenza di 3,15V. Infine, no moltissime applicazioni nella vita quotidiana,
posizioniamo i cursori X1 sul bordo del fronte di riportando un esempio di questi utilizzi nell’ambito
salita del segnale e il cursore X2 all’intersezione medico: una curiosità sul funzionamento e sulla
con il cursore Y2. Leggiamo un valore ∆X = 46,8 µs storia del pacemaker. 

che corrisponde al valore della costante di tempo


del condensatore. A questo punto non resta che
applicare la formula:

Cosa occorre?
CONCLUSIONE
In questo articolo abbiamo visto un utilizzo dell’o- Futura Elettronica dispone di set di condensatori in varie
tipologie e formati. Visita il sito www.futurashop.it per la
scilloscopio, tramite cui è possibile misurare il va-
gamma completa.
lore di capacità di un condensatore, senza l’ausilio
di un capacimetro o ponte RLC, ma semplicemente
disponendo di un oscilloscopio e un generatore ad
onda quadra. Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - www.futurashop.it
L’obiettivo di questo articolo è proprio quello di

107
Prezzi IVA inclusa.
HDMI CONVERTITORE DA HDMI
 A VGA 1080P PLUG AND PLAY
VGA Permette di convertire un segnale digitale HDMI
(compatibile con HDMI1.3) in un segnale VGA
(SUB-D) ad alta definizione con audio in uscita.
Con questo convertitore, il computer, il lettore CONVERTITORE DA AV
video portatile, le console di gioco e alcuni
altri dispositivi video con uscita HDMI possono A HDMI PLUG AND PLAY
connettersi a schermi HD di grandi dimensioni
oppure a proiettori HD con ingresso VGA.

AV

HDMI

€ 11,50
Cod. BOXHDMITOVGA

Convertitori € 14,00
Cod. BOXAVTOHDMI

di segnale
Permette di convertire un segnale audio/video
CVBS (PAL e NTSC) in ingresso in un segnale
HDMI in uscita. Con questo convertitore, il
computer, il lettore video portatile, le console
di gioco e alcuni altri dispositivi video con
uscita CVBS possono connettersi a schermi con
ingresso HDMI. L’uscita HDMI supporta una
Permettono di convertire un risoluzione fino a 1080P 60Hz.

segnale digitale HDMI in VGA,


AV in HDMI, VGA in HDMI, 
HDMI in AV. VGA

HDMI
CONVERTITORE DA VGA
A HDMI PLUG AND PLAY
Permette di convertire un segnale audio
e video VGA (SUB-D) in un segnale HDMI
(tipo A) ad alta definizione con audio.
Con questo convertitore, il computer, il
 lettore video portatile, le console di gioco
e alcuni altri dispositivi video con uscita
VGA possono connettersi a schermi HD
CONVERTITORE DA HDMI di grandi dimensioni oppure a proiettori
HD con ingresso HDMI. L’ingresso VGA
AD AV PLUG AND PLAY supporta video fino a 1920x1080 a 60 Hz,
Permette di convertire un segnale HDMI in l’uscita HDMI può supportare video fino
ingresso in un segnale video composito CVBS a 1080P.

€ 11,50
(PAL e NTSC) in uscita. Con questo convertitore,
il computer, il lettore video portatile, le console
di gioco e alcuni altri dispositivi video con
uscita HDMI possono connettersi a schermi con Cod. BOXVGATOHDMI
ingresso CVBS. L’ingresso HDMI supporta una
risoluzione fino a 1920x1080 a 60 Hz.

HDMI € 11,00
Cod. BOXHDMITOAV

AV

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
HEALTHCARE

HEART
RATE
MONITOR
di DANIEL SCAINI

V
ita sedentaria, comportamenti poco vir-
tuosi e stress, possono causarci disturbi
e problemi di salute.
Come ormai ribadito dalla Medicina,

Colleghiamo un fondamentale è la prevenzione: un in-


sieme di accorgimenti e una buona cura
pulsiossimetro a un di noi stessi, possono aiutarci a vivere

modulo ESP32, che meglio e in salute. Oggigiorno, prevenzione non significa per
forza sottoporci annualmente ad esami medici, ma cercare di
invierà tramite BLE i introdurre quotidianamente piccoli gesti e accorgimenti mirati

dati sulla frequenza di più facile adozione.


Negli ultimi anni la tecnologia ci ha permesso infatti di avva-
cardiaca ad un touch lerci di strumenti e dispositivi smart in grado di monitorare

LCD basato su informazioni utili per conoscere i segnali che il nostro corpo ci
manda ogni giorno.
ESP32-S3. Grazie a questi dispositivi, come ad esempio smartwatch o

109
mente il nostro progetto.
 Fig. 1 Oltre a queste caratteristiche mette a disposizione
Il classico modulo altre interfacce quali SPI/SDIO o I²C/UART.
ESP32.
È stato creato ed ingegnerizzato per dispositivi
“mobile” o indossabili (wearable electronics) e
proprio per questo mira a ridurre drasticamente i
consumi rispetto ai concorrenti.
Ha anche una modalità di deep sleep nella quale
consuma solamente 5µA.
Il modulo mette a disposizione una Flash memory
da 4MB ed oltre 25 GPIO per poter interagire con
altri dispositivi.
Il secondo componente è una versione modificata
e integrata del precedente che prevede già a bordo
un display TFT con diagonale di 3,5’’. Il chip ESP32
smartband, un gran numero di persone riesce a qui utilizzato presenta non più 4MB di Flash, ma
prevenire malori o cali di pressione nel corso della ben 16MB; anche a livello processore ha perfor-
giornata e a rendere anche più proficuo l’allena- mance decisamente più accattivanti rispetto al
mento. “fratello minore”. Per l’interfacciamento e l’alimen-
Il progetto che vi descriviamo in queste pagine è tazione è disponibile una doppia USB di tipo C e
stato sviluppato in tale contesto: si tratta di un non manca il supporto Bluetooth 5.0.
semplice sensore con annesso display per poter Il display integrato è RGB a 16 bit con interfaccia
analizzare la frequenza cardiaca di una persona, parallela, con una risoluzione di 480x320 e si basa
ovvero i battiti per minuto del cuore, che rappre- sul controller ILI9488.
sentano un indicatore chiave per determinare lo Anche qui, come già fatto nel progetto del “Monitor
stato di salute cardiovascolare. dei prezzi dei carburanti” proposto in Aprile-Mag-
gio, per poter scrivere a video e poter sfruttare a
L’HARDWARE DEL PROGETTO pieno le caratteristiche appena citate ci baseremo
Il pacchetto hardware è composto da un modulo sulla versione 1.1.2 della libreria LovyanGFX.
ESP32, un ESP32-S3 con display touch-sensitive Infine, l’ultimo componente è il MAX30102, un
ed infine una board MAX30102. Andiamo ad ana- pulsossimetro e cardiofrequenzimetro basato su
lizzare uno alla volta i componenti. un’interfaccia a basso consumo I²C-Bus e un sen-
Il primo, il conosciutissimo ESP32, è un MCU con sore biometrico, il tutto collocato su una breakout
WiFi e connettività Bluetooth integrati al fine di po- board dedicata. Lo vedete nella Fig. 2 nella ver-
ter coprire una vasta gamma di applicazioni (Fig. 1). sione impiegata nel progetto; precisiamo questo
La connettività Bluetooth è una delle peculiarità di perché in realtà esistono in commercio svariate
questa scheda perché offre possibilità di multi- breakout board con chip MAX30102 e possono
connessione e soprattutto nello standard BLE avere una pin-out differente da quella proposta
(Bluetooth Low Energy) su cui si baserà intera- nella Fig. 2, fermo restando che le connessioni
rimangono quelle.
Il pulsossimetro è uno strumento che viene
utilizzato per monitorare i parametri vitali di un
paziente senza utilizzare una metodica particolar-
mente invasiva.
Questo componente integra due LED, un fotorile-
vatore ed una parte di elaborazione per estrarre
dal segnale analogico con poco rumore i segnali di
pulsossimetria (SpO2) e frequenza cardiaca (HR).
 Fig. 2
Come accennavo in precedenza ci sono due led
La breakout pul- posti su un lato: LED rosso e LED IR. Dalla parte
siossimetro con opposta invece c’è il fotorilevatore.
MAX30102.
L’idea è quella di illuminare un LED alla volta rile-
vando la quantità di luce che ritorna al rilevatore;

110
è così possibile misurare il livello di ossigeno nel
sangue, nonché la frequenza cardiaca.  Fig.3
Effetto del
Sono richieste quindi due tensioni di alimentazione: flusso san-
quella di 1,8V per l’integrato e la 3,3V per i due LED guigno sulla
luce dei LED
del sensore; per questo sulla scheda sono presenti che viene
due regolatori di tensione. riflessa.
Se osserviamo bene sul retro della scheda, trove-
remo anche un ponticello per poter correggere il
comportamento dell’uscita nel caso non fossimo
collegati ad una scheda Arduino o ad una un ESP.
Una delle caratteristiche più importanti del
MAX30102 è il suo basso consumo energetico:
consuma meno di 600μA durante la misurazione.
Inoltre, è possibile metterlo in modalità standby,
dove consuma solo 0,7μA.
Questo basso consumo energetico consente l’im- un diodo fotorilevatore.
plementazione in dispositivi alimentati a batteria Il comportamento di tale dispositivo implementa
come telefoni, dispositivi indossabili o smart watch. due funzionalità: misurazione della frequenza
Ma cerchiamo di capire con esattezza il comporta- cardiaca e pulsossimetria.
mento di questa unità. La prima si basa sul fatto che l’emoglobina ossige-
Il MAX30102, o qualsiasi pulsossimetro ottico e nata (HbO2) nel sangue arterioso ha la caratteristi-
sensore di frequenza cardiaca, è costituito, come ca di assorbire la luce IR: tanto più rosso è il sangue
già ampiamente documentato da una coppia di (più alta è la concentrazione di emoglobina in esso)
LED ad alta intensità (ROSSO e IR, entrambi di quanta più luce IR viene assorbita, pertanto analiz-
diverse lunghezze d’onda) e un fotorilevatore. Le zando il comportamento della radiazione riflessa è
lunghezze d’onda di questi LED sono rispettiva- possibile dedurre quanto il sangue sia ossigenato e
mente di 660 nm e 880 nm. Il dispositivo funziona fornire un dato che esprime il livello di saturazione.
puntando entrambe le luci sul dito o sul lobo Mentre il sangue viene pompato attraverso le pic-
dell’orecchio (o essenzialmente ovunque la pelle cole arterie e arteriole del dito ad ogni battito car-
non sia troppo spessa, in modo che entrambe le diaco, la quantità di luce riflessa cambia, creando
luci possono facilmente penetrare nel tessuto) e una forma d’onda variabile all’uscita del fotorileva-
misurando la quantità di luce riflessa utilizzando tore (Fig. 3) dovuta alle “pulsazioni” della luce.

 Fig. 4
Andamento
del segnale
correlato a
quello della
pressione
sanguigna.

111
ricevuta dal fotorilevatore, viene calcolato il livello
di ossigeno (SpO2) nel sangue.

ARCHITETTURA DEL SISTEMA


L’architettura scelta per questo progetto è la
classica Client-Server, ovvero una configurazione
di rete nella quale un terminale client si connette
ad un server per la fruizione di un certo servizio
oppure la condivisione di una risorsa; nello specifi-
co, un’unità è quella indossabile formata da ESP32
e pulsiossimetro MAX30102 e l’altra il display
basato su ESP32-S3.
Tale sistema è spesso usato in reti di tipo LAN o
WAN; basti pensare infatti ad uno schema per
condividere un servizio di repository locale: ogni
PC che intende sviluppare attraverso un client va a
scaricare in locale la risorsa temporaneamente per
 Fig. 5
lavorarci. Questa è la base anche di servizi come
Spettro di assor- Continuando a illuminare il dito e ad acquisire le Git.
bimento delle due letture del fotorilevatore, si inizia rapidamente a Un altro esempio molto più semplice potrebbe
forme di emoglo-
bina. ottenere una lettura del battito cardiaco (FC) un essere delle API REST, chiamate da un client come,
esempio della quale è proposto nella Fig. 4, dove per esempio, PostMan o il browser stesso.
vedete la corrispondenza tra i picchi di pressione Nel progetto proposto in questo articolo la comu-
(arteria dilatata) e quelli del segnale elettrico. nicazione non avverà attraverso WiFi o rete LAN,
Invece il secondo segnale si basa sul principio che ma tramite Bluetooth; infatti i moduli basati su
la quantità di luce ROSSA e IR assorbita varia a ESP32, sebbene prevalentemente siano utilizzati
seconda della quantità di ossigeno contenuta nel per le proprietà dell’interfaccia WiFi, dispongono di
sangue. Il grafico proposto dalla Fig. 5 corrisponde transceiver Bluetooth.
allo spettro di assorbimento dell’emoglobina ossi- Nel dettaglio, attraverso una connessione BLE,
genata (HbO2) e dell’emoglobina deossigenata (Hb). una tecnologia Wireless Personal Area Net-
Come potete vedere dal grafico, il sangue deossi- work (WPAN) progettata e commercializzata dal
genato assorbe più luce ROSSA (660 nm), mentre Bluetooth Special Interest Group (Bluetooth SIG)
il sangue ossigenato assorbe più luce IR (880 nm). per nuove applicazioni nel settore dell’assistenza
Misurando il rapporto tra luce IR e luce ROSSA sanitaria, fitness, per la sicurezza, per l’industria
dell’intrattenimento domestico e per le industrie
automobilistiche e dell’automazione. Rispetto
al Bluetooth “classico”, il Bluetooth Low Energy
permette di garantire un consumo energetico e
un costo notevolmente ridotto, mantenendo un
intervallo di comunicazione simile.
L’interfaccia di comunicazione è basata su concetti
GATT; quest’ultimo è un profilo di attributo gene-
rico nel quale esistono diversi attori: un server, un
client, characteristic, service e descriptor. In altre
parole c’è un dispositivo che avvia i comandi e
accetta le risposte (tipicamente uno smartphone)
oltre ad un server, il quale è un dispositivo che (al
contrario) riceve i comandi e restituisce le risposte
(tipicamente un sensore).
 Fig. 6
Chiaramente in questo tipo di architettura sono
Cablaggio dell’unità
indossabile. due gli attori principali: Server e Client definiti dal
GATT. Il server è un dispositivo che riceve i comandi
e restituisce le risposte; tipicamente dispone di

112
 Fig.7
Aggiunta URL
al Gestore
schede dell’I-
DE Arduino.

un sensore e nel nostro caso sarà costituito dal ricevere il dato e mostrarlo a video in modo tale da
modulo ESP32 WROOM e dal MAX30102. poterlo condividere con l’utente.
Questi due dispositivi andranno cablati come Come vedremo anche alla fine dell’articolo, questa
proposto dalla Fig. 6, fermo restando che non interfaccia potrà essere anche costituita da un’app.
è necessario utilizzare la breadboard ma potete Un ruolo decisamente importante è svolto dal
avvalervi di una serie di jumper tipo Arduino. terzo attore, la caratteristica, ovvero un valore di
Il modulo ESP32 costituente il server leggerà cicli- dati trasferito dal server al client, nel nostro caso la
camente i dati dal sensore e metterà le informa- frequenza cardiaca.
zioni a disposizione di un eventuali client. Il server A raggruppare queste caratteristiche ci pensa il
potrà accettare in ingresso una sola connessione service: questo è infatti definito come una raccolta
alla volta. di caratteristiche correlate, che operano insieme
Il secondo attore coinvolto, il client, è un dispositi- per eseguire una funzione particolare.
vo che avvia i comandi e accetta le risposte; tipica- Nel nostro caso passiamo un solo dato quindi
mente di tratta di uno smartphone o un PC, ma nel questo legame sarà uno ad uno ma può essere
nostro caso sarà invece composto solamente dal ampliato tranquillamente aggiungendo, oltre alla
modulo ESP32-S3 con display touch integrato. caratteristica di frequenza cardiaca, anche quella
Questo potrà effettuare più connessioni simulta- saturazione.
nee con più server. Infine, vi è il descriptor, ossia il descrittore, il quale
Questa è una caratteristica molto importante fornisce ulteriori informazioni sulla caratteristica,
poiché potremmo dover integrare più sensori e per esempio un’informazione sull’unità di misura
quindi dover mostrare sul display più misurazioni usata oppure su eventuali valori di minimo e mas-
contemporaneamente. simo che il sensore può misurare.
Il compito principale dell’unità client sarà quello di Questo è opzionale, infatti ogni caratteristica può

113
 Fig. 8
Installazione dei
driver della serie
ESP32.

 Fig. 9
Avvio del carica-
mento dello sketch
nella ESP32.

avere un numero qualsiasi di descrittori. nullo.


Questi ultimi tre attori sono indicati collettivamen- Ma come funziona la comunicazione Bluetooth?
te come attributi e identificati da UUID, universally Ebbene, il primo step per implementarla consi-
unique identifier, in ambiente Microsoft a volte ste nell’eseguire una ricerca per il tipo di servizio,
detti GUID, ovvero stringhe uniche il cui rischio di attraverso lo UUID. Alcuni di questi servizi sono
collisione è davvero estremamente basso, quasi diventati degli standard usati da tutti, mentre altri
sono proprietari.
Il passo successivo è svolgere un discovery di tutte
le caratteristiche associate a quel servizio.
È possibile svolgere operazioni di read e write sulle
caratteristiche, oppure in alternativa lo standard
GATT (profilo Generic ATTribute) offre la possibilità
di avere delle notifiche legate ad una particolare
caratteristica. In quest’ultimo caso un valore diven-
ta disponibile, il sensore lo può notificare diretta-
mente al client collegato evitando quindi attività di
polling e il conseguente dispendio energetico.

  Il sistema per
rilevare il battito
cardiaco completo.

114
 Fig.10
Installa-
zione delle
librerie per il
MAX30102.

IL SERVER stringa https://dl.espressif.com/dl/package_esp32_


Come ampiamente descritto nei paragrafi prece- index.json, come in Fig. 7.
denti, il nostro server sarà collegato ad un sensore Senza aprire la finestra, si possono inserire le varie
MAX30102. URL separate ciascuna dalla virgola.
Prima di poter iniziare a sviluppare dobbiamo Successivamente bisogna recarsi nel menù
settare correttamente il nostro IDE Arduino, ag- Strumenti>Schede e qui selezionare Gestore schede
giungendo alle nostre librerie sia la scheda ESP32, dal sottomenù; nella finestra successiva, nello
sia il sensore; ricordiamo che i moduli ESP32 sono spazio di ricerca, inserire ESP32 poi cliccare su
pienamente supportati dall’ambiente di svluppo “Installa” all’interno della sezione della finestra di
Arduino, a patto di caricare i driver corrispondenti dialogo inerente alla board (Fig. 8).
le relative librerie. A questo punto per poter caricare il firmware sulla
Per raggiungere il primo obiettivo, andiamo in scheda è necessario impostare il tipo corretto di
File>Impostazioni e aggiungiamo all’interno del scheda, selezionando dal menù Strumenti>Scheda
campo URL aggiuntive per il gestore di schede la la voce ESP32 Wrover Module. Una volta aperto lo
sketch e avviata la procedura di download nella
scheda, quando in basso nella schermata dell’IDE
Arduino (console…) appare quanto in Fig. 9, dovete
 Listato 1 tenere premuto il pulsante BOOT sulla scheda
Serial.begin(115200); ESP32. Una volta impostata la scheda andiamo
ad aggiungere la libreria del sensore; allo scopo
if (!particleSensor.begin(Wire,
I2C_SPEED_FAST)) rechiamoci in Skecth>#include libreria>Gestore
{ librerie e qui ricerchiamo la voce MAX3010x;
Serial.println(“MAX30102 was not found.
cliccando su di essa procediamo ed installiamo il
Please check wiring/power. “);
while (1); risultato (Fig. 10).
} Ovviamente se ci dovessero essere più risultati
Serial.println(“Place your index finger on quello che interessa a noi è quello rilasciato dalla
the sensor with steady pressure.”); SparkFun Elettronics.
particleSensor.setup(); Ultimate queste operazioni basilari possiamo
iniziare a scrivere il nostro codice.
particleSensor.setPulseAmplitudeRed(0x0A);
Includiamo quindi le varie librerie necessarie:
particleSensor.setPulseAmplitudeGreen(0);

#include <BLEDevice.h>

115
 Listato 2
BLECharacteristic bmeHRateCharacteristics(“cba1d466-344c-4be3-ab3f-189f80dd7518”,
BLECharacteristic::PROPERTY_NOTIFY);
BLEDescriptor bmeHRateDescriptor(BLEUUID((uint16_t)0x2902));

BLECharacteristic bmeOxygenCharacteristics(“ca73b3ba-39f6-4ab3-91ae-186dc9577d99”,
BLECharacteristic::PROPERTY_NOTIFY);
BLEDescriptor bmeOxygenDescriptor(BLEUUID((uint16_t)0x2903));

#include <BLEServer.h> comunicazione:


#include <BLEUtils.h>
#include <BLE2902.h> #define bleServerName “HEART280_ESP32”
#include <Wire.h>
#include “MAX30105.h” In primis il nome del dispositivo. Qui abbiamo
#include “heartRate.h” messo un nome come stringa; tale approccio è
discutibile perché in caso avessimo diversi sensori
Nella nostra funzione di setup inizializziamo il sen- tutti uguali potremmo far fatica a riconoscerli uno
sore e la seriale, quest’ultima per poter compiere un dall’altro. Per ovviare a questa cosa si potrebbe
po’ di debug nel caso fosse necessario (Listato 1). pensare di concatenare alla stringa presente anche
Queste ultime tre istruzioni servono nel dettaglio l’id univoco della scheda. In questo modo avremo
per configurare con le opzioni predefinite il nostro tutti sensori in cui la parte finale cambia sempre:
sensore, per accendere la luce rossa del sensore,
un dettaglio che ci permetterà di capire anche unsigned long lastTime = 0;
visivamente se il sensore è stato correttamente unsigned long timerDelay = 100;
inizializzato e per spegnere la luce verde. bool deviceConnected = false;
Come porta del nostro lettore utilizziamo quella
standard I²C a 400 kHz. Prepariamo quindi tre variabili che saranno indi-
Per poter leggere il valore ad ogni ciclo andiamo a spensabili per capire quando inviare il dato e se un
modificare anche la funzione di LOOP inserendo: client è connesso o meno a noi:

long irValue = particleSensor.getIR(); #define SERVICE_UUID “91bad492-b950-4226-aa2b-4ede-


if (checkForBeat(irValue) == true){ 9fa42f59”
long delta = millis() - lastBeat;
lastBeat = millis(); Definiamo un UUID per il servizio, come già accen-
hrate = 60 / (delta / 1000.0); nato nel capitolo precedente, è molto importante
} perché proprio su questo si baserà la ricerca blue-
tooth da parte di eventuali client.
Ora abbiamo le pulsazioni, in locale, ma intanto Questo a sua volta conterrà delle caratteristiche,
riusciamo a prelevare il dato dal sensore e renderlo anch’esse con uno UUID. Oltre alla caratteristica
disponibile per un eventuale invio. è stato aggiunto un descrittore e la possibilità di
Dichiariamo quindi gli oggetti responsabili della avere la già menzionata proprietà di notifica come

 Listato 3
bmeService->addCharacteristic(&bmeHRateCharacteristics);
bmeHRateDescriptor.setValue(“BME temperature Celsius”);
bmeHRateCharacteristics.addDescriptor(&bmeHRateDescriptor);

bmeService->addCharacteristic(&bmeOxygenCharacteristics);
bmeOxygenDescriptor.setValue(“BME humidity”);
bmeOxygenCharacteristics.addDescriptor(new BLE2902());

116
proposto nella porzione di codice contenuta nel
Listato 2.
 Fig.11
In realtà verrà utilizzata realmente solo la prima, Installazione
mentre la seconda è stata inserita per capire come della scheda
ESP32 con
comportarsi in caso di caratteristiche multiple. display.
Allo stesso livello delle funzioni SETUP e LOOP
andiamo a creare una classe che curerà gli eventi
di connect e disconnect da parte dei client:

class MyServerCallbacks: public BLEServerCallbacks {


void onConnect(BLEServer* pServer) {
deviceConnected = true;
};
void onDisconnect(BLEServer* pServer) {
deviceConnected = false;
}
};

Come si può notare, il codice va ad abilitare e


disabilitare la variabile di connessione boolean
dichiarata all’inizio.
Nella funzione di setup invece inseriamo per primo
l’init del servizio attraverso il nome: Bluetooth con queste istruzioni:

BLEDevice::init(bleServerName); BLEService *bmeService = pServer-


>createService(SERVICE_UUID);
Poi creiamo l’entità server ed associamogli la
classe precedente in modo tale che possiamo e a tale service aggiungiamo le due caratteristiche
gestire correttamete gli eventi di ingaggio da parte ovvero la frequenza cardiaca e l’ossigenazione
del client. che non andremo però a movimentare realmente
(Listato 3).
BLEServer *pServer = BLEDevice::createServer(); Infine, avviamo il servizio ed il server attraverso il
pServer->setCallbacks(new MyServerCallbacks()); codice proposto qui di seguito:

A questo punto esponiamo il service (servizio) bmeService->start();

 Listato 4
#include “BLEDevice.h”
#include <Wire.h>

int beatAvg;

const byte RATE_SIZE = 4; //Increase this for more averaging. 4 is good.

byte rates[RATE_SIZE]; //Array of heart rates


byte rateSpot = 0;

static boolean doConnect = false;


static boolean connected = false;

const uint8_t notificationOn[] = {0x1, 0x0};


const uint8_t notificationOff[] = {0x0, 0x0};
char* hrateChar;

boolean newHearthRate = false;

117
BLEAdvertising *pAdvertising = LATO CLIENT
BLEDevice::getAdvertising(); Così come per il server, prima di sviluppare la parte
di client dobbiamo impostare correttamente il
pAdvertising->addServiceUUID(SERVICE_UUID); nostro IDE. A differenza della parte precedente, la
pServer->getAdvertising()->start(); scheda è una ESP32-S3 quindi dobbiamo impor-
tarla correttamente. Ci rechiamo in File, Impo-
Con il server abbiamo quasi finito. stazioni e aggiungiamo all’interno del campo URL
Andiamo a completare la funzione di LOOP, aggiuntive per il gestore di schede la stringa https://
sospesa dopo aver implementato la lettura della raw.githubusercontent.com/espressif/arduino-esp32/
frequenza cardiaca, ed aggiungiamo il seguente gh-pages/package_esp32_index.json.
blocco di istruzioni: Andiamo in Strumenti->Scheda->Gestore schede e
cerchiamo esp32, come già abbiamo fatto per il
if (deviceConnected) { server; poi installiamo o aggiorniamo con la versio-
if ((millis() - lastTime) > timerDelay) { ne 2.0.6 (Fig. 11). Anche qui possiamo dividere in
Serial.print(“Heart rate:”); due parti lo sviluppo: comunicazione e disegno.
Serial.print(hrate); Nella prima parte, comunicazione, andiamo a crea-
static char hrateCTemp[6]; re il legame tramite BLE con il sensore.
dtostrf(hrate, 6, 2, hrateCTemp); Importiamo pertanto le librerie e dichiariamo alcu-
bmeHRateCharacteristics.setValue(hrateCTemp); ne variabili chiave come nel Listato 4.
bmeHRateCharacteristics.notify(); Successivamente dichiariamo il nome del server
Serial.print(“Heart rate: “); che vogliamo leggere, i suoi servizi, nel nostro caso
Serial.print(hrate); solamente uno e la caratteristica che intendiamo
lastTime = millis(); leggere:
}
#define bleServerName “HEART280_ESP32”
Come potete notare, se e soltanto se un client è static BLEUUID bmeServiceUUID(“91bad492-b950-4226-
connesso e se l’intervallo di tempo è consono per il aa2b-4ede9fa42f59”);
push del dato allora viene visualizzata sulla conso- static BLEUUID hrateCharacteristicUUID(“cba1d466-
le. Oltre ad essere visualizzata nel log viene fatto 344c-4be3-ab3f-189f80dd7518”);
un cast del dato in char e viene settato all’interno static BLEAddress *pServerAddress;
del Value della caratteristica. static BLERemoteCharacteristic* hrateCharacteristic;
Inoltre, viene lanciata l’operazione di notifica in
modo che anche il client possa essere informato Dichiariamo inoltre la classe che sarà responsabile
della disponibilità del dato e possa leggerlo. delle nostre callback e ufficializziamo la connessio-

 Listato 5
bool connectToServer(BLEAddress pAddress) {
BLEClient* pClient = BLEDevice::createClient();
pClient->connect(pAddress);

BLERemoteService* pRemoteService = pClient->getService(bmeServiceUUID);

if (pRemoteService == nullptr) {
Serial.println(bmeServiceUUID.toString().c_str());
return (false);
}

hrateCharacteristic = pRemoteService->getCharacteristic(hrateCharacteristicUUID);
if (hrateCharacteristic == nullptr || oxyCharacteristic == nullptr) {
return false;
}

hrateCharacteristic->registerForNotify(hrateNotifyCallback);
return true;
}

118
 Fig.12
Installazione
della libreria
LovyanGFX.

ne con il server, ovvero MyAdvertisedDEviceCall- Mentre nella funzione di LOOP inseriamo quanto
backs: segue:

class MyAdvertisedDeviceCallbacks: public BLEAdver- if (doConnect == true) {


tisedDeviceCallbacks { if (connectToServer(*pServerAddress)) {
void onResult(BLEAdvertisedDevice advertisedDevice) { hrateCharacteristic->getDescriptor(BLEUUID(
if (advertisedDevice.getName() == bleServerName) (uint16_t)0x2902))->writeValue((uint8_t*)
{ matches notificationOn, 2, true);
advertisedDevice.getScan()->stop(); connected = true;
pServerAddress = new BLEAddress } else {
(advertisedDevice.getAddress()); }
doConnect = true; doConnect = false;
} }
} if (newHearthRate){
}; newHearthRate = false;
printReadings();
Come si può facilmente dedurre dal codice, una }
volta invocata questa classe si arresta la ricerca di
altri eventuali dispositivi, salviamo l’indirizzo del Se il dispositivo è connesso, si passa l’indirizzo ad
server e abilitiamo il flag di connessione. una funzione di cui vedremo più avanti il com-
Possiamo quindi passare ad inizializzare la ricerca portamento e portiamo a livello basso il flag di
all’interno della funzione di SETUP: connessione, essendo il sistema già connesso.
ConnectToServer è una funzione importantissima
BLEDevice::init(“”); che dettagliamo nel Listato 5.
BLEScan* pBLEScan = BLEDevice::getScan(); Ci connettiamo, infatti, fisicamente al server e
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdver- otteniamo una referenza al suo interno.
tisedDeviceCallbacks()); Se la referenza non è nulla, cerchiamo di ottenere
pBLEScan->setActiveScan(true); la caratteristica della frequenza cardiaca e succes-
pBLEScan->start(30); sivamente ci registriamo per le notifiche di questa,
assegnando anche una callback.
Dopo aver impostato correttamente le varie
callback andiamo ad attivare una scansione dei static void hrateNotifyCallback(BLERemote
dispositivi vicini della durata di 30 secondi. Characteristic* pBLERemoteCharacteristic,

119
 Listato 6
#define LGFX_AUTODETECT
#define LGFX_USE_V1
#include <LovyanGFX.hpp>
#include <LGFX_AUTODETECT.hpp>

static LGFX lcd;


const uint32_t BG_BAR_COLOR = lcd.color888(42, 59, 201);
const uint32_t TXT_BAR_COLOR = lcd.color888(255, 255, 255);
const uint32_t BG_CARD_COLOR = lcd.color888(192, 192, 192);
const uint32_t GRAPH_COLOR = lcd.color888(255, 0, 0);

int old_x = 40;


int old_y = 260;
int old_hr = 0;

uint8_t* pData, size_t length, bool isNotify) { Nella callback immagazziniamo il nuovo dato
hrateChar = (char*)pData; arrivato e settiamo il flag a true in modo tale da
newHearthRate = true; poterlo leggere nella funzione di LOOP.
} Come accennato inizialmente, questo capitolo è
diviso in due parti: della prima, la comunicazione,
abbiamo sviscerato praticamente tutto e non ci
resta che affrontare la seconda parte ovvero il di-
 Listato 7 segno. Qui andiamo a sfruttare tutte le potenzialità
void drawAVGHrate(String text){ che ci può offrire il display touch integrato.
lcd.fillRect(340, 130, 150, 100, TXT_BAR_COLOR); La libreria di cui ci avvaliamo è la LovyanGFX. È
lcd.setTextColor(BG_BAR_COLOR, TXT_BAR_COLOR);
lcd.setTextSize(2); possibile scaricarla sia dal repository Github uffi-
lcd.drawString(text, 350, 130); ciale https://github.com/lovyan03/LovyanGFX che da
}
https://www.arduinolibraries.info/libraries/lovyan-gfx
void printReadings(){ ed importarla attraverso lo zip oppure installarla
Serial.print(“Heart rate:”);
direttamente dentro ad Arduino IDE attraverso il
Serial.print(hrateChar); Gestore delle librerie, utilizzato in precedenza per
l’hardware del server (Fig. 12).
String stringOne = String(hrateChar);
int hrate = stringOne.toInt(); Importiamo quindi le varie librerie all’interno del
int y = 270-hrate; codice e i colori che utilizzeremo: lo facciamo con la
if(y>60 && y<270){
lcd.drawLine(old_x, old_y, (old_x+3), porzione di codice contenuta nel Listato 6.
y, GRAPH_COLOR); Fatto ciò, inseriamo all’interno della funzione
lcd.fillRect((old_x+4), 60, 30, 215,
TXT_BAR_COLOR);
SETUP l’inizializzazione del display:
old_x = old_x +3;
old_y = y; lcd.init();
if(old_x>300){
old_x = 40; lcd.setRotation(1);
lcd.fillRect(old_x, 60, 4, 215, lcd.setBrightness(128);
TXT_BAR_COLOR);
} lcd.setColorDepth(24);
if (hrate < 255 && hrate > 20) lcd.clear(0xFFFFFFu);
{
lcd.setBaseColor(0xFFFFFFu);
rates[rateSpot++] = (byte)hrate;
rateSpot %= RATE_SIZE; lcd.clear();
beatAvg = 0;
for (byte x = 0 ; x < RATE_SIZE ; x++)
beatAvg += rates[x]; Dichiariamo quattro funzioni che saranno le re-
beatAvg /= RATE_SIZE; sponsabili di tutta la parte di disegno: drawHeader-
String tmpAvg = String(beatAvg);
drawAVGHrate(tmpAvg); Bar, drawString, drawAVGHeart e printReadings.
} La prima, come possiamo notare dallo snippet
}
}
di codice seguente, non fa altro che disegnare la
barra di status in alto. Si tratta semplicemente di
estetica e non ha grossi impatti sul resto del codi-

120
ce. Questa possiamo personalizzarla con orario e
data o utilizzare lo spazio per altro:
 Fig. 13
Schermata
void drawHeaderBar(){ dell’app per il
monitoraggio
lcd.fillRect(0, 0, 480, 50, BG_BAR_COLOR); wireless.
lcd.fillRect(0, 50, 480, 270, TXT_BAR_COLOR);
lcd.setFont(&fonts::Orbitron_Light_24);
lcd.setTextColor(TXT_BAR_COLOR, BG_BAR_COLOR);
lcd.setTextSize(0.8);
lcd.drawString(“HEART RATE”, 180, 20);
lcd.setTextColor(BG_BAR_COLOR, TXT_BAR_COLOR);
lcd.drawString(“AVG BPM”, 340, 100);
}

La seconda, invece, ha lo scopo di notificare gli


eventi: è un po’ la Serial.print ma per l’utente finale.
Questa infatti informerà sugli eventi di sistema:
ricerca di un server BLE, connessione, se ci sono
problemi ecc.

void drawString(String text){


lcd.fillRect(0, 280, 480, 40, TXT_BAR_COLOR);
lcd.setTextColor(BG_BAR_COLOR, TXT_BAR_COLOR);
lcd.setTextSize(0.7);
lcd.drawString(text, 30, 280);
}

Infine, vi sono le ultime due che invece trat-


tano il dato arrivato dal client e ne danno una Un futuro scenario per questo tipo di applicazio-
rappresentazione grafica. Se di queste due, la ni potrebbe essere quello di trasformare la parte
prima è molto elementare, la seconda, respon- di client e renderla fruibile anche in assenza
sabile del disegno del grafico è leggermente più di dispositivi fisici, come per esempio il nostro
complessa. ESP32-S3 touchscreen.
Quest’ultima, infatti, ha al propro interno una Un’app su smartphone, infatti, potrebbe rim-
logica per cui una volta completata la porzione piazzare l’apparecchiatura e permetterci di inte-
del grafico riprende da capo, cancellando le ragire ugualmente con il nostro sensore smart.
parti precedenti, dando un senso di continuità Rimangono validi tutti i costrutti che abbiamo
(Listato 7). esposto e descritto, soprattutto in materia di co-

Inseriamo la drawHeaderBar nella funzione di municazione tramite Bluetooth Low Energy.
SETUP, la drawString invece in ogni funzione che
richieda un log da poter far visionare all’utilizza-
tore, mentre la printReadings invece all’interno
della funzione di LOOP.

CONCLUSIONI Cosa occorre?


Bene, si chiude qui la descrizione del nostro
Il modulo ESP32 con display touch (cod. ESP32S335D) è
progetto di monitor del battito cardiaco in pieno disponibile a Euro 89,00, il modulo ESP32 (cod. YB555) a Euro
stile wearable, connesso via Bluetooth. 13,50, il sensore con MAX30102 (cod. MAX30102MOD) a Euro
Avendovi dato tutte le informazioni per com- 7,50. I prezzi si intendono IVA compresa.
prendere l’interazione tra il dispositivo indossa-
Il materiale va richiesto a:
bile e il client realizzato con il display TFT basato
su ESP32-S3, chi di voi se la sente può sbizzar- Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - www.futurashop.it
rirsi in personalizzazioni.

121
Arduino,
su
Solo t.it
futur
ane

la piattaforma
open source per tutti!
cod. ARDUKITLEVEL1 cod. ARDUKITLEVEL2
ARDUKITLEVEL1 ARDUKITLEVEL2
ARDUINO UNO R3 ORIGINALE ARDUINO UNO R3 ORIGINALE
+ SET COMPONENTI + SET COMPONENTI
Entra
nell’affascinante
mondo di Arduino
e impara ad
utilizzarlo al meglio
con i nostri kit!
Scegli quello più € €
adatto a te. 35,90 45,90

IL PIÙ
COMPLETO!
cod. ARDUKITABC cod. ARDUKITV6 cod. ARDUINOSTARKIT
ARDUKITABC ARDUKITV6 ARDUINOSTARKIT
STARTER KIT CON ARDUINO ARDUINO ORIGINALE + ARDUINO ORIGINALE +
UNO REV3 E COMPONENTI LIBRO L’ABC DI ARDUINO + LIBRO IN ITALIANO +
COMPONENTI COMPONENTI

Prezzi IVA inclusa.

€ € €
58 ,00
68 ,00
118,00

Futura Group srl


Caratteristiche tecniche di questi prodotti
® www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
ARDUINO

CON JOLLY
L’ ARDUINO UNO
DIVENTA
Wi-Fi

di BORIS LANDONI

L
a scheda Arduino UNO è ormai entrata a
pieno titolo nella storia dell’elettronica, ma
da quando è nata sono stati compiuti passi
da gigante nel mondo della comunicazione,
soprattutto wireless, nell’ambito dell’auto-
mazione domestica.
Presentiamo Jolly è un modulo elettronico costituito
Jolly, un add-on da un micro PCB che può essere inserito
in una board Arduino UNO, al posto del microcontrollore
per dotare la più originale; essendo dotato di Wi-Fi integrato, può estendere
famosa board all’infinito le potenzialità dei progetti esistenti nel nuovo
mondo dell’IoT.
open-source Infatti, grazie a questo modulo, la stessa board viene trasfor-
della funzionalità mata in un dispositivo IoT. Il modulo può essere usato anche
separatamente dalla board, in modalità stand-alone, esatta-
Wi-Fi. mente come il microcontrollore ATmega328P-PU.

123
L’IDEA
 Fig. 1 Jolly nasce da un’idea di Gianluca Martino, inge-
I primi prototipi gnere elettronico e co-fondatore di Arduino, che
del modulo Jolly.
ha avuto questa eccellente intuizione, e dopo aver
creato alcuni prototipi (Fig. 1), col suo team si è
rivolto a Kickstarter. Il progetto è stato accolto con
grande entusiasmo dai baker, ed è stato finanziato
al 300% e le schede sono state consegnate con
diversi mesi di anticipo.
Nel pieno rispetto della sostenibilità, l’imballaggio
del modulo jolly è stato realizzato in materiale
completamente riciclabile.

CARATTERISTICHE TECNICHE
Come già detto, il modulo è stato progettato prin-
Dotare una board Arduino UNO di questo modulo cipalmente per espandere le funzionalità offerte
significa darle una nuova dimensione, adeguata dall’Arduino UNO, trasformandolo in un moderno
alle odierne esigenze in materia di comunicazione dispositivo IoT senza alterarne le caratteristiche e
e automazione domestica. mantenendo la compatibilità con la board originale.
Tutti coloro che in questi anni hanno trovato in Il modulo è poco più grande del microcontrollore
Arduino UNO e nelle schede compatibili la giusta originale della board, infatti le sue dimensioni
piattaforma per creare progetti e oggetti, cioè hob- esterne sono 41 x 10 mm (Fig. 2).
bisti, studenti, appassionati, programmatori e pro- Poiché il modulo sostituisce l’ATmega328P
fessionisti, dovrebbero effettuare questo upgrade, nell’Arduino UNO, per poterlo realizzare con
per sfruttarne le enormi potenzialità. Una delle dimensioni compatibili, è stato necessario utiliz-
caratteristiche fondamentali è il mantenimento zare la sua versione SMD più recente, chiamata
della piena compatibilità del pinout, del firmware e ATmega328PB-MU, che comunque garantisce la
dell’architettura hardware dei progetti esistenti. piena compatibilità della piedinatura, del firmware

 Fig. 2
Dimensioni del
modulo Jolly

 Fig. 3
Arduino UNO
col modulo Jolly

124
e dell’architettura hardware del suo predecesso- per l’uso in modalità stand-alone. Per l’aggiorna-
re, ma in uno spazio molto più ridotto. Questo ha mento del firmware di entrambi i microcontrollori, CARATTERISTICHE
permesso di poter aggiungere un ulteriore micro- mediante l’IDE, è stata sviluppata una specifica TECNICHE
controllore, l’ESP8285, equivalente all’ESP8266 piattaforma Arduino dedicata alla programmazio-
ma con una flash integrata da 2 MB, caratteristica ne della board. Microchip ATmega328PB

essenziale per mantenere le dimensioni della Il processore ESP è programmabile esattamente Espressif ESP8285H16
scheda ridotte. Inoltre è stato necessario integrare come lo è il 328. È stato infatti rilasciato un Core con 2MB di memoria flash
integrata
anche un circuito di regolazione della tensione ed Arduino dedicato che può essere reperito, assieme
un level shifter (adattatore di livello dei segnali alla documentazione, sull’apposita pagina GITHUB:
Interfaccia di comunicazione:
digitali) poiché i due microcontrollori funzionano github.com/tech-jollydev/jolly-arduino-platform e SPI + UART (usata
con differenti tensioni di alimentazione (5 V per che da la possibilità agli utenti di personalizzare il esclusivamente per la
programmazione dell’ESP8285)
l’ATmega328PB e 3,3 V per l’ESP8285). Il modulo è comportamento del processore ESP sovrascriven-
dotato di un LED BUILTIN e di un’antenna integrata do quello impostato di fabbrica. La scelta dell’an-
Tensione di alimentazione
per il Wi-Fi (Fig. 3). tenna integrata è stata dettata dalla necessità esterna: 5 V
L’unica limitazione (approfondiremo questo di un compromesso tra efficienza e versatilità, a
1 pulsante di boot
aspetto più avanti) è data dal fatto che i due mi- vantaggio della riduzione dell’ingombro; d’altra
crocontrollori sono collegati tra loro attraverso due parte il modulo nasce per sperimentazione ed uso 1 led per collegamento Wi-Fi
interfacce digitali: una SPI e una UART. In partico- domestico, e non per scopi industriali.
Dimensioni: 41 x 10 mm
lare, l’interfaccia SPI, che è la stessa esposta sulla
piedinatura del modulo, è utilizzata per lo scambio HARDWARE
di dati, mentre la UART, è appannaggio esclusivo Come già detto, il modulo Jolly è caratterizzato
della programmazione, sia per l’ATmega328PB che dalla coesistenza di due microcontrollori su un PCB
per l’ESP8285. di forma e dimensioni praticamente identiche a
L’interfaccia seriale di quest’ultimo è attiva solo quelle di un microcontrollore ATmega328P.
durante la fase di programmazione per non inter- I due micro sono l’ESP8285H16, a sua volta costi-
ferire con il normale funzionamento della seriale tuito da un ESP8266 e da una memoria flash da 2
dell’ATmega328PB (Fig. 4) MB, e da un ATMEGA328PB-MU, quindi lo stesso
La programmazione del solo chip WiFi è possibile microcontrollore presente sull’Arduino UNO, ma
grazie alla presenza di una specifica chiave di avvio di costruzione più recente, caratterizzata non solo
e di un firmware speciale nell’ATmega328PB. da un package di tipo QFN (che lo rende molto più
La presenza dei componenti sulla sola faccia supe- compatto) ma anche dall’aggiunta della Porta E
riore del PCB rende questa scheda perfetta anche che offre GPIO aggiuntivi, anche se in questo caso

 Fig.4
Schema a
blocchi del
modulo Jolly.

125
• ESP_CS(PE2): canale usato dall’ATmega328PB
per indirizzare la comunicazione SPI verso
 Fig. 5
Sequenza di boot l’ESP8285 anziché verso l’esterno del modulo;
chiaramente quando viene usato la comunica-
zione SPI esterna non è disponibile;
• ESP_BOOT(PE3): canale usato per mettere
l’ESP8285 in modalità boot ed è controllato sia
dall’ATmega328PB che dall’utente mediante il
tasto di boot presente sulla scheda.
L’attivazione del boot dell’ESP8285 è mediata
non sono disponibili esternamente. È presente dal bootloader presente sull’ATmega328PB, che
inoltre un regolatore di tensione lineare CMOS deriva dall’Optiboot presente nell’ATmega328P
da 3.3 V, il MIC5303-3.3, caratterizzato da un montato sull’Arduino UNO.
basso dropout (100 mV a 300 mA), una corrente Per avviare la modalità di boot dell’ESP8285, l’Op-
massima garantita di 300 mA, elevata precisione e tiboot modificato resta “in ascolto” dell’attivazione
protezioni termica e da sovracorrente. del tasto di boot in successione ad un evento di
I due micro comunicano tra di loro usando reset. Come si può osservare nella Fig. 5, l’ATme-
l’interfaccia SPI esposta sulla Porta B, la stessa ga328PB in uscita dalla condizione di reset verifica
che viene portata all’esterno del modulo e usata lo stato di ESP_BOOT e se questo si trova a stato
dall’Arduino UNO sui pin 13, 12, 11; questa cosa logico 0 mette l’ESP8285 in boot mode.
impone un limite all’uso dell’SPI come periferica di Vediamo ora l’utilizzo dei seguenti GPIO dell’E-
comunicazione verso l’esterno del modulo quando SP8285:
il Wi-Fi è in funzione. • SD_DATA2: serve per controllare il LED integrato,
Invece i GPIO afferenti alla Porta E aggiuntiva utile a segnalare l’attività della periferica Wi-Fi;
vengono utilizzati per la sincronizzazione tra i • GPIO4: serve per forzare il reset dell’ATme-
due micro e ciò permette di non sacrificare i GPIO ga328PB e permettere in futuro l’implementa-
connessi ai connettori di I/O dell’Arduino UNO, zione di un algoritmo di OTA.
mantenendo pertanto la piena compatibilità con
l’ATmega328P. Vediamo come vengono usati MONTAGGIO ED UTILIZZO DEL MODULO
questi GPIO: JOLLY
• ESP_SR (PE0): canale usato dall’ESP8285 per Per poter utilizzare il modulo Jolly basterà togliere
segnalare all’ATmega328PB che è pronto a il chip ATmega328P, facendo leva delicatamente
comunicare; con un estrattore dedicato o un cacciavite a taglio
• ESP_ON/OFF(PE1): canale usato dall’ATme- tra il chip e lo zoccolo, facendo attenzione a non
ga328PB per accendere e spegnere l’ESP8285; piegare i piedini del microcontrollore. La scheda da
 Fig. 6
noi testata (cod. 7304-JOLLYUNO su futurashop.it)
Montaggio del
modulo Jolly su è già priva dell’ATmega328P-PU originale, quindi
Arduino UNO occorrerà solo inserire il modulo, i cui pin sono
compatibile.
lunghi e consistenti, quindi bisogna fare una certa
pressione, ma è sufficiente che sia garantito il
contatto, senza eccedere.
Per salvaguardare lo zoccolo della scheda se ne
potrebbe aggiungere un altro identico, sul quale
innestare il modulo, inserendo poi il tutto nella
scheda. Bisogna fare molta attenzione al verso di
inserimento, orientandolo come in Fig. 6, cioè con
l’antenna rivolta verso l’esterno della board.

Installazione (Windows, Linux e macOS)


È richiesta la versione di Arduino IDE 1.8.13 o
superiore, noi abbiamo usato la 1.8.19. I passaggi
da seguire sono i seguenti:
• Selezionare il menu File – Impostazioni;

126
 Fig. 7
Configura-
zione del
modulo Jolly
nell’IDE.

• Aggiungere i seguenti due link nel campo URL • Digitando jolly nella barra di ricerca appare la
aggiuntive per il Gestore schede: https://tech- scheda Jolly AVR Boards;
jollydev.github.io/package_jolly_index.json, https:// • Cliccare su Installa e quindi chiudere e riavviare
espressif.github.io/arduino-esp32/package_esp32_ l’IDE;
index.json separandoli con una virgola; • Entrare nuovamente nel menu Strumenti –
• Dal menu Strumenti – Scheda selezionare l’op- Scheda e selezionare la board jolly-dev • Jolly
zione Gestore schede...; (Fig. 7).

 Fig.8
Impostazio-
ni IDE per
ricaricare il
bootloader.

127
una specifica procedura:
 Fig. 9 • Nell’IDE Arduino selezionare il menu Strumenti;
Collegamento WiFi • Scegliere ESP8285 per l’opzione bootloader,
alla scheda Jolly.
come mostrato in Fig. 8;
• Premere e mantenere premuto il pulsante di
boot situato sul modulo Jolly; premere il pul-
sante di reset sull’Arduino UNO per 1 secondo,
quindi rilasciarlo; mantenere ancora premuto
il pulsante di boot per un altro secondo, quindi
rilasciarlo. A questo punto il Jolly è entrato in
modalità di boot per l’ESP8285;
• Cliccare sull’opzione Scrivi il bootloader dal menu
Strumenti e la procedura si avvierà automatica-
mente.
Per tenere traccia del processo di aggiornamento,
nelle Impostazioni attivare le due opzioni compila-
zione e caricamento del campo “Mostra un output
dettagliato durante:”.
Ricaricare il firmware predefinito dell’ESP8285 Gli utenti più esperti hanno la possibilità di perso-
Nel caso in cui il firmware debba essere aggior- nalizzare completamente il codice in esecuzione
nato per qualsiasi motivo, nel repository GitHub sull’ESP8285 utilizzando la piattaforma dedicata
al percorso https://github.com/tech-jollydev/jolly- disponibile a questo link: https://github.com/tech-
arduino-platform/tree/master/firmwares/jolly_esp è jollydev/jolly-arduino-esp8285-platform
disponibile una versione precompilata del firmware
predefinito dell’ESP8285 e già caricato all’origine. Jolly Webpanel
Esso è composto da due file: WiFiManager.bin e Entriamo ora nel vivo dell’uso del modulo Jolly, che
WiFiManager_spiff.bin. viene consegnato con lo sketch WiFiRestServer.ino
Per l’eventuale aggiornamento bisogna seguire precaricato.

 Fig. 10
Il Webpanel della
scheda Jolly.

128
 Fig.11
Schema
collegamenti
circuito di
test

Questo codice consente all’utente, mediante Mettiamo a confronto il circuito con le indicazioni
interfaccia WiFi, di accedere a una pagina web per del Webpanel:
il controllo remoto dei GPIO presenti sulla scheda. • Il pin digitale 3 è usato come uscita PWM, il
Su questa pagina, che prende il nome di Webpa- valore 95 fa accendere il LED con una luminosità
nel, è possibile settare i pin digitali come INPUT e ridotta;
leggerne lo stato logico, oppure come OUTPUT, • Il pin digitale 6 è settato come ingresso, essendo
impostandoli sullo stato logico HIGH (1) o LOW (0);
per quelli associati al PWM è possibile regolare il
valore tramite un cursore; infine si può leggere il
valore dei pin analogici.
Per accedere al Webpanel è necessario aprire, da
PC o smartphone, l’elenco delle connessioni WiFi
disponibili, cercare quella relativa alla scheda Jolly e
collegarsi ad essa (Fig. 9).
Ora, tramite un browser, digitare l’indirizzo
192.168.240.1 (è prefissato in fabbrica ed è uguale
per tutti i moduli), dopo qualche istante si aprirà la
maschera visibile in Fig. 10.
L’interfaccia è molto intuitiva, basta cliccare sul
GPIO da controllare o monitorare, sull’immagine
della scheda, e alla sua destra apparirà un riquadro
per interagire col pin; nel nostro esempio abbiamo
settato questi pin:
• Pin digitale 3 come OUTPUT con PWM a 95;
• Pin digitale 6 come INPUT, collegato ai 3,3 V
della scheda;
 Fig. 12
• Pin digitale 8 come OUTPUT su ON; Circuito di
• Pin analogico A0 collegato ai 3,3 V della scheda. test per il
Webpanel.
In Fig. 11 riportiamo il circuito realizzato per le
prove, avvalendoci di una breadboard e di quattro
componenti esterni.

129
 Fig. 13
Comunicazione tra
PC e Jolly.

collegato ai 3,3 V di Arduino, cliccando sul pul- del codice. Quello scritto per realizzare il web panel
sante Check si ottiene come risultato 1 (HIGH); è formato da file in html, css e javascript.
• Il pin digitale 8 è settato come uscita HIGH, Quest’ultimo si interfaccia ad una parte del
quindi il LED ad esso collegato ha la massima firmware, scritto nel linguaggio di Arduino, che è in
luminosità; esecuzione sulla scheda.
• Il pin analogico A0 è collegato ai 3,3 V di Arduino, Quando ci si collega alla scheda digitando sul
siccome il riferimento del convertitore analogico- browser l’indirizzo IP ad essa associato, i file html,
digitale è 5 V (che corrisponde a 1023) cliccando css e javascript vengono trasmessi dalla scheda al
sul pulsante Check la lettura è di 680. browser.
In Fig. 12 lo schema dei collegamenti per chi vo- Quest’ultimo li interpreta e genera l’interfaccia
lesse replicare questo test. grafica del Webpanel. In pratica la scheda Arduino
Ora cerchiamo di comprendere il funzionamento col modulo Jolly ha funzione di server, mentre il

 Listato 1 – lato server (IDE)


void setup() {
Serial.begin(115200);
Serial.println(“Checking WiFi linkage”);
WiFi.reset();
WiFi.init(AP_STA_MODE);
if (WiFi.status() == WL_NO_WIFI_MODULE_COMM) {
Serial.println(“Communication with WiFi module not established.”);
}
else {
Serial.println(“WiFi module linked!”);
Serial.println(“Attempting to connect to a stored network”);
/*
In this case we are trying to connect to a stored network.
Look at the ConnectToASavedNetwork example to have further information.
*/
if (WiFi.begin() != WL_CONNECTED) {
if (WiFi.status() != WL_CONNECTED) {
/*
if the connection fails due to an error...
*/
Serial.println(“Connection error! Check ssid and password and try again.”);
}
}
server.begin();
}
}

130
la scheda col modulo, in questo modo:
 Listato 2 – lato server (IDE)
void loop() { ajax(getUrl()+”/analog/”+relid[1],
// listen for incoming clients “analog_”+relid[1]+”_value”);
WiFiClient client = server.available();
while (client.connected()) {
// Process request A questo punto il client invierà al server, in ascolto
process(client);
// Close connection and free resources. sulla scheda, una chiamata del tipo:
delay(1); http://192.168.240.1:8080/jolly/analog/0
client.stop();
}
Sulla scheda è in esecuzione lo sketch WiFiRest-
Server.ino, precaricato sull’ATmega328PB. Esso si
occupa di gestire tutte le interazioni che l’utente
può fare con il webpanel.
browser si comporterà da client comunicando con Nel dettaglio, il codice dichiara un oggetto server
lo sketch caricato sul modulo Jolly (Fig. 13). in ascolto sulla porta 8080 e un oggetto client che
Ad ogni manovra effettuata sul Webpanel partirà rappresenta le chiamate ricevute in remoto sul
una chiamata di tipo REST verso la scheda. server:
Prendiamo ad esempio il caso in cui l’utente prema
il pulsante Check per leggere il pin analogico A0. WiFiServer server(8080);
L’HTML sul client, corrispondente al pulsante, è il WiFiClient client;
seguente:
Nel setup la scheda viene connessa ad internet e il
<button id=”analog_0_but” onclick=”onckl(this)” server viene inizializzato (Listato 1 – server).
class=” el_click but_check pure-button button- Nel loop la scheda resta in ascolto di richieste in
primary”>Check</button> arrivo dal client. Non appena arriva una richiesta,
questa viene assegnata all’oggetto WiFiClient e
In questo frammento di codice è specificato che viene processata (Listato 2 – server).
all’evento di click sul pulsante (onclick) deve essere La funzione process analizza l’URL della richiesta
richiamata la funzione javascript onckl. per individuare il comando da eseguire (Listato
La funzione javascript onckl, dopo aver effettuato i 3 – server).
diversi controlli sull’operazione da eseguire, dipen- L’URL associato al comando nel nostro esempio
dente dal pulsante che è stato premuto, utilizzerà corrisponde ad “analog”, quindi verrà richiamata
la funzione ajax per far partire una chiamata verso la funzione analogCommand(), la quale analizza la

 Listato 3 – lato server (IDE)


void process(WiFiClient client)
{
// read the command//
if (listen_service(client, “jolly”)) {
String command = client.readStringUntil(‘/’);

if (command == “mode”) {
modeCommand(client);
}
else if (command == “digital”) {
digitalCommand(client);
}
else if (command == “analog”) {
analogCommand(client);
}
else {
// flush input before replying - needed by some browser
client.flush();
client.print(String(“HTTP/1.1 200 OK\r\n\r\nError!\r\nUnknown command : “ + command + “\r\n\r\n”));
}
}
}

131
 Listato 4 – lato server (IDE)
void analogCommand(WiFiClient client) {
int pin, value;
// Read pin number
String pinNumber;
char c = client.read();

// If the next character is a ‘/’ it means we have an URL with a value like: “/analog/5/120”
// If the next character is a ‘ ‘ it means we have an URL with a value like: “/analog/13”
while (c != ‘ ‘ && c != ‘/’) {
pinNumber += c;
c = client.read();
}
pin = pinNumber.toInt();
// If the next character is a ‘/’ it means we have an URL with a value like: “/analog/5/120”
if (c == ‘/’) { // Read value and execute command
String analogValue;
char c = client.read();
while (c != ‘ ‘ && c != ‘/’) {
analogValue += c;
c = client.read();
}
value = analogValue.toInt();
analogWrite(pin, value);
// flush input before replying - needed by some browser
client.flush();
// Send feedback to client
client.print(“HTTP/1.1 200 OK\r\nAccess-Control-Allow-Origin: *\r\n\r\nPin A” + String(pin) +
“ set to: “ + String(value));
}
else {
// Read analog pin
value = analogRead(pin);

// flush input before replying - needed by some browser


client.flush();
// Send feedback to client
client.print(“HTTP/1.1 200 OK\r\nAccess-Control-Allow-Origin: *\r\n\r\nPin A” + String(pin) +
“ reads: “ + String(value));
}
}

 Listato 5 – lato client (Browser)


function ajax(url, elem) {
ajaxReq(“GET”, url, function (b) {
//var c = JSON.parse(b);
var v = b.split(‘:’);
if (elem != ‘undefined’ && elem != null && v[1] != ‘undefined’)
$(“#”+elem).innerHTML = v[1];
}, function () {
console.log(“Error”)
});
}

parte finale dell’URL per individuare il pin associato al client in esecuzione sul browser mediante la
alla richiesta e il tipo di operazione da effettuare. funzione client.print() (Listato 4 – server).
In questo caso la parte finale dell’URL è ‘0’ che Arrivata la risposta al browser, questa verrà inse-
corrisponde al GPIO di cui vogliamo leggere il rita come innerHTML dell’elemento associato alla
valore (A0). richiesta. In questo modo sarà possibile vedere il
A questo punto viene richiamata la funzione ana- risultato della funzione analogRead() nel browser
logRead() su quel pin e il risultato verrà restituito (Listato 5 – client)

132
SKETCH DI ESEMPIO
Per poter testare i numerosi esempi forniti dal
produttore, è necessario selezionare la scheda
Jolly e aprire il menu File > Esempi. Qui è presente
la sezione “Esempi per Jolly” che contiene tutti gli
sketch forniti con la scheda.
Per testare uno sketch, è necessario aprirlo nell’I-
DE, impostato come descritto in precedenza, e poi
caricarlo nella scheda tramite il solito comando di
UPLOAD (Carica).
Ovviamente, una volta caricato un nuovo sketch,
l’originale WiFiRestServer viene sovrascritto e il
Webpanel smette di funzionare.
Per ripristinare il funzionamento del Webpanel, è
necessario caricare nuovamente lo sketch originale,
che si trova nella cartella WiFi\esempi.

COLLEGAMENTO ALLA RETE DI CASA


Un collegamento alternativo a quello visto finora,
cioè tramite WiFi al modulo, consiste nel fornire  Fig. 14
Scansione reti
al modulo l’SSID e la password della propria rete della funzione WiFi, ed aprendolo al mondo dell’IoT, disponibili.
domestica. ci sentiamo di consigliarlo a chiunque intenda
La prima operazione da fare è caricare ed eseguire aggiornare i propri progetti o realizzarne di nuovi,

lo sketch ScanNetworks.ino, presente sempre nel- in ambito domotico.
 Fig. 15
la cartella WiFi degli esempi e poi aprire il Monitor Collegamento alla
seriale impostando 115200 bps. Verranno elenca- rete domestica.
te tutte le reti riconosciute dal WiFi del modulo. Ve-
rificate la presenza della vostra rete ricordando che
il modulo vede solo le reti a 2,4 GHz e non quelle a
5 GHz (Fig. 14).
A questo punto bisogna aprire lo sketch
WiFiWebClient.ino, presente sempre nella stessa
cartella, ed inserire i due parametri nelle rispettive
righe:

char ssid[ ] = “NomeRete”; //your network SSID


char pass[ ] = “password”; // your network password

quindi si carica lo sketch nella scheda e si apre il


Monitor seriale, sempre a 115200 bps.
Se va tutto bene dopo qualche istante si vedrà il
messaggio di conferma del collegamento tra il Jolly
e la rete domestica, con l’indirizzo IP assegnato
(Fig. 15).
Una volta effettuato il collegamento, per ripristi-
nare la modalità Webpanel occorre ricaricare nella
Cosa occorre?
scheda lo sketch WiFiRestServer.ino. Il modulo Jolly viene fornito con un Arduino UNO compatibile
A questo punto il collegamento al Jolly potrà esse- pronto all’uso (cod. JOLLYUNO) a Euro 29,90.
I prezzi si intendono IVA compresa.
re effettuato anche con l’IP assegnatogli dalla rete
domestica, si aprirà il Webpanel e funzionerà allo
Il materiale va richiesto a:
stesso modo.
Bene, qui si conclude il test di questo eccellente Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
modulo, che aggiorna Arduino UNO dotandolo Tel: 0331-799775 - www.futurashop.it

133
Stop ai fili con gli interruttori
wireless a 433 MHz!
Interruttori wireless da utilizzare in abbinamento al ricevitore wireless a 433 MHz a 1 canale (FR790). Non
richiedono nessuna alimentazione in quanto si auto-alimentano tramite un generatore elettrodinamico posto
al loro interno. Ideali per controllare facilmente senza fili le luci in abitazioni, garage, negozi o altri dispositivi
funzionanti a 220 VAC con carico inferiore a 1000 W e in tutte le situazioni in cui è necessario installare un
interruttore ad un impianto già esistente senza aggiungere cavi di collegamento. La procedura di abbinamento
tra ricevitore e pulsante è molto semplice e offre la possibilità di memorizzare fino a 5 dispositivi.

Interruttori wireless a 1 o 2 canali Ricevitore wireless 433 MHz


a 433 MHz autoalimentati 1 Canale - 220 VAC

1 CANALE 2 CANALI

€ 11,00 € 19,00 € 18,00


Cod. FR791 Cod. FR792 Cod. FR790
Prezzi IVA inclusa

Ideali per:
Elettrodomestici

Illuminazione Ventilatori Utilizzi industriali

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
IMPARIAMO
A UTILIZZARE

EAGLE
di ViNCENZO GERMANO e DAVIDE MADDALENA

2
Proseguiamo il nostro viaggio
alla scoperta di EAGLE, un potente
strumento di progettazione
elettronica, che permette di coprire
l’intero ciclo di sviluppo
di una scheda elettronica.
Seconda Puntata.

P artiamo con la realizzazione del nostro FINESTRA DIRECTORIES


IMPARIAMO A UTILIZZARE EAGLE

primo schema elettrico in EAGLE. Il Aggiungiamo il percorso del nostro progetto


presupposto per la realizzazione dello all’interno della finestra directories; nella scorsa
schema, come abbiamo già anticipato nella scorsa puntata lo abbiamo visto per un percorso di libreria.
puntata, è la disponibilità di una libreria almeno Nel caso in cui volessimo aggiungere un percorso
dei simboli necessari per il disegno. Innanzitutto di progetto la procedura è simile:
però è necessario creare un progetto che incorpo- • Apriamo la finestra OptionsDirectories…
rerà sia schema elettrico che layout, dunque come • Posizioniamoci nella casella di testo “Projects”
nel caso della libreria componenti iniziamo con la e selezioniamo il tasto “Browse…”.
configurazione del control panel e in particolare • Individuiamo, nella control box, il percorso
delle directory. del nostro progetto (nel nostro esempio è la

135
 Fig. 1 Aggiunta di un percorso di progetto.

sottocartella NordIOT\Project) e selezioniamo il pulsante più consono; per rinominarlo basta selezionare l’icona del
“Seleziona Cartella”. progetto e col tasto destro selezionare “Rename” come
mostrato in Fig. 1C.
Il risultato apparirà come in Fig.1A, non ci resta che con-
fermare selezionando OK e nella finestra ad albero, sotto CREAZIONE DI UNO SCHEMA
la voce Projects apparirà la sottocartella “Project” come Il progetto è vuoto dunque è necessario popolarlo con uno
mostrato in Fig. 1B. schema elettrico. Per aggiungere il primo schema elettrico
A questo punto sulla cartella appena creata con il tasto si può eseguire la stessa procedura usata per rinominare
destro del mouse si seleziona “New Project” (Fig. 1B) e il progetto ma selezionando “NewSchematic” oppure
il nuovo progetto verrà creato automaticamente. Dopo “FileNewSchematic”. Alla selezione del comando appa-
questa operazione è bene selezionare File Save all quindi rirà la finestra per il disegno dello schema elettrico, come in
il progetto sarà attivo e presente fisicamente sotto forma di Fig. 2.
file all’interno delle nostre cartelle di progetto. Il progetto è Come anticipato nella puntata precedente, notiamo che
ancora anonimo (New_Project), dunque diamogli un nome la finestra non è molto diversa da quella di disegno di un

IMPARIAMO A UTILIZZARE EAGLE

 Fig. 2 Finestra di Schematic.

136
 Fig. 3 Descrizione della finestra di Schematic.

simbolo. Sicuramente presenta diverse funzioni aggiuntive selezionato e disporrà delle possibili opzioni di scelta come
relative al disegno dello schema elettrico, alla sua simula- per esempio rotazione, formattazione, ecc.
zione e alla sua impaginazione. Funzioni che ovviamente 5. La barra degli strumenti principali.
non trovano riscontro per il singolo simbolo. La prima cosa 6. La barra dei menu contiene l’elenco dei menù della finestra.
da fare è salvare lo schema con un nome adeguato, perciò
selezioniamo nella finestra il menu “FileSave As…” poi Subito a sinistra del foglio di lavoro individuiamo i pannelli di
chiamiamolo “NordIOT_v01”. modifica, il primo tra tutti è il Design Manager, che contiene
una serie di elenchi la cui disposizione varia a seconda della
DESCRIZIONE DELLA FINESTRA SCHEMATIC selezione della combo “View”. Le tre possibili scelte sono:
Andiamo ora a descrivere la finestra Schematic, il suo menu “Parts”, “Nets” e “Groups” (come riportato in Fig. 4).
e gli strumenti principali messi a disposizione per il disegno Ulteriori pannelli sono:
dello schema elettrico. • Selection Filter: contiene l’elenco dei tipi di filtro per
Con riferimento alla Fig. 3, nella finestra individuiamo le la selezione degli oggetti all’interno dello schema. Per
principali parti: esempio se si seleziona solo l’oggetto “Part” all’interno
1. Il foglio di lavoro all’interno del quale verranno posizionati dello schema potranno essere selezionati solo le parti,
i simboli, i collegamenti e tutto ciò che è necessario per la cioè i simboli di componente (Fig. 5A).
creazione dello schema elettrico. L’origine di ciascuno di • Inspector: quando si seleziona un oggetto all’interno del-
IMPARIAMO A UTILIZZARE EAGLE

questi oggetti avrà coordinate rispetto all’origine del foglio lo schema in questo tab è possibile editare le proprietà
con coordinate (0; 0). della selezione (Fig. 5B).
2. I pannelli di modifica forniscono una panoramica, conte- • Sheets: elenca, sottoforma di anteprima, i fogli (sheets)
stuale alla selezione, delle impostazioni e dei dati del pro- di lavoro del progetto. Nel nostro caso potranno essere
getto. Questi pannelli possono essere facilmente mostrati disponibili al massimo due fogli di lavoro per ragioni di
o nascosti selezionando le diverse spunte all’interno del licenza (Fig. 5C).
menu “View”. Questa sezione verrà approfondita più avanti.
3. La barra degli strumenti contiene l’elenco dei principali Descritta a grandi linee l’interfaccia possiamo procedere
strumenti per la disegnazione dello schema elettrico, la nella creazione dello schema elettrico.
sua annotazione, selezione e formattazione degli oggetti
nonché esplorazione delle proprietà degli oggetti. IMPOSTAZIONE DEL FOGLIO DI LAVORO
4. La barra selezione è contestualizzata al tipo di strumento Il primo passo da mettere in pratica prima di popolare uno

137
 Fig. 4 Design Manager nelle tre varianti.

schema, è definire l’area di lavoro all’interno del foglio di mente). Tuttavia definire un perimetro all’interno del quale
lavoro. EAGLE non ha impostazioni predefinite (tipo standard racchiudere lo schema potrebbe aiutare a rendere ordinato il
A3, A4, ecc.) quindi l’area di lavoro è infinita (almeno teorica- nostro schema nonché presentabile.

IMPARIAMO A UTILIZZARE EAGLE

 Fig. 5 Selection Filter, Inspector e Sheets.

138
 Fig. 6 Esempio di area di lavoro.

 Fig. 7 Disegnamo un Frame.


IMPARIAMO A UTILIZZARE EAGLE

Per definire tale area di lavoro possiamo agire sostanzial- Ovviamente nessuno vieta di utilizzare la combinazione
mente in due modi: delle due soluzioni introdotte. Tuttavia, se non si ha idea
• Definire uno o più rettangoli che racchiudono parti di sche- delle dimensioni dello schema elettrico, potrebbe risultare
ma con l’aggiunta di titoli descrittivi del “sotto-circuito”. complicato definire a priori un’area di lavoro di partenza,
• Definire una cornice, ovvero il “frame”, che racchiude lo perciò per semplicità possiamo partire con la creazione di
schema elettrico. Un esempio è lo schema in Fig. 6, dove un frame formattato su un foglio standard A4 e all’occor-
è sottolineato il “frame” ed il “titleblock”, ovvero il carti- renza ridimensionarlo. Per farlo, come da Fig. 7A bisogna
glio che sarà oggetto di successivo approfondimento. selezionare il menu “DrawFrame” (oppure digitare “frame”

139
 Fig. 8 Impostiamo un foglio A4.

nella casella dei comandi quindi dare invio). Notiamo come


la barra di selezione cambia contestualizzandosi al coman-
do frame (Fig. 7B). Assicuriamoci che il layer selezionato
sia “94 Symbols” e lasciamo le altre impostazioni come
predefinite.
Posizioniamoci sull’origine del foglio di lavoro e clicchia-
mo con il tasto sinistro del mouse; cominceremo così a
disegnare il frame spostandoci in alto a destra fino ad un
punto qualsiasi. Dunque clicchiamo con il tasto sinistro per
completare il disegno del frame (Fig. 8A). A questo punto
il frame è posizionato e dimensionato a caso ma possiamo
agire sulle proprietà per sistemarlo al meglio. Andiamo nel
tab “Inspector” e selezioniamo il frame in un punto qualsia-
si; appariranno le proprietà del frame.
Notiamo che a tali proprietà è possibile accedere anche
 Fig. 9 Area di lavoro di un foglio A4. cliccando col tasto destro del mouse sul frame e selezio-

IMPARIAMO A UTILIZZARE EAGLE

 Fig. 10 Schema di concetto della board NordIOT.

140
nando la voce “Properties”. Se supponiamo di utilizzare un sezioni 6E, 7E e 8E. Conosciamo già lo strumento griglia,
formato di foglio A4 impostiamo le proprietà come in figura; visto nella puntata scorsa, dunque impostiamo la griglia in
ricordiamo che, avendo impostato la griglia in millimetri le “mm” (millimetri).
dimensioni A4 saranno 297mm x 210mm con orientamento
orizzontale (Fig. 8B). SCHEMA DI CONCETTO DI NORDIOT
In EAGLE le intestazioni delle colonne dei frame sono Introduciamo brevemente il progetto NordIOT di riferimento
sempre numeriche (da 1 a 8 nel nostro esempio), mentre per il nostro corso il cui schema di concetto è riportato nella
le intestazioni delle righe sono sempre alfabetiche (da “A” Fig. 10; non ne verranno approfonditi i dettagli perché sarà
a “E” nel nostro esempio). Abbiamo dunque definito la direttamente trattata in una puntata dedicata in cui impare-
nostra area di lavoro che si presenterà divisa per sezioni remo anche a programmarla e utilizzarla.
(o quadranti, con abuso di notazione) come rappresentato Il cuore del progetto è il modulo integrato NORA-B06 della
nella Fig. 9. Nordic Semiconductor (https://www.nordicsemi.com) che
Ciascuna sezione individua una sotto-area che sostanzial- oltre a contenere tutte le funzionalità di un microcontrollore
mente coordina la posizione dei componenti all’interno dello ha la possibilità di essere gestito con tutte le tipologie di
schema ma soprattutto serve per localizzare le net in parti- rete wireless come bluetooth e wi-fi, dunque ha tutte le
colar modo quando si richiamano all’interno di altri fogli. A potenzialità per prestarsi ad un dispositivo IOT (Internet Of
questo punto non rimane che inserire dentro la nostra area Things). Da quest’ultimo aspetto deriva il nome del progetto
di lavoro i componenti del nostro schema; magari teniamo cioè NordIOT. La scheda è provvista di periferica USB con
dell’area libera per inserire il cartiglio lasciando libere le la quale sarà possibile connetterla ed alimentarla come un
normale Arduino. Per darle la possibilità di utilizzo stand
alone, avrà accesso ad una batteria al lito che potrà essere
anche caricata dal un Li-Polymer Charge Management Con-
troller MCP73831T-2ACI/OT della Microchip. In ultimo verrà
equipaggiata con quattro LED di stato configurabili ed un
LED RGB utilizzabile, per esempio, per indicare lo stato della
batteria. Tuttavia sorvoliamo su altri dettagli implementa-
tivi e di utilizzo perché, come anticipato, il progetto NordIOT
sarà ripreso e approfondito in una puntata dedicata.

AGGIUNTA DEI COMPONENTI


Siamo arrivati al momento di aggiungere i componenti
all’interno del nostro foglio, per farlo facciamo riferimento
alla Fig. 11 che riporta tutti i vari comandi per l’aggiunta di
elementi. In particolare siamo interessati al comando “add”
 Fig. 11 Funzionalità di aggiunta. ovvero allo strumento Add Part. Selezionando tale strumen-
to si accede alla finestra “Add” per l’aggiunta delle parti.
IMPARIAMO A UTILIZZARE EAGLE

 Fig. 12 Aggiungiamo i componenti d’interesse.

141
 Fig. 13 Realizziamo una parte dello schematico di NordIOT.

Nella finestra apparirà l’elenco delle librerie attive (con il riquadro in alto a sinistra del blocco informazioni apparirà
pallino verde) all’interno del control panel. Nell’esempio l’anteprima del simbolo generico, dunque il riquadro destro
specifico infatti è presente la libreria “untitled” opportuna- rimane vuoto finché non selezioniamo uno specifico foot-
mente popolata con le parti di nostro interesse, come ripor- print. È possibile selezionare un footprint semplicemente
tato in Fig. 12A. Espandendo la voce “untitled” è possibile espandendo la voce e individuando il package necessario.
vedere l’elenco dei componenti popolanti la libreria. Per quanto riguarda le parti non è possibile aggiungere un
Quando si seleziona una delle parti in elenco vengono mes- simbolo senza specificare il footprint. In realtà esistono
se a disposizione tutte le informazioni, gli attributi oltre alle tutta una categoria di simboli, corredati da uno speciale
anteprime del simbolo e footprint. attributo (Attribute), che non dispongono di alcun footprint;
Proviamo a selezionare il componente L-EU (utilizzato come un esempio è il riferimento di massa (ground).
esempio nella scorsa lezione) all’interno dell’elenco; nel Detto ciò inseriamo un resistore con package 0603;
espandiamo la voce “R-EU_” ed individuiamo nell’elenco
“R-EU_0603” (Fig. 12B). Selezionandolo notiamo subito che
appare anche l’anteprima del footprint. Infine selezioniamo
“Ok” e posizioniamo la parte in un punto qualsiasi dell’area
di lavoro, infine selezioniamo ESC (Fig. 13A).
Fatto ciò ritorneremo automaticamente nella finestra “Add”
quindi se si vuol inserire un componente diverso basta ri-
petere l’operazione appena fatta ogni qual volta necessaria
altrimenti si seleziona il tasto ESC per uscire.
Generalmente è conveniente inserire i componenti base
necessari per il disegno di un modulo o un riquadro e poi
copiarli all’occorrenza. Proviamo ad aggiungere tutti i
 14A e 14B Funzionalità rilevanti di EAGLE.
componenti relativi al riquadro “Power supply” riportato in
Fig. 13B, a cui dobbiamo tendere, non considerando per il
momento le connessioni.
Oltre il resistore, occorrono ancora il condensatore, un dio-
do schottky un MOSFET a canale P e l’integrato AP2112-3.3.
Con la stessa procedura vista prima piazziamoli tutti sullo IMPARIAMO A UTILIZZARE EAGLE
schema come mostrato in Fig. 13C.
In realtà a parte il nostro integrato, il MOSFET ed il diodo
schottky occorrono in totale tre resistori e tre condensatori
ma nello schema ne abbiamo piazzato uno per ogni tipo.
Per piazzare il numero esatto potremo ripetere la procedura
di aggiunta parti oppure copiare i componenti che occorrono
per tutte le istanze che occorrono.

COPIA E INCOLLA DELLE PARTI


Dedichiamo più di qualche parola all’istanziazione delle
 Fig. 14C Funzionalità GROUP. parti ma, più in generale, degli oggetti EAGLE attraverso il
“copia/incolla”.

142
 Fig. 14D e 14E Funzionalità COPY e PASTE.

Nello specifico esempio andiamo a scoprire il comando il tasto CTRL, cliccare col tasto destro del mouse su un
GROUP o se vogliamo lo strumento “group” riportato in componente del gruppo; posizionare infine la copia sele-
Fig. 14A. zionando il tasto sinistro del mouse (Figura 14D). Questo
Il comando GROUP permette di raggruppare diversi oggetti passaggio permette di copiare un’istanza del gruppo, è però
per successivi comandi. Come nel nostro caso, a volte, possibile incollarla tante volte attraverso il comando PASTE
abbiamo già istanziato dei componenti e vogliamo replicarli (Figura 14E) o il relativo strumento mostrato precedente-
altre volte. Perciò conviene raggrupparli e poi copiarli. mente (Figura 14B). A questo punto rimane da posizionare i
La selezione degli oggetti viene fatta col tasto sinistro del componenti in modo coerente con quanto proposto.
mouse ma è possibile usare le seguenti opzioni:
• Poligono: i vertici del poligono di selezione corrispondo- SPOSTAMENTO DEGLI OGGETTI
no ai punti di CLICK. Il tasto destro del mouse chiude il Andiamo ora a descrivere i comandi per lo spostamento
poligono. delle parti ma, più in generale, degli oggetti. La Fig. 15 ripor-
• Rettangolo: si definisce un rettangolo di selezione da ta gli strumenti ed i relativi comandi per lo spostamento di
quando si preme il tasto fino al suo rilascio. elementi nello schematico.
• SHIFT+CLICK: aggiunge un oggetto al gruppo. Sostanzialmente ciascun oggetto all’interno del foglio di
• CTRL+CLICK: alterna l’appartenenza di un oggetto dal gruppo. lavoro può essere spostato (move), specchiato (mirror) o
• CTRL+SHIFT+CLICK: alterna l’appartenenza dell’oggetto ruotato (rotate).
di livello superiore al gruppo. Prima di procedere è bene chiarire che ogni oggetto è
• CTRL+A: avvia il comando GROUP ALL che permette di dotato di un’origine visibile come una croce che denota la
selezionare tutti i componenti dell’area di disegno. posizione dell’oggetto rispetto all’origine del foglio di lavoro.
Per spostare una parte nel nostro schema è sufficiente
A questo punto raggruppiamo i due componenti (condensa- selezionare il comando “move” da strumento oppure da
tore + resistore) attraverso SHIFT+CLICK. Notiamo che gli linea di comando quindi cliccare sull’origine della parte e
oggetti diventano di colore più acceso. (Fig. 14C) muoverlo nella posizione desiderata; una volta raggiunta la
Successivamente selezioniamo il comando COPY o il relativo posizione basta cliccare con il tasto sinistro.
strumento mostrato in Figura 14B. Mantenendo premuto Proviamo a compiere questa operazione posizionando i
IMPARIAMO A UTILIZZARE EAGLE

 Fig. 15 Funzionalità di spostamento.

143
 Fig. 16 Esempio di spostamento.

componenti come nello schema proposto; il risultato dovrà comando la barra di selezione si contestualizza come in
essere simile alla Fig. 16A. Fig. 15. Ovviamente tutte le operazioni possono essere
A questo punto R1, R2 ed R3 necessitano di essere ruo- eseguite per gruppi di componenti secondo quanto detto
tate, dunque selezioniamo il comando “rotate” e, sempre precedentemente. A questo punto è necessario creare i
cliccando sull’origine di ciascun componente, ruotiamoli in collegamenti tra questi componenti e le linee di alimenta-
modo verticale. Proviamo a compiere questa azione per i tre zione (“power”). Prima di fare ciò mettiamo un po’ d’ordine
componenti; il risultato dovrà essere come in Fig. 16B. al nostro schema.
Notiamo che la rotazione dei componenti avviene per multi-
pli di 90°, perciò non è possibile posizionare un componente FORMATTAZIONE DEGLI OGGETTI
in direzioni diverse da quella orizzontale o verticale. Il co- Notiamo come i riferimenti e i valori dei nostri componenti
mando “mirror” funziona in modo simile al comando rotate sono formattati in modo diverso gli uni dagli altri.
ma specchia il componente in verticale. È possibile aggiustare il tiro utilizzando lo strumento “chan-
A differenza del comando “move”, sia il comando “mirror” ge” precedentemente introdotto insieme agli strumenti
che “rotate” non necessitano del doppio click una volta copia e incolla. Selezionando tale strumento si accede ad un
posizionati. Concludiamo ritornando sul comando “move” elenco di proprietà come mostrato nella Fig. 17.
insieme al quale è possibile eseguire i comandi “rotate” e Selezionando una di queste voci è possibile modificare il
“mirror” contemporaneamente. Infatti selezionando tale valore della relativa proprietà.

IMPARIAMO A UTILIZZARE EAGLE

 Fig. 17 Funzionalità Change e formattazione.

144
 Fig. 18 Funzionalità per le connessioni.

Proviamo a modificare ed uniformare il formato del riferi- menti ed in particolare agli strumenti della Fig. 18.
mento e del valore dei componenti dello schema. Due o più punti possono essere collegati attraverso due
Prima di tutto creiamo un gruppo con tutti i componenti, tipologie di strumenti:
selezioniamo lo strumento “change” modificando la pro- • La NET rappresenta un collegamento singolo; dopo aver
prietà “Size” a 2.54 (mm). Infine selezioniamo CTRL+CLICK selezionato questo strumento con il primo CLICK si de-
su un punto qualsiasi dell’area di lavoro e tutti i campi di finisce l’origine del collegamento, mentre con il secondo
testo (NAME e VALUE) assumeranno la stessa dimensione click si definisce la fine del collegamento.
(appunto SIZE). Ripetiamo la stessa operazione per le pro- • Il BUS rappresenta un collegamento collettivo ovvero
prietà “Ratio” impostandola a 10 (%) e “Font” impostandola tra più punti in parallelo. EAGLE permette oltretutto di
a “Vector”. impostare alcune delle tipologie di bus più famose (CAN,
Il risultato sarà simile a quello riportato in Fig. 17B. Pro- I2C, ecc.). Questo strumento non verrà approfondito
viamo ora a ordinare i campi NAME e VALUE spostandoli e all’interno del corso.
ruotandoli come descritto precedentemente. In questo caso
è necessario, dopo aver selezionato il comando “move” o Quando selezioniamo lo strumento net, la barra di selezione
“rotate”, cliccare sull’origine del campo NAME o VALUE. si contestualizza come in Fig. 18 e ancora una volta notiamo
che automaticamente EAGLE si riporta nel layer adatto al
COLLEGAMENTO DELLE NET contesto; in questo caso il 91 Nets. Altre proprietà degne di
Prima di proseguire nel nostro excursus sulle net e sul loro nota che si applicano alla net (ma anche ad una linea gene-
collegamento/visualizzazione andiamo ad introdurre come rica) sono la curvatura, lo stile del tratteggio e la tipologia di
EAGLE tratta un collegamento ovvero una net. Una net in giunto riguardante ancora la curvatura.
EAGLE viene trattata allo stesso modo di una linea (grafica) Sebbene queste proprietà si applicano anche per le linee
ma con alcune proprietà aggiuntive. generiche possono trovare spazio all’interno del disegno di
Infatti una net collega fisicamente due nodi dello schema un simbolo o per esempio per documentazione di un gruppo
costituendo un vincolo; se uno di questi nodi viene spostato di componenti all’interno dello schema ma hanno scarso
si porta dietro un lembo di questo collegamento alla stregua interesse nel tracciamento delle net.
di un elastico. Come vedremo però, presenteranno grande utilità e si-
Inoltre ogni collegamento in EAGLE possiede un nome come gnificato quando si andranno a tracciare le piste (o i piani)
IMPARIAMO A UTILIZZARE EAGLE

il campo <NAME> di un simbolo. all’interno del layout e dunque verranno approfondite più
Il nome di una net può essere composto da qualunque nella parte relativa al layout.
carattere tranne spazio “ “ e punto e virgola “;”. Proviamo ora a collegare i due pin di C2 e C3. Selezioniamo
Nel caso si utilizzino lettere minuscole EAGLE le convertirà lo strumento net e posizioniamoci sul pin in alto di C2 prima
automaticamente in lettere maiuscole. Per impostazione ancora di cliccare; notiamo che quando ci posizioniamo in
predefinita, quando si crea una nuova net, EAGLE adotterà corrispondenza del pin di C2 compare un cerchietto stante
il formato “N$<n>” dove <n> è un enumerativo che viene ad indicare l’aggancio della connessione come mostrato in
incrementato con l’aggiunta delle net. Fig. 19A. Non appena clicchiamo parte il collegamento che
Vediamo ora come eseguire i collegamenti elettrici tra due o porteremo fino al pin di C3. Dunque il primo collegamento è
più punti del nostro schema, descrivendo il funzionamento stato completato. Proviamo ora a realizzare il collegamento
delle net. tra il catodo di CR1 e il pin 1 di U1 e successivamente tra il
A tal fine facciamo ancora riferimento alla barra degli stru- pin in alto di R2 e il pin inferiore di R3.

145
 Fig. 19 Utilizziamo lo strumento “net”.

 Fig. 20 Utilizziamo lo strumento “junction”.

Selezioniamo questo strumento e posizioniamoci in cor-


rispondenza dell’incrocio quindi clicchiamo. Apparirà una
finestra con richiesta di conferma di collegamento come
mostrato nella Fig. 20A mentre il risultato è rappresentato
in Fig. 20B. In realtà il modo più semplice per creare il nodo
è posizionarsi, in fase di tracciamento della net, proprio in
corrispondenza dell’incrocio quindi, per esempio, tra il pin
superiore di R2 e il segmento che collega catodo di CR1 e IMPARIAMO A UTILIZZARE EAGLE
pin 1 di U1.
Abbiamo ora tutte le nozioni per terminare i collegamenti
del mini schema presentato. A termine delle connessioni
possiamo ancora inserire e collegare i punti di alimenta-
 Fig. 21 Il Power Supply della board NordIOT.
zione e riferimento. Quest’ultimi componenti si trovano in
libreria e sono rappresentati da particolari simboli che non
necessitano di footprint e spesso accompagnati dall’attri-
Il risultato apparirà come nella Fig. 19B. buto _EXTERNAL_ in fase di creazione device. Il risultato
Se guardiamo lo schema originale ci accorgiamo che finale sarà simile alla Fig. 21.
l’incrocio creato con questi due collegamenti in realtà deve Introduciamo ora lo strumento “label” per nominare alcune
contenere un nodo. Possiamo usare lo strumento “junction” net interessanti. Prima prolunghiamo la net sotto R2 verso
per collegare queste due diverse net. sinistra come mostrato in Fig. 22A.

146
 Fig. 22 Inseriamo le “label” o etichette.

 Fig. 23 Utilizziamo lo strumento “name”.


IMPARIAMO A UTILIZZARE EAGLE

 Fig. 24 Utilizziamo il “cross reference”.

Selezioniamo lo strumento label e clicchiamo sull’estremità poi clicchiamo il tasto sinistro. A questo punto è possibile
del collegamento come mostrato in Fig. 22B; notiamo che vedere il nome della net per maggiore leggibilità.
comparirà il nome della net (nell’esempio N$4). Un altro modo per rendere visibile il nome della net è
Ora selezioniamo il tasto destro del mouse per due volte utilizzare lo strumento “name” mostrato in Fig. 22D. Infatti
fino a far ruotare il nome di 180° come mostrato in Fig. 22C selezionando tale strumento (che ci tornerà utile anche per

147
 Fig. 25 Disegniamo un SUPPLY SYMBOL.

modificare il reference dei componenti) e selezionando una piacimento. Si consiglia tuttavia di posizionare i nomi delle
net comparirà la finestra di dialogo mostrata in Fig. 23A. net o all’estremità della net o posizionati sopra o sotto la
Spuntiamo la casella “Place label” (Fig. 23B), aggiungendo net. Alla fine dell’operazione il risultato sarà simile a quanto
un passo in più rispetto al metodo precedente, modifichia- presentato in Fig. 24A.
mo il nome della net dandole un nome più adatto cioè “EN” Possiamo dare un aspetto più accattivante alla label atti-
(Fig. 23C) e selezionare “OK”. Notiamo che il nome della net vando il “cross reference” (XREF) della net, Fig. 24B. A tal
è cambiato assumendo il valore che gli abbiamo attribuito. fine è sufficiente cliccare col tasto destro sulla net e selezio-
Se abbiamo già piazzato la label di tale net possiamo sele- nare “properties”; comparirà la finestra delle proprietà della
zionare “ESC” altrimenti posizioniamo e ruotiamo la label a net dove spunteremo la casella “Xref”, Fig. 24B.

IMPARIAMO A UTILIZZARE EAGLE

 Fig. 26 La barra dei pin.

148
Selezionando poi “OK” il risultato sarà simile a quanto figura disegnata non contiene ancora il pin di connessione;
mostrato in Fig. 24C. allo scopo di inserire tale pin (per esempio con lo strumento
Abbiamo praticamente terminato e siamo quindi in grado di pin) torniamo un attimo sulla barra contestuale presentata
costruire la nostra net-list sotto forma grafica ovvero il nostro qui sotto.
schema elettrico. Concludiamo facendo due considerazioni: Con riferimento alla Fig. 26, notiamo sulla barra le seguenti
• la prima è relativa al frame che abbiamo piazzato; proprietà in sequenza: layer, array di pin, rotazione, fun-
quest’ultimo può risultare piccolo una volta inserito zione, lunghezza, visibilità, direzione e swap level. Queste
tutto il necessario. Sappiamo però come modificarne le proprietà sono abbastanza intuitive quindi non verranno
dimensioni, tuttavia vedremo come costruire un frame approfondite. Fanno eccezione le ultime due cioè “direction”
preimpostato sotto forma di componente corredato da e “swap level”:
un cartiglio. • “direction” definisce la direzione del pin quindi le caratte-
• la seconda riguarda in parte il frame ma si allaccia speci- ristiche del flusso logico del segnale associato. Questa
ficatamente alle net e più in particolare alle “cross refe- proprietà ha principalmente importanza durante l’utilizzo
rence”; infatti nel caso in cui dovessimo utilizzare due (o del DRC (design rule check) ovvero nella verifica delle
più) sheet nell’andare ad incrociare il riferimento di una regole di progetto ma, come vedremo tra poco, anche
net all’interno di un altro foglio (da qui spiegato il nome nella definizione di alcuni pin importanti come quelli di
“cross reference”) la label cambia leggermente contenuto. alimentazione e potenza.
Per tornare all’esempio della net “EN” incrociata in un • “swap level” definisce il livello di interscambio (attraverso
altro foglio, questa assumerà il contenuto EN/1.3D dove un numero intero) tra pin omologhi. Il valore 0 indica
“EN” è il nome della net, “1” indica che il collegamento che il pin non può essere scambiato con nessun altro
incrociato è nel foglio (sheet) 1 e “3D” indica la sezione pin, mentre un valore diverso indica che il pin può essere
del foglio dove avviene il collegamento. Anche sul foglio scambiato con qualunque altro pin avente lo stesso
1 la label cambierà aspetto ma, questa volta, indicando le “swap level”. Un esempio sono i pin di input delle porte lo-
coordinate di connessione all’interno del foglio 2. giche semplici (OR, AND, ecc.) dove scambiando l’ordine
degli ingressi non cambia il risultato della funzione. Lo
SUPPLY SYMBOL E TIPOLOGIA DI PIN “swap level” si applica anche a livello di layout quindi può
Come anticipato, abbiamo incontrato una tipologia di portare beneficio durante lo sbroglio dove può essere ne-
simbolo (sotto forma di componente) che rappresenta una cessario scambiare un pin con un altro (purché assolvano
linea di alimentazione o di riferimento. Questi simboli sono i alla stessa funzione) per problemi di area (soprattutto
SUPPLY SYMBOL e sono a tutti gli effetti dei simboli elettrici nel far utilizzo di strumenti come auto-router).
che si portano dietro e fissano un nome di net. In realtà
questi simboli nascondono una peculiarità di EAGLE riguar- Dunque per dare proprietà di net al nostro simbolo aggiun-
do i pin. Approfondiamo le nozioni su EAGLE tornando un giamo un unico pin con le proprietà riportate nella Fig. 27.
attimo indietro, alla creazione dei simboli, ed in particolare Per farlo possiamo inserire un pin qualsiasi per poi mo-
sulla tipologia dei pin. Torniamo all’editor di libreria ed in dificarne le proprietà attraverso il menu contestuale o il
particolare al disegno di un simbolo. Sappiamo che all’in- pannello di modifica posto a lato.
terno di questo editor possiamo disegnare una qualunque
forma eventualmente corredata da pin. Proviamo dunque a
disegnare un simbolo come mostrato in Fig. 25A.
Il simbolo è composto da tre oggetti semplici: un testo un
cerchio ed una linea; le proprietà di questi oggetti sono
riportati rispettivamente nelle Fig. 25B, 25C e 25D. Notiamo
IMPARIAMO A UTILIZZARE EAGLE

che per disegnare il cerchio abbiamo usato la griglia fine


attraverso la selezione del tasto ALT durante il movimento
del mouse. L’utilizzo della griglia fine è possibile anche
all’interno di schematic seppur fortemente sconsigliato nel
piazzamento dei componenti o delle net perché genera di-
sallineamento a differenza invece nell’ambiente board non
soffre degli stessi problemi.
La Fig. 25A appena disegnata ricorda molto un simbolo di
una linea di alimentazione e, non a caso, abbiamo aggiunto
un testo con contenuto VDD. Il testo inserito è però equiva-
lente ad un disegno e non inciderà sul nome della net a cui  Fig. 27 Completiamo il SYMBOL.
verrà collegato tale simbolo. Notiamo che volutamente la

149
Molto importanti sono la proprietà “direction” che, in questo
caso, deve essere impostata su “sup” (supply) e la proprietà
“Name” che deve contenere il nome della net (nell’esempio
VDD). Fatto ciò si può salvare il simbolo e passare diretta-
mente alla creazione del DEVICE.
In quest’ultimo non è necessario, ne tantomeno ha senso,
associare alcun footprint quindi basta piazzare il simbolo
e salvare il tutto. Se, come nel nostro caso, il simbolo ha
tutti i pin di direzione “sup” allora è possibile salvare senza
dover associare alcun footprint; se invece si cerca di creare
un DEVICE solo con un simbolo ma senza footprint (come
potrebbe essere per un logo, il cartiglio, un frame perso-
nalizzato, ecc.) si genera un errore. Per ovviare a questo
problema è possibile definire l’attributo _EXTERNAL_.
Ultima considerazione molto importante sulla direzione dei
pin riguarda “pwr” applicabile ai pin di alimentazione di un
componente (per esempio un integrato). Perciò se si nomina
un pin definito “pwr” con lo stesso nome di un “sup” questi
vengono automaticamente collegati una volta inseriti nello
schema elettrico.

DESCRIZIONE DEL LAYER SETTINGS


In precedenza abbiamo più volte fatto riferimento ai “layer”
contestualizzati nei vari utilizzi. Sappiamo dunque che esi-
ste un layer per i campi VALUE e NAME, per le NET e così via.
Analizziamo ora come gestire questi layer.
È bene ricordare che EAGLE gestisce fino a 255 layer, alcuni
propri per l’ambiente “schematic”, alcuni propri per l’am-
biente layout, altri condivisi. I primi 99 layer assumono un
numero fisso ed un significato univoco che rimane sempre
lo stesso indipendentemente dall’ambiente. È possibile
aggiungere nuovi layer a partire dal numero 100 fino a 255
personalizzabili a piacimento. Tuttavia tutti i layer di EAGLE
sono personalizzabili in termini di aspetto e nome; per fare
un esempio è possibile attribuire al layer “91 Nets” il nome
 Fig. 28 Definiamo i layer. “Collegamenti” per rendere più leggibile il “Layer Settings”.

IMPARIAMO A UTILIZZARE EAGLE

 Fig. 29 Gestione layer.

150
Sconsigliamo comunque di modificare le impostazioni dei
layer nativi di EAGLE per non perdere allineamento con la
base del programma; piuttosto si crea un nuovo layer per-
sonalizzato in nome e colore. Per accedere alle impostazioni
dei layer è necessario selezionare il tool “Layer Settings”
come mostrato in Fig. 28A.
Apparirà la finestra “Visible Layer” riportata in Fig. 28B.
Notiamo che, in questa finestra, non sono elencati tutti i
layer nativi di EAGLE ma solo quelli relativi all’ambiente
“schematic” o condivisi con l’ambiente “layout”. L’elenco è
organizzato sotto forma di tabella dove, partendo da destra,
troviamo una colonna per l’eliminazione dei layer (solo quel-
li creati dall’utente), il nome del layer, il colore ed il numero.  Fig. 30 Definiamo un nuovo layer.
L’ultima colonna ovvero la prima a partire da sinistra ha un
aspetto che ricorda un occhio e serve semplicemente per
rendere visibile o nascondere un layer quando nella riga cor-
rispondente è presente o meno l’occhio. Dunque vediamo bile modificarne il numero a meno di eliminarlo e crearne
che i layer sono tutti visibili a parte il “93 Pins” che è nasco- uno nuovo. Il colore di selezione invece è legato al colore
sto. Per selezionare un layer è sufficiente selezionare la riga assegnato al layer. Una finestra simile a quella di modifica
corrispondente come mostrato nella seguente Fig. 29A. proprietà è la finestra “New layer”, riportata in Fig. 30B, che
Se invece vogliamo selezionare più layer in una sola volta compare quando si seleziona l’omonimo pulsante posto
è possibile selezionare il primo e spostarsi, con le frecce proprio sotto a sinistra della listbox. Ovviamente, a diffe-
sopra o sotto, tenendo premuto il tasto maiuscolo (shift); renza della precedente finestra, in questo caso è possibile
questa operazione può essere fatta anche utilizzando il solo selezionare il numero di layer.
mouse selezionando il primo layer e muovendo il puntatore Con questo abbiamo fatto un excursus sulla visualizzazio-
(sopra o sotto a seconda della direzione desiderata) tenen- ne dei layer che ci potrà tornare utile soprattutto durante
do premuto il tasto sinistro. La Fig. 29B mostra un esempio l’utilizzo dell’ambiente layout. Tuttavia è bene precisare
di selezione multipla. Qualora si vogliano selezionare layer che non stiamo parlando delle caratteristiche dei layer fisici
in posizioni diverse si può ricorrere al tasto CTRL come (da affrontare prima dell’esportazione dei file di industria-
mostrato in Fig. 29C. Ovviamente una combinazione delle lizzazione) ma quanto della visualizzazione di layer astratti
precedenti è possibile se è necessario selezionare layer relativi al disegno dello schema prima e del layout poi.
multipli in posizioni intermezzate.
Una volta selezionati, uno o più layer, è possibile renderli DESCRIZIONE DEL “OPTION  ASSIGN”
visibili (diremo per semplicità “accendere”) o nasconderli Finora abbiamo utilizzato gli strumenti attraverso le sele-
(spegnere) attraverso rispettivamente i pulsanti “Show zioni sulla barra oppure a linea di comando. Tuttavia queste
Layers” e “Hide Layers” posti subito in basso a destra alla operazioni possono risultare scomode soprattutto quando
listbox. È possibile inoltre creare un “Layer Set”, cioè un ci troviamo a cambiare continuamente strumento. Ci chie-
insieme preimpostato di layer, attraverso il pulsante “New diamo se esistano delle scorciatoie (shortcuts) da tastiera;
Set”. Ciascun set è selezionabile dalla casella combinata qualcosa del genere l’abbiamo già affrontato durante il
“Layer Sets” posta in basso a sinistra. Con il pulsante “Remo- disegno dello schema: i tasti ALT, CTRL e SHIFT.
ve Set” si va ovviamente a rimuovere il layer set selezionato EAGLE mette a disposizione delle scorciatoie configurabili
correntemente nella casella combinata. Un layer set assu- a livello di ambiente. Infatti ad ogni comando possiamo far
IMPARIAMO A UTILIZZARE EAGLE

me grande utilità nello sviluppo del layout dove ci troviamo corrispondere una scorciatoia con tanto di opzione per i ta-
a lavorare su strati diversi quindi ha senso spegnerli o sti ALT, CTRL e SHIFT. Configurare tali scorciatoie è possibile
accenderli all’occorrenza. sia manualmente che automaticamente. In questa sezione
I layer sono modificabili uno alla volta quindi non per sele- vedremo come configurarle manualmente riprendendo la
zioni multiple o set. Per modificare un layer basta cliccare barra dei menu ed in particolare il menu “Options  Assign”.
due volte sulla riga corrispondente e comparirà la finestra La Fig. 31A mostra la finestra assign.
“Change layer properties” mostrata nella seguente Fig. 30A. Come notiamo si presenta sotto forma di tabella con due
In tale finestra compare la casella combinata contenente colonne, rispettivamente “Key” e “Command”. La prima
il numero del layer, il nome, il colore, il colore di selezione contiene la combinazione di tasti dello shortcut mentre la
(“Highlight”) e lo stile di riempimento (“Fillstyle”). In nessun seconda contiene il comando da riga di comando associato
caso è possibile modificare le proprietà numero e colore di alla combinazione di tasti. Ciascuna riga dell’elenco ovvia-
selezione. Una volta assegnato un layer non è più possi- mente rappresenta una scorciatoia.

151
 Fig. 31 Una funzionalità molto utile: gli shortcut.

Un comando può avere più di una combinazione di tasti tata in Fig. 31C, per l’aggiunta di una nuova voce elenco e
ma una combinazione di tasti può essere univoca. In altri risponde alle stesse identiche regole per l’assegnazione.
termini possiamo assegnare più di una riga con lo stesso Come possiamo notare l’assegnazione di una scorciatoia
comando ma differente combinazione ma non possiamo avviene assegnando un tasto base (“Key”) attraverso una
avere più righe con la stessa combinazione per comandi combo-box, che può essere letterale oppure un tasto fun-
diversi. Introdotte queste semplici regolette possiamo ve- zione della tastiera e dei modificatori, che possono essere
dere, dall’interfaccia, che è possibile aggiungere, modificare lo SHIFT, il CTRL o ALT; almeno uno dei due tasti CTRL o ALT
o eliminare una scorciatoia selezionando rispettivamente deve essere associato al tasto base mentre non è possibile
i pulsanti “New”, “Change” o “Del”. Quest’ultimi due casi si associare un tasto base al solo tasto shift.
applicano ovviamente alla selezione corrente. In realtà per Fanno eccezione i tasti funzione (da F1 a F12) cha possono
modificare una delle voci elenco è sufficiente fare doppio- avere un’assegnazione assestante. Non sono proibite le
click sulla riga desiderata. combinazioni di tasti proprie del sistema operativo (come
La Fig. 31B mostra la finestra di “Change key assignment” per esempio SHIFT+F10 per Windows) ma, tuttavia, non
per la modifica di una voce scorciatoia (nell’esempio è hanno efficacia perché non riescono a sovrascrivere la
associata al comando “Add”). Questa finestra è del tutto funzione del sistema operativo. Se si prova ad assegnare
identica alla finestra “New key assignment”, rappresen- ad un comando una combinazione già esistente comparirà

IMPARIAMO A UTILIZZARE EAGLE

 Fig. 32 Aggiungiamo il “value”.

152
il messaggio mostrato in Fig. 31D dove viene chiesto se si Se così non fosse, in fase di utilizzo strumento “value”, un
vuol sovrascrivere l’assegnazione già esistente. Seguendo “warning” ci avviserà che il valore non ha un valore definibile
le regole precedenti proviamo dunque ad assegnare la com- dall’utente e ci chiederà se vogliamo comunque modificarlo
binazione CTRL+G al comando GROUP; quest’operazione come mostrato in Fig. 33B.
possiamo farla in due modi: Spendiamo qualche breve parola sullo strumento “name”
• Modifichiamo l’assegnazione al comando “NEWGROUP”. che a differenza dello strumento “value” modifica il rife-
• Creiamo una nuova assegnazione sovrascrivendo quella rimento del componente selezionato. È consigliato non
esistente. modificare manualmente i reference dei componenti a
meno che non si voglia attribuirgli un nome contestualiz-
Per confermare il tutto e chiudere la finestra “Assign” biso- zato; per esempio un LED con prefisso D si rinomina come
gna ovviamente selezionare il pulsante “Ok”. Infine è bene LED. A questo punto siamo giunti alla finalizzazione dello
precisare che l’assegnazione è contestualizzata all’am- schema: colleghiamo tutte le net, meglio se gli diamo un
biente dunque può cambiare a seconda che ci troviamo in nome, posizioniamo tutti i componenti, assegniamogli i
“schematic” oppure “board”. valori, disegniamo un frame con cartiglio che racchiuda lo
schema e racchiudiamo le sotto-parti del circuito all’interno
FINALIZZAZIONE DELLO SCHEMA di cornici in modo da meglio identificarle.
Siamo giunti alla stesura finale dello schema elettrico di
NordIOT, prima di generare la documentazione utile alla CONTROLLO DELLE REGOLE ELETTRICHE
sua realizzazione pratica ed eseguire i controlli di violazione (ELECTRICAL RULE CHECK - ERC)
delle regole. In precedenza abbiamo visto come rinominare Terminiamo questa puntata con uno strumento molto
una net, tuttavia non abbiamo però parlato di assegnazione rilevante nella progettazione elettronica, l’ERC (Electrical
dei componenti. Dunque una volta impostato lo schema è Rule Check). Una volta completato uno schema elettrico è
ovviamente necessario riportare il dimensionamento “su consigliato prevedere una rivisitazione (design review) per
carta” nei valori dei componenti. Riprendiamo gli strumenti scongiurare eventuali errori. Per errori s’intendono sia pro-
“value” e “name” rappresentati in Fig. 32A. gettuali che violazione di regole. Per i primi si fa solitamente
Per assegnare un valore ad un componente si utilizza lo un confronto con quanto disegnato “su carta” quindi una
strumento “value” disponibile sia da barra degli strumenti rivisitazione del progetto. D’altro canto ci possono essere
che su menu contestuale relativo al componente. degli errori elettrici ovvero pin aperti, net inconsistenti,
Una volta selezionato lo strumento basta cliccare sul com- collegamenti tra pin non omologhi e via dicendo.
ponente che si vuol modificare e appare la finestra di input Quest’ultimo tipo di controllo può essere fatto automa-
di Fig. 32B. ticamente da EAGLE attraverso il comando ERC o con lo
Al suo interno è possibile inserire qualunque testo che strumento mostrato in Fig. 34A. Apparirà quindi la finestra
ne individui il componente (per esempio un part number). “ERC Errors” mostrata in Fig. 34B.
Questa operazione è possibile eseguirla anche da pannello In tale finestra riconosciamo una lista con “errors” (errori
di modifica rapido individuando il campo “Value” come indicati da punto esclamativo rosso) e “warnings” (avvisi
mostrato in Fig. 32C. Tuttavia la modifica del valore di un indicati da punto esclamativo giallo).
componente è possibile solo se il campo “Value” è imposta- Sostanzialmente un “warning” è un avviso indicante che
to su On come mostrato in Fig. 33A. sullo schema c’è qualcosa di poco pulito come collegamenti
IMPARIAMO A UTILIZZARE EAGLE

 Fig. 33 Definiamo il “value”.

153
 Fig. 34 Lo strumento ERC.

tra pin non omologhi (es. un pin io collegato con un pin oc), • Risolvere l’errore: come spiegato all’inizio della puntata
mentre un “error” rappresenta una violazione di una regola sarebbe più opportuno dichiarare il pin in questione
elettrica. Il primo elemento della lista indica l’inconsistenza come “power” (pwr) quindi modificare la libreria.
tra schema e board (nella figura viene indicato che i due • Approvare l’errore avendo controllato che non c’è nessun
sono consistenti). rischio, consapevoli che rimane comunque una violazione
Questo concetto è molto importante perché per utilizzare la di una regola elettrica.
“Forward&Back Annotation” layout e schema devono essere
coerenti, il che significa che devono contenere un insieme Tuttavia anche approvati “errors” e “warnings” questi non
equivalente di parti/elementi e reti/segnali. Un’incoerenza scompaiono ma vengono spostati più in basso nella stessa
può capitare se uno dei due viene modificato separatamen- lista “ERC Errors” sotto la voce “Approved”. Non è possibile
te dall’altro. Se si clicca su uno degli elementi della lista il approvare tutti i messaggi in una sola volta ma è necessario
focus dell’ambiente si sposta direttamente sull’oggetto (è controllarli uno per uno. È invece possibile cancellare la lista
consigliato fare uno zoom per meglio individuarlo). dei messaggi tramite il pulsante “Clear all”. In questo caso
A questo punto è necessario controllare che il “warning” o non si cancellano “errors” e “warnings” ma solo il conte-
lo “error” siano da approvare tramite il pulsante “Approve”. nuto della lista; lanciando nuovamente ERC si riproporrà la
Ovviamente, in caso contrario, la risoluzione del problema lista. Dunque lo strumento clear è bene usarlo quando si IMPARIAMO A UTILIZZARE EAGLE
dovrà essere fatta a mano. individua un errore, tuttavia poiché la lista non si aggiorna
Nell’esempio di Fig. 34B il primo errore che incontriamo cita dinamicamente, è necessario cancellare tutta la lista e poi
il seguente messaggio: “OUTPUT and SUPPLY pins mixed on rilanciare ERC.
net VBAT (out)”.
Questo errore indica che un pin di uscita (out) è collegato CONCLUSIONI
insieme ad un pin di alimentazione (sup) su una net che si Siamo giunti al termine di questa puntata in cui abbiamo
chiama VBAT. È sicuramente una violazione di una regola visto come terminare lo schema andando ad impostare
elettrica perché un pin di alimentazione non può essere ed inserire tutti i dettagli del caso perciò dalla prossima
connesso ad un pin d’uscita; infatti se un pin è impostato puntata ci dedicheremo al passaggio nel “mondo fisico”
come uscita si presuppone che possa fornire un segnale cominciando ad affrontare tutte le tematiche riguardan-
in contrasto con un’alimentazione come, per esempio, 0V. ti il piazzamento dei componenti e sbroglio del circuito
Come anticipato possiamo intraprendere due strade: stampato. 

154
SERVIZIO DI SERVIZIO DI
PROGETTAZIONE REALIZZAZIONE PCB
L’area R&D di Futura Grazie al Servizio di
Group studia, progetta realizzazione PCB potrai
e realizza prototipi ricevere i tuoi circuiti
per differenti settori stampati semplicemente
utilizzando tecnologie caricando sul nostro sito
innovative. Il team Futura il tuo Gerber e scegliendo
Group è composto, oltre le dimensioni e le
che dal personale dei nostri caratteristiche preferite.
laboratori tecnici, anche È possibile ordinare
da un numero elevato schede a una singola
di collaboratori esterni, faccia oppure
ciascuno specializzato nel multistrato, scegliendo
proprio settore. anche il colore del solder.

Trasformiamo
le tue idee in realtà!
FUTURA ELETTRONICA È IL TUO PARTNER DI RIFERIMENTO PER MOLTEPLICI SERVIZI.
I NOSTRI TECNICI SONO A TUA DISPOSIZIONE PER FORNIRE TUTTE LE INFORMAZIONI
E UNA VALUTAZIONE PERSONALIZZATA IN BASE ALLE TUE NECESSITÀ.

SERVIZIO SERVIZIO
TAGLIO LASER STAMPA 3D
Futura Elettronica Futura Elettronica mette
offre la possibilità di a disposizione le proprie
realizzare mediante stampanti 3D FDM
taglio laser i tuoi (fused deposition
progetti in plexiglass modeling), per chi
(o metacrilato) con intende realizzare un
spessore massimo di oggetto tridimensionale
10 mm e con dimensioni con dimensioni fino a
massime lavorabili 40x40x40 cm partendo
di 130×90 cm. Carica da un modello 3D
sul nostro sito il digitale. Carica sul
tuo file .DXF, scegli nostro sito il tuo file .STL,
le dimensioni e le scegli le dimensioni e le
caratteristiche preferite. caratteristiche preferite.

Futura Group srl


www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
Tel. 0331/799775
SCIENZA E TECNOLOGIA
FRMN e intelligenza
artificiale per decifrare
il pensiero umano Saipem raggiunge
Un nuovo sistema chiamato “decodifica-
tore semantico” può tradurre l’attività ce- un nuovo traguardo
nell’eolico offshore
rebrale di una persona -mentre ascolta o
immagina di parlare- in un flusso continuo
di testo; sviluppato dai ricercatori dell’Uni-
versità del Texas ad Austin, potrebbe aiu-
tare le persone incapaci di parlare, come
quelle debilitate da ictus, a comunicare. Lo L’azienda italiana storicamente im- cavi che raggiungeranno la rete di
studio si basa in parte su un modello di tra- pegnata nel settore dell’energia terra.
sformatore, simile a quelli che alimentano ha raggiunto un nuovo traguardo Ciascuna sottostazione sarà com-
ChatGPT di Open AI e Bard di Google. A dif- nell’ambito delle installazioni di eo- posta da un topside e da un jacket
ferenza di altri sistemi di decodifica lingui- lico offshore, con il completamento a quattro gambe dal peso di oltre
stica in fase di sviluppo, questo non richie- della prima campagna di installazio- 3.100 tonnellate, installato a una
de l’impianto chirurgico di dispositivi e non ne per lo sviluppo del parco eolico di profondità di circa 28 metri, e avrà
ha un set limitato di parole. L’attività cere- Dogger Bank. una capacità di 1,2 GW.
brale viene misurata utilizzando uno scan- Situato a oltre 130 km al largo dello I due jacket sono stati fabbricati
ner fRMN (Risonanza Magnetica Nucleare Yorkshire, nella costa nord-orientale presso il cantiere di Saipem di Ar-
Funzionale) dopo un lungo addestramento dell’Inghilterra, Dogger Bank, una batax, in Sardegna, cantiere attual-
del decodificatore, in cui il paziente ascol- volta completato sarà il più grande mente impegnato in attività di fab-
ta ore di podcast sdraiato all’interno della parco eolico offshore del mondo e bricazione per altri progetti Saipem
macchina. Successivamente, il sistema sarà in grado di alimentare 6 milio- nel settore eolico offshore. Con la
genera il testo corrispondente all’attività ni di abitazioni della Gran Bretagna. conclusione di questa prima campa-
cerebrale. Il risultato non è una trascrizio- Verrà sviluppato in tre fasi: nella A, gna, Saipem ha installato con suc-
ne letterale perché il sistema è progettato sarà installato un blocco con potenza cesso il jacket e il topside per Dogger
per catturare l’essenza di ciò che viene installata di 1,2GW, nella B verranno Bank A e il jacket per Dogger Bank B,
detto o pensato; circa la metà delle volte, aggiunti altri 1,2 GW e un’ulteriore il cui completamento è previsto nel
quando il decodificatore è stato adde- potenza verrà aggiunta nella fase C. prossimo anno.
strato a monitorare l’attività cerebrale di Nel 2020 Saipem si è aggiudicata un Saipem è una multinazionale italia-
un partecipante, la macchina produce un contratto da parte di Dogger Bank na leader nelle attività di ingegneria,
testo che corrisponde al significato delle Offshore Wind Farms, una joint ven- di perforazione e di realizzazione di
parole originali. ture tra SSE Renewables , Equinor e grandi progetti nei settori dell’ener-
Attualmente il sistema è limitato alla Vårgrønn per il trasporto e l’instal- gia e delle infrastrutture, sia offsho-
sperimentazione a causa della sua dipen- lazione dei jacket e dei topside delle re (in mare aperto) che onshore (a
denza dal tempo richiesto dalla macchina due sottostazioni HVDC (High Volta- terra) e può contare su 9 cantieri di
fRMN, ma potrebbe essere trasferito ad ge Direct Current) offshore per Dog- fabbricazione e di una flotta offshore
altri sistemi di imaging cerebrale più por- ger Bank A e Dogger Bank B, nonché di 29 navi di costruzione (di cui 26 di
tatili, come la spettroscopia funzionale nel un contratto da parte di Aibel per proprietà e 3 di terzi e in gestione a
vicino infrarosso (fNIRS) la quale misura l’ingegneria, l’approvvigionamento Saipem) e 13 mezzi di perforazione,
dove c’è più o meno flusso sanguigno nel e la costruzione (EPC) dei medesimi di cui 9 di proprietà.
cervello in diversi momenti nel tempo, che, jacket. Le sottostazioni immetteran-
a quanto pare, è esattamente lo stesso no elettricità in corrente continua nei www.saipem.com
tipo di segnale misurato dalla fMRI, sep-
pure a minore risoluzione.

https://cns.utexas.edu/news

156
Memorie magnetiche
più efficienti con il
manganese-palladio
Un nuovo composto metallico potrebbe
portare a memorie per computer più ef-
ficienti, consentendo un’elaborazione più
rapida e l’addestramento dell’IA su singoli
dispositivi anziché su server remoti.
La memoria ad accesso casuale magne-
toresistivo con coppia di spin orbit (SOT-
MRAM) ha il potenziale per archiviare i dati
in modo più rapido ed efficiente rispetto
ai metodi attuali, che memorizzano i dati
utilizzando la carica elettrica ma richie-
dono un input di alimentazione continuo
per mantenere tali dati. Un sottile strato
di manganese-palladio 3 (MnPd3) ha le
proprietà necessarie per rendere possi-
bile una RAM che memorizza i dati nelle
direzioni di spin degli elettroni. Questo
metodo, noto come memoria ad acces-
so casuale magnetoresistivo a coppia in
orbita di rotazione o SOT-MRAM, si basa
su una proprietà intrinseca degli elettroni
chiamata spin, ossia il momento magneti-
co generato durante la rotazione. Se l’elet-
trone cambia direzione di rotazione, i poli
nord-sud del campo magnetico cambiano
ed è possibile utilizzare la direzione verso
l’alto o verso il basso di quel magnetismo,
noto come momento di dipolo magne-
tico, per rappresentare gli uno e gli zeri
che compongono i bit e i byte dei dati del
computer. Nella SOT-MRAM, la corrente
che scorre nello strato SOT genera speci-
fiche direzioni di rotazione, ma purtroppo
la maggior parte dei materiali polarizza gli
spin degli elettroni nella direzione y se la
corrente scorre nella direzione x. Invece
il MnPd3 può generare spin in qualsia-
si orientamento perché la sua struttura
interna manca del tipo di simmetria cri-
stallina che forzerebbe tutti gli elettroni in
un particolare orientamento: i ricercatori
sono riusciti a dimostrare la commutazio-
ne della magnetizzazione in entrambe le
direzioni y e z senza bisogno di un campo
magnetico esterno, il che vuol dire ritenere
il dato senza bisogno di energia.

https://news.stanford.edu

157
Il futuro dell’audio è nel silicio Dal treno
Lo afferma xMEMS, che ha svi- applicati ai microfoni dal 2007 e
all’aeroporto con
luppato micro altoparlanti
hi-fi interamente in silicio”
hanno guadagnato circa l’80%
della quota di mercato glo-
la guida autonoma
prodotti da TSMC (una bale. Sebbene i microspe-
delle più grandi foundry aker MEMS abbiano molti La città di San José in California
al mondo) capaci di co- vantaggi, per realizzare (Stati Uniti) ha approvato un con-
niugare coerenza ed ef- trasduttori utilizzabili in tratto per la messa in opera di un
ficienza che i tradizionali pratica occorrono array di sistema di trasporto pubblico de-
altoparlanti magnetodi- moltissimi dispositivi ele- dicato, denominato Diridon-Airport
namici non possono egua- mentari e ciò costa, perché Connector, per collegare la stazio-
gliare, specie in tema di pre- richiede moltissimo silicio. Per ne ferroviaria di Diridon e l’aero-
cisione di fase. I microaltoparlanti il momento i MEMS possono copri- porto internazionale di San José
xMEMS utilizzano minuscole membrane re trasduttori per cuffie, auricolari ad al- Mineta (SJC), uno dei principali scali
di silicio che sono più veloci e più rigide tissima fedeltà o microfoni, in attesa che del Nord America.
degli altoparlanti comuni. L’utilizzo della la tecnologia sia sviluppata su larga scala. La tecnologia di trasporto che ver-
tecnologia dei semiconduttori per i tra- rà utilizzata è quella proposta dalla
sduttori audio non è nuova: i MEMS sono https://xmems.com/news Glydways e si basa sull’impiego di
piccoli veicoli a guida autonoma,
vale a dire dei minibus senza con-
ducente, che percorrono una via
fissa e predeterminata; il sistema
Lenti a realtà aumentata per usare l’AI proposto è progettato per tra-
sportare inizialmente oltre 2.000
passeggeri all’ora in ciascuna dire-
Monocle è un dispositivo di realtà L’FPGA, a sua volta, si interfaccia con zione. Il nuovo sistema di transito
aumentata open source costruito da la fotocamera, il microfono e il di- dovrebbe essere completato in
Brilliant Labs, che si aggancia agli splay. Sono disponibili anche schemi meno di un decennio.
occhiali e permette di interagire con e file 3D del design fisico di Monocle, In caso di successo, il progetto Ai-
l’AI attraverso una telecamera fron- che dovrebbero aiutare gli sviluppa- rport to Diridon Connector potreb-
tale da 720p e un display micro OLED tori a modificare, migliorare e perso- be essere esteso ad altri corridoi
da 640x400 pixel con campo visivo nalizzare l’hardware. attraverso San José e South Bay.
di 20 gradi, oltre a un touch-sensor Una delle applicazioni è sicuramen- Per la città di San Jose si tratta di
capacitivo e all’interfaccia Blueto- te l’interazione con contenuti web un primo passo verso una mobili-
oth. L’azienda fornisce un’interfaccia e servizi di intelligenza artificiale, tà automatizzata e sicura, nonché
drag-and-drop, chiamata StreamLo- similmente a quanto fa RizzGPT, un ecologica; per la tecnologia che sta
gic, che attinge al processore gate- head-up display per ChatGPT. dietro al progetto, ossia l’ADAS di
array programmabile sul campo in- livello più elevato, si tratta invece
cluso di Monocle. https://brilliant.xyz dell’ennesima dimostrazione che la
circolazione di veicoli autonomi nel
trasporto pubblico è una via prati-
cabile a breve termine, seguendo
il solco tracciato già da anni dai
convogli ferroviari (per esempio le
metropolitane) senza conducente.

www.sanjoseca.gov

158
Tappetini
da laboratorio cod. RSP8417718

per ogni uso! € 24,00


Tappetino da taglio
600×450×2,5 mm
cod. RSP8417712
€ 13,00 DA TAGLIO
cod. CUTMAT30X22
€ 9,00

Tappetino da taglio
450×300×2,5 mm Tappetino da taglio
300×220×2,8 mm

Prezzi IVA inclusa.

Tappeto
Tappeto in silicone per saldatura
in silicone
337×227 mm
per saldatura
450×300 mm

cod. AS11
€ 19,00
cod. AS10
€ 9,00

PER SALDATURA ANTISTATICO


Tappeto in silicone per saldatura
550×350 mm Tappetino antistatico 550×300

cod. AS12
€ 35,00 cod. AS13
€ 13,50

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
o i P C B a
I t u a
part i r e d 1€

Prezzi IVA inclusa.


Con il servizio PCB di Futura Elettronica,
potrai realizzare facilmente il circuito
stampato del tuo progetto!
Vai su www.futurashop.it, inserisci nella ricerca
il codice “PCBPRODUCTION” e carica
il tuo Gerber scegliendo le dimensioni
e le caratteristiche preferite.

COLORE SERIGRAFIA

NERA La serigrafia nera è disponibile solamente


BIANCA per PCB bianchi e gialli. cod. PCBPRODUCTION

COLORE SOLDER

verde rosso giallo blu BIANCo nero ECCO QUALCHE ESEMPIO:

PCB con 1 layer


SPESSORE (mm) da 5x5 cm
spessore 1,6 mm
solder verde
serigrafia bianca
NUMERO DI LAYERS € 1 cad.

PCB da 2 layer
DIMENSIONI (cm)
da 10x10 cm
- 5x5 – 5x10 – 5x15 – 5x20 – 5x25 – 5x30 spessore 1,6 mm
- 10x10 – 10x15 – 10x20 – 10x25 – 10x30
solder verde
- 15x15 – 15x20 – 15x25 – 15x30
- 20x20 – 20x25 – 20x30 serigrafia bianca
- 25x25 – 25x30 € 6 cad.
- 30x30

Futura Group srl


Via Adige, 11 • 21013 Gallarate (VA) ®
www.futurashop.it Tel. 0331/799775
DISPOSITIVI INNOVATIVI STUDIATI PER METTERE IN COMUNICAZIONE APPARATI E
OGGETTI CON LA RETE INTERNET PER SEMPLIFICARE LA VITA DI TUTTI I GIORNI.

POWER SECURITY SMOKE


CONTROL IOT DETECTOR
IOT BOX IOT

cod. SEC3NV000

cod. PWC3NV000
€ 119,00 cod. SMK3NV000

€ 119,00 € 149,00
Ideale per proteggere gli
oggetti dai furti. Basato su un
accelerometro, Security IoT
BOX è in grado di rilevare e
Collegato alla rete elettrica, segnalare tempestivamente, È in grado di rilevare la presenza
permette di essere avvisati da tramite l’apposita APP, eventuali di fumi potenzialmente pericolosi
remoto, tramite apposita APP, di spostamenti degli oggetti sui quali segnalandolo, tempestivamente
una eventuale mancanza di corrente viene posizionato. Per funzionare tramite l’apposita APP. Per
e di intervenire tempestivamente. non necessita di Bluetooth funzionare non necessita di
Il dispositivo dispone anche di una o Wi-Fi; dispone infatti di una SIM Bluetooth o Wi-Fi; dispone infatti
di una SIM on chip con durata
Prezzi IVA inclusa.

uscita a contatto pulito molto utile on chip con durata di connettività


per attivare da remoto dispositivi illimitata. Funziona con due batterie di connettività illimitata. Funziona
elettrici. Dispone di una SIM on chip a stilo tipo AA (incluse). con una batteria al litio da 3V
con durata di connettività illimitata. Autonomia circa 18 mesi. (incluse). Autonomia circa 18 mesi.

CONNETTIVITÀ APP
ILLIMITATA GRATUITA
nessun abbonamento

Futura Group srl


Caratteristiche tecniche di questi prodotti
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775
Cattura l’ENERGIA
del FUTURO
L’energia pulita che ti fa risparmiare!
Pannello solare monocristallino Pannello solare monocristallino
semirigido 12V rigido 12V

cod. SOL30M

48,00
cod. SOL30FLEX

€ 49, 00 dimensioni:
480 x 240 x 30 mm
€ cod. SOL100M

€ 109,00
cod. SOL100FLEX

138,00
cod. SOL20M 30W
€ € 36, 00
20W

30W 100W
100W
dimensioni:
570 x 350 x 2 mm
dimensioni: dimensioni: dimensioni:
1150 x 510 x 2 mm 540 x 360 x 25 mm 1080 x 510 x 30 mm

PANNELLI SOLARI MONOCRISTALLINI

Sono composti da singoli e sottilissimi strati di cristallo la massima efficienza energetica e grazie a questa
di silicio che opportunamente trattato aumenta la caratteristica è possibile installare un numero di
loro conduzione. Le celle che compongono il pannello pannelli inferiore rispetto ai tradizionali, permettendo
monocristallino sono facilmente riconoscibili grazie così di occupare superfici meno estese. L’alta qualità
al loro colore molto scuro. La purezza del silicio che del materiale utilizzato permette di avere una durata
compone le celle monocristalline permette di ottenere maggiore del pannello.

E per dare la giusta corrente alle tue batterie...


REGOLATORI DI CARICA PER PANNELLI FOTOVOLTAICI A 12 E 24V

30A 20A 15A 10A


Prezzi IVA inclusa.

cod. PWMSOLAR30 cod. PWMSOLAR20 cod. FR699 cod. SOLAREG10


€ 39,00 € 22,00 € 108,00 € 16,00

FORNISCONO ALLE BATTERIE LA QUANTITÀ DI CORRENTE NECESSARIA, PROTEGGENDOLE DA UN ECCESSO DI CARICA O SCARICA.

Futura Group srl


Caratteristiche tecniche di questi prodotti
®
www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
e acquisti on-line su www.futurashop.it
Tel. 0331/799775

Potrebbero piacerti anche