Sei sulla pagina 1di 131

EDITORIALE ron1ca n
Rivist a mensile, anno XXV n. 233
MARZO 2019 ·

ato oscuro EDITORIALE


• Direttore Responsabile

e l itae Arsenio Spadoni


(@) arsenio.spadoni@elettronicain.it
R~dazione
Stefano Garavaglia, Paolo Gaspari ,
La cosa incomincia a farsi preoccupante. E con la proliferazione degli Boris Landoni, Davide Scullino,
Gabriele Daghetta, Alessandro Sottocornola
assistenti vocal i la preoccupazione cresce. Eh si, perché un conto (@) redazione@elettronicain.it
è leggere le storie di cosa è capitato ad alcuni utenti che facevano Grafica
uso di dispositivi con bachi alla sicurezza, e un altro è vedere la AressiaSfulcini
propria casella di posta elettronica riempirsi ad esempio, di offerte di (@) alessta.stulcìni@elettronicain. it
prestazioni odontoiatriche dopo che, in famigl ia si era discusso del Ufficio Pubblicità
Monica Premo li (0331,.752668)
preventivo inviato recentemente dal dentista di f1duc ia.
(@) monica.p,remoli@elettronicajn.it
Oppure vedere, durante la navigazi one in Internet, lo schermo del PC :·•

Ufficio "AI:5t>on am enti .


"i

riempirsi di offerte per un viaggio ai Caraibi, non dopo aver effettuato Elisa Guarniero (0331 ~ 752668)
ricerche relative a questa meta in Internet, ma dopo un paio di (@) elisa.guarniero@elettronicain.it
telefonate con un amico. Direzione, Redazione, Pubblicit à
FUTURA GROUP srl- Divisione Editoriale
Oppure vedere la
via Adige 11 - 21013 Garlarate NA)
pubblicità di un prodotto 1J Tel. 0331-752668
Ad oggi almeno il 90°/o della posta dopo che ne avevate Abbonamenti
che arriva alle nostre caselle è discusso via mai l. Annuo 1O numeri Euro 45,00
Estero 1O numeri Euro 45,00 (digitale)
Fatti ai quali molte
costituto da,n} essaggi indesideratL:o , Le richieste d i abbona,mento vanno inviate a:
persone si stanno FUTURA GROUP sr[
già contrassegnat a come SPAM. abituando piano piano, via Adige 11 , 21013 Gallarate 0/A)
ma che sono di una Il Tel. 0331-752668
oppure tramite il sito
gravità inaudita: un atteggiamento che rischia di farci fare la fine della
https://ww w.e/ettronicain. it/abbonamenti!
rana bollita.
Distribuzione per l'Italia
Altro che il GDPR sulla protezione dei dati! Ed anche ammesso SO.DI.P. Angelo Patuzzi S.p.A.
che questo insieme di leggi abbia tutti i requisiti per limitare questi via Bettola 18- 20092 C inisello Balsamo (MI)

fenomeni, esiste il problema dei controll i e di chi deve fa re rispettare


Il Tel. 02-660301 1!1 Fax 02-66030320
Stampa
le leggi. Ad oggi almeno il 90% della posta che arriva alle nostre
ROT03 Spa - Via Turbigo, 11 / b
casel le è indesiderata o già contrassegnata come SPAM . Con un 20022 CASTANO PRIMO (MI)
pegg ioramento della situazione anno dopo anno, nonostante i
Mensile
software anti SPAM insta llati sul server di posta e sui PC. Questa Tiratura associato aii'USPI,
18.500 copie · Unione Stampa
situazione, come dicevamo all' inizio, è destin ata a pegg iorare a
Periodica Italiana
seguito dell'instal lazione di assistenti vocali, sia in casa che in
ON LINE macchina, oltre che di altri dispositivi connessi, dai videogiochi, Rivista mensile registrata presso il Tribunale di Milano
agl i impianti di allarme, ai sistem i wearable. Sistemi che, alla fine, con il n. 245 il 03}0511995.
~ elettronicain.it Prezzo di cnpertina Euro 6,00.
possono condizionare non solo le nostre vite ma anche la nostra Gli arretrati nei formati cartaooo e digitale (pdf) sono acquistabili
società. Specie quando vengono utilizzati per orientare politicamente sul sito della rivista al prezzo di Euro 6,00.
Poste Italiane Spa -Spedizione in abbonamento Postale - D.l.
SI RINGRAZIA il voto, come sembra sia già avvenuto in alcuni Paesi. 353/2003 (conv. in L 27/02/2004) art. 1 comma 1 - DCB Milano.
Fiera di Gonzaga Che fare, dunque? Essere coscienti di qual i pericoli si possono celare Futura Group srl è iscritta al Registro Operatori della
Comunicazione n. 23650 del 02/07/2013.
Fiera di Novegro dietro questi dispositivi, anche di quelli più friendly, può essere già

Futura Elettronica Impaginazione ed immagini sono realizzati in DeskTop Publishing
un primo importante passo. Poi, segnalare i casi più eclata nti di
Microchip con programmi Adobe JnDesign e Adobe Photoshop per Windows.
RM Elettronica violazione. Infine, scegl iere i prodotti, le applicazion i e i programm i Tutti i contenuti della Rivista sono protetti da Copyright.
che offrono maggiore sicurezza dal punto di vista del la privacy. Ne è vietata la riproduzione, anche parziale, la traduzione e più in
generale la diffusione con qualsiasi mezzo senza l'autorizzazione
Insomma, ma i abbassare la guardia! scritta da parte delrEditore~ Jtircurtir 11 firmware ed il software
descritti sulla Rivista possono essere realizzati solo per uso
, ...--1 personale, ne è proibito lo sfruttamento a carattere commerciale
.•' : e industriale. Tutti possono collaborare con Elettronica In. l'invio
ll l• l
//
di articoli, materiale redazionale, programmi, traduzioni, ecc.
' ~·'
t ,...
In copertina: f ;vt..J'?
Utilissimo dispositivo ,- .
(
J·/
.. l ~
implica da parte del CoUaboratore l'.ac~ettazione dei compensi e
in grado di chiamare , ,#·t'' ~ delle condizioni stabilite dalt'ftfitore twww.elettronicain.it/ase.pdf).
/ Manoscritti, disegni e foto non ricmesti non verranno in alcun caso
i soccorsi nelle Arse~io Spadoni restituiti. L'utilizzo dei progetti e dei programmi pubblicati non
situazioni di emergenza.
~ arsenio.spadoni@elettronicain.it comporta alcuna responsabilità da parte della Società Editrice.
Particolarmente
indicato per persone Futura
anziane che vivono sole, tS'ì 2019 Futura Group srl..,,,,. Grou,/1
.tdhMfU .,;;::::::~
infermi, ecc.


Il


'

Networking
Mercury System
loT & Connectivity •
Made Simple

RUBRICH E •

01 Editoriale ARTICOL I
05 Q&A Questions & Answers
09 Embedded iOT NETW RKING
Digitai Transformation of Things
23 Neopixel con WiFi
13 Componenti & Sistemi Realizziamo installazioni luminose
NeoPixel con Fishino e NodeMCU
17 Appuntamenti & Eventi controllati via Wi-Fi da PC o da
122 Scienza & Tecnologia Raspberry Pi tramite una libreria
Python.
126 Fonti Rinnovabili

NET ORKINC 1
J

31 Mercury System
loT & Connectivity
Progetto di Copertina Made Simple
Sistema di sviluppo modulare
che semplifica le applicazioni di
connettività e loT: basato su schede
combinabili come mattoncini LEGO,
su un completo framework software
e permette scalabilità e modularità.
Prima Puntata.

Networking
Neopixel a
controllo WiFi

2

'

CONTENUTI

Hi-Tech

Raspberry Pi
Home Automation
con OpenCV 4
Strumentazione
Generatore
di segnali DDS

97

Didattica
Antennino, un
Corso CIP
gateway per loT
NETWORKINC
57 ANTENNINO,
57
un·gateway per loT
Una nuova applicazione della board Antennino
che realizza un gateway utilizzando un
software open source con cui realizzare un
109
pannello di controllo (Dashboard) per i nostri
dispositivi wireless.
Prima puntata.
RAS RRY Pl
STRUMENTAZI NE 97 Home Automation -= -_ - -

71 Generatore di segnali DDS con OpenCV 4


Basato su lla tecnica DDS, genera segnali Realizziamo con Raspberry Pi 3 B+ un sistema
analogici di frequenza compresa fra 35 MHz in grado di rilevare il movimento di persone e
a 4 GHz. oggetti tramite una videocamera e di inviare
e-mail di al larme
Seconda puntata.

Hl-TEC H DI ATTI A
87 Spettrometro su PC 109 Conoscere ed usare le Core
Utilizziamo la piattaforma basata sui lndipendent Peripherals
.
sensori deii'AMS in abbinamento al Personal Scopriamo nuove periferiche CIP dei
Computer e grazie a un software ad hoc microcontrollori Microchip emettiamole
tracciamo sullo schermo le curve di spettro alla prova con esempi di test realizzati con
frutto dell'analisi eseguita. la nostra board di sviluppo Curiosity. Quarta
puntata

3

Discov er Your Power


La Flessibilità di Poter Scegliere la Power Solution che Preferisci

Microchip, uno dei fornitori leader, con un completo portfolio per la gestione
e monitoraggio dell'alimentazione, offre la potenza, la flessibi lità e la sicurezza
necessari per scegliere sempre la giusta soluzione per ogni tuo progetto.

La gestione del consumo energetico del tuo sistema è fondamentale per


ottenere le prestazioni richieste. Il nostro portfolio di dispositivi di monitoraggio
dell'alimentazione consente di misurare con precisione la potenza attiva, reattiva e
apparente, correnti e tensioni Root Mean Square (RMS), frequenza di linea e fattore
di potenza. La nostra ampia gamma di dispositivi di gestione dell'alimentazione,
compresi controller, regolatori DC-DC, MOSFET e driver MOSFET, supervisori,
riferimenti di tensione e moduli di potenza, consente di progettare in modo efficiente
una soluzione per gestire i requisiti di alimentazione del tuo sistema.

Con gli schemi di riferimento, le schede di valutazione e agli strumenti di


simulazione, ridurrete i tempi di progettazione, minimizzando anche i rischi grazie al
completo supporto offerto da Microchip.

Discover your power:


www.microchip.com/PowerSolutions

Il nome e logo Microch1p ed illogo Mtcrochip sono march11ndustnali registrati d1 M1crochip Technology lncorpornted negli U.S.A e altn Stati Tutt1 gli altn marchi
1ndustnali appartengono a1 rispettiVI titolan.
C 2019 Microchip Technology lnc. Tutti 1 diritti riservati. DS20006065A. ~:1EC22301ta01 /19
QUESTIONS & ANSWERS

leUICC per una capacità futuristiche ai fornitori di


soluzioni per applicazioni loT e di altri
connettività globale settori. Permettono di scegliere in tutta
semplicità un operatore di rete mobile
Mi sono sempre domandato, nel caso (MNO) senza dover procedere alla
di dispositivi loT, se questi sistemi - sostituzione manuale della scheda SIM
spesso di bassissimo costo - possano integrata nei dispositivi, nelle macchine
reggere il fenomeno della globaliz- e nei sensori di connettività cellulare
zazione, ovvero possano funzionare già operativi.
in tutto il mondo adeguandosi alle La soluzione Avnet eUICC rappresenta
caratteristiche delle reti locali... un significativo servizio a valore ag-
giunto che consente di risparmiare sui
costi di logistica, produzione e gestione
R:Sono numerose le iniziative, del ciclo di vita dei prodotti.
promosse da gestori di primo piano Avnet Silica è stata la prima divisione di
cosi come dai piccoli provider virtuali, Avnet a implementare la soluzione eU-
per superare le differenze che ancora lCC per circa l 0.000 clienti industriali
esistono tra le reti locali, tariffarie e, in in tutta la regione EMEA (Europa, Medio
alcuni casi, anche tecniche. Anche i Oriente, Africa).
produttori di dispositivi e le multina- Al momento, a questa iniziativa pos-
zionali della distribuzione, come Avnet, sono aderire solamente i produttori di
hanno messo a punto particolari · moduli i cui prodotti hanno superato
tecnologie per consentire ai propri una serie di procedure di test intensi-
clienti una presenza globale, senza ve e rigorose per garantire un livello
alcun problema legato all'operatore collaborazione con IDEM lA, Avnet ha elevato di resilienza del modulo e della
locale. messo a punto la nuova scheda de- piattaforma in una serie di condizioni
In particolare, per rispondere alle cre- nominata eUICC (embedded Universal difficili. Recentemente, ad esempio,
scenti esigenze di comunicazione ge- lntegrated Circuit Card) 'plug & play' sono stati qualificati per questa appli-
nerate dalle applicazioni per l'Internet e SM-SR (Subscription Management cazione cinque moduli Quectel: BG96,
delle cose (lo T) e per l'Industria 4.0, in Secure Routing): insieme, offrono UG96, EC21, EG95 ed EC25, normali
moduli di comunicazione wireless ap-
positamente progettati per applicazioni
M2M e loT, ma che supportano anche
la copertura mondiale di NB- IoT, Cat
Ml, UMTS l HSPA +e reti LTE.

l\ VN Er-·
- Reach Further

((}) rDEMIA

ARKESSA
... ..
SCAN THIS QR CODE

TO GET STARTED
..,.,.net .., l=-
cUICC-testpack

_.....
#,....,.. _ _,_ ...

- -

.. . .... .··-... .•.......


.. ··-·· . .... .. .............. .
........

5
,..--------- ~

RISC-V, sempre Prlnted f·antenna progetti basati su RISC-V. È una scheda di


SW2&SV/S .
valutazione e sviluppo di piccole dimen-
più sostenitori
1

sioni, a basso consumo e conveniente per


RGB LED
- RlSC·VJTAG
la prototipazione delle applicazioni e la di-
Ho letto con interesse l'articolo sull'Iniziativa RV32M 1 MCU - mostrazione di un microprocessore basato
RISC-V e volevo sapere se c'erano evoluzioni Jlheader ~ su RISC-V. Il processare principale sulla
In merito. GNOTP - - - - ! scheda Vega è il dispositivo quad-core
J2 huder
ARMSWO
RV32Ml, un dispositivo a chip singolo, a
basso consumo energetico, altamente in-
8: Sono numerosi gli annunci degli ultimi • J3 header
tegrato. La caratteristica chiave sono i core
mesi che sicuramente daranno impulsi a ,...-- RV12M1 USB presenti: un CPU ARM Cortex-M4, un CPU
questa iniziativa, che, lo ricordiamo per ARM Cortex-MO +, un CPU RI5-V RISC-V
quanti non ne hanno mai sentito parlare, OpenSOA LED
/
PowerlED
e un CPU ZERO_RISCY RISC-V In questo
prevede e supporta per la programmazio- caso è possibile sfruttare il solo core
ne dei microcontrollori un'architettura RISC-V o utilizzare contemporaneamente
{ISA, lnstruction Set Architecture) di tipo Microsoft. Tornando alle news, c'è da le funzionalità dei nuclei ARM e RISC-V. Sul
RISC (Reduced lnstruction Set), completa- segnalare l'accordo tra la Linux Founda- processare prototipo, i due core RISC-V
mente open-source. Un linguaggio simile, tion e la RISC-V Foundation per accelerare eseguono il sistema operativo open source
ad esempio, a quello di ARM (anch'esso lo sviluppo del RISC-V ISA. Zephyr e Free RTOS.
un RISC) ma molto diverso dall'x86 di lntel Dobbiamo poi mettere in evidenza il lancio Sono sempre più numerose anche le
che è di tipo CISC (Complex lnstruction dell'iniziativa Open-ISA.org e la disponibili- società che sviluppano software a fornire
Set), un'architettura con un set esteso di tà di una nuova scheda di sviluppo basata il loro appoggio a questa iniziativa. Tra
istruzioni e con metodi di indirizzamento su RISC-V, denominata Vega board. queste segnaliamo i due pesi massimi del
complessi. L'ISA RISC-V è stato creato Open-ISA.org è una iniziativa che vuole settore: IAR Systems e SEGGER.
dalla University of California, Berkeley, ed accelerare lo sviluppo dell'ecosistema
ha la peculiarità di essere completamente RISC-V e supportare la comunità open
open-source. In altre parole, se questa ISA; serve anche come luogo in cui gli
architettura si affermasse, i produttori di sviluppatori possono condividere idee ed
Un sensore di corrente
MCU non dovrebbero più pagare le royalty esperienze e può fungere da forum di di- ,senza perdite~ .
alle società come, ad esempio, ARM, scussione per argomenti relativi a RISC-V
proprietaria di molti lP (nel 2017 sono stati Infine, dobbiamo segnalare la nascita della Ho letto di un sensore di corrente che, pra-
21 miliardi i chip prodotti con licenza scheda di sviluppo Vega, realizzata da NXP ticamente, non Introduce alcuna perdita
ARM). Attualmente della RISC-V Founda-
tion fanno parte diverse aziende tra cui
AMD, Nvidia, Micron, Qualcomm e
per contribuire all'espansione di RISC-V
Questa scheda è progettata per ridurre
significativamente i tempi di sviluppo dei
. .
nel circuito sottoposto a misura...
. '
8: Effettivamente Rohm Semiconductor ha

Arduino R3 & Open-isa 170 Headers

--
-~

NMI

- lDO

SW4

sws
RESET
1
SPI

--..
~

l !j . _

Ardulno R3 & Open~sa 1/0 Headers

6
QUESTIONS &ANSWERS

Current Detection Methods (Current Sensor Types)


Meaning of symbols: o = excllent, C = good, b. = passing, x = not good
Conventional New Product 14270MUV
.-----~~~~~----~----------------------------~
Type Resistance Detection Magnetic Field Detection Magnetic Field Detection
Shunt Resister Wlth Core No Core No Core
+ High Speed Op Amp Current Llne
Cu~ l Board
Configuraben
••
Board Wiron
' Voltage drop due to reslstance ls 'Wìring magnetic field is 'Detects the field by 'Contactless detectlon of
converted lo current concentrated al the core drawing current into the IC notic field 1 MI element
Reliability A Slmple detection using rosistnneo O Contactloss dotoction • Conoems duo to IC current drow O Contactless detoctìon

Loss • loss due to reslstance o No contaci = no loss • loss due lo IC current draw O No contaci " no loss
Mounting Area Il 2 components x Extremely large core o 1 component o 1 component (ìndustry's smallest)
New current sensor with MI element provides 3 advantages: contactless detection, compact, and zero loss

messo a punto un sensore di corrente consumi (0,07 mA - l 00 volte inferiore ai unicamente il campo magnetico generato
contactless a magnete-impedenza con prodotti convenzionali) e vanta il formato dalla corrente.
perdite di potenza minime. La richiesta di più piccolo del settore (3,5 x3,5mm). Nelle illustrazioni viene evidenziata la par-
sensori in grado di misurare correnti, Questo sensore utilizza per la prima volta ticolare configurazione del nuovo sensore
soprattutto di basso livello, è cresciuta lo speciale filo amorfo sviluppato da mettendo in evidenza le differenze rispet-
enormemente negli ultimi anni. L'impiego Aichi Steel Corp., progettato per rilevare to alle tecnologi e precedenti, cor'ltactless
di sensori di Hall, una delle tecnologie i campi magnetici, e che presenta un o meno.
normalmente utilizzate, presenta solita- rilevamento ad alta sensibilità con basso
mente notevoli consumi di corrente e consumo energetico. Si prevede che il
bassa sensibilità, dato che una parte di risultato sarà l'adozione di questa tec- Web Forum
corrente viene assorbita all'interno dello nologia in un gran numero di ambiti per e supporto tecnico
stesso sensore. accelerare l'loT.
ROHM ha sviluppato recentemente un in- Questo sensore dispone tra l'altro di una Hai un problema con uno
novativo sensore di corrente a magnete- funzione integrata di cancellazione di dei circuiti pubblicati?
impedenza (MI) a bassa corrente ed alta eventuali campi magnetici di disturbo, Vorresti effettuare una modifica?
sensibilità che consente il rilevamento evitando l'impiego di una schermatura. Accedi al nostro Web Forum
completamente contactless di corrente. Il Generalmente, nei prodotti conven- dove i nostri tecnici
sensore è stato sviluppato associando la zionali, l'errore di misura si veriftca per (ma anche gli altri lettori)
produzione di semi conduttori all'elemento i campi magnetici di disturbo, come ti aiuteranno a chiarire qualsiasi
a magnete-impedenza (MI) di Aichi Steel. quelli geomagnetici (cioè terrestri), che dubbio di natura tecnica.
Il risultato è un sensore contactless di determinano la necessità di usare shield Collegati a:
corrente che elimina la necessità di as- per bloccare le interferenze. Nel nuovo
sorbire corrente all'interno del sensore per sensore di Rohm viene utilizzato un parti- www.elettronicain.it /webforum
misurarla. Il sensore stesso ha bassissimi colare cablaggio che permette di rilevare

7

'

••
Il Bluetooth Special lnte-
rest Group ha annunciato
.... oca 1zzare con tempo reale {RTLS), come
quelli utilizzati per il trac-
l
l'implementazione, nella ciamento delle risorse,
release 5.1 del protocollo,
di una nuòva funziona-
l ue oo l
nonché i sistemi di posi-
zionamento interno {l PS),
lità di ricerca che rivolu- come quelli per la segna-
zione la localizzazione. letica interna. La nuova
La nuova funzionalità funzionalità di rilevamen-
• permette ai dispositivi di to della direzione aggiun-
determinare la direzione ge al Bluetooth 5, forte-

di un segnale Bluetooth, mente orientato all'loT,
consentendo in tal modo a diventare sempre più
lo sviluppo di soluzioni protagonista tra i link wi-
di prossimità Bluetooth reless che si contendono
in grado di comprendere l'Internet delle cose. La
la direzione del disposi- funzione di ricerca della
tivo così come i sistemi direzione è inclusa nella
di posizionamento Blue- versione 5.1 della specifi-
tooth che possono lo- ca Bluetooth Core; inoltre
calizzare con precisione Launch Studio, lo stru- ·
al centimetro. Fino ad oggi le mento SIG Bluetooth utilizzato
soluzioni di prossimità {tipo i per qualificare i nuovi prodotti
Beacon) utilizzavano il Blue- Bluetooth, è in fase di aggior-
tooth per capire quando due dispositivi erano vicini e namento per supportarla.
quanto. Con la nuova funzionalità di ricerca della dire-
zione, il Bluetooth approda ai sistemi di localizzazione in www.bluetooth.com

9
' '

Microsoft China ha inaugurato a Area è un grande distretto indu- inizierà ad aprile di quest'anno la
Shangai il suo più grande laborato- striale esteso in un'area di 522 km propria attività di ricerca e sviluppo,
rio del mondo dedicato allo svilup- quadrati, comprendente grattacieli, che si concentrerà non solo sull'in-
po di soluzioni di intelligenza arti- fabbriche di automobili e acciaierie, telligenza artificiale e sull'laT. ma
ficiale e di applicazioni dell'Internet . fabbriche locali di aziende straniere, anche su argomenti di grande in-
of Things. ma anche zone abitative dove pos- teresse come gestione dei big data,
Frutto di un accordo tra il governo sono risiedere gli occupati. In essa cloud computing, block-chain, re-
distrettuale di Pudong New Area, gli insediamenti sono ripartiti in altà virtuale e realtà aumentata
Zhangjiang Group e Microsoft, l'in- zone distinte per settori di business industriale.
sediamento sorge a Zhangjiang, come la finanza (Luijazui). lo svilup- L'attività del laboratorio congiunto
Shanghai e copre un'area di po ad alta tecnologia (Zhangjiang). non si limiterà alla ricerca, allo svi-
100.000 metri quadrati, edificata l'esportazione (Jinqiao) e il com- luppo e all'industrializzazione nelle
su un'isola artificiale. Pudong New mercio (Waigaoqiao). Il laboratorio suddette applicazioni, ma anche
della creazione di un supporto alle
aziende che si occupano di loT.
La cooperazione farà pieno uso
delle consistenti risorse di ricerca
scientifica del colosso Zhangjiang,
che verranno orientate anche a
promuovere l'integrazione e la tra- •
'

sformazione digitale delle imprese. '

Shanghai Zhangjiang Group Co.,


Ltd. è una società nata nel 1992
che sviluppa e gestisce insedia-
menti ad alta tecnologia, i quali
comprendono edifici per uffici, edi-
fici residenziali, noriché spazi per
l'istruzione e lo shopping.

www.china.org.cn

--------------------~.,

10
>Il robot in ospedale: Konica Minolta e IIT

cervello elettronico dove opera


un'intelligenza artificiale che fun-
ziona ispirandosi alle modalità
di apprendimento e interazione
• dell'uomo. La collaborazione tra
Konica Minolta e l'Istituto Italiano
di Tecnologia è finalizzata a otti -
;
mizzare l'utilizzo dell'umanoide R1
• in uno scenario reale come quello
• dell'ospedale Casa Sollievo del-
la Sofferenza, grazie all'apporto
• dell'esperienza e delle competen-
ze del Konica Minolta Laboratory
Konica Minolta e l'Istituto Italiano nell'assistenza e nella cura dei pa- Europe nell'intelligenza artificiale e
di Tecnologia di Genova avviano zienti, nonché nella cooperazione nella robotica distribuita.
un progetto di ricerca presso Casa con i medici ospedalieri. Il robot è già in grado di riconosce-
Sollievo della Sofferenza di San L'utilizzo dei robot in campo me- re oggetti e persone, grazie a un
Giovanni Rotondo (Foggia), lo sto- dico non è una novità, perché già sistema di visione e in generale a
rico nosocomio voluto in vita da interessa la chirurgia, la riabilita- una rete di sensori e negli intenti
Padre Pio da Pietrelcina. L'obiettivo zione, la chirurgia radioassistita e degli sperimentatori dovrà inte-
della sperimentazione è sviluppare l'assistenza personale ad anziani e ragire con medici e pazienti, com-
e testare in campo l'utilizzo di robot disabili. Il robot umanoide R1 na- prendendone i comportamenti per
e intelligenza artificiale in supporto sce all'Istituto Italiano di Tecnologia muoversi in autonomia all'interno
al lavoro del personale negli aspe- per operare in ambienti domestici degli ambienti clinici e per ricono-
dal. Nel caso specifico, il robot R1 e professionali. R1 ha un corpo di scere condizioni di necessità.
verrà programmato e istruito per nuova concezione, costituito per
svolgere il compito dei paramedici il 50% da materie plastiche ed un newsroom.konicaminolta.eu

11
è lo strumento più importante -
rio elettronico da cui si esige
ma di tutto la possibilità di regolare
buona risoluzione la tensione e la corrente cv
--
---
----
di uscita, requisiti soddisfatti da questi nuovi •

---
---
- __ ,
alimentatori. Mantengono i valori impostati --- \
in modo affidabile e indipendentemente dalle cc ---
fluttuazioni della tensione di alimentazione o
del carico collegato. -----
------
• -----
ALIMENTATORE LINEARE CON DOPPIA
0J16Q2C ---
----
USCITA REGOLABILE
0·16V G-2A
---

0-30 VDC l 0-5 A


Alimentazione: 230 VAC -50 Hz
Uscita duale regolabile:
- Tensione: da Oa 30 VDC
- Corrente: da Oa 5 A
Uscita fissa: 5 VDC l 3 A 00 ALIMENTATORE SWITCHING
Tensione di ripple: < 1 mV , A SINGOLA USCITA
Dimensioni: 360x265x165 mm Cod. AL1502
REGOLABILE
Peso: 1Okg .
0-15 VDC l 0-2 A
Alimentazione: 230 VAC- 50 Hz
Uscita regolabile:
- Tensione: da Oa 15 VDC
- Corrente: da Oa 2 A
Dimensioni: 240x150x95 mm •
Peso: 3,5 kg

\ •

,
Cod. AL2X3005 Prezzi IVA inclusa.
AMT49105, driver MOSFET BLDC certificato ASIL-8
Allegro MicroSystems Europe annun- caratteristiche esclusive che riducono
cia I'AMT491 05, il suo più recente dri- il consumo energetico complessivo, in
ver MOSFET di alimentazione a canale linea con le attuali richieste in ambito
N conforme . ISO-26262. AMT49105 automotive.
semplifica la progettazione dei sistemi L'AMT49105 è un'eccellente soluzio-
motore e riduce l'ingombro, integrando i ne per applicazion i industriali e au-
requisit i dei sistemi analogici di potenza. tomobilistiche ad alta potenza, quali
Grazie a un robusto gate drive di usci- ventole di raffreddamento del motore,
ta, questo dispositivo può essere uti- I'AMT49105 dispone di ricetrasmet- sistemi frenanti e applicazioni con più
lizzato in una vasta gamma di applica- t itore LIN, alimentazione regolata per pompe in cui l'alimentazione spazia da
zioni, comprese le applicazioni per di microprocessore, monitor di fase per 5,5 V a 50 V.
potenza fino ed oltre ad 1 kW. Inoltre il controllo BLDC senza sensori e altre www.allegromicro.com

A57341, nuovo sensore spettrale Nuovo Cortex-A65AE di ARM


multicanale di AMS per veicoli a guida autonoma
Ams ha lanciato un chip con sen- le accurate misurazioni spettrali Arm introduce l'ultima innova- zione del proprio impegno teso
sore spettrale miniaturizzato che del chip consentono un superio- zione al programma Arm Safety ad accelerare l'implementazione
porta capacità di analisi del colo- re bilanciamento automatico del Ready, un nuovo processare "Au- di veicoli sicuri completamen-
re multicanale a livello di labora- bianco, un'identificazione della tomotive Enhanced" progettato te autonomi, Arm ha lanciato il
torio nei dispositivi portatili. sorgente luminosa più affida- per consentire esperienze di gui- programma Safety Ready e una
Nei prodotti finali come telefo- bile nonché il rilevamento dello da sempre più sicure nei veicoli di gamma dedicata di lP ottimizzati
ni cellulari o accessori, il nuovo sfarfallio integrato. La tecnologia •
nuova generazione. per il settore automobilistico, tra
AS7341 di ams consente misu- riprodurrà in modo più accura- Ottimizzato per il processo a cui il sistema Cortex-A 76AE, in
razioni spettrali più precise in to i colori e ridurrà al minimo la 7 nm, Cortex-A65AE è il primo grado di garantire le prestazioni
una gamma più ampia di condi- distorsione delle sorgenti di luce processare multithreaded di Arm di elaborazione richieste per ap-
zioni di illuminazione, rispetto ai ambientale. con sicurezza integrata per la ge- plicazioni autonome.
sensori concorrenti. Le piccolissi- www.ams.com stione dei dati dei sensori in si- www.arm.com
me dimensioni del nuovo senso- stemi autonomi e nei dispositivi
re significano anche che sarà più con cruscotti digitali ad elevato
facile inserirlo nei telefoni cellu- flusso di dati.
lari e in altri dispositivi portatili. Il Multithreading simultaneo ot-
l vantaggi per il consumatore timizzato per carichi di lavoro ad
deii'A57341 includono presta- elevato throughput offre presta-
zioni migliorate nelle fotocame- zioni della massima efficienza.
re dei telefoni cellulari, poiché All'inizio del 2018, a dimostra-

Modulo biosensore per PPG ed ECG per dispositivi mobili


l progettisti hanno ora un modo (AFE) per fornire un'elevata e a risparmio energetico, inclusi sure è stato anche impegna-
più semplice per fornire misure precisione di misura, offrendo telefoni cellulari, laptop, tablet tivo, in particolare nei casi in
di fotopletismografia (PPG) ed prestazioni PPG ed ECG certi- e altoparlanti intelligenti. cui la sensibilità del sensore

elettrocardiogramma (ECG) per ficabili FDA in design compatti Fornire misure sincronizzate potrebbe essere influenzata
il monitoraggio della salute at- di PPG ed ECG è stato difficile da bassi livelli di perfusione o
traverso un dispositivo mobile perché i progettisti hanno do- pelle secca. Il MAX86150 supe-
alimentato a batteria. Il nuovo vuto utilizzare due biosensori ra queste sfide, campionando
MAX86150 di Maxim lntegra- separati che consumano più contemporaneamente sia PPG
ted è un modulo biosensore, potenza e richiedono più spazio che ECG per fornire la massima
primo nel suo genere, compo-
sto da LED interni, fotorilevato-
J....N ~ - _}

97
rispetto a un classico disposi-
tivo mobile. Inoltre, ottenere
sensibilità del tempo di transito
degli impulsi.
ri e un front-end analogico ECG un'elevata precisione nelle mi- www.maximintegrated.com

13


'

Nuova serie di alimentatori di Rohde & Schwarz NGL200


Grazie alla loro elevata pre- nare sia come sorgente che tori R&S NGL200 di Rohde &
cisione e al veloce tempo di come sink. l brevi tempi di recu- Schwarz si rivolge specifica-
recupero del carico, i nuovi ali- pero consentono loro di gestire mente agli utenti nei settori
mentatori R&S NGL200 sono rapide variazioni di carico che si delle comunicazioni mobili e
perfetti per applicazioni impe- verificano, ad esempio, quando laT. L'R&S NGL201 a canale
gnative in ambito comunica- un dispositivo passa dalla mo- singolo e I'R&S NGL202 a due
zioni mobili e Internet of Things dalità di sospensione alla mo- canali offrono fino a 60 W di
(loT). L'architettura a due qua- dalità di trasmissione. potenza in uscita per canale.
dranti consente loro di funzio- La nuova serie di alimenta- www.rohde-schwarz.com

Manutenzione Predittiva più Nuova serie di array di diodi TVS


semplice grazie alle soluzioni bidirezionali
e-Al applicate ai motori Littelfuse ha presentato il prolungata dell'elettronica
primo di una serie di array di che proteggono.
Renesas Electronics, annuncia il Fallure Detectlon e-Al Solutlon diodi TVS (diodi SPA) bidire- Le applicazioni tipiche degli
for Motor·Equlpped Home Appllancta
lancio della sua soluzione di Rileva- Uslng Reneaaa RX66T Motor Contro! MCU zionali, progettati per pro- array di diodi TVS della serie
zione dei Guasti, basata su tecno- teggere l'elettronica indos- SP1333 includono:
logia e-Al, dedicata alle applicazioni sabile e di consumo di fascia Telefoni cellulari l smartpho-
di controllo motore. Questa nuova alta da danni dovuti a eventi ne, dispositivi medicali por-

soluzione basata sul microcontrol-
lore RX66T a 32 bit rende possibile
• che generano ESD. SP1333-
01 UTG, il primo array di diodi
tatili, dispositivi PMP/MP3,
navigatori portatili, pannelli
la rilevazione predittiva dei guasti TVS della serie SP1333, con di piccole dimensioni, tablet
per applicazioni quali i frigoriferi, i tensione di isolamento da e terminali di punti vendita.
condizionatori, le lavatrici e tutte Questo consente, per prima cosa, 3,3 V, incorpora diodi con www.littelfuse.com
le applicazioni che controllano un di utilizzare un solo microcontrol- configurazione "back-to-
motore grazie alla rilevazione delle lore per la gestione di entrambe back': fabbricati utilizzando
anomalie del motore stesso utiliz- le funzioni e, poi, cosa non meno una tecnologia proprietaria
zando la tecnologia embedded Al importante sia dal punto di vista "silicon avalanche': Questa
(e-Al). Le informazioni caratteristi- dei costi sia dal punto di vista della configurazione "back-to-
che che mostrano lo stato del mo- complessità del sistema, di elimi- back" fornisce protezione
tore (come ad esempio la frequen- nare la necessità di aggiungere della linea dati simmetrica
za di rotazione oppure la corrente costosi sensori. da ESD fino a ±30 kV, assor-
di fase) possono essere utilizzate Il sistema di rilevazione delle ano- bendo in sicurezza ESD ripe-
direttamente per la rilevazione del- malie che utilizzano la soluzione titive senza alcun degrado
le anomalie consentendo di gestire e-Al per il controllo dei motori delle prestazioni. Le basse
sia il controllo del motore sia la rile- (Failure Detection e-Al Solution far tensioni di bloccaggio con-
vazione delle anomalie utilizzando Motor-Equipped Appliances) è già sentono alla serie SP1333
il sistema di rilevazione delle ano- disponibile. di tollerare picchi >5 A, per-
malie basato sulla tecnologia e-Al. www.renesas.com mettendo una operatività

ON Semiconductor annuncia Strata Developer Studio


ON Semiconductor annuncia l'in- ingegneri un modo più rapido strumento di progettazione più
troduzione di Strata Developer e semplice per lavorare con le completo disponibile nel settore.
Studio, una piattaforma di svilup- schede di valutazione e sviluppo, Tutte le nuove schede di valuta-
po basata su cloud, unica nel suo fornendo la documentazione più zione di ON Semiconductor sa-
genere, che fornisce agli ingegne- recente, le informazioni sul pro- ranno in futuro 'Strata-Ready:
ri un ambiente continuo, perso- dotto, le note di progettazione e il che significa che saranno au-
nalizzato e sicuro per valutare e applicazione e i fite di progetta- tomaticamente riconosciute da
progettare con le tecnologie di ON zione di riferimento direttamente Strata Developer Studio quando
Semiconductor. sul desktop. Questa funzionalità collegate al computer host.
La piattaforma Strata fornirà agli impareggiabile rende Strata lo www.onsemi.com

14 •
Il nuovo mi ero a 8 bit STM8L050 di ST VCNL4030X01, nuovo sensore
incrementa le funzionalità luminoso ambientale e di prossimità
STMicroelectronics sta in- . -u Vishay ha presentato un nuovo striali e automobilistiche.
Advanced features on 8 p lns
crementando l'integrazione sensore di prossimità e sen- Questo dispositivo può esse-
di nuove funzionalità nei mi- sore di luminosità ambienta- re usato per realizzare sensori
crocontrollori a 8 bit a basso le completamente integrato, di prossimità per il blocco del
costo, bassa potenza, come con quattro diverse opzioni touchscreen su smartphone
il nuovo STM8L050. L'STMBL di indirizzo dello slave. Con la e tablet al fine di risparmiare
a basso consumo energeti- tecnologia Filtron, il disposi- energia; rilevamento di presen-
co incorpora varie periferi- tivo VCNL4030X01 combina i za per l'attivazione di display in
che analogiche, un controller nali e un timer in tempo reale rilevatori fotografici per luce di notebook, automobili e disposi-
OMA e EEPROM dati separa- a bassa potenza (RTC) con prossimità e ambientale, un IC tivi consumer e industriali.
ta, il tutto in un package S0-8 allarme programmabile e wa- di condizionamento del segna- www.vishay.com
• •
econom1co, con un mass1mo keup periodici, consentendo ai le, un ADC a 16 bit e un IRED
di sei 1/0 utente. Sfruttando progettisti di ridurre al minimo ad alta potenza in un compatto
il potente ed efficiente core i componenti analogici esterni. package da 4 mm per 2,36 mm
STM8 della ST con clock fino Inoltre, il supporto per un clock per O, 75 mm. Il senso re, qualifi-
a 16 MHz, I'STM8L050 offre esterno o interno fino a 16 cato AEC-Q101, è dotato di una
elevate prestazioni per pro- MHz migliora ulteriormente funzione di interruzione e sup-
dotti con risorse limitate come la flessibilità per bilanciare le porta l'interfaccia di comunica-
2
sensori industriali, giocattoli, prestazioni con risparmi sulla zione 1( per dispositivi mobili e
schede di accesso, controller distinta base (BOM). Altre ca- applicazioni domestiche, indu-
di e-bike, domotica o prodotti ratteristiche includono 8Kbyte
di illuminazione, cartucce per di memoria Flash an-chip, •
- stampanti intelligenti, e cari- 1Kbyte di RAM, due timer a 16
cabatterie. Oltre a due com- bit, un timer a 8 bit e interfacce Wolfspeed presenta il
di connettività e debug tra cui
paratori, I'STM8L050 dispone
di un convertitore analogico- SPI, 12C, UART e SWIM. diodo Si C di 5/\ generazione
digitale a 12 bit (AOC) a 4 ca- www.st.com
Wolfspeed, società comple- no praticamente perdite di
tamente controllata da Cree, commutazione - dovute a
• •
ha introdotto la 5" genera- un recupero Inverso quas1
Toshiba Memory presenta i primi zione (C50) di diodi Schottky nullo - e alla caduta di ten-
Si Cda 1700 V ottimizzati per sione diretta più bassa del
dispositivi di memoria UFS Vers. 3.0 applicazioni nel campo delle settore. Ciò genera efficien-
energie rinnovabili della rica- ze e sistemi più elevat i, più
Toshiba Memorv Europe rica di veicoli elettrici, in am- piccoli, più modeni, più velo-
GmbH (TME) ha avviato la bito industriale, inclusi inver- ci e più economici rispetto ai
consegna dei campioni della ter solari e di turbine eoliche, dispositivi bipolari al silicio
versione da 128 GB dei primi caricabatterie e alimentatori (Si). La famiglia di prodotti
dispositivi di memoria Flash di continuità (UPS). CSO combina queste carat-
sul mercato conformi alla ver- Il 1700V C50 è disponibile teristiche con la nuova op-
sione 3 delle specifiche Uni- in commercio sia in formato zione di package TO- 24 7-2,
versai Flash Storage (U FS). dado nudo che in formato che lo rende ideale per am-
La nuova linea di prodotti l nuovi dispositivi integrano package, offrendo ai pro- bienti ad alto inquinamento
utilizza le memorie flash 30 una memoria flash 30 BiCS gettisti un portfolio versatile come caricabatterie e in-
BiCS FLASH a 96 strati all'a- FLASH a 96 strati e un control- che può essere utilizzato in verter solari fuori bordo che
vanguardia dell'azienda ed è lore in un package standard diverse soluzioni. Si affianca richiedono alta potenza ed
disponibile in tre tagli di capa- JEOEC da 11,5 x 13mm. Il con- alla linea att uale di MOSFET elevata tensione.
cità: 128GB, 256GB e 512GB. trollore effettua la correzio- 1700V, forniti in package www.wolfspeedcom
Con prestazioni di lettura/ ne degli errori, il livellamento T0-24 7-4 Plus ottimizzato,
scrittura ad alta velocità e un dell'usura, la traduzione degli che fornisce un isolamen-
basso consumo energetico, indirizzi logici a livello fisico e to elettrico supplementare
i nuovi dispositivi sono ideali la gestione dei blocchi difet- adatto per ambienti ad alto
per applicazioni quali i dispo- tosi, consentendo agli utenti inquinamento.
sitivi mobili, gli smartphone, i di semplificare lo sviluppo dei l nuovi diodi Schottky di
tablet e i sistemi di realtà vir- sistemi. Wolfspeed non presenta-
tuale/aumentata. www.toshiba-memorv.com

15


cod. YM397 cod. SETCONDELE cod. YM403 cod. KITFUSSX30

• • • • • • • • • • • ' ••••• o ••• l ..... o •• • l .... l ••• ........ ...... • • • • • • • o • • • o • • • • • • • • •••••••••••••••

SET 1000 PEZZI DI LED SET CONDENSATORI ElffiROLITICI SET 100 CONDENSATORI KIT FUSIBILI82 PEZZI6X30
3MM -VARI COLORI 12 VALORI POLIESTERE - VARIE CAPACITA ... . VALORI ASSORTITI
..... .................... , ...................... . ., ....................................... , ...... . ........................................... • ........... .... l ............................ .

cod. YM406 cod. YM374 YM398 cod. YM379

l • • • • ••• o ........... l •••• o l • l • ' ••••••••• .. .. . .......... .. .. .... . .................... .. .................. . • l • • .. l • • l • • • • • .. .. • • .... l •••

SET 300 PEZZI LED 3-5 MM SET 50 TRIMMER DI PRECISIONE SET 500 PEZZI LED 5MM SET COMPONENTI ELffiRONICI
VARI COLORI MULTIGIRI· MONTAGGIO VERTICALE VARI COLORI ASSORTITI
.. o • • • • • • • • • • • t .. • • • .. • • • .. .. • • • • • • • • • ............ . • • • • • • l ......................... o • l o ••••• o •••••
·························-·-··· -·-·-·-····· ··· .................... l ···············-···-··· - · · ·

cod. YM377 cod. SETELEC cod. SET241NOU cod. SMDRES3K61OM

' >

. --
• - l

.:. '-
••


. . .. ..
.. ..... ...........
'
...
•• • • • •• •••••• •

··········---·-············ ····-·-······· ..... o ···~·-···-·-· - ·-····· ........... . ................ .. ·········-·······-·-······· ••••• l . . . . . . o .. • • ' • • .. • • ............. . ...... .

SET 300 TRANSISTOR ASSORTITI SET COMPONENTI ELETTRONICI SET INDUTTANZE 24 VALORI SET RESISTENZE SMD 0805
T0-92 VARI CON PIASTRA EALIMENTATORE 10 PEZZI PER VALORE DA 3,6 KOHM A1OMOHM
• • • • l ... . l ••• t ..... t . . . . . . . . . - .... l •• o o o •••••••• t •• o •••••••••••• t ••••••••• t • • .. o • o o • • • l •••••••
••••• o • o •• l • • • • • • • • o • • • • • • ••••• t

cod. SETZENER cod . SMORES03K6 cod. SETCERAMICI cod. SETDIODI


........"... .. ... ..... ••
-
.....
.
"""
"""
~
.:.. \" . ,.
•'''' "' ..... 4& ......... ..
-· ~
n
,,,,., .. " l ••••
'
...._... ..,n
a a
. ... .. .. .. .. .. .... .... . ..... ... .............. .
' • o • • • • • • • • • • • ' • • .. • • • .. • • • • •••••••••••••• o • ' •• ••• l • • •• o • l • • • • • .. • • • • • • • • • • • l ............. t • .. • • o • • ' . . . . . . . o • • • .. • • .. • ••• t . . . . . . . . . . . . . . . o .. l . . ..

SET DIODI ZENER SET RESISTENZE SMD 0805 PSET CONDENSATORI CERAMICI SET DIODI RADDRIZZATORI
10 PEZZI PER VALORE DA OA3,6 KOHM 22 VALORI-lO PEZZI PER VALORE 100 PEZZI
.. t ........... o • o • o •• •••• o • • .. • • o • o • • o ••••••• ol • • • • • • .. • • • • ................ o •• o .............. . • • • • • • • • • • • • o ....................... o .... l .... .
······•••o••t40oto•••••o••············· ·······

cod. SETTRIMMERMO cod. SETMULTIST cod. SETTRI MMERMV cod. SETZOCCOLI

{.
• ............. . •• ,, . . . . . . . . . ,.. ....... o•l•tol•oo •••• • • • • • • • • • • • • • • • • .. • • •••••• o .... - .......... .
···············~··--···············
l • • • • • .. • • • • • • • • • • • • • • • • .. • • • • .. .. •
••••• 00

SET TRIMMER MONTAGGIO SET CONDENSATORI MULTISTRATO SET TRIMMER MONTAGGIO SET 70 PZ ZOCCOLI ALAMELLA
ORIZZONTALE - ASSORTITI VARI VALORI-l OPEZZI PER VALORE VERTICALE - ASSORTITI ASSORTITI
.................... ······· ·················· ·····••o• oooo ··········~········· •·•••·••• ·······o•l••·•• ................................ .
•·o·•····· · . ······· ············· ············-·

Robust RF hnk with up to -100dBm •


• Relrofìt Jegacy pt oduct lo BLE 5
sens•tivity and +6 dBm output power
end concurrency mode
Upgrade logacy 802.15.4 device t o BLE 5 •
• Remotely upgrade device wìth
Update sccurely Radio and stack •
OTA capabllity
firmwaro with bUik:f an RSS
• Brand protectlon v.~th Authenticated
BLE 5 and 802.15.4 protocols
FW upgrade system
- Mesh capable to extend network range •
Lighting Fleet
maintenance • Multipoint BLE 5 conncctionn
Up t o 105 'C radio capable • • Sma form factor design with
Down lo 600 nA mode with • CSP100 pins
RTC and 32KB of RAM • Battery lite lime care
Only SfJS wakeup lime over • 1 with < 50 nA Shutdown mode
16 wakeup lines • Dynamic Efficient 50 pAIMHz
t-'t;HUP, l:: CC, l HN<:i, • • Extend memory storage
PKA. tor best design robustness with Quad-SPI
Reduce BOM cost with • • Handle advanced algorithm
bullt-Jn LCD booster Industriai devices Fitness/ with 1 Mbyte of Flash
Healthcare • Cost optimized product with USB 2.0
Beacon profile available among a huge list • crystal-less device
Emb&dded balun to minimìze design cost •
Only 5.5mA Radio TX current to • • -100 dBm sensitivity to increase
extend beacon life time area coverage
Up to +6 dBm output power • • Customer Key Storage {CKS)
to get best beacon range for trustable Appllcabon update
< 1.8 JJA Stop mode wìth full RAM • • Manage fui. duplex audio
lor battP-ry lifP- nptimv:llinn with embedded SAl
liome securlty • USB FS 2 .0 with Battery Charging
Down to 1.71 full feature capable • Beaconing
and Audio Detection for remote device

17
>25-29 MARZO 2019
DATE 2019
FIRENZE

DATE è il principale evento scien-


tifico focalizzato sulla progettazio-
ne, automazione e test di sistemi
embedded e di microelettronica
per le comunità di ricerca accade-
mica e industriale di tutto il mon-
do. Fornisce un'opportunità di net-
working unica, riunendo designer e
utenti di automazione del design,
ricercatori e venditori, oltre a spe-
cialisti nella progettazione di har-
dware e software, test e produzio-
ne di circuiti e sistemi elettronici.
Il programma prevede due Special
Days che si concentreranno sulle
aree che portano nuove sfide di
progettazione, dalla comunità Em-
beddde che incontra Hyperscale e
HPC, alla Modei-Based Design of
lntelligent Systems; ciascuno degli
Special Days avrà un programma
completo di keynotes, tutorial e
presentazioni tecniche.
Già dal primo giorno di DATE, i prin-
cipali esperti nei rispettivi campi
guideranno approfondite esercita- ...
zioni tecniche con le esercitazioni
pomeridiane di mezza giornata de-
dicate ai ricercatori, sviluppatori di
strumenti e progettisti di sistemi.
Venerdì, i workshop si concentra-
no sulla ricerca emergente spe-
cializzata e sui temi applicativi.
Particolare attenzione e conside-
razione verranno date alle Sessio-
ne Speciali che corrispondono al
programma tecnico di quest'anno
e al focus espositivo su Internet di
cose, intelligenza artificiale, ener-
gia intelligente, sicurezza, auto-
motive, spazio, sanità, robotica e

industria 4.0

www.date-conference.com

...
18

/

>2-5 APRILE 2019


3-4 APRILE
IOTHINGS
MILANO • ITALIA

Dal 2 al 5 aprile 2019 si svolgeranno stry 4.0 connettendosi all'ecosistema di l Internet of Things, Robotics, Wearable
in contemporanea al MINO - Milano pro-Maker o Maker 4.0 sia per esplorare e Wireless - e organizzatore di mani-
lnnovation District le nuove edizioni le nuove potenzialità della manifattu- festazioni fieristiche, eventi, convegni e
di: IOTHINGS, ITALIA5G, EMBEDDE- ra permesse dallo sviluppo del digitale seminari formativi che offrono occasioni
DIOT, IOENERGY, AI+BOTS World e ma anche per trovare talenti e ridurre lo di dibattito, confronto, scambio com-
BLOCKCHAIN Now. Novità 2019 loMO- skill shortage. lnnovability dal 2000 è il merciale e networking tra aziende, isti-
BILITY e MAKER 4.0. Otto eventi riu- punto di riferimento italiano della filiera tuzioni e mercati.
niti per creare INNOVABILITY HUB: un di operatori nel settore delle tecnologie
esclusivo punto di aggiornamento sulle digitali "disruptive"- in particolare M2M www.iothingsmilan.com
tecnologie più "disruptive" e per favorire
la trasformazione digitale delle aziende.
INNOVABILITY HUB è una piattaforma
pronta per ospitare ed includere nella
programmazione anche iniziative realiz-
zate dalle singole aziende, sfruttando la
sinergia con l'evento. È possibile realiz-
zare queste attività non solo durante le
t re giornate dei nostri event i (3-5 aprile)
ma anche nella giornata precedente (2
aprile).
L'area espositiva vedrà la presenza di im-
portanti player internazionali e di azien-
de specializzate che rappresenteranno
la completa filiera loT, nelle component i
hardware, software e servizi integra-
ti. Nell'ambito della manifestazione, il
giorno 5 aprile prende il via Maker 4.0 è
il primo evento dedicato alle aziende che
vogliono fare Open lnnovation su lndu-

NOVEGRO (MI) PARMA PESCARA


ELECTRON IC DAY FIERA ELETTRON ICA FIERA MERCATO DELL'ELET TRONICA
Parco Esposizioni di Novegro (MI) & RADIOAMA TORE Centro Fiere Ibisco -Via Lungofino 187
Organizzazione: Co mis Srl WOPA Temporary Città Sant'Angelo - PE
Telefono: 027562711 Organizzazione: eBoot srl Organizzazione: ARI PESCARA
www.parcoesposizioninovegro.it Telefono: 3776777342 Telefono: 0854215840
radiant@parcoesposizioninovegro.it www.eboot.it- ebootsrl@gmail.com www.aripescara.org- arifiera@aripescara.org
06 e 07 Aprile 2019 06 e 07 Aprile 2019 13 e 14 Aprile 2019

ERBA (CO) VILLA POTENZA (MC) PORDENONE


FIERA ELETTRON ICA ELETTRON ICA+ MERCATIN O RADIOAMA TORE HI-FI CAR
( Lario Fiere - Erba (CO) IN FIERA CAMPIONA RIA Quartiere Espositivo - Pordenone
Organizzazione: Lariofiere Quartiere Fieristico Organizzazione: Pordenone Fiere Spa
Telefono: 031637 414 Organizzazione: eBoot srl Telefono: 0434232111
www.lariofiere.com Telefono: 3776777342 www. fierapordenone.it
erbaelettronica@lariofiere.com www.eboot.it- ebootsrl@gmail.com info@fierapordenone.it
13 e 14 Aprile 2019 13 e 14 Aprile 2019 27 e 28 Aprile 2019

L'elenco aggiornato di tutte le Mostre Mercato del 2019 è disponibile sul sito www.elettronicain.it
sul quale è anche possibile scrivere un commento sulle fiere visitate.
L'elenco completo def più importanti eventi nazionali e internazionali.dielettroni ca, sicur~zza e fonti rinnov(lllili,è disponibile sul nostro sito~
http:i o, w.elettronicain.itlmyMain/Fiere/p_fj~re.asp ·..··.·.•. •.~ . ~. . .·

19 '

t
~
~
~
~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
~
ABBONAMEN TO ~
~
ANNUALE ~

~ on-line
compilando il modulo riportato
nella pagina "Abbonamenti" del
nostro sito www.elettronicain.it.

~mai l
scrivendo a
abbonati@elettronicain.it
.
• Neopaxe1c
on Wifi
T
atewaY per IO
con i dati riportati nel coupon a lato.
• Antennino, un g
di segnali oos

~posta
• Generatore
ornetro sU PC
• spettr

comp'ilando il modulo di .
abbonamento riportato a lato e
inviandolo al seguente indirizzo:
FUTURA GROUP srl
Mese dopo mese realizza i Progetti Via Adige 11
descritti sulla rivista, rimani aggiornato 21013 Gallarate (VA)
con i nostri Corsi, approfondis ci
la conoscenza delle tecniche e dei ~telefono
telefonando a
componenti più avanzati con +39-0331-752668
i nostri Tutorial e le nostre News.
·' desidero abbonarmi per un

·' ''''''''''''''''''''''''''''''''''''''''''''''''''''''
l anno alla rivista Elettronica In.
Riceverò i seguenti omaggi:

0 DISCOUNT CARD Futura Elettronica

UNO, A SCELTA, TRA QUESTI VOLUMI


della collana "L'Elettronica per tutti".

D Fishino - Arduino e l'Internet delle


Cose in un'unica innovativa scheda

• • D RandA - Raspberry Pi + Ardui no

• D
• ARCUINO UNO - Programmazione
avanzata e Librerie di sistema
D Impara l'elettronica sperimentando
D Primi passi in elettronica
D Ardui no e le tecniche
RISPARMIA FINO AL 25% di programmazione
dei microcontrollori ATMEL

SUL PREZZO DI COPERTINA D Raspberry Pi - il mio primo


Linux Embedded
D Alla scoperta di Arduino YUN
~

10% DI SCONTO SUl TUOI ACQUISTI CON n Programmiamo con i PIC


D 1•ABC di Arduino
DISCOUNT CARD FUTURA ELETTRONICA D Stampiamo in 3D

l VOLUME A SCELTA DELLA COLLANA Resto in attesa del primo numero.


.. L.ELETTRONICA PER TUTTI ..
Cognome:
RICEVI LA RIVISTA A CASA TUA
COMODAMENTE E VELOCEMENTE Nome:

-- ----------------·-
Via:

La possibilità
CAP:
di leggere
gratuitamente Città:

la versione digitale
Provincia: Telefono:
di Elettronica In
e-mail:

Data: Firma:

l.
Resto in attesa di vostre disposizioni per il pagamento.
Ai sensi dell'art. 13 del D.Lgs. 196/2003, in tema di protezione dei
dati personali, FUTURA GROUP srl informa che i dati liberamente
forniti attraverso la compilazione del presente modulo saranno
trattati e conservati in conformità a tutte le normativa vigenti. l
dati suddetti saranno trattati su supporto cartaceo e informatico,
mediante sistemi di protezione atti alla tutela della riservatezza, per
finalità connesse all'esecuzione dei rapporti contrattuali instaurati.
Inviare in busta chiusa a:
FutuUa
Group
DIiJ itmi ~
FUTURA GROUP srl
'
Via Adige 11 • 21013 Gallarate (VA)
Tel. +39-0331-752668

l

TELECAMERA lP WiFi MOTORIZZATA con


funzione Smart Tracking Motion 2MPX ONVIF
Vuoi avere sempre tutto sotto controllo anche quando non sei
00
a casa? Niente di più facile! Con la mini telecamera lP a colori
motorizzata dotata di ottica fissa da 3,6 m m, 6 LED l R, con
€5 '
funzione Smart Tracking Moti o n (monitoraggio del movimento)
cod.CP729
puoi fare questo facilmente! Il modulo Wi-Fi integrato
consente di collegare la telecamera in remoto permettendoti
di visualizzare su PC e Smartphone (iOS, Android), quanto
ripreso dal suo obiettivo che può ruotare sia orizzontalmente sia
verticalmente. Grazie al microfono e all'altoparlante integrato
potrai comunicare con chi è vicino alla telecamera. Puoi inoltre
registrare video su PC oppure sulla micro SD card (max 128GB,
acquistabile separata mente). È possibile visualizzare dall'APP
fino a 9 telecamere contemporaneamente .

35SO

€ 54,00
cod.CP728 TELECAMERA lP WiFi MOTORIZZATA
da 2MPX ONVIF
Permette la visione da remoto tramite smartphone con
sistema Android e iOS. Consente di registrare video sulla
memoria dello smartphone tramite apposita APP, oppure
su micro SD Card (max. 128GB, acquistabile separatamente).
Dispone di microfono e di altoparlante che permettono di
parlare e ascoltare da remoto.
Realizziamo
lcuni anni fa l'americana Adafruit
installazioni luminose lndustries ha rivoluzionato il mercato
NeoPixel con dei LED introducendo i propri NeoPixel,
la cui caratteristica principale è di
Fishino e NodeMCU integrare, in un unico package, un LED
controllati via RGB e il rispettivo controller. L'intento di
Adafruit era chiaramente quello di
Wi-Fi da PC o da andare incontro al mondo Ardui no
Raspberry Pi tramite semplificando la gestione dei LED, integrando nello stesso
package sia il controllar che il led RGB. Da allora i NeoPixel si
una libreria Python. sono diffusi ampiamente tra il pubblico anche e soprattutto
perché oltre a integrare il controller possono essere collegati
in cascata e indirizzati individualmente, controllandone
singolarmente il colore e la luminosità. All'interno di ciascun
LED NeoPixel si trova un LED SMD RGB (solitamente un 5050

23 '

~IJIIIIJIIJIIIJIIJIIIJIIIIIIJIIIIIJIIIJiliJJJIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJIIIIIII

::::

: *' ':~ .
;,. : ·.. ··_.·, ' .. _,:,-:'.',·.. :.-- :·,'': : .. ;, .. ::: '·. .. ., .,
• ;i>
• .•. ·,; ••• :. •. • •• • .·· E : . :••
., ;_ . '~: da circa 20 lumen} e un integrato WS2811 o
~List~t~ f . · ·•· :· : ·:.;.. ,
. ..
: •

.. · · · · ·.·• .'· ·. ·... ...- ~' WS2812 che svolge il ruolo di driver. Un microcon-
': '. ··.. ;; -" .. ·. . -.: .

trollore (ad esempio Ardui no) invia un array di byte


con un determinato timing attraverso a tutti i LED
collegati in s.erie e rende possibile la creazione di •

colorate e ·luminose animazioni.


l prodotti NeoPixel sono disponibili in varie forme
... :: '·:::' . ,.

,·: #i~clude·.·.<Fish.irto .: h> .: ··· ..... . ..


· ·.·· ... . e composizioni: LED singoli, strisce, anelli, archi e
.:·· #include -'<SPI.h>· , '" · ~ ..... ;· ... · .·<: ·-~·. '...,.>,
matrici. La grande diffusione di questi LED ha fatto
·--~ #i neiude ·. ~Adaffoìt,..Néopixel:'.H~·· ..... · ,· ·. ·.. · · ···· ·
sì che nascessero molti progetti che ne hanno
· ..;;.·;~:,· ·:·.~EG~~ ~ÈiuP : . <· . • .. ·.....~·- ~ .· . . · . . . ....
. -:..·:

·.. #defihè 'MY SSIIl' c4imì6 ssi d'' ·· ·· · . .• · .· dimostrato la loro versatilità: illuminazione interna
. - . tdef'i~e" ·MY:PASS. cimia: passwora" - .. : · ...\· ...~·.· ·.·: .~ .~·.. : ·: · ·· ed esterna, gadget, vestiti luminosi, LED wall e
; <. '# defihe ·t.EDS,:56'· · · · - ·•· . " · · .•,. ·. · ·::. · .... ,,..

-.:· . lJ#f~.ef.i.h'e l~AQriR ·.. J9Z). ·l6&J ~l:;..~ J9 ' molti altri ancora. In molti progetti, il microcontrol-
. :.·;#def'i:ne·· GATE 1.92l , ·.1·68. 1' ·' '1. . ·.. ·> · ·;
". :. ·T ' .

. '·:.:.·_-
#def'in~ . . SUB• .....
·.' ., ".1.
'·' • ·,. • . •

. ". 255.,1. 255·


.., . ' . "'· .
' 255 0. · ···· ·· ··
.,.. ·... '· ,, • • ' ". :
lore collegato ai NeoPixel contiene delle sequenze
'... ' .. l . . -· ' ' ~. ' - : f .. '~
:::.' -~ ' .' :·. .': '" ._. ..
~~;;.~·.#de'f~~.~ PO:R~ .. ~g42 •· ......, . . _,:· .. :.· •. predefinite di effetti che riproduce ciclicamente
"' ...
#.defl·.ne .. PIN 3 · • · · ·... · . · •.· · :· · • · : '.: : :

.,.>.tl '••· ···•-·:END 'SE'WP. ·.: ·,.~. _·.···.·: ·• oppure è connesso via USB al PC per ricevere co-
- .. ...: 'i>''··: . .l : .k F •
,. ,.
mandi rendendo così difficile l'installazione di que-
~

< :; :·

' Adafrui.:t..;NeoPixel··: strtp " = · Ad~frt.l'ìtJ~eo.eixel(tEDS, •. ~· sti progetti in posti remoti senza dover ricorrere a
· PIN'';, ,.NEO GRB "+ NEO KHZ800)· ·. . . . . . .· ·. · . ..
"'/tu~·d,~~ ~ !~A.PDR.',_.· .: ·....• ;.·' :. . . -·· . ·: . . ·. . ~- ···:.:.······ lunghi cablaggi o all'aggiornamento dello sketch -
, . · lPAddr.e.s s· ip(~PADDR); · ·... .
, . · : . XPAdàr;ess gatewa,y(GATE) ;,·: · ..... . ogni volta che si deve cambiare animazione.
··.,.... ·~· 1PAd.dt!esS··sùJ>net ~sua>; ; ' ::: :,. ,.. ::. '.' .. . .. .

'' #endi-f .; · ·_ ....· .......... ~- ,, ...·. . .,. ,. .. . ,, .


-
IL NOSTRO PROGETTO
- ~ . -
: :.:: .. ;

:.··:'l,~~~~ . un~ig~~~ int. ··Pa.~k~tS·i~e;•-.}~·.. · ··· · · · ,.


. ·Unsigned · iri.t l~rl;,> ·;··.:::·.·>i:·~. · > .• • • · ·... ., ·: .· .·
In questo articolo presentiamo un sistema che
~ ·. i.nt r", g,. tn ··~. . ...... ·..... · .• :>· __.· _·•...... ·.... --·.· . ·····~-- . . permette di controllare svariate installazioni
.. .i . ·- ·, ~ ' : ·. . .: : ..:· .·
. :.:::

void sétup(} {
-

.. ..
.....: .' ',.
. ... ::'

..

.. ..:
NeoPixel sparse per casa tramite WiFi, senza dover
-· . ... .... ~' ·, ...

· ' ·... whl l·e (lFis·nfn(). ..resetCi)'; t ··<·: . ... ;"; ·. . · · :. ogni volta modificare lo sketch caricato sui mi-
delay{500) i : . . . ·· :..•... · · ··. · crocontrollori; collegheremo Fishino Guppy a una
.... l .Fishino. s~tMod!1($T,o\liQr(f!OoE); \.' ·.' · · • .· .·. ••.•. . ·. ·•. : : • stella NeoPixel mentre NodeMCU sarà collegato a
.......••·. ·• whi7le(!Fishi no. begìn{MY...§.~J[},•: MX~~Ass) ) . . t . é • • . • ·..

· ·· .. '.· delayfS0~);; ... ··'- .... -...•. · ·.··. ··: ........ una striscia NeoPixel da 150 LED (tutti e due sono

;_,,' ~ l ·· ·······•·•' •"'''' "' dotati del chip ESP8266 che fornirà la connettività
·· #if.def IPADDR , · · · · · ,,:.~· · · · ·~ ,, ·. · . ·. ··, ... .
. · F.ishino.conf'ig(ip, gateway, subnet); · .,_. ... ...... . WiFi), mentre come controller software utilizze-
-. #' l e · -·_-· - .- ·. ·:. ·. '· ;.'·. · .·.
- _e ·s _, . · · ..,.- .· . . . . . ·.··:·. ·.
:.>:. Fl!>Hin.o . s~as~:a rtOHCP();. ····· · · _ ....... ·.' ··:.:" remo un programma in Python (con una libreria
" ".~~nd~~fl~{Fishino~ statu~·() !~. ~TATIQ~l~or~~P:)·.: ~ · ·.· ... ·, ·. · g
sviluppata appositamente} che potrà essere ese-
':de,i~y (500); ' ·. ·;', '' '", ·:·.... . . ':.\ guito sia su un PC Windows che su Raspberry Pi e
.
·. ' ..
'

.
'!,_'
·. .
.:
'
: .
'
-}_,.
. :·
'
.
. '
. ;," ···:... " " ' .. ' : .,,
. . ..
.
·'
...
·,,
'
: -,.
. ,. '· ; ;. ,,
::. . :·.: ·: ::,'· ·, ', ·, .:_. --!- ' .
. -
.
k . ·... .-.
. ' . . che manderà, tramite la rete WiFi, i vari effetti da
!l.
. .. · ': . .Uap'. o ègio(PORt); ;. :; '.. •• : h ;: • • •.••• !• ,,
~ . .
.. ·-; ; _ _;; . riprodurre a tutti i dispositivi NeoPixel connessi.
·. -.. ~, :
. . . ' ~ ..

. · .·.·•. strt p.begi~(); · ·,.. ... ·: . . ;


Per realizzare il progetto abbiamo bisogno
·. str.ip.sho.wf) ; _. ·•. · ..... ·:"
dei seguenti componenti, reperibili dal sito
:::. ;;

" . . ..
. .. ,, .. - ·_::.: ' -

·..c:: l •.·._, ,,',. . •··


. : ;:-
'::- . www.futurashop.it
.. ' . . .·'i' .
. ,., ..... ;~·'·
.
'

.
.
.
:
:.:j
.;
,:·

c..'· .. :
.
. -

" ::,, :·
• una striscia NeoPixel da 30 LED/ metro da 5
: .,- - . .'' . : ,;. . . '.~ ·.' ,' . : '
.. ,_.. . .
metri (cod. STRIP150LED);

pac e.··5
''i·· ..·.·rr~~ek(etSk~· ~et·_. '.0 Udp ••pal_ · ·.Ers. eS,Pa*·.çke)) p i
0 3 'lZ~.· ::=::;:: . .. · •·. ·. ·. ;i ·· .
.' • . ..\ •.. ·...
··
• una stella NeoPixel con 56 LED (cod. FT1300M);
· · ~·: .· ~cha r packetBuffi!r[.pack.e t Si.zeJ; ... · _ . . . . .. • un alimentatore da 5 volt DC con potenza corret-
. ·.. ·• ·len:· :::; .Udp. r~ad(pàcRetBU.ffet',. . ~pà~ketSi~é); ....
" :· 'ff (len > '·0) { ' : · · ',c,_ · " . . . ••.. · ,; tamente dimensionata (cod. MW05005); --
. . ·· · :pa·c~etBU,ffer[lenJ.. ~ .:0; ··. · ·· • una resistenza da 4 70 ohm;
. '; ... '} ' "'. .. ". .. . ' .. ,. .
.. ' ... ,_ ·.
.· ....
_;.

. · . . .. fpr :( int i·=e; i<LEDS: * 3; 'i~~3) {; . . . • due condensatori da 1.000 IJF, 6 volto superiori;
. •.· r :: .{iO.t)(byte*)(packe~Buffer)[i]; .·· . · · · · ....
. · · · ... g :•= (int)(oyt e*)(packetBuffer)[i+1J,;> :.· ... · • una scheda Fishino Guppy (cod. GUPPY);
.· ,; ·....· ·. · • · b ·· ~ . (int)'(bY'té.*)(packe1:Buffer)Eit;2].;.• · :. · • una scheda NodeMCU (cod. NODEMCUESP);
· ···.··.·stri·p ~'setPl.x~Içb1orCìi3.i .'g ·~ · .:, b);•.··· · · · · r,
' .l . .· .·.. ·. ·. ·. · . • ·. ~- ·. '. · .: ·. '. '.·. ·.:..' . '., . ;, . • un convertitore di livelli logici 3,3 ~ 5 volt (cod .
;_..:
"·c . " ,.......... ' . . ,. ·_ ' . ' '·-; . .
.. ·:. '"
._. .~trìp.show()'; ·
'' } ' .; ... ' ' "- .. LLCTTL);
·Q
• cavi per cablaggio e jumper;
-. ;:
. . .' ..: '. ~ : ..
• una scheda Raspberry Pi 3 con relativa microSD
'
:. : -;. -.;
':: :'
. ·"

•=- '
e alimentatore (cod. RASPKITV7) .

24
l

Quando si lavora con i ~eoPixel è molto impor- giornamento Fi rmware" nella sezione "Documen-
tante dimensionare l'alimentatore perchè bisogna tazione" del sito). Per prepararci a programmare
considerare che un LED di questa tipologia può NodeMCU dobbiamo invece aprire le impostazioni
arrivare ad assorbire 60 milliampere se acceso a deii'IDE tramite il menu "File" e cliccare sull'icona
luce bianca al là massima luminosità: moltiplicando a destra della voce "URL aggiuntive per il Gesto-
questo valore per i 150 LED che troviamo nella re Schede"; si aprirà una finestra dove potremo
striscia di 5 metri otteniamo un assorbimento di incollare la stringa:
ben 9 ampere. http:tfarduino.esp8266.com/stable/package_
Altri due accorgimenti che dobbiamo prendere esp8266com_ indexjson.
quando lavoriamo con questi LED sono sicuramen- Dopo aver fatto questo primo passaggio possiamo
te l'utilizzo del condensatore .e della resistenza: il installare la scheda, cliccando dalla schermata
condensatore va collegato ai cavi di alimentazione principale dell'l DE Strumenti->Scheda->Gestore
rispettando la giusta polarità per livellare l'iniziale schede... si aprirà la finestra "Gestore schede"; nella
picco di tensione generata dall'ali mentatore che casella di ricerca scriviamo "esp8266" e installiamo
andrebbe a danneggiare i LED; la resistenza va l'ultima versione di "esp8266 by ESP8266 Com-
collegata tra il pin del microcontrollore e la linea munity': A questo punto nella sezione Strumenti
dati (pin DI N) della striscia NeoPixel (non serve se -> Scheda, dovremo vedere la scheda NodeMCU
utilizzate la stella perchè è già stata prevista nel 1.0 sotto la sezione "ESP8266 Modules": selezio-
PCB). niamola e cambiamo il parametro "Upload speed"
Solo se utilizzeremo un NodeMCU avremo bisogno in 115.200. L'ultimo passaggio per completare la
di un convertitore di livelli logici, perché questa configurazione del nostro ambiente di sviluppo
scheda utilizza una logica a 3,3 volt, mentre i (necessario per tutte e due le schede) è quello di •
NeoPixel hanno bisogno di essere pilotati con una scaricare la libreria di gestione dei NeoPixel distri-
logica a 5 volt (in realtà si potrebbe mantenere una buita da Adafruit tramite questo link:
logica da 3,3 volt se l'alimentazione dei NeoPixel https:tfgithub.comladafruit!Adafruit_ NeoPixel
fosse compresa tra i 3,3 e i 3,8 volt, ma noi abbia- Scarichiamo lo zip e scompattiamolo nella car-
mo un alimentatore da 5 volt). tella "libraries" di Arduino, poi riavviamo l'l DE per
Per prima cosa scarichiamo l'archivio dei file di importare la nuova libreria; ora siamo pronti per
questo progetto da GitHub (https:tfgithub.coml aprire lo sketch "Neo Py _ Fishino" (selezionando
open-electronics/NeoPv) dove troveremo sia gli come scheda "Arduino Nano" nel menu Strumenti):
sketch per le due schede che i sorgenti in Python modifichiamo i valori MY - SSID e MY - PASS della
della libreria, inclusi alcuni esempi di animazione. nostra rete WiFi e il numero di LED che intendiamo
Prepariamo l'ambiente di sviluppo Arduino lDE connettere alla scheda, lasciamo invece invariato
per poter programmare tutte e due le schede: il valore di PORTe di PIN; per settare un lP statico
per quanto riguarda Fishino dobbiamo scaricare decommentiamo e modifichiamo la riga di IPADDR,
dal sito www.fishino.it le li brerie e verificare che la infine carichiamo lo sketch su Fishino.
versione del firmware sia allineata con la versione Connettiamo ora al PC la scheda NodeMCU e
delle librerie (per i dettagli visitate la pagina "Ag- apriamo lo sketch "N eoPy _ NodeMCU " (sei ezio-

Sorgente Python Occetto NeoPy Sketch Fishlno / NodeMCU

Attesa ricezione pacchetto UOP

Verifica lunghezza pacchetto UOP


l lED= 3 Byte {RJ G, B)
[Se lunghezza pacchetto = 150 x 3}

Settagglo slngolf LED delroggetto ~ Fig. 1


NeoPbcef Adafruit Funzionamento
deiPoggetto NeoPy
Aggiornamento fisico dei lED e degli sketch.
l

J' '
25
' -

!ll ltl l ll l ll l ll ll ll l llllll l ll l l l l~ t l l l l l 1·1 l l l l l l l l l l l l l l l l l l l l l 1°1 l l l l l l l l l l l l l l l l l l l l l l l l

" l

3
4700
~ Fig. 2
Schema dei
collegamenti con
Fishino Guppy e
striscia NeoPixel.

5V
GND Condensatore 6V lOOOuF

nando come scheda "NodeMCU 1.0" nel menu


Strumenti), anche qui modifichiamo solo i valori +SVDC
contenuti nella sezione "SETUP" lasciando invariati
i valori di PORTe PIN; carichiamo poi lo sketch su •
NodeMCU.
Il funzionamento del sistema è rappresentato nello
schema in Fig. 1: tramite la libreria in Python "Ne- validata la lunghezza: infatti un pacchetto corretto -
oPy" creiamo un oggetto che rappresenta la nostra dovrà avere una lunghezza pari al triplo del nu-
installazione NeoPixel, successivamente andiamo mero dei LED specificati, in quanto il colore di ogni
a settare i LED, aggiornando solamente l'array LED sarà rappresentato da un array di tre byte; ad
contenuto nell'oggetto stesso con i metodi "Set()" esempio, per due LED il pacchetto sarà RGBRGB.
o "SetAII()"; con il metodo "Show()" viene pacchet- Successivamente avviene lo spacchettamento
tizzato l'array con le informazioni di tutti i LED e della stringa UDP e il settaggio di ogni LED; infine
inviato in UDP all'endpoint {lP e porta) specificati. viene richiamato il metodo per aggiornare tutti i
Come possiamo vedere nel Listato 1 {sketch per LED con il comando "strip.show()':
Fishino Guppy) e nel Listato 2 {codice per il No- Per sviluppare questo sistema abbiamo scelto il
deMCU) gli sketch sono molto simili: nella funzione protocollo UDP, perché uno dei suoi punti di forza
• "setup" viene inizializzata la connessione alla rete è l'invio e ricezione di pacchetti molto più rapido
WiFi con i parametri precedentemente imposta- rispetto al TCP e la velocità di trasmissione si
ti, successivamente viene creato un server UDP rende necessaria nel caso in cui dovremo ripro-
in ascolto sulla porta specificata. Nella funzione durre effetti con cambi di colore abbastanza rapidi;
"loop" viene ricevuto il pacchetto in UDP e ne viene uno dei punti deboli del protocollo UDP è che la

~ Fig. 3
Schema dei 4700
collegamenti
con NodeMCU
e striscia
03
NeoPixel.

Condensatore 6V lOOOuF ~
3,3V

+5V DC

GND GND
'

VIN 3V3

26
lllllllllllllllllll ll lllllll lllllllll l ll lllllllllllll lll llll llll llll ll l

perdita dei pacchetti non viene gestita soprattutto


in caso di rete lenta o di alte velocità di trasmis- ~ Listato 2
sione. Proprio per questo, per creare i nostri effetti
l*
luminosi dovremo utilizzare dei piccoli delay per Name: NeoPy - NodeMCU
Description: NeoPixels UDP controllar
non fare accavallare i pacchetti in arrivo sul Fishino Author: Luca Bellan
o sul NodeMCU. Version: 1.3
Date: 04-01-2019
Dopo aver programmato le due schede seguiamo
*l
la Fig. 2 per collegare il pin 3 di Fishino alla linea
#include <Adafruit_NeoPixel.h>
dati dello strip NeoPixel (p in IN) mediante dei jum- #include <ESP8266WiFi.h>
per: ricordate di inserire la resistenza da 4 70 Oh m. #include <WiFiUdp.h>
Alimentiamo poi la stella collegandola all'alimenta- Il BEGIN SETUP
tore tramite i pin 5V e GND e Fishino collegandolo #define MY_SSID "mio_ssid"
#define MY_PASS "mia_password"
ai pin 5V e GND. Seguendo invece la Fig. 3 colle- #define LEDS 150
ghiamo il pin D3 del NodeMCU a un canale nella ll#define IPADDR 192, 168, 1, 32
sezione a 3,3 volt del convertitore di livelli, usciamo #define GATE 192, 168, 1, 1
#define SUB 255, 255, 255, 0
poi dallo stesso canale ma dalla sezione a 5 volt #define PORi 4242
#define PIN D3
e colleghiamoci con la resistenza da 4 70 oh m alla Il END SETUP
linea dati della striscia NeoPixel (cavo bianco).
Alimentiamo la parte a bassa tensione del conver- WiFiUDP Udp;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LEDS, PIN,
titore con i pin 3V3 e GND di NodeMCU; tramite i NEO_GRB + NEO_KHZ800);
#ifdef IPADDR
due cavi che arrivano dall'alimentatore andiamo IPAddress ip(IPADDR);
ad alimentare la parte a 5 volt del convertitore, il IPAddress gateway(GATE); •
IPAddress subnet(SUB);
NodeMCU (tramite i pin VIN e GND) e la striscia #endif
NeoPixel.
Alimentiamo ora le due installazioni NeoPixel e ve- long unsigned int packetSize;
unsigned int len;
rifichiamo che siano connesse alla nostra rete WiFi int r, g, b;
(ad esempio accedendo alla pagina di configurazio- void setup() {
ne del router o con il software gratuito Advanced lP
Scanner); scarichiamo l'ultima versione disponibile WiFi.mode(WIFI_STA);
#i fdef IPADDR
di Python 3.x dal sito https:~www.pvthon.org/down­ WiFi.config(ip, gateway, subnet);
loadsl e installiamolo sul nostro PC. #endif
Wifi.begin(MY_SSID, MY_PASS);

LO SVILUPPO IN PYTHON while (WiFi.status() != WL_CONNECTED) {


delay(500);
Per sviluppare il controller WiFi abbiamo scelto }
Udp.begin(PORT);
Python perchè è un linguaggio moderno, flessibile,
intuitivo e semplice da imparare; inoltre è multi- strip.begin();
piattaforma, quindi il codice da noi scritto potrà strip.show();

essere eseguito su Windows, sui sistemi operativi }

Appie e su Linux (nel nostro caso su Raspberry Pi void loop() {


Pi). Sul sito ufficiale possiamo anche trovare una
guida completa a questo linguaggio: https:~docs. packetSize = Udp.parsePacket();
if (packetSize == LEDS * 3) {
pvthon.org/3. 7ltutoriallindex.html . char packetBuffer[packetSize];
Apriamo il programma ID LE appena installato, che len = Udp.read(packetBuffer, packetSize);
if (len > 0) {
sembra un semplice blocco note, ma in realtà ci packetBuffer[len] = 0;
}
permette di scrivere ed eseguire programmi in
for (int i=0; i<LEDS * 3; i+=3) {
Python: salviamo subito il file vuoto nella stessa r = (int)(byte*)(packetBuffer)[i];
cartella in cui si trova neopy.py. g = (int)(byte*)(packetBuffer)[i+1];
b = (int)(byte*){packetBuffer)[i+2];
Tramite la libreria NeoPy abbiamo a disposizione i strip.setPixelColor(il3, r, g, b);
}
seguenti comandi: strip. show();
• oggetto.Set(N, (R, G, B)}. possiamo settare il LED }

numero N (nel nostro esempio da O a 55) }


con il colore formato da R, G, B (ciascuno può
assumere un valore da O a 255); ad esempio per

• '
27
'-
'

-
settare il quinto LED a verde il comando sarà darà errore di compilazione, salviamo e premiamo
oggetto.Set(4, (0, 255, O)); F5 per eseguire il programma: se tutto è stato
1 oggetto.SetAII((R, G, B)} molto simile al comando impostato correttamente vedremo i NeoPixel sulla
precedente, ma in questo caso setti amo tutti i stella animarsi. ..
~

LED sullo stesso colore facendo attenzione alle Possiamo istanziare quanti oggetti vogliamo, ad
doppie parentesi; ad esempio per settare tutti esempio con il seguente programma istanziamo
i LED a blu il comando sarà oggetto.SetA/1((0, O, sia la stella che la striscia NeoPixel per poi colorarle
255)); una di bianco e l'altra di rosso:
1 oggetto.SetBrightness(L} serve a settare a tutti
i LED una percentuale di luminosità L {valore from neopy import NeoPy
compreso tra O e 100), valore di default 80; ad stella= NeoPy(56, "192.168.1.3")
esempio per settare metà della luminosità il striscia= NeoPy(150, ''192.168.1.19'')
comando sarà oggetto.Set8rightness(50); stella.SetA11((255, 255, 255))
1 oggetto.Wheei(V} restituisce un valore di tipo {R, stella. Show()
G, B) in base al parametro V passato {valore striscia.SetA11((255, 0, 0))
compreso tra O e 255 che passa tutti i colori); striscia. Show()
ad esempio per settare tutti i LED a un colore
random il comando sarà oggetto.SetAII(oggetto. Nel repository del progetto scaricato da GitHub r

Wheei(NUMERO_ RANDOM)); possiamo trovare anche i file "examples _star.py" e


1 oggetto.Show(} serve per inviare effettivamente il "examples _strip.py" che contengono alcuni esempi
comando UDP via WiFi e rendere effettive tutte e ci aiuteranno a comprendere meglio i vari script
le modifiche che abbiamo attuato, settando per creare le animazioni.
fisicamente i LED. Spostiamoci ora su Raspberry Pi per provare gli
stessi script Python che abbiamo creato e avviato
Ora che conosciamo i. comandi disponibili, scrivia- sul PC: scarichiamo quindi una nuova immagine di
mo questo piccolo programma: Raspbian dal sito https.·~www.Raspberrv Pipi.orgl
downloads/raspbianl (Raspbian Stretch Lite andrà
from neopy import NeoPy bene siccome non ci occorre l'interfaccia grafica), c
• import time scriviamo la sulla MicroSD con Win32Disklmager,
stella= NeoPy(56, ''192.168.1.3'') inseriamo la MicroSD in Raspberry Pi, alimentiamo
stella.SetBrightness(30) Raspberry Pi e connettiamolo alla stessa rete a cui
for i in range(56): sono connessi i nostri NeoPixel. Con un terminale
stella.Set(i, (255, 0, 0)) SSH {come Putty o MobaXTerm) connettiamoci a
stella. Show() Raspberry Pi (utente "pi': password "Raspberry Pi")
time.sleep(0.5) e spostiamoci nella cartella "pi":

Nella prima riga abbiamo importato la libreria cd /home/pi/


NeoPy, mentre nella seconda riga abbiamo im-

portato la libreria 'ti me" che ci servirà più avanti Installiamo git con il comando (dove richiesto
per temporizzare l'animazione; successivamen- premiamo Y e INVIO):
te abbiamo istanziato un oggetto NeoPy nella
variabile "stella" indicando 56 LED e l'indirizzo lP sudo apt-get install git
192.168.1.3 {la porta di default è la 4242 e deve
essere uguale a quella presente nello sketch). Scarichiamo anche qui i file appartenenti a questo
Abbiamo poi settato la luminosità complessiva al progetto da GitHub ed entriamo nella relativa
30% e abbiamo creato un ciclo far in cui, ad ogni cartella con questi due comandi:
step, la variabile "i" assumerà i valori che vanno
da O a 55; sempre ad ogni step settiamo un LED git clone https://github.com/open-electronics/NeoPy
alla volta sul colore rosso con il metodo "SetO': cd NeoPy/
aggiorniamo poi i LED con "Show{)" e aspettiamo
mezzo secondo grazie all'oggetto "ti me': Facciamo Controlliamo di essere nella stessa cartella del file
attenzione ad allineare i tre comandi dentro al "neopy.py" con il comando fs -1 e creiamo un nuovo
ciclo far con una tabulazione altrimenti Python ci fil e "test. py":

28
l

...
nano test.py • DW: giorno della settimana, valore da O a 6 (dove
O è domenica e 6 è sabato) oppure * significa
Copiamo il codice del piccolo programma scritto "tutti";
,. in precedenza per accendere la stel la un LED alla • COMMAND: il comando da eseguire (ricordiamo-
volta e chiudiamo il file salvandolo con CTRL+X, poi ci di inserire sempre il percorso completo del fi le
Y e INVIO. Python).
Ora proviamo ad eseguire il programma con il
( comando: Spostiamoci in fondo al file e scriviamo questa riga:
••

python3 testpv 0 * * * * python3 /home/pi/NeoPy/test.py

La stella NeoPixel si illuminerà proprio come Abbiamo appena impostato l'esecuzione del
quando abbiamo lanciato lo stesso programma sul nostro test.py al minuto zero, di ogni ora, di ogni
PC; questo serve ad evitare di tenere acceso un PC giorno del mese, di ogni mese, di ogni giorno della
,.
per fare da controller WiFi a tutte le installazioni settimana; salviamo e chiudiamo il file con CTRL+X,
NeoPixel: piuttosto terremo acceso Raspberry Pi poi Y e INVIO, attendiamo quindi lo scoccare della
che è molto più compatto e meno esoso di energia nuova ora per l'avvio dello script e verifichiamo
elettrica. che la stella si accenda proprio come se avessimo
Immaginiamo ora di aver creato diversi programmi lanciato lo script a mano: in questo modo possia-
in Python sul nostro Raspberry Pi; ogni pro- mo programmare l'esecuzione di tutti gli script che
gramma esegue degli effetti diversi sul le nostre vogliamo aggiungendo nuove righe nel crontab.
installazioni NeoPixel e devono essere eseguito in •
. determinati momenti della giornata . CONCLUSIONI
Sarebbe molto scomodo ricordarsi di lanciarli a Con i NeoPixel controllati in WiFi e il sistema delle
mano ogni volta e per questo ci viene in aiuto schedulazioni su Raspberry Pi potremo, ad esem-
crontab; crontab è uno schedu latore presente in pio, piazzare una striscia LED ·in camera e simulare
Raspbian a cui possiamo indicare l'esatto momen- l'alba a una determinata ora per realizzare una
to in cui vogliamo lanciare un programma: al primo sveglia luminosa; oppure potremo creare dei sim-
impatto la sintassi risulterà un po' complicata, ma patici effetti luminosi in giardino dopo il tramonto.
la anal izzeremo nel dettaglio. Inoltre, piazzando i LED in alcune stanze di casa,
Digitiamo il comando: potremo accenderli in maniera temporizzata e ran-
domica per simulare la nostra presenza in casa o,
crontab -e ancora, potremo collegare dei sensori a Raspberry
Pi e comandare l'illuminazione in base alloro
La prima volta ci verrà chiesto quale editor vo- stato. []
.. gliamo usare per editare il file delle schedulazioni
digitiamo il comando:

2 (Nano)

e diamo INVIO; si aprirà così la finestra di editing


per inserire le righe dei task, ogni riga corrisponde Cosa occorre?
,
a un programma che vogliamo eseguire e deve l componenti utilizzati in questo progetto sono disponibili presso
essere composta da sei parametri separati dallo Futura Elettronica. La striscia NeoPixel da 5 metri con 30 LED per
metro (cod. STRIP150LED) è disponibile a Euro 46,00, la stella
spazio: MI H D MO DW COMMAND.
NeoPixel con 56 LED (cod. FT1300M) è in vendita a Euro 35,00,
Vediamo i parametri nel dettaglio: l'alimentatore da SV DC SOW (cod. MWOSOOS) costa Euro 15,00.
• MI: minuti, valore da Oa 59 oppure * significa La board Fishino Guppy (cod. GUPPY) è in vendita a Euro 33,90,
la scheda NodeMCU (cod. NODEMCUESP) è disponibile a Euro
"tutti"·
l
9,50 e il kit per Raspberry Pi 3 modello B+ (cod. RASPKITV7) è
• H: ore, valore da O a 23 oppu re* significa "tutti"; acquistabile a Euro 59,90. l prezzi si intendono IVA compresa.
• D: giorno del mese, valore da 1 a 31 oppure *
significa "tutti"; Il materiale va richiesto a:
• MO: mese, valore da 1 a 12 oppure * significa Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
- "tutti"; Tel : 0331-799775 - http://www.futurashop .it

, •
29
#Fieradei1Eiettronica2019

1000 YOOO
SCAMBI I''I~~KEf~

MERCATINO 1000MAKER 1000RADIO


1000 SCAMBI Progetti di innovazione Spazio dedicato
digitale al mondo radio

F l ERA
1000
NARIA l
di FRANCESCO FICILI

Sistema di sviluppo
modulare che
semplifica le
applicazioni di
connettività e loT:
basato su schede
combinabili come
mattoncini LEGO, internet degli oggetti (o loT, se preferite),
ossia la capacità di determinati oggetti,
su un completo equipaggiati con sensori e attuatori, oltre
framework software e che con interfacce wireless, di connetter-
si alla rete Internet e scambiare dati
permette scalabilità e attraverso di essa, si sta rivelando uno
modularità. dei trend tecnologici più interessanti
degli ultimi anni. l primi esempi di
Prima Puntata. applicazioni commerciali a larga diffusione si stanno iniziando a
vedere nelle nostre case, in particolare nell'ultimo periodo, con
la diffusione degli assistenti vocali di Amazon e Google e
ulteriori esempi si avranno nell'immediato futuro, con
l'introduzione di ulteriori categorie di oggetti connessi.

'
31
'

Diventa quindi interessante nel panorama degli svi- piuttosto complessi, come nel caso di dispositivi
luppatori e dei maker cominciare a interessarsi alla alimentati a batteria o dotati di soluzioni di energy
materia, in modo da essere pronti a sviluppare le harvesting.
proprie applicazioni o ad estendere al mondo dell'loT Ultimo requisito, ma non per importanza, è che
quelle esistenti. Tuttavia sviluppare un·applicazione almeno per le fasi di prototipazione e per le applica-
loT (o quantomeno la parte embedded di essa) può zioni più da "maker': il nostro sistema permetta un
risultare un compito tutt'altro che facile: innanzitut- assemblaggio meccanico robusto ed il più semplice
to bisogna procurarsi un hardware (o un sistema di possibile, minimizzando fili volanti, saldature e
schede elettroniche) adatto allo scopo e a riguardo in generale connessioni poco pulite. In sostanza
va osservato che nell'ambito loT l'hardware può trovare sul mercato un sistema di sviluppo che
essere molto differente a seconda dell 'applicazione, racchiuda in sé tutte queste caratteristiche non è
oltre che in funzione del particolare attuatore o cosa semplice.
sensore necessario al dispositivo connesso. A questa necessità, sempre più crescente, risponde
Oltre a questa problematica di base, il nostro il Mercury System.
hardware dovrà essere dotato di connettività alla
rete specifica che vogliamo utilizzare per la nostra DI COSA SI TRATTA?
applicazione. Anche in questo caso, per quel che Mercury System è essenzialmente un sistema di
riguarda applicazioni loT o di connettività in generale, sviluppo modulare, hardware/software, specifi-
la situazione può variare da applicazione a appli- camente progettato per permettere lo sviluppo di
cazione, a seconda del tipo specifico di network: applicazioni loT e in generale orientate alla connet-
possiamo avere soluzioni WiFi, GSM/GPRS, Zigbee, tività. Il sistema è composto da un set eterogeneo
fino ad arrivare alle tecnologie più recenti come di componenti hardware su schede dedicate, che
LoRa e Sigfox. appartengono alle famiglie descritte qui di seguito.
Naturalmente dovremo anche avere a disposizio- • Base Board (BB): è il "cervello" di tutto il sistema
ne un ambiente di sviluppo SW che ci permetta di e contiene l'unità logica principale (un microcon-
scrivere e compilare il codice embedded del nostro trollore) oltre ai vari bus di comunicazione ed
dispositivo. Sarà inoltre necessario soddisfare i interfacce per connettersi al resto del sistema.
requisiti di alimentazione del nostro oggetto, che Inoltre la BB contiene un semplice sistema di ali-
• nel caso di applicazioni loT posso essere anche mentazione con integrato un sistema di ricarica

l l
l l
l Power l
Power

l l
l 12C
l
l l
l Power
l
~ Fig. 1 l Power
l
Esempio
di connessione
dei vari l l
componenti
HW del sistema
Mercury.
l Expansion Board
l
L.. ...1

32

~ Fig. 2
Alcune schede
del sistema
Mercury.
Servo Ultrasonic

Relay
Neopixel Base Board

WiFi
BT Modem Mode m

HSD Proto Exp. LCD



....._;_~t";- . .. }.. ~:··
~;
..-....---- .. .·.--.....l.../ '
....-
~-- .
. •. .• .•••-
• • •
~ -...-. ..... .,. . ' '

per batterie LiPo, in grado di soddisfare i requisiti quando necessario. An che in questo caso le
di potenza dei sistemi più semplice {tendenzial- schede possono essere diverse, a seconda del
mente fino ad 1A). È inoltre dotata di un bootlo- particolare requisito di potenza o di alimenta-
ader USB, in modo da poter essere facilmente zione {batteria, energy harvesting solare, energy
riprogrammata. Questa scheda può esistere in harvesting piezo, eccetera).
diverse varianti, a seconda del microcontrollore • Expansion Board (EB}: queste schede per-
impiegato. mettono di connettere il sistema planarmente,
• Modem Board (MB}: è la scheda che imple- offrendo una maggiore espandibilità rispetto
menta la connettività verso la rete {o verso un alla classica configurazione "stackable': che è co-
dispositivo esterno, come ad esermpio uno munque sempre possibile. In alcuni casi queste
smartphone). Può esistere in diverse varianti, a schede possono anche contenere delle perife-
seconda dell'interfaccia di network {WiFi, GSM/ riche, come display LCD, battery socket, aree di
GPRS, Bluetooth, ZigBee, LoRa, ecc.). Viene prototipazione eccetera.
interfacciata con la 88 attraverso un'interfaccia • Brain-Less Board (BL}: a questa famiglia
dedicata. appartengono le schede slave controllerless,
• Slave Board (SB}: a questa famiglia apparten- ossia senza intelligenza a bordo. In genere
gono tutte le periferiche di sistema. Si tratta queste schede contengono sensori o attuatori
essenzialmente dei vari sensori ed attuatori molto semplici, che possono essere interfacciati
che possono essere utilizzati per lo sviluppo di direttamente al GPl O della 88, senza necessità
applicazioni con il Mercury System. Esempi tipici di una connessione via bus. Sono pensate per
sono schede dotate di relé, sensori di tempe- applicazioni cost-sensitive, essendo in genere
ratura, servo controller, sensori ad ultrasuoni, meno costose delle equivalenti SB.
ecc. Le SB sono dotate di un microcontrollore
locale, che implementa un set di comandi per la La Fig. 1 mostra un esempio (puramente teorico) di
gestione del sensore o dell'attuatore specifico, in connessione dei vari componenti HW del Mercu-
modo da semplificarne la gestione e consentire ry System, nel quale vengono utilizzate tutte le
una maggiore scalabilità. Si interfacciano alla BB famiglie di schede. La Fig. 2 mostra, invece, alcuni
2
tram ite un collegamento 1C {multidrop) o UART esempi di 88, SB, MB ed EB.
{peer-to-peer), a seconda dei casi. Slave Board e Modem Board sono fornite pre-pro-
• Power Board (PB): è la scheda che permette grammate con un firmware che implementa un set
di soddisfare i requisiti di potenza del sistema, di comandi dedicato che consente una gestione di

'

33
. ~ -- - -·. - - - - - ~ -- - -

di alimentazione con ricarica di una batteria LiPo


(singola cella}, permettendo di soddisfare i requisiti
di alimentazione dei sistemi più semplici, anche nel
caso in cui sia richiesta alimentazione a batteria.
In Fig. 3 è riportato un esempio di Base Board, la
BB 11 O. Nel resto dell'articolo quando parleremo
genericamente di BB ci riferiremo a questo partico-
lare modello; tuttavia, sebbene attualmente questo
sia effettivamente l'unico modello di Base Board in
commercio, ne potranno essere sviluppati altri in
futuro.
La BB contiene due connettori principali, che garan-
tiscono l'interfacciamento con il resto del Mercury
System:
~ Fig. 3 • il connettore Mercury Standard;
Esempio di • il connettore Mercury Modem.
Base Board: più alto livello della scheda, mentre per la program-
88110. mazione delle BB viene fornito un completo Fra- Utilizzando questi due connettori la BB può inter-
mework SW che implementa tutti i servizi di basso facciarsi con Slave Board, Expansion Board, Brain-
livello (sistema operativo, device driver, servizi di Less e Power Board (Mercury Standard Connector}
sistema, ecc.}, in modo da lasciare all'utente solo lo e con le Modem Board (Mercury Modem Connector}.
sviluppo della logica applicativa. La BB è equipaggiata con i seguenti componenti
Analizziamo ora in dettaglio le varie famiglie di principali (Fig. 4}:
schede che compongono il sistema. • un microcontrollore PIC18F46J50, dotato di
Bootloader USB;
LA BASE BOARO (BB) • un circuito di alimentazione con una unità di
La Base Board è il componente principale di una ricarica singola cella LiPo;
applicazione sviluppata con il Mercury System, in • una interfaccia USB Full-speed, con connettore
• quanto contiene la logica dell'applicazione stessa micro USB;
2
e fornisce tutte le interfacce necessarie per la • una memoria EEPROM 1 ( ;
gestione del resto del sistema. Il compito principale • un RTCC interno, alimentato con un oscillatore
della BB è quello di agire come Master del sistema, low-power da 32 kHz;
interfacciando Modem e Slave Boards facendo • tre LED ed un pulsante;
girare la user application. • un connettore Standard Mercury (con I2 C, UART,
Oltre a questo, come indicato anche in precedenza, Ext. lnterrupt pins e fino a 11 GPIO);
la BB contiene al suo interno un semplice circuito • un connettore Modem Mercury;

MCU Main Oscillator

LP Oscillator Modem Connector

~ Fig. 4 Batterv Connector


Componenti User Button
principali della
88110.

Batterv Charger

UserLEDs 12C Eep

Mercury Connector
USB Connector


Voltage Regulator
ON/OFF Switch

34
l
y

••

... ~ Fig. 5
Schema a

blocchi della
88110.
-· •

.. Power

AnO
UART 12C GPIOs
Power /AN x UART GPIOs

Power
..
Power

Power
l


l GPlO

• uno switch di alimentazione principale a slitta. di batterie allitio modello MCP73831, sempre pro-
Nella Fig. 5 è riportato lo schema a blocchi della dotto dalla Microchip. A valle del circuito di ricarica
8811 O, della quale nelle pagine seguenti riportiamo troviamo il regolatore U4, modello MCP1825S, che

lo schema elettrico e il piano di montaggio dei com- fornisce una tensione regolata a 3,3V al resto dei
ponenti. Come si può vedere, il cuore dell'intero si- componenti della scheda. Inoltre, dal momento che
• stema è un microcontrollore PIC18F46JSO, prodotto il PIC18F46JSO non è dotato di EEPROM interna
da Microchip Technology. Il micro si interfaccia ai è stata aggiunta una memoria esterna 12C(U2), in
due connettori Mercury, tram.ite i quali può gestire, particolare una 24LC16 da 16kbit, in modo da
attraverso i bus e le linee digitali presenti, le altre soddisfare anche eventuali requisiti di stoccaggio
schede che compongono il sistema (Modem Board, dati non volatili. Infine la scheda è dotata di alcuni
Slave 8oard, eccetera). elementi di contorno, come i LED LD1, LD2, LD3 (a
Inoltre la 8811 Oè dotata di un collegamento USB disposizione dell'utente), il pulsante SW1 (che oltre
slave, che funge sia da entry point per il bootloader ad essere utilizzato per far entrare il sistema in boot
che garantisce la possibilità di aggiornare il FW, mode, può essere utilizzato anche dall'utente) ed
oltre che da sorgente di alimentazione principale infine i partitori facenti capo agli ingressi analogici
per il sistema (nel caso non si voglia utilizzare I'USB ANO ed AN 1, che permettono di rilevare lo stato

per alimentare il sistema si può alternativamente della sorgente di alimentazione principale e della
utilizzare il connettore CN6). La scheda può anche tensione di batteria.
essere alimentata a batteria, tramite il connettore
CN3 (JST a due terminali, standard molto diffuso per LE MODEM BOARO (MB)
le batterie allitio). Un'eventuale batteria collegata Come abbiamo visto in precedenza, la scheda che
(
viene anche ricaricata dalla sorgente di alimenta- garantisce al Mercury System le caratteristiche di
zione principale tramite l'integrato U3, un caricatore connettività, indispensabili per lo sviluppo di appli-

..
• '
35

'Ili t lllllllllll llll JIli l t Ili t l J1111111 J Ili l fIli l Il J l fil t Il l JIli J Ili l J liJlt-J lt 1J Jl Ili llJ-,JultJ~i lJ 111·1J l LJJilliJJI-J l

MB210 MB310 ~ Fig.~


Esempi di
Modem Board,
MB210 (WiFi) ed
MB310 (Biuetooth) .

cazioni loT, è la Modem Board. zio ne di tipo peer-to-peer è anche disponibile una
Le MB sono interfacciate alla BB tramite una con- linea UART. In Fig. 7 è rappresentato un esempio di
nessione UART dedicata ed altre linee di controllo connessione con quattro Slave Board.
(che possono variare da mode m a modem). Tutte Le Slave Board possono essere suddivise in diverse
queste linee di comunicazione e controllo sono sottofamiglie, in funzione della periferica specifica
inglobate all'interno del Mercury Modem Connector. montata:
Il supporto di tecnologie di connettività emergenti • Sensor SB;
può essere quindi facilmente supportato con l'intro- • Actuator SB;
duzione di nuove Modem Board, quindi un elevanto • Communication SB; •

livello di scalabilità è intrinsecamente garantito. In • lnterface SB,


Fig. 6 sono riportati alcuni esempi di Modem Board. • Special SB.

LE SLAVE BOARO (SB) Nella Tabella 1 sono proposti.alcuni esempi per


Per consentire lo sviluppo delle applicazioni più ciascuna delle sottofamiglie.
disparate, il sistema Mercury mette a disposizione Nella Fig. 8, in Fig. 9 e nella Fig. 10 sono riportati
un vasto set di schede Slaves, ognuna delle quali alcuni esempi di Slave Board.
contiene uno specifico sensore o attuatore (relé,
LE EXPANSION BOARO (EB) ~ Fig. 7
temperatura, servo, ultrasuoni, infrarossi, HSD, ac- Esempio di
celerometro, PIR, ecc.), gestito da un microcontrol- Dato che una applicazione sviluppata con Mercury connession e
lore locale che si interfaccia alla BB tramite un bus. System può essere composta da più schede è stata con quattro SB.
lllayout delle Slave Board è standardizzato, in
modo da semplificare l'interfacciamento con la
Base Board e garantire un elevato livello di modu-
larità e scalabilità. Ogni SB è equipaggiata con una
connessione 12C ed un dip-switch a 4 posizioni, con
il quale è possibile settare dinamicamente l'indi-
rizzo dello slave. Gli indirizzi da Ox01 a OxOF sono Power
disponibili per gli slave, mentre l'indirizzo OxOO è
riservato per le comunicazioni broadcast (generai UART
Power
cali in 12C). In questo modo si possono connettere
fino a 15 dispositivi sul bus, usando l'indirizzamento
dinamico. Inoltre sul connettore Standard Mercury 12C
sono presenti anche due linee digitali in configu-
razione open-collector, collegate a due ingressi di
- external interrupt della Base Board, in modo che gli
slave che ne sono dotati possono utilizzare questa
connessione per effettuare richieste di attenzione
.. INTO
o notificare particolari situazioni in modo completa-
mente asincrono. Infine, per gli slave che richiedono
una maggiore larghezza di banda o una comunica-

'
37
·piano di MONTAGGIO '

Elenco Componenti:

R1, R2, R3, RB, R12: 330 ohm (0603)


R4, R6, R18, R19: 2,2 kohm (0603)
R5, R7, R17, R20: 4,7 kohm (0603)
R13, R14, R15, R16: 4 7 kohm (0603)
R11: 2 kohm (0603) •

R21,R22,R23,R24: Oohm (0603)


C1, C7: 1OnF ceramico (0603)
C2: 1O ~F ceramico (0805)
C3, C6: 22 pF ceramico (0603)
C4, C5, C11, C13, C14: 100 nF ceramico (0603)
CB: 4,7 ~F ceramico (0603)
C9: 1O ~ F 16 VL elettrolitico (0 4mm)
C1 O: 4,7 ~F 6,3 VL ceramico (0805) -- CN2
C12: 1 ~F ceramico (0603) \
o
- o
C15, C16: 33 pF ceramico (0603) o
~

LO 1, LD2, LD3: LED giallo (0603) o


o
LD4: LED verde (0603) .o
o
LD5: LED rosso (0603) O' 1 1 o
..
SW1: Microswitch
SW2: Deviatore a slitta ~
<
.....
U1: PIC18LF46J50T-I/PT o

U2: 24LC16BT-I/SN
U3: MCP73831T-2ACI/OT Varie
U4: MCP1825S-3302E/DB - Strip maschio 8 vie - Connettore 2x1 Ovie passo 2m m
X1: Quarzo 8 MHz - Strip maschio 1Ovie - Connettore micro-USB
X2:Quarzo 32. 768kHz -Connettore JST 2 vie passo 2m m - Circuito stampato S1435

pensata una maniera alternativa per la connes- hanno dei connettori di espansione che permettono
sione, in sostituzione della classica configurazione di interconnettere tra di loro diverse EB e possono
1/stackable" (Arduino-like), che, pur essendo sempre avere caratteristiche aggiuntive, come display LCD
possibile, è sicuramente scomoda se devono essere integrati, battery socket, aree di prototipazione, ecc.
connesse più di 2-3 schede. Questa configurazio- In Fig. 11 e Fig. 12 sono riportati due esempi di

ne alternativa è consentita dalle Expansion Board, Expansion Board: la EB 11 O(Expansion Board dual-
che non sono altro che schede contenenti diversi slot) e la EB21 O(Expansion Board con LCD display).
Standard Mercury Connector sockets, intercon-
nessi tra di loro. Questo consente di connettere le LE POWER BOARO (PB)
schede planarmente, anziché nella configurazione Nonostante le BB siano equipaggiate con un
"stackable': o anche di effettuare connessioni miste semplice circuito di alimentazione, questo può non
con entrambe le tipologie. Inoltre queste schede essere sufficiente a soddisfare molti dei requisiti

Sub-Families Examples
~ Tabella 1
Sèhsor 585 · ~· ;.
~ ltrasuon i, Infrarossi, Temperatura&Umidità, PIR', Gas
Sottofamiglie
di Slave Board.
,.,. -·
Sensor, Qualità dell'aria,-Analog lhput, Accelerom.etro.

Actuator SBs Relay, High-Side Driver, Low-Side Driver, Servo, DC Motor, •

Stepper Motor, Neopixel.


:·::

- . ·; ::.

Communitation SBs RS23Zr HS485, CAN,tiN, Ethernet. . •

lnterface SBs OLED Display, Keypad, Mini-Joystick.


".··

. . Special SBs : · SO ç?rd, MP3 Decader. . •

38

,
t
' 1 t 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 t 1 1 1 r • 1 1 1 1 1 1 1 1 1 1 1 1 1 1 t 1 1 1 1 1 ' 1 1
t

UserLED
~ Fig. 8 - SB110, Relay Slave Board.
~ Programmer
Connector
• di alimentazione che possono essere richiesti Relays
·"""'

da molte applièazioni. Per questo motivo è stata ~


MCU
introdotta una ulteriore famiglia di schede: le Power
Board (PB}. Address
Queste schede permetto al sistema di avere per i Di p Switch
requisiti di alimentazione e potenza, la stessa scala-
bilità che il sistema ha per Slave e Modem Board.
Alcuni esempi di Slave Board sono:
• Power Board per correnti fino a 5A,
• Power Board per correnti fino a 1OA,
Outputs Mercury
• Power Board con Harvesting Solare,
Connectors Connector
• Power Board con Harvesting Piezo.

LE BRAIN-LESS BOARO (BL}


Le Brain-Less sono la forma più semplice di scheda
Slave del sistema. Essenzialmente si tratta di Slave
Servo
Board senza microcontrollore locale (Brain-Less).
Queste schede sono pensate per le applicazioni più
semplici e cost-sensitive, dove sono utilizzati pochi MCU
e semplici attuatori o sensori. External

Alcuni esempi di Brain-Less sono: Power
User LED
1 Brain-Less Relé, Connector
1 Brain-Less Prato, Programmer
1 Brain-Less Digitallnput. -
Connector
Power Source
Selection
IL MERCURY SYSTEM FRAMEWORK Jumper
Come già accennato in precedenza, il sistema
Mercury non è solo un sistema di sviluppo HW, ma Address
integra anche un Framework di sviluppo per sempli- Mercury Di p Switch
ficare anche lo sviluppo lato SW. Connector '"

Tale framework prende il nome di Mercury System . --


=

,.--- Meas. LED ~ Fig. 9


Mercury Connector ----". Sensor Connector 58130, 6-ch
Servo Slave
Ultrasonic -----.. Board.
Sensor ~ MCU

'

UserLED
~ Fig. 10
Address Programmer SB310,
Ultrasonic
Di p Switch Connector
Slave Board.

39
'

8uses -----~ Com m.


Expansions -------,. .,---- Connector

Mercury
Connector #1 ---

,___ Mercury
Connector 1*2

~ Fig. 11 _ 88 Program&Debug ~

EB 11 O, Expansion Connector
Board dual-slot.

Framework o, in breve, MSF. tutti i driver per la gestione delle periferiche di


2
Il Mercury System Framework è un completo base del micro, come 1 ( , UART, Timer, lnterrupt,
framework SW specificamente progettato per sem- GPIO, ecc. Il suo compito è quello di presentare
plificare lo sviluppo di applicazioni con il Mercury ai livelli superiori una gestione semplificata di
System. queste periferiche.
L'MSF fornisce all'utente un set completo di funzio - - SML (System Management Layer): questo è lo
nalità per interfacciare in maniera semplice le 58 e strato di gestione dei servizi di comunicazione e
le MB, oltre ad alcune funzionalità infrastrutturali di di sistema. A questo livello sono implementate
base e servizi di sistema. In Fig. 13 è rappresentata le API di gestione dei modems, della comuni-
2
l'architettura SW deii'MSF. cazione con le slave board (1 C e UART) e della
• Il Framework è costituito dai seguenti layer: comunicazione USB. Inoltre sono implementati
- HAL (Hardware Abstraction Layer): questo è alcuni manager di servizi di sistema come I'RTCC,
lo strato di astrazione dell'hardware e contiene il Power Management, il terminale, ecc.

MCU ";
Address •

Contrast Reg. Dì p Switch


Mercury
Display
Connector#1

Buses --~
Expansions --~

EB Programmer
Connector
Mercury _______, c" " ' - - - - - - -BB Program&Debug
Fig. 12 Connector #2
EB210, Connector
Expansion Board
Alphanumeric
,..,.
LCD 16x2. •

40

~ f~t~rl fIl t 1111.l l Ili l l li i l t 111111 ClJ [ltJ JIl t 1l t t JIli l t l l l*l-11111 J llllll tJJ-111111 t l l Il JIl f~J==L~tJ;~III J,llll JIl l l 111111 ~

~ Fig. 13
Architettura
SW del Mercury
System
Framework.
l
l~~
l co~
l~
l~
l~
-

l l
11 l~~
~ Fig. 14
MSF e user ~l l~ro
~
l~
application.
~l
l~
::J

~l
~l l~

Questo livello è a suddiviso in due componenti framework per la gestione della comunicazione, dei
principali: servizi di sistema, ecc. L'utente deve unicamente
• PML: Peripheral Management Layer, preoccuparsi dell'applicazione loT da sviluppare.
• SSL: System Services Layer.
- OSL (Operative System Layer): questo livello INSTALLAZIONE DEL FRAMEWORK
implementa un lightweight RTOS che fornisce L'MSF può essere scaricato dallink http:lfbitlyl
alcuni servizi infrastrutturali di base come tabelle MercurySF oppure dalla pagina web della BB 11 O
di schedulazione per i task, eventi, SW Timer, https:/ www.futurashop.it/BaseBoardBB 11 OMercury.
alarm e via di seguito. Nella sezione Documentazione e link utili di tale
pagina cliccate su Framework Mercury ed avviate il
Utilizzando I'MSF è possibile sviluppare le appli- download.
cazioni in maniera molto semplificata, potendo Una volta scaricato il pacchetto ed avviata l'instal-
sfruttare tutte le API messe a disposizione dal lazione vedrete comparire la schermata di welcome,

41
'

[81111:1111)] TI = JDJIIIUWWDDIIIIfDJIIHUID-IIHIIDI.IDIIIIIIDHRUDlUIIII~

Tool Version Download page


~ Tabella 2
Tool Microchip i_-;_~.-·_' ._: P.~-~.- ·E.· :·_,a: ;~ '~-~.:_:·~-P.:...;_._~.·-'·· .;_:•:;;i)i~-~;·~- i.·. ~·.c;· :·.\.:_ ~.'-~:.;\i.i.~;·•: ~- ~ \i;\::,_ ;,_:_;_;:_.~..'.•.~.•.·;_:.. ;, ,,~-- 10 ' ;? ,, .~~é;)~\A;~~~~~;;ci6;~;~;;;~~j qtii~;l~ti':;:i~e~" ,,~ 'H :' ·,~-
:_..
·-. -.
__ .•.
. - -- - - - ~· ' .
·_J. .
. ·
.. .
-· -- - --'
i_
·- --
;_'i
·· - - - • -· .. · ~ - ••· ;:. :::·•;;;m; ::•-·:: .••, ·;; ''· .:;,.:. ..::;,.:::::; .•,,..,. ··: ,•• - "' -. .... _, ,... -;;,":: ;::·-:: ,,,.... •:.:_ "· ·• ~ " ••· ·• ·-· ··· ,;,,,;;. ::il;:.: :i:l!W !l!!''' '"·······:__"--·· - ·:;);:::. -;;,';:~::· ;;• ·::_:.;:. •·- ·• - •··· " ·-·l'-''"" .:_· ,., ·· · ··· .::~o·;;)-,-;.~C:::·oii•.::;.::;.;, ;H "
·,,, ·, ,. ..
·. ·• ;;;,::;.,;;, ;;, ·;;,::u.!é·;:· "' :·· ·• .,_,.; ·.;,.,,,

necessari
per l'utilizzo XC8 Compiler 1.45 https:l www.microchip.com/development-tools/pic-and-dspic-
deii'MSF. downloads-archive

~ 1\iercurySystern Setup gliere di creare un'icona sul desktop e sullo "Start''


Seled .ApplicaHon Folder menu. Confermate entrambe le scelte se lo deside-
Please choose the diredOTy for the installation. rate e premete nuovamente su "Next" per avviare
l'effettiva installazione del framework.
Se tutto va a buon fine dopo qualche istante vedre-
~ Setup will install Mercl.llySystem in the folder shown below. r· te la schermata che vi comunica il completamento
delle operazioni di installazione.
To ·continue. dick Next. tf you would lìke to select a dìfferent folder. click Browse.
Facciamo notare che per poter utilizzare il Fra-

mework Mercury occorrono alcuni tool di sviluppo
Oestination Folder aggiuntivi, che dovrete scaricare ed installare, in
quanto I'MSF si appoggia sulla toolchain di sviluppo
~_A_des_·_.tx_8_6)_~_
· _ry_ .aro~~ ..~-]
l
L-j
c _:\_Pro_gram_
. _. Syst
_ em_,_ _ __ _ _ ____,) [ •
Microchip, ed in particolare sull'lDE MPLab X e sui '
compilatori della famiglia XC. La versione attuale
deii'MSF fa uso dei tools (e relative versioni) riporta-
Required free space: 49.4 :MB te nella Tabella 2.
Availab1efree ·space: 18.2GB Per l'installazione dei tool sopra citati vi rimandia-
mo alle rispettive sezioni sul sito della Microchip.
f ' <;.-~
i . ~ .-] l Ne«> 'j i' . ~~
.•
' ··: - A ·."'Al Sottolineiamo soltanto che è importante risp·ettare l
. le versioni indicate, in quanto sebbene il framework
possa funzionare anche con versioni più o meno re-
nella quale cliccherete sul pulsante Next per pro- centi, non è stato tuttavia adeguatamente testata,
e-! Fig. 15
Selezione seguire, accedendo così alla successiva finestra di se non con le versioni indicate.

del path di dialogo, che è quella del Wizard (Fig. 15). In questa
installazione. avrete la possibilità di selezionare il path di instal- CONCLUSIONI
lazione; a riguardo considerate che, sebbene sia In questa prima puntata abbiamo introdotto il
possibile scegliere qualsiasi path, noi suggeriamo di Mercury System ed tllustrato le sue varie compo-
~ Fig. 16 mantenere quello predefinito. Una volta effettuata nenti HW/SW, analizzando anche il Framework di
Creazione la vostra scelta cliccate nuovamente sul pulsante sviluppo SW. Nella prossima puntata entreremo nel
delle icone sul Next per proseguire. dettaglio dello sviluppo di applicazioni con questo
desktop.
Nella schermata successiva (Fig. 16) potrete sce- innovativo sistema e vedremo i primi, semplici,
esempi. D

~ MercurySystem Se.tup x

Which addiliona1 tasks should be pelfonned?

Seled the additional tasks you would Jike setup to perfonn while instaDing La base board per il sistema Mercury {cod. 88110) è in vendita
MerourySystem. then click Next. presso Futura Elettronica al prezzo di € 23,00.
Tutte le altre board sono disponibili an-indirizzo
http://bit.ly/SistemaMercurv
Additional icons:
Il prezzo si intende IVA compresa.
0 Create desktop roon
0 Create start menu fokier
Il materiale va richiesto a: ·

[ ::~. ~ "J ~.:~' ~}


0

'---l
c N
_ .e x t >__,l [ :
Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel : 0331-799775 - http://www.futurashop.it

42
40ctn
. . . •.•. • ••••.
•••
. ,,

•• verslo~'::::
:
cod. inclusa. •
IVA
•e 1.299,00 • •
•••• ••••••

montata
Versio~~RAG/M
cod. IVA inclusa.
e 699,oo

Cod. 3DRAG/K

ambiamenti nella società e nel modo di vivere


modificano ed estinguono usanze e costumi a
volte secolari, molti dei quali coinvolgono la
famiglia: se nelle civi ltà rurali e nei piccoli paesi
è ancora consuetudine trovare più generazioni
nello stesso fabbricato, nelle grandi città le
famiglie sono sparpagliate ed è frequente
trovare anziani che vivono da soli, per scelta o
per necessità. Se è vero che nella nostra tecnologicissima società
non sono affatto abbandonati, esistendo telefoni e soprattutto
cellulari, da tenere vicino se occorre aiuto, è altrettanto certo che
si può migliorare qualcosa nel modo di trasmettere all'esterno
eventuali necessità incombenti; infatti il telefono o il cellulare
presumono che per telefonare, ad esempio, a vicini e parenti,
ovvero al soccorso medico o alle Forze dell'Ordine, si debba
comporre una serie di tasti e leggere il display (negli smartphone
occorre addirittura navigare tra icone e menu, il che non è così
immediato), mentre poter disporre di qualcosa che in caso di
bisogno si attivi con un comando essenziale sarebbe l'ideale.
Il telesoccorso descritto in queste pagine va proprio in questa
direzione, perché consente, semplicemente premendo il pulsante
di un piccol issimo trasmettitore da portare al collo con una colla-
nina o !accetto (cordicella) di quelli per i passo i badge aziendali, di
attivare un modulo GSM in grado di inviare chiamate ed SMS con
la richiesta di soccorso a una lista di numeri telefonici preventiva-
mente memorizzati; il tutto, praticamente all'istante. Il progetto
nasce come salvavita per anziani e persone fragili o ammalati

'
45
schema ELETTRICO
'
'

+VB +SV
USB 01
SV L1
1
4 1
RS VIN sw
SWlo.
5 GNO SWlb Cl 6
VIN VOUT
5
3
3
U2 5
EN U3 es
L03 PRG 4
1 FB
STA +
GND GND
R6 BATl ClO es
, , ,
Rl 7,28 C2 + C3 + C4 17 19 Cl
vcc VCC
14
c
RB4 L04
19
ANO GSM
R2 R4 + es C&
40 3
LED
41 8
RI
1 12
• TX
44 14
RX
' ICSP 43 1
DN/OrF
18 38 6
MCLR RST
PGO 17
PGD GND
PGC l&
PGC
2~ w
Pl 11 +VB
RB3
(,~0

3 RlO 4 Ul
LO l R16 RlS R14 R13 15
RDG
VCC 3
ANT
L02 5 32 10
RD7 CHl U&
2& 11 9 y P2
CH2 PRG
27 12
• CH3
30 13 14 LOS
02 CH4 LED
10 GND
RB2
IN l 20
21
25
03 +VB
9 04
RBl
IN2 3(, +VB
RC2 1,2 1,& \

"'
24
RAS vcc vcc
R12 42 5 3
BUZl SDA ZD
37 4
SCL U4 YD us
22 8 7 5
R17 VREF+ INT2 XD
2 8
INTl
GND GND GND
OZl 3,&

allettati e può essere personalizzato per adattarlo connessione in caso di emergenza, oltre che da
ad altri impieghi similari. un minitrasmettitore leggerissimo che la persona
Il sistema è composto da un'unità basata su che potrebbe necessitare d'aiuto deve portare
modulo GSM quad-band (850, 900, 1.800 an d addosso. L: ampia copertura del sistema TX-RX
1.900 MHz) quindi capace di agganciare tutte le radio operante a 433 MHz consente di rendere
ret i disponibili, a tutto vantaggio di una celere sicura la t rasmissione della richiesta d'allarme

46
CARATTERISTICHE
dal minitrasmettitore alla base anche in grandi ricevitore radio e il modulo GSM, oltre che la me- TECNICHE
appartamenti, nelle ville e persino dal giardino o da moria esterna; il suo compito è facilitato dal fatto
un piano all'altro. che, riguardo alla gestione del comando radio, non
~ Frequenza di ricezione radio:
deve occuparsi della decodifica in quanto U6 non 433.92 MHz
IL SISTEMA · è un semplice ricevitore radio, ma qualcosa di più
Fatta questa premessa, diamo dunque uno completo, giacché integra la decodifica. Infatti I'RX-
sguardo al nostro telesoccorso, analizzandone il 4MHCS è un ricevitore RF in AMa 433,92MHz ad ~ Invio di SMS
di allarme
circuito con la premessa che descriveremo l'unità elevata sensibilità e selettività, con decodifica HCS
base ma non quella portatile, giacché quest'ultima integrata, capace di decifrare l'algoritmo rolling-
è un minitrasmettitore 811 0-HCS-TX-1 venduto code Keeloq della Microchip, il quale prevede ~ Effettuazione di telefonate
già pronto e collaudato dalla Futura Elettronica stringhe di trasmissione contenenti un codice base di allarme
(www.futuroshop.it ); di questo ci limitiamo a spie- fisso e un codice variabile a 32 bit. Quindi questo
gare che si basa su un encoder HCS300 rolling- ibrido sintonizza il segnale inviato dai trasmettitori
code, ossia capace di generare un codice differente compatibili (Aurei HCS-TX-1 /2/3 OVO, TX1 / 2/ 3- ~ Numeri di telefono abbinabili.
ad ogni trasmissione, così da garantire la massima HCS-433 HCS, TX-2/4/6 M-HCS, TX- 12 CH) e 8

sicurezza ed esclusività del comando. Il codice provvede a confrontarne il codice contenuto con
generato viene poi utilizzato per modulare in AM quello o quelli memorizzati (nella propria EEPROM
~ Tensione di alimentazione:
OOK un minitrasmettitore UHF sintonizzato su i interna, dove vengono scritte le sole parti fisse del
sv
433 MHz, che irradia il segnale nell'ambiente. codice di ogni TX) durante l'autoapprendimento:
L'unità base è in grado di ricon oscere e prevedere se tra i codici in memoria c'è quello trasmesso, il
i codici trasmessi dal minitrasmettitore (o da più modulo attiva una delle sue quattro uscite (CH 1, ~ Corrente assorbita:
minitrasmettitori) perché implementa l'algoritmo CH2, CH3, CH4) nella modalità impostata tramite max1 A
di decodifica HCS300 e l'unica condizione impo- l'apposito piedino, altrimenti nulla accade e il mo-
sta per sincronizzarsi è l'esecuzione dell'apposita dulo si predispone a una nuova ricezione.
procedura, che prende il via con la pressione del Le uscite sono open-collector e in numero di quat-
pulsante a bordo del circuito; spiegheremo questo tro perché l'ibrido può essere .gestito da minitra-
tra breve. smettitori ad 1, 2 o 4 canali; ogni canale è attivo. a
Vediamo dunque di cosa si tratta, analizzando livello basso (transistor in saturazione) e a riposo a
lo schema elettrico del circuito, la cui gestione livello alto (transistor interdetto).
è stata affidata a un microcontrollore Microchip Trattandosi di un decader rolling-code, è previsto
PIC1 8F46K20-I/PT; la scheda è modulare e come un sistema di salvaguardia nel caso di pressioni a
mostra lo schema elettrico, si presta alla realizza- vuoto dei pulsanti, ovvero di trasmissioni fuori por-
zione di più applicazioni, tant'è che l'abbiamo già tata; l'utilità si spiega considerando che una volta
utilizzata nel fascicolo n o 223 per il progetto "Save appreso un trasmettitore, il decader si sincronizza
my child" seppure equi paggiata con una differente con il suo encoder e applicando l'algoritmo Keeloq,
dotazione hardware. Qui, infatti, manca l'accele- grazie a un contatore interno sa, ad ogni trasmis-
rometro (quindi non montiamo quello che nello sione, che codice aspettarsi; però se una o più
schema elettrico è siglato U5 e neppure I'U4) ma trasmissioni van no a vuoto, il decader potrebbe
abbiamo in più il ricevitore radio ibrido e un pulsan- non riuscire più a identificare il minitrasmettitore,
te ad esso dedicato. che pure risulta appreso perché il suo codice base
Il microcontrollore è programmato affinché legga è stato scritto nella memoria. Per limitare questa
lo stato logico delle linee di uscita del modulo ra- possibilità, il decader ammette uno scostamento,
dioricevente (ibrido Aurei RX-4MHCS) allo scopo di vale a dire riconosce come valida una trasmissione
ril evare l'arrivo di un codice di richiesta di soccorso, purché contemplata nelle 64 possibili combina-
il pulsante di avvio della procedura di autoappren- zioni che succedono all'ultima ricevuta, secondo
dimento e sincronizzazione del trasmettitore da l'algoritmo Keeloq; nel caso il codice ricevuto rientri
abbinare all'unità base, ma anche per gestire il in questo margine, al suo riconoscimento il deca-
modulo cellulare (GSM). der HCS si rimette in passo, cioè azzera il proprio
Notate che il circuito prevede elementi che pos- contatore e da quel momento ripristina anche la
sono essere montati o meno, proprio perché lo "finestra di tolleranza" di 64 trasmissioni a vuoto.
abbiamo concepito come piattaforma di sviluppo Se invece viene superato questo limite, il minitra-
espandibile. smettitore non verrà più riconosciuto e occorrerà
Qui, il microcontrollore deve limitarsi a gestire il apprenderlo nuovamente.

'
47
Il modulo radioriceven-
te utilizzato in questo
progetto è I'RX-4MHCS viene utilizzato come semplice ingresso attivo a
della Aurei, che integra un zero logico, ovvero collegato a massa ad esempio
ricevitore sintonizzato sui mediante interruttori.
433,92 M Hz cui segue un La variazione dello stato dell'ingresso IN2 genera
demodulatore d'ampiez- portano come la trasmissione di SMS o l'esecuzione di telefonate,
za on/off e un decader le uscite di un decader bi- come farebbe un qualsiasi telecontrollo GSM e può
HCS300 della Microchip imple- nario a quattro bit; è stata creata essere impiegato, ad esempio, per rilevare l'aper-
mentato integrando l'algoritmo per l'abbinamento ai trasmettitori tura della porta di casa o di una finestra o avvertire
Keeloq in un microcontrollore. a 12 canali dell'Aurei. se una persona su una sedia a rotelle cade: in que-
Quest'ultimo decifra i codici ri- La piedinatura dei moduli è sto caso specifico si può applicare sotto la seduta
cevuti, memorizza quelli richiesti comunque la stessa, anche se una piastra a pulsanti come quella del progetto del
nella fase dì autoappren~imento cambia il signi,ficato dellé uscite: Save my chi ld, che avverte quando la persona non
e dispone di quattro linee di 1/0 2) GND è più presente.
con le quali gestisce altrettanti 3) Antenna IN2 può anche essere collegato all'uscita di un
transistor NPN in configurazione 7) GND sensore P.l. R. per rilevare se la persona si muove,
open-collector, secondo lo sche- B) Test Point ovvero a un interruttore reed applicato alla porta
ma visibile nel riquadro di Fig. A. Uscita analogica RX di casa; quest'ultima situazione è molto utile per
Esistono due versioni di questo 9) Pulsante di programmazione monitorare persone affette dal Morbo di Alzheimer,
modulo: in quella da noi impie- connesso a massa che se escono di casa senza essere accompagnate
gata il microcontrollore assegna 1O) Uscita bit di peso O possono smarrirsi, ma anche persone con proble-
a ciascuna delle uscite uno dei Uscita CH1 mi psichici che necessitano di un controllo da parte
canali di un trasmettitore HCS 11) Uscita bit di peso 2 di parenti o personale sanitario.
quadricanale, fermo restando che Uscita CH2 Tornando al microcontrollore, vediamo che un altro
se si apprende un TX monoca- 12) Uscita bit di peso 4 pin inizializzato come input è RB3, sempre dotato
nale si attiva la sola uscita CH 1 Uscita CH3 di pull-up interno, che serve a leggere il pulsante
(piedino 1O) e se si apprende un 13) Uscita bit di peso 8 P1 (utilizzato per forzare l'accensione del modulo
bicanale si conta solo su CH1 e Uscita CH4 cellulare, che normalmente è spento). •

CH2 (piedini 10 e 11). 14) Uscita LED - Connesso Sempre all'inizializzazione degli 1/ 0, RB4 è impo-
L'altra versione del modulo è la RX all'anodo del LED, catodo a stato come ingresso per leggere, tramite il parti-
4MHCS-4B e in questa i quattro massa tore resistivo R1 ed R2, l'accensione del circuito ad
1/0 del microcontrollore si com- 15) Vcc (+SVolt) opera del doppio deviatore SW 1b; il partito re serve •

Fig. A perché il microcontrollore tollera una tensione mi-


nore di quella d'ingresso presente sul connettore
di alimentazione. La funzione deii'RB4 è riservata
+Vcc ...
RX-4M HCS a futuri sviluppi e si spiega considerando che il cir-
2 J 7 a Il IO Il 12 13 " 1~
l~' cuito può funzionare sia alimentato da un alimen-
tatore di rete mediante la presa USB, sia mediante
la batteria al litio collegata all 'uscita dell'apposito
-- .•.
'
regolatore di carica .
Stadio di uscita open collector 1 carico esterno Quando SW1 è spostato sui contatti "crocettati"
nello schema elettrico, il resto del circuito è isolato
dalla batteria, quindi spento; se all'ingresso di
alimentazione (USB) è applicata la tensione di 5
volt funziona solamente lo stadio caricabatteria
Ciò detto andiamo al funzionamento dell'i nsieme, (alimentato tramite il diodo D1, che lo protegge
che poi si identifica con quello del microcontrollo- dall'inversione di polarità). Spostando SW1 in posi-
re: dopo il power-on-reset inizializza la linea RB 1 zione di acceso, SW 1b porta la tensione d'ingresso
come ingresso dotato di pull-up interno per poter alla linea RB4 e SW1 a alimenta il microcontrollore
leggere un contatto normalmente aperto col legato e quant'altro con la tensione ai capi della batteria
a IN2; il diodo 03 protegge il microcontrollore nel (circa 4V a piena carica ...) oltre ad accendere il
caso all'input venga applicata erroneamente una convertitore switching step-up siglato U3, il quale
tensione superiore a quella di alimentazione del genera i 5 volt necessari al resto del circuito. -
PIC. Il firmware attualmente "sente" il solo IN2, che Nel funzionamento con il circuito alimentato

48
daii'USB, SWb porta la tensione d'ingresso alla da RAO, RA 1 e RA2.
RB4, che implementandone la lettura nel firmware La linea RC2 è inizializzata come output e produce
consente di capire se è presente l'alimentazio- una serie di impulsi digitali quando il cicalino pie-
ne della rete; tale funzione è utile a realizzare zoelettrico BUZ1 deve produrre la nota acustica di
l'allarme antiblackout. Invece nel funzionamento avviso prevista dal firmware; altri due output sono
a batteria RB4 permette al microcontrollore di RD6 e RD7, cui è affidato il compito di accendere i
saperlo e attuare eventuali strategie di conteni- LED LD1 e LD2.
mento dei consumi (ad esempio la riduzione degli Terminiamo l'analisi degli 1/0 con RDO, RD2, RD3,
intervalli di accensione del cellulare). La linea RB4 è RC5, che insieme alle RX e TX deii'UART costi-
l'unico modo che il firmware ha per capire quando tuiscono l'interfaccia verso il modulo cellulare
il circuito sta funzionando a batteria, perché se SIMBOOC della SI MCom, che nel circuito è montato
U1 riceve alimentazione anche quando RB4 è a su un'apposita scheda adattatrice da inserire
zero volt significa che il circuito funziona a batteria, nell'apposito connettore previsto sul circuito stam-
mentre se è alimentata sta funzionando con la pato. La compatta scheda contenente il cellulare
tensione prelevata daii'USB. GSM SIMBOOC dispone di un connettore d'anten-
Restando in tema di alimentazione, la linea ANO na MMCX 90 ° e si connette allo stampato base
viene utilizzata per leggere il livello della tensio- mediante uno strip maschio 2x1 O poli a passo 2
ne, fornita dalla batteria allitio, che alimenta il mm sul quale risultano disponibili l'alimentazione,
microcontrollore e il resto del circuito, eccetto il la linea di controllo dell'accensione (PWR), tutti
ricevitore radio; se il firmware lo prevede, permette i segnali e le linee di comunicazione seriale da e
di porre in shutdown l'insieme quando la batteria si verso il modulo GSM. La scheda viene fornita già
sta scaricando, ovvero al disotto di una certa soglia assemblata e richiede un'antenna GSM dotata di •
di tensione. connettore MMCX.
Torniamo all'inizializzazione degli 1/0 e vediamo Il modulo scambia con il microcontrollore i dati sui
che le linee RCO, RE1, RE2 ed RA 7 sono inizializ- messaggi trasmessi (quelli di allarme) e ricevuti
zate come input, che sono stati provvisti di pull-up (quelli di configurazione) att(averso I'UART del PIC,
esterno e serviranno a leggere i canali del ricevi- che serve anche per i comandi di impostazione
tore ibrido (il pull-up è reso necessario dal fatto del cellulare; il resto delle linee riguarda segnali di
che gli output del modulo sono open-collector). stato: RD2 legge l'uscita per il LED di "campo" che
Ogni volta che uno di questi cambierà di stato, il viene ripetuto da LD4, mentre RD3 legge il Ring
micro ordinerà l'invio di un SMS o di una telefonata lndicator, ossia il contatto del cellulare che fornisce
secondo le impostazioni fatte canale per canale, il livello logico alto quando viene ricevuta una tele-
come verrà spiegato più avanti. fonata. La linea RDO permette il reset del modulo
RC3, RC4, RBO e RD4 sono le linee assegnate e RC5 provvede all'accensione e allo spegnimento;
all'accelerometro U4, che però è disponibile per reset e ON/OFF sono implementati dalla circuiteria
futuri sviluppi in quanto non viene gestito dal a bordo della scheda su cui il SIMBOOC è montato.
firmware; idem per U5, che sarebbe stato gestito La scheda, contiene il cellulare SIMBOOC, un

LED di campo

LED radiocomando
Pulsante reset

LED IN2 MicroUSB

LED carica batteria Interruttore

~ A sinistra
La parte posteriore
del contenitore
riporta LED, pulsante
di reset e connettori.

'
49
·piano di MONTAGGIO
: =- -
""""-
---=oJ.-
--o~ _;= ~...,
~ 't •'
,
,."\• "••.. • • t~
\ 4
' _11. €:
"T.~ .- '
.... • -, •
' ·,'•
~
~ • " ll
•• •
~
' •" ·~ -
- •
,._,L~_:;::==-~-_.-.:
l ~ ~~ ~ ._
C-_-1<0-_---~- . , ; .:. • ' ' r' c
. ,
• f '••' ~
,.;,
c • ~
..
# ..~·"
• • •
,.-i · • • ,. .•. .r
J,k.t~--,._=~•.
~ -! ~ =-
~
~='"=--- ""' { .. ' • '

l • • •' - ~ _. ...
.,
=- ::
- -: ~ ; ·' • • .. 1 -, - ... • ' .,. • l • t • " :. ::_ ~~ ~ -=- f ' ' .. ~ • ! . f ~ : • • ~ i ' - t • ; ~ --= ~ :- "' - f • • • ~ - i_

Elenco Componenti:

C1, CB, C10: 1 ~F ceramico (0805)


C2, C6, C7, C9 100: nF ceramico (0805)
C3, C4 470: ~F 6,3 VL tantalio (D)
CS 4,7: ~F 6,3 VL tantalio (A)
R1, R2, R4, R13, R14, R15, R16: 10 kohm (0805)
R3, R12: 1 kohm (0805)
RS, R9, R10, R11: 470 ohm (0805)
R6: 3,3 kohm (0805) •
R7: 470 kohm (0805) 1%
R8: 150 kohm (0805) 1%
R17: -
U1: PIC18F46K20-I/PT
U2: MCP73831T
U3: MCP1640BT-I/CHY
U6: Modulo Aurei RX-4MHCS
U4, US: -
P1: Microswitch 90°
P2: Microswitch USB1 BAT1
L--.. L.JII 01
_M_
~-~ R 1 [:J C]
lU21LJ Dl1 R3 R2 ...._~;;.....!~ LD3 o LD2 LD1 L04

LD1: LED 3 mm giallo D DCJDC6


LD2:, LD4, LDS LED 3 mm verde c~3 D C9Dca P , R11 R10 R9 C7

es
LD3: LED 3 mm rosso ClOU
D1, D2, D3: MBRA140T3G LDS

04: MMSD4148T1G
DZ1: Zener 2,7V SOOmW
[Q] P2
R1 4 R16 o

-z 0
DODO §g
L1: lnduttanza 4,7 ~H 770mA N 0 C3 C4
R15 R1 3

BUZ1: Buzzer 012mm -~ 0 R DR12


senza elettronica
.....
0
0
U
DZ1
Oc2
GSM: Modulo GSM (FT1308M) ~ 0
SW1: Deviatore slitta 2 vie
USB1: Connettore micro-USB

Varie: - Morsetto 2 poli 2.54mm (3 pz.) - Connettore JST 2 vie passo 2 mm c.s.
-Connettore 2x10 femmina passo 2 mm - Pin Strip maschio 6 vie - Circuito stampato S1361 (85x51 mm)

connettore d'antenna MMCX a 90 ° e uno strip in un'ora; siccome abbiamo scelto una cella da 500
maschio 2x1 O poli a passo 2m m sul quale risulta- mAh, questa si caricherà in meno di un'ora. ...

no disponibili l'alimentazione, la linea di controllo L'integrato funziona nella configurazione tipica,


dell'accensione (PWR), tutti i segnali e le linee di dove il diodo luminoso LD3 è pilotato dall'uscita
comunicazione seriale da e verso il modulo GSM. STAT, la quale si pone a livello logico basso durante
Definiti gli 1/ 0 del microcontrol lore, diamo uno la carica, mentre rimane a livello alto a fine carica;
sguardo alle due sezioni coinvolte nell'alimentazio- la stessa si porta ad alta impedenza (open) quando
ne del circuito: il caricabatteria e il DC/DC step-up. I'MCP73831 T è in shutdown o all'uscita VB non
Il caricabatteria è basato sull'integrato U2, un risulta collegata alcuna batteria. VB (piedino 3) è
MCP73831T prodotto dalla Microchip che accetta l'uscita per la batteria allitio. L'integrato effettua la
in ingresso tipicamente 5 volt (il range ammesso carica a corrente e tensione costante. La corrente
-
è tra 3, 75 e 6 voi t), provenienti, in questo circuito, di carica (lreg) viene impostata con la resistenza
dal connettore USB e fornisce all'uscita la corrente collegata al piedino 5 (R6, nel nostro caso), al cui
occorrente alla carica di elementi agli ioni di liti o valore è legata dalla relazione:
o ai poli meri di litio (Li-Po) erogando fino a 550
mil liampere. La batteria (da collegare ai contatti lreg = 1.000/ R
+l - BAT) può avere una capacità teoricamente
illimitata, perché al massimo si carica in un tempo dove il valore della R risulta in oh m se la corrente
lunghissimo, tuttavia considerate che con una cor- lreg è espressa in A. Ad esempio, con 4,7 kohm si
rente di 550 mA un elemento da 550 mAh si carica ottiene una limitazione a 212 mA, mentre con una

50
'

abbiamo inscatolato la scheda: nello specifico è inviati da qualsiasi telefono purché il relativo SMS
stato utilizzato un contenitore in plastica compo- comprenda la password, anche se per velocizzare
sto da una parte superiore una inferiore stampate alcuni comandi abbiamo previsto che quelli inviati
in 30 con del filamento di PLA nero (Fig. 2). dai numeri in lista possano essere impartiti senza
Quanto al ricevitore RF, necessita anch'esso di una bisogno di password. Per i comandi di aggiunta
sua antenna, la quale può essere costituita sem- e rimozione numeri dalla lista, la richiesta della
plicemente da uno spezzone di filo in rame rigido password fa sì che a gestire la lista sia solo una
con guaina, lungo 17 cm, da saldare (sguainandone persona abilitata a farlo.
l'estremità quanto basta) nella piazzola che porta Passiamo ora alla descrizione dei comandi e alle
al piedino 3 dell'ibrido U6. relative sintassi, con la premessa che il circuito ac-
Ricordate che per poter utilizzare il telesoccorso cetta anche SMS contenenti più di un comando; in
è necessario inserire una SIM attiva nell'apposito tal caso i comandi devono essere separati ognuno
lettore della scheda contenente il modulo GSM. da quello successivo mediante una virgola.
Il primo comando che esaminiamo è quello di
IMPOSTAZIONE E COMANDI modifica della password e consta di un SMS del
Completata l'installazione dovete configurare tipo PWDxxxxx;pwd, dove al posto di xxxxx si deve
l'unità; tale operazione si effettua da SMS, quindi scrivere la nuova password (composta cinque
inserite nel portaSIM del modulo 71 00-FT1308M cifre) mentre pwd indica la password attuale. La
una SIM pronta all'uso senza il PIN di sicurezza, password predefinita è 12345.
annotatene il numero telefonico corrispondente, La memorizzazione di uno degli otto numeri abili-
quindi con un cellulare impartite i comandi previsti, tati ad inviare comandi di configurazione si effettua
che sono tutti riportati nella Tabella 1. inviando un SMS nel cui testo sia contenuto il testo
Le prime cose da fare sono configurare i numeri NUMx+nnnnnnnnnnnnn;pwd, dove al posto di x
della lista di quelli che il sistema chiamerà o cui deve essere scritto quale dei numeri (posizione) si
destinerà gli SMS di allarme; per facilitare la pro- sta memorizzando, al posto delle n va il numero
cedura, essendo il sistema protetto da password mentre pwd è l'attuale password. Il tutto va scritto
.
in tale operazione, è stata prevista la modalità di senza spaz1.
Easy Setup: nel periodo immediatamente succes- Sono ammessi numeri di 19 cifre ed il +è quello
• sivi all'accensione, il sistema memorizza il primo che, nel prefisso internazionale composto dai
numero telefonico che gli effettua una chiamata e cellulari, sostituisce lo 00. Per esempio, l'in-
lo considera il primo numero della lista (il periodo serimento del numero 00398911512 in terza
di attesa dura fin quando il LED giallo lampeggia e posizione si opera con un comando del tipo:
alla ricezione della telefonata lo stesso LO 1 si spe- NUM3+398911512;pwd. La password è ne-
gne). Questo potrà eseguire modifiche anche senza cessaria solamente quando si tenta di salvare
password; comunque i comandi possono essere un numero in una posizione già occupata da un

'

! Fig. 2
La scheda montata
e aoplicata alla base
l "

del contenitore.

52
FUNZIONE COMANDO SMS VALORE PREDEFINITO PWD NECESSARIA

CAMBIO PASSWORD PWDxxxxx 12345 SI

MEMORIZZARE UN NUMERO (massimo 8 numeri, Solo se la posizione è


NUMx+393359999999
massimo 19 caratteri per numero}; x è la posizione occupata

CANCELLARE UN NUMERO NUMx SI

VERIFICARE l NUMERI MEMORIZZATI NUM? SI

RESET COMPLETO RES SI

IMPOSTARE l NUMERI CUI VERRANNO INVIATI GLI SMS SMSxxxxxxxx:ON TUTII SI

IMPOSTARE l NUMERI CUI VERRÀ FATIO LO SQUILLO VOCxxxxxxxx:ON TUTII SI

ATIIVO IN ASSENZA
LIVELLO LOGICO DI ALLARME PER INGRESSO 2 LIV2:b
DI TENSIONE
ATIIVO IN PRESENZA
LIVELLO LOGICO DI ALLARME VARIAZIONE LIV2:V
DI TENSIONE

RICHIESTA LIVELLO LI V?

TEMPO INIBIZIONE RADlOCOMANDO (da 00 a 59 min} INI1 :mm 5 MIN


TEMPO INIBIZIONE INGRESS02 (da 00 a 59 min} INI2:mm 5M IN

AZZERA TEMPO DI INIBIZIONE SE LINGRESSO TORNA A RIPOSO


(INGRESS02}; x se Onon azzera se 1 azzera
TIZ2x o

RICHIESTA TEMPO INIBIZIONE IN l?

TEMPO DI OSSERVAZIONE INGRESS02 (00~59 sec) OSS2:ss 1 sec

RICHIESTA TEMPO OSSERVAZIONE OSS?

INVIO SMS ALLACCENSIONE; x vale 1 per attivarlo e Oper disattivarlo AVVx o


NUMERO MASSIMO DI AVVI SI DI ALLARME: 01 ~99 (99 disabilita il
ALNx:nn 99
limite}
INOLTRA l MESSAGGI CON SINTASSI NON PREDEFINITA
ECHO:x 1
AL NUMERO OCCUPANTE LA POSIZIONE x

DISABILITA LA FUNZIONE "ECHO" ECHO:O 1

RICHIEDE LO STATO DELLA FUNZIONE "ECHO" ECHO? 1


..
RICHI EDE LA QUALITA DEL SEGNALE RADIO RICEVUTO QUAL?

ATIENZIONE! RICHIESTA
TESTO ALLARME RADIOCOMANDO PREMUTO TIN1A:xxxxxxxxxxx
D'AIUTO
TESTO ALLARME INGRESSO 2 QUANDO È ASSENTE TENSIONE ALLARME!! INGRESSO
TI N2B:xxxxxxxxxxx
(max 100 caratteri} 2 BASSO
TESTO ALLARME INGRESSO 2 QUANDO È PRESENTE TENSIONE ALLARME!! INGRESSO
TI N2A:xxxxxxxxxxx
(max 100 caratteri} 2ALTO

TESTO MESSAGGIO ACCENSIONE (max 100 caratteri} TSU:xxxxxxxxxxx SYSTEM STARTUP

DISABILITA LA RISPOSTA PER QUEL MULTI,MESSAGGIO RISP

~ Tabella 1 - eomandi da impostazione ~M!,.

53
'

' '

altro; invece, se si deve inserire un numero in una comando di impostazione dei numeri cui dirigere
posizione vuota basta inviare un SMS con il testo le chiamate o gli SMS di allarme: per impostazione
NUMx+nnnnnnnnnnnnn. predefinita nel firmware e dopo ogni reset totale, il
La rimozione di un numero si effettua con un SMS sistema dirige sia le chiamate, sia gli SMS, a tutti
che contenga il testo NUMx;pwd; al posto della x i numeri memorizzati nella lista. Ne consegue che
va scritto il numero della posizione nella quale si per escluderne alcuni bisogna inviare i comandi
trova l'indicativo da cancellare, mentre pwd è la di disattivazione: SMSxxxxxxxx:OFF;pwd oppure '
sol ita password. Ad esempio, per rimuovere dalla VOCxxxxxxxx:OFF;pwd specificando le posizioni •

lista memorizzata il quarto numero, occorre un da escludere. Questo, se si desidera escludere dei
messaggio che contenga: NUM4;pwd . Per richie- numeri,altr imenti non occorre fare alcunché.
dere la lista dei numeri memorizzati nel circuito Il sistema invia un SMS al numero telefonico che
occorre inviare un SMS con il seguente testo: occupa il primo posto della lista ogni volta che
'
NUM?;pwd. La scheda risponde al numero del te le- riceve alimentazione. Tale funzione può essere

fono dal quale proviene l'interrogazione. disabilitata/abilitata con i comandi AVVO (disatti-
-E possibile conoscere in ogn i momento la qualità va) e AVV 1 (attiva); il testo predefinito è SYSTEM
del segnale GSM inviando il comando QUAL?; il STARTUP.
sistema risponde con un SMS contenente l'attuale Passiamo ai comandi che permettono di memoriz-
situazione. Il messaggio viene inviato al telefono zare o sovrascrivere il testo degli SMS da inviare:
che ha impartito il comando. la sintassi è del ti po TINn:xxxxxxxxx, dove n deve
Passiamo ai messaggi di configurazione e stato essere 1 per il rad iocomando e 2 per l'allarme
degli input: LIV? permette di conoscere lo stato dovuto al l'ingresso 2, mentre le x corrispondono
dell'ingresso IN2, che in questa applicazione può al testo del messaggio, testo che deve avere una
funzionare solo a livello di tensione, quindi per lunghezza non superiore ai 100 caratteri.
esso viene rilevato solo se va a livello basso (a Un'impostazione indispensabile è quella del tem-
massa) o a livello alto (per esempio quando è aper- po di osservazione dell'IN\ che si effettua con il
to). Per l'ingresso è possibile definire un tempo di comando OSS 1:ss, dove al posto di ss va il tempo
inibizione, mediante il comando INI2:mm (al posto (compreso fra Oe 59 secondi): specifica al circuito
di mm vanno messi i minuti di interdizione); l'inibi - per quanto tempo il pulsante del minitrasmettito- '

zione serve a evitare continui invii di segnalazion i re debba rimanere premuto per evitare la genera-

di allarme se l'ingresso, nella modalità a livello, zione di falsi allarmi dovuti a pressioni involontarie
rimane aperto. o a segnali di disturbo che potrebbero passare nei
Analogo è il discorso per l'input da radiocomando, collegamenti.
per il quale si definisce sia un tempo di osse rvazio- Si può definire anche un tempo di osservazione per
'
ne (ossia quanto tempo deve permanere il segnale IN2, con le stesse modalità, impartendo il coman-
all'uscita del ricevitore per considerarlo allarme e do OSS2:ss; anche in questo caso il tempo serve
far partire SMS e telefonate) sia un intervallo di ad evitare falsi allarmi se abbinate l'input a contatti
inibizione utile ad evitare che se il tasto del tra- per porte o PIR.
smettitore viene premuto ripetutamente partano Da SMS potete anche richiedere i tempi attual-
sequenze di telefonate ed SMS. mente impostati (comando OSS?).
Per definire quali numeri della lista debbano Ch iudiamo la panoramica sui comand i con
ricevere le telefonate, si deve inviare il messaggio quello che ripristina le impostazioni predefinite:
VOCxxxxxxxx:ON;pwd, considerando che valgono le è RES;pwd. Il messaggio di risposta a questo
stesse regole della gestione dei numeri cui dirigere comando da SMS è "Reset eseguito':
gli SMS di notifica. Il resto dei comandi è descritto nella Tabella 1, cui
Per la disattivazione degli SMS o delle chia- rimandiamo per ogni approfondimento.
mate vocali sono previsti due comandi distinti:
SMSxxxxxxxx:OFF;pwd disattiva l'invio di messaggi APPREN DIMENTO DEl TRASMETTITORI
e VOCxxxxxxxx:OFF;pwd disabilita le telefonate. Le Passiamo adesso alla sezione dei radiocomando:
x rappresentano le posizioni dei numeri che non per garantire la ri cezione del segnale trasmesso
devono ricevere segnalazioni di richiesta di aiuto dal minitrasmettitore portatile che la persona da
da radiocomando o di allarme rilevato dall'ingresso proteggere indosserà, sarà necessario memorizza-
a livello di tensione IN2. re nel modulo RX 4MHCS il codice di trasmissione
Adesso occorre fare una precisazione riguardo al del relativo trasmettitore.

54
Per eseguire questa operazione è necessario
portare il trasmettitore vicino al ricevitore, ma non
attaccato al modulo: tenete lo a mezzo metro di di-
stanza. Ricordiamo che è possibile far apprendere
solo i trasmettitori con Manufacturer Code Futura

Elettronica, giacché encoder e decader Keeloq
hanno una parte fissa di codice che è univoca per
ciascun costruttore; acquistando TX e modulo RX
4MHCS dalla Futura Elettronica il problema è già
risolto.
La procedura di autoapprendimento si avvia ! A destra
La richiesta di aiuto parte
premendo e rilasciando il pulsante di programma-
premendo il tasto del mini
zione P2; l'entrata nella fase di apprendimento è trasmettitore.
segnalata dal lampeggia del LED LD5 rapidamente
per 1O secondi: durante questo tempo, operando
nelle vicinanze del RX 4MHCS, la pressione di un per circa 5 secondi e comunque fino a quando il
qualsiasi tasto del trasmettitore sarà appresa dal LED non smette di lampeggiare, al che occorre
ricevitore. L'avvenuta programmazione del RX 4M- rilasciare P2. Cinque lampeggi del LED in sequenza
HCS viene indicata dal LED con luce fissa, dopo indicheranno l'avvenuta cancellazione della me-
di che si spegne. In questo caso tutti i pulsanti moria, allorché nessun trasmettitore con codifica
disponibili nel trasmettitore sono stati codificati e HCS sarà riconosciuto (perché la cancellazione non
la pressione di ognuno attiverà la relativa uscita. è possibile selettivamente ma solo per tutti i codici •
Se utilizzate un trasmettitore monocanale, che è appresi) e le uscite saranno impostate in modalità
la cosa più consigliabile, viene appreso solo quello, impulsiva.
ma sappiate che l'apprendimento, riguardando il
codice trasmesso, è valido anche se il TX è plurica- CONCLUSIONI •

nale e non va ripetuto per ciascun canale. Anche questo progetto, come il Save my child,
La procedura appena descritta va ripetuta se si consente di realizzare con semplicità un sistema
desidera abbinare all'unità più di un trasmettitore, di avviso a distanza (telesoccorso, se preferite) in
quindi per ogni ulteriore TX la si ripete pari-pari. grado di tutelare la salute e l'incolumità delle per-
L'autoapprendimento di un trasmettitore ad uno, sone più fragili, attraverso un mezzo di comunica-
due, tre o quattro canali può essere eseguito indif- zione efficace e diffuso come la telefonia cellulare.

ferentemente tramite la pressione di un qualsiasi La disponibilità a bordo di periferiche opzionali
tasto, poiché il micro gestisce la sequenza bit stan- consente di espandere le possibilità di utilizzo e di
dard per l'assegnazione di ogni singolo canale. personalizzare il sistema per adattarlo a condizioni
Notate che sebbene le uscite possano funzionare particolari, semplicemente aggiungendo accelero-
in modalità bistabile o impulsiva, dopo l'autoap- metro ecc. e adeguando il firmware. D
prendimento è impostata per default quella di tipo
monostabile; ciò non guasta affatto, perché il mi-
crocontrollore la predilige, in quando il firmware ri-
leva la transizione del livello logico su una qualsiasi
delle quattro uscite. Se si impostasse la modalità
bistabile, in caso di attivazione del minitrasmetti- Cosa occorre?
tore il micro riceverebbe un segnale di allarme ogni
Il telesoccorso GSM, dotato di modulo cellulare e ricevitore radio,
due pigiate del pulsante e ciò potrebbe limitare la
(cod. GSMALARM) è in vendita presso Futura Elettronica al
possibilità, per la persona in difficoltà, di chiedere prezzo di Euro 95,00. La batteria allltio (cod. PLIB500NEW)
soccorso. è acquistabile separatamente al prezzo di Euro 4,50. Il
trasmettitore radio monocanale (cod. HCS-TX-1) è disponile a
Completiamo la descrizione dell'apprendimento
Euro 17,00. l file STL del contenitore plastico stampato in 30
con la procedura di cancellazione della memo- sono scaricabili dalla scheda on-line del prodotto. l prezzi si
ria dei codici: per cancellare la memoria dell' RX intendono IVA compresa.
4M HCS bisogna premere e rilasciare il pulsante
Il materiale va richiesto a:
P2 e quando LED verde LD5 inizia a lampeggiare,
premere nuovamente il tasto tenendolo premuto Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - http://www.futurashop.it

55

MER CAT O DEL CON SUM ER ELEC TRO NICS


O R A R l :
sa bo 9 o30 - 18o00
domo 9o30- 17o00

IN CONCOMITANZA CON

o J

SPRING EDITION

PAR CO ESP OSI ZIO NI NOV EGR O '


MILA NO / LINAT E AERO PORT O +
i sf~f.~1~~~'~;~te w w w p a r c o e s p o s i z i o n i n o v e g r o i t
o o
'

di MIRKO UCOLINI

i abbiamo fatto conoscere, nel


Una nuova applicazione
fascicolo n o 225, la nostra Ardui no in
della board Antennino versione loT dotata di connessione
wireless, battezzata non a caso
che realizza un
Antennino; questa scheda ha la
gateway utilizzando un particolarità di poter funzionare, in
software open source base alla configurazione hardware e
firmware, da periferica o da gateway
con cui realizzare un di più periferiche. Ricordiamo, prima di entrare nel vivo di
pannello di controllo questo articolo, che Antennino è una scheda basata su
architettura Arduino Uno e dotata nativamente di una serie
(Dashboard) per i nostri di connessioni utilizzabili per l'interfacciamento a sensori
locali e un link radio UHF per comunicare con il mondo
dispositivi wireless.
esterno; una delle sue caratteristiche salienti è che, a
Prima puntata. seconda del firmware che vi si va a caricare, può funziona-
re sia da unità remota o nodo periferico (edge-point) che si
interfaccia direttamente ai sensori, sia da concentratore,
che sarebbe il nodo deputato a raccogliere i messaggi

57
:~. ....., ·'· ,;,,

~·· l"' ,.,!" . ·- ;,... ...- 2~:: . -. ~ ., ..• - _,ili~ ~r.. ,.


:~, l\leUa ~ersione':aeJ gatf~'wav p,re; ,_ , ~ai ave're ttergross-i proble':mi::·ttt,,,'~ .,,'~
. ·__ ,;,, i· · "i1& '"t' - "' -:;_;, .•, "' :i. ,'T ;:, .,. ''''l! ,, - -" :;, ,, - "· 11'1"' ,::., :t. ·'·.:;: -"'.'' • "' ·"'';,: ··:.!1!_. !;;Il -:;'m .. "','"

'·, sentato riel fastici·olO 'n,~:~l~S) per '.,~. compatibilità-nell.a-CZonllètsrooe, ,,- mo potuto utilizzare lo stesso hardware di An-
'·: l~inuro,~ei dati-~1 ~attui~ RFMs9-- ~ef, d~ti. ~- _,: , _~:~=-~:~._ ,": ,:,.:_~-~: ·:,. :,;,:. ~~ ~ : : , ~I tennino, ma progettare da zero e realizzare una
:" aveuam~~:tlut(lizzatb ~na·:cÒ'sttutfa ·:~·~- 'Il' 'PetJtPII~r~~ \n1:a ~j~lin:gu~ ftan:t if ,;~:~ ,~ nuova scheda, dove per la connettività sfruttia-
" ~,
1

~+;:~."c tte si chiaroa's~ra'l;'t ti q~at~ ,: ·,:~:,' :Che f~,ecia doliu~icijte:: ,i iìue:: men.;'. -"· : :·. mo un modulo ESP32 e quindi illink WiFi, che ci
·:· ;!: , :i.." •., .,_.•~ - ,,_;,, - .!: .. • ~; ~ '" '""· ::;··:.. ,~ • ,,,,;-;; '· -i:!l:. '7 • .,ii·. -' ~ --:: i'·,,, ..,·' • -.·-"' :.,i:i· t!!!':i! ·'.'. • ,, • *.,, '" ::.'i'"' "- - -~;,, r.",';' •' • ~.. ,~. ,,, ;: ''"

~.: p~rroette ·dr:,rmpaçch.ett,are dé1 ,:; , . -,; ,th, ,~Unp ~pee1e.dt ~sQeranto (Jer,b1t~ l
_,m, farà da bridge verso il mondo di Internet.
,,.... . ''• il!:: 'i:. . ,,,•.:::·· -:r """~."- • ~·· ,_,_ .::.;;.- -,.;;-":. ::·" • r:!·:. ;"'- "·'''- , ~,r::·- ,,_;,. lliA • ~7 -;, ::.·:. -, ··-" - ,:' :;,,:: " ·;··, 1 "';;:;;,

:.,". d:~ttet,erqg~n~~ · ln:un:. "t;9nter:utQ~ . ;- :'.", J:lobbt.~J11o _ut•l~zz~r~""~ urtforf11.at.Q ,. ~. . ,·:~.


':, re"-'pei:' e.~,~e.re @oi) nyiàt,e ~~r~·tni~e ·-~ , . _ Qarticpl~.re ,ch'~ sf"c;~··~~~~S~N·: : . ~l- • -.:::. IL PROGETTO
~·.,·, il": m·Qd,~ h)::,R E.M?~,af çorri~pe~i~o :; .:.,·: ·{Ja~!)s~rip~ :~ b)ec~ ~ot~~iqn);~Lc(~ :;:, 1 1
Questo nuovo Gataway è diverso dal precedente
i::• " ·:·:. -::: ,.,;, ! _ ,;.; •.
:::ni!J;,- • .• fu ... 1,;::• -:i' ·. :··:... ''" ::li ··.:,:;.. ·.. .::'i:•· !Jit:: ·'· -'--, -~ .;c.;;ol: '·''' ""·m ,J1.::1i

,., ffiOÒU(~ ri'çe~eQtS~ _ .. , (ieçliriaZI'Ofle f1lig,iote perLìJ ilUlO-:·'' ,h :,: ... :_ ":" • e più complesso; inoltre è praticamente tutto
~. ·:,.:- ~ei;~Gate~a~ c~e ~~ ndretn~~~a :·:'. ,·:h ·:::> ..~·.:, Bo''err\11~'~cJ~d·(:àrquest~- f~rmato~~.;~ realizzato con moduli commerciali da innestare
-.:· .... '1- ::t= '·oil ~-1 " !i'· .. ,;;,;.. :::'if ,,. "'",. ;; ... · - - ... "'''·" ,... - •.. ;::- ·"' .·,;,.

"," realizz'ani iti ~q~esta -puhtata~ilo~ .':~' _, ('ha"r-éalizz~ta'lut programrijatòr~:. ,:


,. i'· ~- ·'li· ,.:r .,fr" -. .,. · ""'' ::: ::; :: :li :;, ,,,,.. "' · ',', : · '".. ·.' ... =t 'i; · ,;;.. "' it -::i" '" -.::,,,, - -··"'·
su una scheda madre.
",.- èlr:l'i;Ucald usare u'n aosfruttd . ~-... . .,'·- .fran-cese"Benoit BiancRon;eli if,:. ~~- _,: :
~,i ~~~~, - ::u:!ill ~,{ ,,; ' ::i'"' . ;:· ..,. "' !' .. m " "' ::· ii~,..
Utilizzeremo il modulo ESP32 come un classico
del genere per .lmpaGch'ettare ~.: ~.,. . .:, -sof.twarefè raggiungili~le aqugtci "
'.'.' ·' "' "'" ", _:,\'., ;;,,:; ., :.·1;:. ,; ..,. - . , ,'( l· ::; ·... ,;. i' ;;i· :;-.i· -' •• ,

;,f,
:: .'; • ;;;,:i' :l!! L - ,;-:-, • '" .:. ~i: ; ',;,.:;: .. '"' "- f11 ' • ·:i:- • ,:j·::: ,·;, •F .,: : ·i'·-:i "'" - " .Jo'i' ii' -.';. '-lJ ·l -:;• ·i' •• ;;, ..- c:.· li' ::·'i: ".':
Arduino e lo faremo comunicare con il modulo
·.·: 1~etiali,zzare~dese~:ializzarel [ dii,ti;;:. _:: urh https.:Jàrtluinojson.org "'." -::· _,.~, .,. RFM69. Come certamente saprete I'ESP32
~ . eta _s.ta.rnbia-t~ ira: f nQ.di~n.tennifio~.·. T bttps:lgittì:ub1.c omibb'l.iutch'òn~ ~ · :. supporta in modo nativo la connettività TCP/IP
·,F. },', ., l:l!' !l!! ::;, ,,. -· -· :;._ :;; .:. •• ·.';,';,. ;; 'l· - ;jfi ~ ;; -;,_ - ;, -

·:. . ed i'f'.uateway. ~Jilllathtq. la·':do:bb'ia-. "\ _..~rduinoJ~fl per . chi ·,vol~-$.se: ap·;- .:
,, .' .,, - _,,,,. ' "' 'i'':: """- '':

(WiFi) e questo apre le porte alla comunicazione


:ii,- r. •k" ;q.,
-'il' . ::.lo: .:: ',H.l ih ''·.·i' "'i -•; ... . ~· ... .!';;; :. .. .. ;; :: , :-; "' ::: • --' . ·- "' !U 'i; ,;,,;, _ .. ,; ~.

. ~. -ruo·.,alla eter"oge,nt;!a archit:gttur~· ": - pro,fondire .i·,cqncetti ~Jia base di ~,, .- . ·:.·:. del nostro ecosistema di sensori verso la rete in-
:j!- :~·; :.·:: ".;:,·'o :::i.j'·•- ;;~dc ' .:<::: - - .::.•;: .•i: ' •fl_: '~" -.:: ;;_ ·..·i: '.' ·H. :- ;; "' .::.-:: -, ::.· ·ii~ • -,,.: 'l ;-::;;i;

-.", - dei ,tllQ.~tJli impJeg~ttsu Af,l.tepnjJlQ. _ ·: Jso:n ~. rinf~esçar~ a(çune concetti,, ,. ·: ternet e quindi potremo realmente parlare di loT.
":·:_:. è·s41 G·~t~~w_~v.~.,- ,-: : : ·, : ·: . , ·~: ~.·i.', ·_ ·: -" :.' f!=>ri.P~,rru~nt~ttdet c*+vi sugge~ ,' , . Dopo una attenta valutazione delle possibili
.·: ,- l·':modl.tl-i Antennino sbn'o basati:.·
., .. ., "'"''' ·.-:. -;ij-
~. riamo'anchè ifsuo òttimo li6.ro·! ;, ,.·:;:·:
"'i:;~,, . ;;. ,:::·, t ljl .. ... ·;;: • :: - ~
alternative per quanto riguarda la scelta del sof-
~~·~. ~~ 11li~fo~bri.t.nlllor~ ~1sç ~:. s:6it~'" ·. -_::·- ~~ttps::tar.duìn-ajson~brg~li"ookr'·' ;'.c
• ,. _,. ...... :: ... j• • .. __ . ' ··;t . 11 -:: •• '" .,.,, .:.
tware per la Dashboard, l'attenzione si è posata
-',;_ afteijtf~ il mod~,lo .~ate~~~ è:.:, ··:,, _:. · -~.:, ~a ·n ~~are cheThin~~~~atd ~uttJ: -.~,:~ ·~ su un software open source (Licenza Apache)
"
, 6'asatd,st1un mid:ocon~'ro~lore ·~· - . ' ~.:, ffUe di configurazio·ne "delle ·varie:
"' .. '"''il :: ii ·:', ·: ~ ·i' .:. •;'.'i' ;!." ~ " •• 'l' •;; ,. ~;-, !H: ,.:. ;; """' ,;- ,· :ii ';_l .li ',. ·ii:·" ·i::::]-· , "' ''i- .
che viene rilasciato in due versioni: una versione
~·. · RISt a·3'tbito: . :, . ~:· ,. ·:."' ,.:L. ·_· ·. entità:-pr:èsenti sonahtlportabiH ·:· -, Community Edition ed una versione Professional.
:ti

·: ciùintU~Ia·:ra~presén~'azl·on·e aiaati
::- _, .. , ,~·" .,,,,;;_ ;, '''
:~'·...
'. -~"- ~~d.asport~bili'in formatd :Tson -:, :_ .':.·
'" " , ,,,
',~,, . .·' : · - ,,., . - "
- ,''t:;', .., _ .
_,,:;, . - "' ·- .
• ·:m ~i- ~·,. ·~ :l:.. ~.~
Si scarica da https:llthingsboard.io.
,:. sulle due·:ar~hitett'ur:a è,dtverr- ·:.·: ·~. . . e quindi' il tempo de'd1~ato a~èt ·~ ., ,
" ... ::: :::g ;;:; ;:; .: jJI;; ., • :.. - :: :i· .:i'l:. , :l· -· ,;;.·i: -" ""-:ii. · .i: ·':. - -:'i' ,. :: ~'' ·i:·,.- . J .:i :;;
La versione Community Edition può essere
"· sa e.aélottari:t:h:t una Struct::per ·'· approfondire questo formato è .... installata su Raspberry Pi, su un PC Windows, su
,:,: ~ c'..~n:Cnu~idè"re"';infprma%iohi'
,,
~ i riscbi~ , sJcurament.e b.en.· sp"eso. '. . un server Linux (Ubuntu - CentOS), su Google
't! !"'"'-"'''"'" :::::- ,, ,,. ....
-,~ ~ ~ ,.,,,;; ,.,..;;' ... ;: "''''' .. .. .. . ;;•

;-,:·· li! :;ti:


:: "
.·...
·"''·'
"'"
";;, 'il•
' f' • ;:- :: • i:
Cloud, tram ite Doker (Windows o Linux o MacOs)
;; t;;:::

su piattaforma AWS e ciliegina sulla torta .. . è di-


sponibile una versione live https.·//demo.thingsbo-
ard.io/signup perfettamente funzionante tramite
inviati da più unità Antennino funzionanti da la quale potrete dedicarvi alle prime sperimenta-
nodo periferico. Il concentratore è equipaggiato zioni senza impegnarvi in alcuna installazione e
con un piccolo display OLED che funziona da senza dover sborsare un solo euro.
interfaccia utente. Per i più esigenti esiste la versione Profes-
Nell'ultimo progetto sviluppato con Antennino sional che può essere istanziata come servizi
(fascicolo n o 228) vi abbiamo spiegato come PaaS (Piatform as a Servi ce, ossia qualcosa che
real izzare un gateway con la board configurata fornisce agli sviluppatori una piattaforma e un
da concentratore, ma si è trattato di un progetto ambiente per realizzare applicazioni e servizi
dalla natura prettamente didattica, orientata a Internet) su Clou d Microsoft Azure o Amazon
evidenziare come funziona una rete di sen- AWS. Inoltre è possibile attivare dei piani perso-
sori basata su Antennino . Infatti i dati raccolti nalizzati per usufruire del supporto del team di
venivano visualizzati direttamente sul piccolo sviluppo.
display OLED e non potevano essere immessi in Esiste inoltre un software Gateway addizionale
una rete o su Internet, a meno di non interfac- sempre Open Source che permette di interfac-
ciare il concentratore con un'unità di rete tale da ciarsi con dispositivi che supportano i proto-
renderlo davvero un gateway. colli OPC -UA, Sigfox, Mod bus. Essendo Open
Ora, invece, andremo a implementare un Gate- è possibile modificare il software secondo le
way vero e proprio, dove i dati delle Antennino proprie esigenze ed estendere le possibilità di
periferiche non vengono semplicemente raccolti interfacciamento. Il codice è sviluppato in Java è
e visualizzati, ma anche interfacciati al web. disponibile su Github come la versione Commu-
Per implementare tale applicazione non abbia- nity di ThingsBoard. Noi non utilizzeremo questo

58
software ma interfacceremo i nostri Antennino byte, che è anche la dimensione minima di un
tramite protocollo MQTI direttamente verso pacchetto.
ThingsBoard impiegando il nostro Gateway. MQTI fornisce tre tipi di Quality of Servi ce. l tre
La piattaforma Thingsboard comunica in modo livelli di servizio sono:
nativo tramite·protocollo MQTT. • O. At most once (al più una volta}: i messaggi
vengono consegnati in base al miglior effort
MQTT: CONOSCIAMOLO MEGLIO di rete, per cui possono avvenire perdite o
Tutto nasce nel 1999 dall'impegno di due inge- repliche di informazione;
gneri, Andy Stanford-Ciark (IBM} e Arlen Nipper • 1. At least once (almeno una volta): si assicura
(Arcom, oggi Cirrus Link) concentrati nel trovare l'arrivo del messaggio, ma possono avvenire
una soluzione per monitorare pozzi e asset repliche;
remoti delle aziende petrolifere Texane. Idearono • 2. Exactly once (esattamente una volta}: si
quello che viene indicato con l'acronimo MQn assicura che i messaggi arrivino esattamente
(Message Queuing Telemetry Transport} e nello una volta.
stesso anno rilasciarono la prima versione.
Dopo tre anni dalla pubblicazione fu annunciato Gli sviluppatori di Thingsboard hanno in un
che I'M QTT sarebbe stato standardizzato dalla certo senso integrato un Broker MQTT nella loro
OASIS e nell'ottobre del 2014 MQTI ha final- piattaforma e quindi il Gateway che andremo
mente ricevuto il suggello della standardizzazio- a realizzare in questa puntata comunica con lo
ne e attualmente è disponibile la versione 3.1.1 . specifico Broker MQTI di Thingsboard il quale
MQTI si è subito affermato in ambito loT. supporta solo i due livelli QoS O ed 1.
Il protocollo oggi è open, disponibile con licenza •

royalty-free, dopo la donazione da parte dell'18M COME FUNZIONA MQTT


dal 2011 al progetto Eclipse Paho. Il ruolo centrale dell'architettura è il Broker (in-
Il protocollo MQn si presta in modo particolare termediario} MQTT (Fig. 1), il quale ha il compito
per permettere la comunicazione di dispositivi di instradare tutti i messaggi tra i mittenti e i
embedded, con richiesta di impiego minimo di legittimi destinatari.
risorse energetiche e limitata capacità compu- Ogni cliente (Ciient} che pubblica un messaggio
tazionale; è particolarmente indicato per questi su l broker, include un topic (argomento} nel
vincoli e nei casi in cui la rete consenta larghezza corpo del messaggio. L'argomento è l'informa-
di banda limitata. zione di instradamento per il broker. Ogni cliente
MQTI viaggia su protocollo di rete TCP/IP e che desidera ricevere messaggi sottoscrive un
ha bassi overhead di trasporto, dato anche un determinato argomento e il Broker consegna
formato di messaggio con header fissato a 2 tutti i messaggi con l'argomento corrispondente

Fig. l
Architettura
MQTT.

.. publish: .21 o c• laptop

temperature MOTI-Broker
sensor

subscribe to A.. publish to mobile device


toplc: "temperature" V' topic: "temperature"

'
59
' '

Il l 11 i l l Jlll l 1111111 Il l l l fl Ili Il Il! li lllll l Ili l l fili IITIH1JUIJ:I111ll lllllllllllllllll

ai vari client che lo hanno sottoscritto. TCP permanentemente aperta verso il Broker. Se
Pertanto i clienti non devono conoscersi tra loro: questa connessione viene interrotta per qualche
comunicano solo sull'argomento cui desiderano circostanza, il broker MQTT può bufferizzare
sottoscrivere aggiornamenti. tutti i messaggi e inviarli al client quando questi
Questa architettura consente soluzioni altamen- tornerà in linea. Un client può essere allo stesso
l
te scalabili senza dipendenze tra i produttori di tempo un publisher che un subscriber chiara-
• dati e i consumatori di dati, quindi si possono mente su topic diversi.
• avere architetture completamente eterogenee. '
La differenza con HTTP è che un cl ient non deve IL GATEWAY
eseguire un polling per ricevere le informazioni Per quanto riguarda il Gateway abbiamo pen-
~abella 1 di cui ha bisogno, ma è il Broker che notifica sato di realizzare una basetta con il minimo di
Comparazione gli aggiornamenti sui topics che il client ha componenti presaldati a bordo per privilegiare la
tra ESP8266 e sottoscritto, nel caso ci sia qualcosa di nuovo. modularità. Per quanto riguarda i moduli, sono
ESP32. • •
Pertanto ogni client MQTT ha una connessione facilmente reperibili dal sito www.futurashop.it.


.. • • . • . . . . . •. . .

•. . .. - . ' - ... • .r ' •. . :ESP3t:· .. ~--r:'-· '.~.._ -t~·/ 1 t:t··-,. -:·,t l
. .
• Specifiche '
ESP8266 ' • • ~
··- ' • .
-~-
'·. • . l
·:.

MCU Xtensa Single-Core 32 bit L106 Xtensa Duai-Core 32 bit LX6 600 DMIP
802.11 b/g/n Wi-Fi Ves, HT20 Ves HT40
Bluetooth None Bluetooth 4.2 and below
Tipica! Frequency 80Mhz 160 Mhz
SRAM 160 KBytes 512Kbytes
Flash SPI Flash, up to 16 M Byte SPI Flash, up to 16M Byte
GPl O 17 36
Hardware/Software PWM None l 8 Channels 1 l 16 Channels
SPI/12C/12S/UART 2/1/2/2 4/2//2/2
'
ADC 10-bit 12-bit
CAN none 1
Ethernet lnterface None yes
Touch Sensors None Ves
Working Temperature 4ooc -125 o 40°c -125 o

60

Preferences x
Settings Network

Sketchbook location:

~rd_u_in_o_________________ _________________ ______________~l


Llc_:\~U_s_er_s~\m__irk_o~\D_o_c_u_m_e_nt_s~ l Browse l
Editor language: l~~--------
System Default
----------~
l v (requires restart of Arduino)

Editor font size: ,12 l


Interface scale: [;d Automatic l 100 : :% (requires restart of Arduino)
Theme: I D~ult theme vi (requires restart of Arduino)
Show verbose output during: D compilation D upload
Compiler warnings: [None v

[;d Display line numbers


D Enable COde Folding
[;d Verify code after upload
D Use external editor
[;d Aggressively cache compiled core
D Check for updates on startup
[;d Update sketch fìles to new extension on save (.pde -> .i no)
[;d Save when verifying or uploading

Additional Boards Manager URLs: l https://dl .espressif.com{dl{package_esp32_inde~ lt1
More preferences can be ed1ted directly in the file
C: \Users\m i rko~ppData\Loca MrduinolS\preferences.txt ~ Fig. 2
(ed it only when Ardwno is not runnmg) Impostazione
dell'l DE
()i(] [ Cancel l Ardui no.

Nella prima stesura del progetto ci eravamo La Tabella 1 riassume in modo conciso le diffe-
orientati sul modulo ESP8266, ma proseguendo renze tra i due moduli.
nella realizzaz ione ci siamo resi conto che sa- Quello che salta subito all'occhio è la maggiore
rebbe stato meglio passare al fratello maggiore: disponibilità di memoria RAM (quasi triplicata).
I'ESP32. la frequenza di clock raddoppiata, il maggior

o x

..... --
fd,[ Sltftch Tooll 111o
=p;;

--
fiJ tr~c:Odol 19 a~
.................
........... o~oSNn · l

,"
l lac J'""""
· ~~ ~ .
li ... , _
--
~ "&:12 'o\'fo ... Mon ...
Cl•'hShoft•M
Clrl • SMI• ~

4 t uo<r1-
~ SOMd: . , l S2IXr
U H...:.l"""
Rl*"' q 1()10 "IOJ,IiU"" • Arol.o'IO no

44 I U..l...:..
n 11,....1.,. fldl Moòf" '"CIO" ~ Atdl.ono Il
1 lJ,o'ld A1GuinD USI
......
11 11-cl..,. "-t.t.ar~ ~ "No OTA. (lMgot .li'JI)"

t H.cl""""
~

t" (/ l ùo-:1.,
• h Kl~
-
, _ Dfb.lg lr.oet~· ) ~ldAtdwlo
AIOJIIO ITo or 'ro Mrl
Aldl.o110 NG or o1c1er
.&.rdu'110 Robot c~

'
-- • ArduiiiO llobol Motor

' AldAilro lh:l W6i


Esnv•.,
TTGO L~J2.(UOY1
lSPJ2 O...lllodiH

""'"""""'
lSI'J2 '111-loiOCU.
(SPl.Z P'~(!) ICi\
5piMUII ~ll tNng
~NINA-W\0- {ESnl)

~ Fig. 3
"""'ou Selezione della
lOUHDlZ""l
"""'""""u
Oon9Jfl'l T
ftfl Podort U
scheda.
.

61
!'.·:·~~-~-.~~-~.:.~:··~·.:·,;~~,,~ -;.-,~-o--.--- ~-.--.-,-~c--:---·-~·~.-.~;_"'·~~ -~-:; :-···:<. -.~!
....
....... . .
. . '

~
\ .
.
.\ .
.
.

'

! Fig. 4
uno script che permette di fare scaricare tutto
La EEPROM quello che ci serve dalla interfaccia IDE di Ardu-

sul modulo. 1no.
Assicuriamoci di avere l'ultima versione dell'l DE
di Ardui no, poi andiamo per prima cosa ad ag-
giungere il supporto al modulo ESP32. Per fare
ciò, dobbiamo aprire l'l DE di Arduino selezionare
dalla voce di menu File/Preferences ed aprire la
scheda visibile nella Fig. 2.
Inseriamo quindi il seguente URL https:/1
dl.espressifcom/dllpackage_ esp32_ index.json nel
box "Additional Boards Manager URL" e cliccare
su "OK".
numero di GPl O, ma la cosa più importante è la Riavviamo quindi L'l DE di Ardui no e se tutto è
presenza di due Core. filato liscio dovremmo trovare una serie di board
Un core è deputato alla gestione dello stack aggiuntive che usano il modulo ESP32. Dal
TCP-IP e l'altro dedicato alla gestione del nostro menu, selezioniamo la scheda desiderata come
Sketch; questo consente di avere maggiore visibile nella Fig. 3.
stabilità del codice. Mentre nel caso del chip Dovrete altresì caricare le librerie utilizzate nel
ESP8266 lo stesso core deve gestire sia la progetto. Per agevolarvi nel compito abbiamo
connessione TCP-IP che lo sketch dell'utente e inse rito nella cartella lib del repository Gih Hub,
non è raro il verificarsi di situazioni di stalla che un file .zip contenente tutte le librerie relative al
portano al blocco del codice o a dei malfunzio- Gateway: inserite solo quelle che non avete già
namenti. nella vostra cartella delle librerie Ardui no, perché
alcune potrebbero essere già presenti perché
UTILIZZARE L'ESP32 NELL'l DE ARDUI NO avete già compilato uno sketch relativo ai moduli
Per poter utilizzare i moduli ESP32 è necessario Antennino.
installare quella che viene chiamata la Toolchain: Riavviamo quindi L'l DE Ardui no, cosicché siamo
• un insieme di strumenti e librerie . pronti ad aprire lo sketch del Gateway, compilar-
Per agevolare l'utente è stato messo a punto lo e caricarlo sul Gateway.

- o x

~ Fig. 5 /wlOfooNI
~eSirw'.dl

Menu con le f it Ent:od'n9 &: ~


M~~~o~geUtrM~

quattro opzioni J l
t..~~
l' liUJ
SéNJ~

di memoria. • 11 lla;a
~Il ~~~

l 't·"·\H J
1 . 1 t~ Pt!!t~O'I~ "'ff.ult' - - - • Def~l

• ' ' :.t~ Cor. Oeo<.JQ l.tVti: 'Non( ""ÌI'I!INÌ a~JS flASl-1)
No OTA ~ API'J
~~ SP!FfS Il-ve APPS w1111 or~

Pr09f~I'Wl'l«: 'AVFJSP ~r )

&M'li 8ootlo.adet .,. l ' ' , , , ,,,l,llllf 11111 11 1 1111 l l


• " ' l
.
l

~ Fig. 6 •
••
·s

Massima
memoria •
l i H.l\~l '"'" "::'•u.c-"!"J · b"

disponibile
con t'opzione L
! & .t.1\~t~ • .. rtn.a r. •
di partizione .. # j,_! l!" l ~......
'••~l· ~
A.nS::d..::J) b •
•-r~ . h

"Default".

62

LA MEMORIA PER LO SKETCH Proviamo a selezionare l'opzione "default". Com- ~ Fig. 7
Il chip ESP32 è dotato di una memoria Flash pilando lo sketch vedremo (Fig. 6) che saranno Massima
esterna, visibile in figura (Fig. 3). Tale chip Flash, disponibili al massimo 1310720 Byte. Mentre memoria
disponibile
viene impiegato per memorizzare software, dati, in Fig. 7, selezionando l'opzione "No OTA (large
con l'opzione
parametri di configurazione ecc ... APP) avremo a disposizione 2097152 Byte. di partizione
Questa memoria esterna viene collegata al chip Scegliamo quindi questa opzione per il nostro "No OTA (Large
via bus SPI e può avere una dimensione massi- progetto. APP)".
- ma di 16Mb. Le altre opzioni sono: la velocità in di comunica-

Il modulo ufficiale Espressif (ESP-WROOM-32)
monta un chip da 4Mb. Normalmente non vedia-
mo i chip ESP32 e il modulo Flash perché sono PIN RFM69 ESP32 ~ Tabella 2
'
racchiusi all'interno di una schermatura me- Pin utilizzati per la
tallica che nella Fig. 4 è stata rimossa a scopo RST GPI04 "
comunicazione.
dimostrativo. NSS GPI05
Lo spazio di memoria complessivo del chip Flash
SCK GPI01B
viene partizionato in diverse parti, ognuna delle
quali ha uno scopo specifico . MIS O GPI019 •

Per vedere quali profili di partizione della Flash GPI023


MOSI
Memory esistono normalmente, apriamo il
• menu accessibile, dall'l DE di Arduino selezionia- IRQ GPI02
~====~ ~====~====~----~====~

mo, con i comandi Tools/ Partition Scheme.


In esso possiamo vedere che sono presenti
quattro opzioni, ognuna delle quali corrisponde PIN RTC ESP32
ad altrettanti utilizzi particolari ed ognuna mette SCL GPl022
~ Tabella 3
Pin dell'ATe
a disposizione un ammontare specifico di Me-
SDA GPI021 utilizzati.
moria Flash per il nostro sketch (Fig. 5).

'

3 t 1nclud~ ~Arduino h>


~ l inclui• i Pi .b
3. l 1nel~• <~SubClient . h>

3• t ~~elu~ , wlri~RAQ~r .h~

38 l i~el~ < .r~ .~~


3~ t 1~cludo ~tclib .b
4 f ~nclu~ <RtH~~ . h >

i_ * ·~lud~ •~ib . h ,
~' h .-.clud• ~cW.ino.7•on . h >
l i"cluA~ < ~~·~?n•i& . h~
• linc lucl~ M•truh_Gn< . h>
// f inelud• <Adaf rult_!SDllO,.h>

~ Fig. 8
Il messaggio
di log nella
finestra dei
report dell'ICE.

'
63
schema ELETTRICO

CONN1 JP1 JP2


01
,. ,.....
+"
"' >.f- ~
'"'
~
IN+
U2
OUT+
V+.n '"'
~

-" GNO"' TP1


"' IN- OUT- ,.......
"'
,,
+3V3
CONN2
3V3
;~3vaT u-.5~~~ >R3 R4 R1
>
R2 17 19
VIN 3V3 Q2 vcc vcc
17 ~ ::~~::
16(' ·~·
1039
1034 1016 -+~
• t1fr\ <
14
RX

15 \ .J35 1035 ~
12 U1
114( 1032 1017 - - - - - -
13 12
13 1033 ' - - - - - - - - - - - - - - ; TX
:::GPI025 l '
12 '1026 1025 - - - - - - - - - - - - - - - - - ON/OFF
+3V3 +3V3
11 '1027 1026
10 1027 ,J.;;8,20
"GPIOI4 U3
vcc

U4
ANT
CONN3 LC01
SCL
~ SOA - •
~ SDA SCL GND VCC GNO
>----- 1015 1022 ---.,
P1 1021 ---.,
~o • 'Ili.
'Ili•
•q GNO +3V3
RESET _L
,;,: 'fJ77. .
L...__ _ _ _ _ _____,.._ - - - - - - - - - - -

zione della porta seriale, la frequenza max del COME CARICARE LO SKETCH
bus SPI del chip Flash, la modalità del funziona- Per evitare prob lemi, prima di avviare il cari-
mento del chip Flash e la modali tà di debug. camento dello sketch dal la interfaccia l DE di
'

l ENl l GPI023 l l VSPI MOSI l


l RTC_GP100 Jl Sensor vP )!r:A-=oc==t--=c""Ho""')( GPl O36 l l GPI022 l ( 12C SCL l ~ Fig. 9
l RTC_GPI03 l( Sensor VN l[ ADCl CH3 )( GPI039 l l GPIOl l l UART OTX l Pin out del
l RTC_GP104 Jl ADCl CH6 )( GPI034 l ESP-WROOM-32 [ GPI0 3 l l UART O RX l Modulo ESP32.
( RTC_GPIOS j[ ADC1CH7 l l GPJ035 l [ GPI0 21 )[ 12C SDA l
( RTC. GP109 )[ TOUCH9. )[ ADCl CH4 )( GPI0 32 l l GPI0 19 l (VSPI MISO l
l RTC: GPIOS 'jf TOUCHS ) ( ADCl CHS )[ GPI033 l ( GPI0 18 l l VSPI CLK )
( RTC_GPIOG )[ DACl l[ ADC2 CHS )[ GPJ025 l ( GPIOS Jl VSPI CSO j
( RTC_GPI07 l( DAC2 li ADC2 CH9 l ( GPI0 26 l ( GPI0 17 )[ UART 2 TX l
( Rlt_GPI017 l( TOUCH7 )l ADC2 CH7 li GPI027 ) l GPI016 l ( UART 2 RX l '
( Rlt_GPI016 HHSPI CLK lf TOUCH6 11 ADC2CH6 ][ GPI014 l l GPI0 4 li ADC2 CHO ]lr=:: UC
T0:7. O"""') (
" "H:-::- Rlt_.GPIOlO l
l Rlt, GPIOlS )[ HSPI MISO H TOUCHS l[ ADC2 CHS )[ GPI012 l ( GPI0 2 }[ ADC2 CHl l( TOUCH2 )[ Rlt_GP1012 )

( RTt. GPI014 Il HSPI MOS! ]I TOUCH4 Jl ADC2 CH4 Jl GPJ013 l ( GPJOlS l[ ADC2 CH3 l[ TOUCH3 ] ( HSPI CSO ]l Rlt_GPI013 l

VII':

64

Arduino è necessario tenere pigiato il pulsante
"BOOT" che si trova alla destra del connettore
PIN GPRS
._"' ,-
ESP32 !! Tabella 4
TX "' 'i:
Pin dedicati al
. ,.. ,., GPI016
microUSB, potremo poi rilasciarlo quando ini- ····:o ·• modulo GPRSe
zierà ad apparire il messaggio di log presente in RX GPI017
Fig. 8. Se tutto procede in modo corretto al ter-
mine il modulo si resetterà e potremo testarne
il funzionamento aprendo la finestra della porta
seriale per verificare i messaggi di LOG. Alcuni e nella Tabella 2 riportiamo un riepilogo dei pin
messaggi importanti vengono riportati anche sul utilizzati per la comunicazione SPI.
display OLED. La comunicazione tra il modulo ESP32 ed il
2
modulo RTC avviene tramite il protocollo I C. In
MODULO GPRS Tabella 3 abbiamo un riepilogo dei pin impiegati,
Il Gateway potrebbe essere impiegato anche anche in questo caso sono stati utilizzati dei
in una installazione nella quale la connettività pin configurati in modo predefinito per svolgere
Wi-Fi non sia presente e per ovviare a questo questa funzionalità, ossia quelli deii'RTC.
abbiamo previsto di fornire connettività tramite L'esigenza di impiegare un modulo RTC è dovuta
un piccolo modulo GSM-GPRS. alla necessità da parte del Gateway di inviare
Il modulo che utilizzeremo monta il chip SIM800 pacchetti telemetrici verso Thingsboard che
che lavora nella banda di frequenze 1.800 M Hz, contengano un Timestamp corretto. Questo
1.900 M Hz, 850 M Hz, 900 M Hz ed ha una velo- non è necessario per sensori che comunicano
cità massima di trasferimento dati di 85,6 kbps. direttamente in MQTT con ThingsBoard. Sul sito
L'impiego del protocollo MQTT non richiede si trovano diversi tutorial che spiegano come •
grande larghezza di banda e quindi una con- implementarli.
nessione GPRS è più che sufficiente. Inoltre, È presente anche un piccolo display OLED che
2
attualmente sul mercato sono apparse numero- viene pilotato tramite protocollo 1 C e che quindi
se aziende che forniscono SIM specifiche per il condivide il Bus con il chip 8TC DS3231. Partico-
mondo IOT ed i prezzi sono molto interessanti. lare attenzione va posta alla pin-out del modulo
Per il momento lo abbiamo previsto a bordo del- OLED perché alcuni modelli che si trovano in
la scheda, poi nei prossimi numeri tratteremo un commercio hanno i pin di alimentazione invertita.
articolo specifico per il suo impiego nel Gateway. L'al imentazione a 3,3V per il modulo RFM69 e
Il modulo GPRS necessita di tensione di alimen- per il modulo RTC viene ricavata dal regolatore
tazione che deve essere nel range 3,4~4,4V DC a bordo del modulo ESP32 il quale a scopo di
con una corrente massima di 2A (nella fase di test può essere alimentato tramite il cavo USB
trasmissione), quindi abb iamo la necessità di ag- impiegato per caricare lo sketch Ardui no, mentre
giungere un modulo di alimentazione switching e per l'uso in produzione e soprattutto quando
dovremo prevedere anche un adattatore di livelli si impiega il modulo GPRS, sarà necessario
logici per la comunicazione seriale tra il ESP32 alimentarlo tramite un alimentatore esterno
ed il modulo GPRS in seguito alla discrepanza di collegato al connettore CONN1 (Tabella 4).
tensione di alimentazione e al fatto che il modu- Per la connessione dell'antenna del modulo
lo ESP32 non è 5V-tolerant. Il traslatore di livel li RFM69 abbiamo previsto un connettore U.FL
logici lo abbiamo implementato con la coppia di sulla scheda base, ovvero una piazzola alla quale
Mosfet N-Channel Q1, Q2 e i quattro resistori saldare uno spezzone di filo. Per quanto riguarda
R1,R2,R3,R4. il modulo ESP32, l'antenna per il WiFi è inte-
grata. È stato previsto un connettore di servizio
SCHEMA ELETTRICO CONN2 che permette di accedere ai pin GPIO
Diamo dunque uno sguardo allo schema elet- rimasti liberi e che quind i potrebbero essere utili
trico del Gateway, che è sostanzialmente quello per implementare delle funzionalità aggiuntive
della board che ospita tutti i moduli. La confi- del Gateway.
gurazione è molto semplice. La comunicazione
tra il modulo ESP32 ed RFM69 avviane tramite ALIMENTARE IL MODULO SIMBOO
il protocollo SPI utilizzando i pin preposti per Quando il gateway viene impiegato senza
questo protocollo sul modulo ESP32. modulo GPRS l'alimentazione può essere
In Fig. 9 vediamo la pin-out del modulo ESP32 fornita anche tramite un buon alimentatore da

65
' '

· IIII!IIIIII IIIIIIÌIIII IIIII l 11r1 lr lllllllflf!Ì I!III!IIII IIIIIIIIll ll'lllll t~ 11111111

5V con cavo micro-usb che .eroghi almeno 1A, l'esigenza di avere più di 253 dispositivi Anten-
da collegare direttamente al modulo ESP32. Il nino, dovrete modificare questo parametro e
regolatore lineare AMS117 a bordo si occuperà suddividere la rete in più network, ognuna con
di convertire la tensione nei 3,3V necessari al un proprio gateway dedicato visto che una rete
funzionamento del Gateway. Antennino {RFM69) può supportare su uno stes-
Quando invece viene impiegato il modulo GPRS, so NETWORKID al massimo 253 dispositivi.
dovremo utilizzare ad un alimentatore esterno L'altro Parametro, ENCRYPTKEY deve invece
di maggiore potenza da collegare al connetto- essere assolutamente modificato perché è la
re CONN1. In tal caso è tassativo utilizzare un chiave che serve a criptare la comunicazione tra
alimentatore di buona qualità, stabilizzato che i moduli Antennino ed il gateway. Attenzione,
eroghi una tensione massima di uscita di 12V che deve essere di 16 caratteri e deve essere
ed un corrente di almeno 2A. Questo perché la lo stesso su tutti i nodi della rete, Gateway
tensione viene appl icata al pin Vin del modulo compreso .
ESP32 che ha a bordo un regolato re AMS 117 -E stata implementata inoltre la funzionalità di
che sopporta al massimo una tensione di 15 V, sincronizzazione del RTC {053231 ). Per sincro-
e perché il modulo SIMBOO richiede dei picchi di nizzare il chip RTC è stata realizzata una libreria
corrente massima di 2A nelle fasi di trasmissio- che utilizza le API del servizio web https:l!time-
ne dati o aggancio alla cella. zonedb.com, questo è preferibile rispetto alla sin-
Inoltre, particolare attenzione va posta nella cronizzazione effettuata tramite un server NTP,
regolazione della tensione del modulo Switching perché quest'ultimo richiede l'apertura di po rte
U2: il modulo SIMBOO necessita di una tensione UDP e il codice è di difficile portabi lità ne l caso
massima di 4,4V. di util izzo del modulo GPRS. Per poter usufruire
Lasciamo quindi sulla scheda il solo regolatore del servizio, che è gratuito per un uso normale, è
U2, ponticelliamo il Jumper JP1, apriamo il Jum- necessario registrarsi ed ottenere una KEY.
per JP2, colleghiamo .l'alimentatore esterno {Max Nella configurazione esiste un parametro che
12V) al connettore CONN 1 e regoliamo il trimmer permette di specificare la frequenza di aggiorna-
a bordo del modulo f inché la tensione misurata mento del RTC tramite il server TimezonedB.
con un multi metro digitale sui pin di test TP1 Terminata la procedura di test è necessario set-
• {GND) e TP2 sia pari a 4.4 V. tare la variabile DEBUG MODE a false.
Per assicurarsi che non avvenga una modifica Il codice del Nostro Gateway contiene la gestio-
della regolazione potremmo anche sigillare il ne dei parametri di connessione WiFi e dei para-
trimmer con una goccia di si licone o ceralacca. A metri di connessione al server ThingsBoard e la
questo punto rimuoviamo l'alimentatore esterno, KEY per l'utilizzo del timeserver TimeZonedB. Il
chiudiamo il Jumper JP2, colleghiamo il modulo tutto viene implementato tramite la personaliz-
GPRS e ricolleghiamo l'alimentatore esterno. zazione del modulo WifiManager.
Il codice del Gateway si compone della solita
CARICAMENTO SKETCH
E CONFIGURAZIONE GATEWAY
l vari Sketch possono essere scaricati dal repo-
sitory Github https:llgithub.comlopen-electronics/
antenninolgatewav_ thingsboard, dove sarà ~ Listato 1
possibile scaricare anche le librerie utilizzate per #if(DEBUG_MODE)
il progetto. if (Serial.avai lable() > 0){
char input = Serial.read( );
Il codice del Gateway è stato suddiviso in tre file if (input == 'r') {
che devono trovarsi tutte nella stessa cartella. client.disco nnect();
}
C'è un file di configurazione User _config.h e due
if (input == 'p') {
file contenente codice RFM69 .i no e ThingsBo- print_device ();
ardGateway.ino }
if (input == 'c') {
Nel file di configurazione ci sono solo due para- clear_device();
metri che richiedono una modifica: NETWORKID }

}
e ENCRYPTKEY. #endif
NETWORKID in questo momento è settato su
1. Normalmente è corretto così, ma se avete

66
'
procedura Setup che viene eseguita una sola lità. Sul sito web di ThingsBoard sono presenti ·
volta in fase di Boot del dispositivo e di una degli esempi di controllo di Pin GPIO su semplici
procedura di Loop che viene ripetuta ciclicamen- dispostivi che non fanno uso di Gateway. Vi
te durante il funzionamento del Gateway. Nella invitiamo a sperimentare per capire in modo
procedura di Setup vengono inizializzate come di approfondito il funzionamento della tecnica
consueto la Porta Seriale, i Pin, ecc. quando non sia presente un Gateway, cosa che
Viene inoltre intercetta la pressione del pulsan- poi tornerà utile per capire le modifiche che sono
te P1 che serve ad resettare la configurazione state necessarie nella implementazione quando
del Gateway, viene inizializzato il RTC (DS3231) esiste un intermediario (Gateway) tra il modulo
le librerie per la connessione con TimezonedB, da controllare ed Th ingsBoard.
MQTT, RFM69. La pubblicazione di dati telemetrici verso
Una particolare attenzione va posta alla chiama- ThingsBoard avviene tramite la funzione Pub/i-
!"! Fig. 10
ta client.setCallback(MQTTtoRFM69); con la quale shTelemetryData. Da notare il formato particolare Impostazione
si istruisce il codice sulla procedura di CaiiBack che deve avere il payload Json da inviare: dei jumper.
relativa al Protocollo MQTT, in pratica quando il
gateway riceve un pacchetto MQTT in seguito ''{\''RFM69_1\'':[{\"ts\'':1483228800000,\''values\":{\"
alla ricezione di dati relativi ad una sottoscrizio- BAT\'':2.51,\''T\'':26.38,\''l\'':876.00}}]}''
ne ad un certo topi c, la gestione di questi dati
viene delegata alla procedura MQTTtoRFM69() RFM69 _ 1 rappresenta l'identificativo del dispo-
nella quale vengono estratte le informazioni sitivo che trasmette il dato, quindi si tratta del
contenut e nel formato JSON e intraprese le nodo RFM69 N o 1.
azioni conseguenti. 1483228800000 rappresenta il Timestamp
Nella procedura di Loop una cosa molto utile ricavato dal RTC. BAT è l'identificativo del para-
in fase di debug è la gestione di un carattere metro Batteria e 2.51 il suo valore letto tramite +
ricevuto dalla seri al e (Listato 1). In questo modo lettura analogia, T l'identificativo del parametro
è possibile impartire un comando particolare Temperatura e 26.38 il suo valo re letto tramite il
(richiamare una particolare procedura mentre il senso re a DS 18B20 bordo
Gateway sta funzionando a scopo di debug). L'identificativo del parametro Luminosità e
!"! Fig. 11
Nel Loop() viene verificato il fatto che il client 876.00 il suo valore letto tramite il sensore LDR Impostazione
MQTT sia connesso e nel caso in cui si perda la a bordo. jumper per la
connessione viene richiamato il metodo recon- All'indirizzo Internet https:llthingsboard.io/docs/ modalità Low
Power.
nect(); mentre, ciclicamente se la connessione è reference/gateway-mqtt-api si trovano informa-
attiva viene richiamato il metodo client.loop();. zioni dettagliate sulle API da usare.
Nella fase di loop viene anche intercettata la
pressione del pulsante P1. Tenendo premuto
questo pulsante viene resettata la configura-
zione WiFi del chip ESP32 e quindi è possibile
~· Listato 2
modificare i parametri di connessione. Nel
prossimo articolo vedremo nel dettaglio questa
configurazione. .;. .,

La funzione RFM69toMQTT inoltra i dati ricevuti


dai nodi Antennino da parte del Gateway verso
il server MQTT di Th ingsboard. Degna di nota
è anche la procedura PublishRPC_Response
che permette il funzionamento delle chiama-
te RPC (Remote Procedure Cali) con le quali è
possibile inviare dei comandi dalle Dashboard di
ThingsBoard verso un dispositivo Antennino e
ricevere un Feedback sull'avvenuta esecuzione
}
del comando. Questa particolarità è stata usata
token = strtok(NUEL, ";");
per controllare un il LED di bordo di Antenn ino . ·: _,.

·. }
da una Dashboard. Vedremo in seguito come si
implementa su ThingsBoard questa funziona-
CODICE NODO ANTENNINO- ATTUATORE modo che i vari moduli Antennino che andremo ad
Come ricordato precedentemente abbiamo modi- aggiungere alla nostra rete di sensori/attuatori ap-
ficato il codice ai Antennino per gestire l'invio dei piano tra i dispositivi presenti su ThingsBoard, non
dati telemetrici nel formato Json. Inoltre, per poter è necessario compiere alcuna azione: è sufficiente
sfruttare la possibilità di controllare dei Pin (RPC) mantenere alimentato il Gateway, alimentare i vari
di Antennino tramite la Dashboard di ThingsBoard nodi Antennino che vogliamo partecipino alla rete
è necessario che il modulo Antennino non vada in e i nodi appariranno "magicamente" sotto la voce
modalità LowPower. Quindi abbiamo configurato il Dispositivi su ThingsBoard con la dicitura RFM69 _ 1,
modulo per fare in modo che sia costantemente ali- RFM69 - 2 ... RFM69 - XXX.
mentato ed abbiamo modificato il codice per gestire Dove il numero XXX dopo il prefisso RFM69_ indica
le chiamate RCP. il numero del nodo che deve essere univoco un una
In Fig. 10 riportiamo la disposizione dei jumper che rete Antennino.
consente di ottenere la configurazione dell'alimen- Vi ricordiamo che la rete Antennino supporta la
tazione desiderata. In questo modulo usiamo la massimo 255 (253 considerando il gateway dati ed
modalità di alimentazione tramite le due batterie AA OTA) nodi possibili per ogni rete. Quindi benefice-
a bordo di Antennino disabilitando il timer TPL511 O. remo di quella che viene indicata come Automatic
La maggior parte del codice è rimasta invariata Provisionig o Deployement. Quindi appena uno dei
rispetto al codice già presentato dei nodi Antennino. nodi invierà un pacchetto di dati al Gateway (perché
Degno di nota è il blocco che si trova dentro illoop ricordiamoci che i nodi parlano direttamente con il
del Listato 2. In questo codice si intercettano i co- nostro Gateway) il Gateway provvederà a ridirigere i
mandi ricevuti dal Gateway conseguenti a richieste dati con il protocollo MOTI verso ThingsBoard.
originate dalla Dashboard e si prepara la costruzione
della risposta da rigirare al Gateway che a sua volta CONCLUSIONI
le ridirigerà a Thingsboard. Bene, per il momento concludiamo qui. Nell'articolo
Una cosa molto impqrtante è il valore del parametro successivo concluderemo affrontando l'installazio-
Request_ldil quale è inviato da ThingsBoard per ne e l'utilizzo di ThingsBoard nella creazione della
mantenere traccia della identità di una sequenza di Dashboard.
richieste e risposte tra il dispositivo ed ThingsBoard. Vi abbiamo introdotto la realizzazione del Gateway

In pratica se ThingsBoard invia un comando per il Antennino che ci permetterà di collegare la nostra
quale richiede una risposta, viene inserito il codice rete di dispositivi ad una Dashboard Thingsboard,
Request_ld che deve essere restituito dal nodo abbiamo illustrato le particolarità del Gateway ed
Antennino nella risposta verso ThingsBoard. Tutto abbiamo introdotto il protocollo MOTI e la Dashbo-
questo in conseguenza dell'asincronia tra chiamate ard loT ThingsBoard.
e risposte.

CODICE NODO ANTENNINO - LOWPOWER


In questo caso, cioè utilizzando la modalità lowpo-
wer, il modulo può andare in modalità basso consu-
mo e quindi non sarà possibile inviare dei comandi l componenti utilizzati per realizzare questo progetto
sono disponibili presso Futura Elettronica. La scheda
remoti allo stesso tramite la Dashboard. ' Antennino" (cod. ANTENNINO) è disponibile a Euro
1

Riportiamo in Fig. 11 la disposizione dei jumper 39,00, la scheda di sviluppo ESP 32 con WIFI e bluetooth
che consente di ottenere la configurazione per la (cod. YBSSS) è in vendita a Euro 13,50, la breakout board
modalità Low Power nativa del modulo Antennino con RFM69 (cod. RFM69BOUT) costa Euro 11 ,SO.
Il modulo cellulare miniaturizzato con SIMBOO
(senza TPL511 0). Il codice è molto simile a quello (cod. FT1308M) è acquistabile a Euro 29,00, il convertitore
del Nodo Actuator, a parte la gestione dei comandi DC/DC con uscita regolabile (cod. MODULODCDC) è
RPC ed la gestione della modalità Low Power. Per il disponibile a Euro 4,30, la breakout con 053231 ed
resto, vengono inviati verso ThingsBoard gli stessi EEPROM (cod. 053231 RTC) costa Euro 5,90 e il display
OLED 12C da 0,96" (cod. OLE0096C) si può acquistare a
dati di telemetria.
Euro 11 ,00. l prezzi si intendono IVA compresa.

AUTOMATIC PROVISIONIG Il materiale va richiesto ·a:


Una cosa interessante che riguarda il nostro
Gateway ed i nodi Antennino è quella che una Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - http://www.futurashop.it
volta aggiunto il dispositivo Gateway, per fare in

68


Full HD
1080

Full HD
1080
Full HD
1080

cod.FR713

cod. FR712
l l ·~
l

':)
':.) ':) J ..) J
Oscilloscopio 2 Canali 70 MHz ~~ Q
# •' 1 "Mi'<"

v Frequenza di campionamento fino a 1 GS/s o


v Funzione FFT integrata
v Software per analisi in COD. DS072
tempo reale con il PC r-.r- OJD
v Porta USB Host

Oscilloscopio 2 Canali 100 MHz Oscilloscopio a forma


con generatore di forme d'onda di penna -1 canale
coD. DSOFG 102 J l Q]) v Larghezza di banda 20 MHz
v Frequenza di campionamento ,; Frequenza di campionamento
fino a 1 GS/s 96 MSa/s
v Funzione FFT integrata v Tensione max IN 50V
~~ v Software per analisi e controllo v Funzione FFT integrata
in tempo reale con il PC V Software per analisi
v Porta USB Host l USB Device in tempo reale con PC COD. PS02020
v Alimentazione tramite porta USB
v Dimensioni 230 x 42 x 25 mm
v Peso 263 grammi


Oscilloscopio USB Generatore di funzioni e forme
per PC 2 Canali d'onda arbitrarie
20M Hz USCITA FORME D'ONDA ARBITRARIE
v Frequenza di campionamento
v Frequenza onda DC-25 MHz
v 1 canale COD. FAW1025G
48 MS/s v Frequenza di campionamento 200 MSa/s
v Funzione FFT integrata
v Risoluzione verticale 12 bit
v lnterfaccia USB 2.0 per PC
(alimentazione da USB) FREQUENZIMETRO
OJD ,; Software e memorizzazione v Frequenza fino a 50 MHz
con. DSOPC22 · delle forme d'onda v Impedenza d'ingresso
> 100 kohm
v Ampiezza segnale d'ingresso
da 400 mVpp a 18 Vpp

Analizzatore logico v 34 Canali


v Impedenza d'ingresso 200 Kohm
con 34 Canali v Tensione d'ingresso da -60 V a 60 V
500 Msa/S . v Frequenza di campionamento max. 500 MHz
v Larghezza di banda segnale d'ingresso max. 150 MHz
./ Ingresso compatibile TTL, LVTTL, CMOS, LVCOMS,
QlD ECL, PECL, EIA
COD. ANAlOG5034 v lnterfaccia porta USB
Prezzi r./A inclusa.
Futura Group srt
Via Adige, 11 • 21013 Gallarate (VAJ
Tel. 0331/799n5
Caratteristiche tecniche
e vendita on-line su: .futurashop.it
di FULVIO DE SANTIS

Basato sulla tecnica


005, genera segnali
i siamo lasciati, il mese scorso, dopo
analogici di frequenza aver descritto l'hardware del modulo
compresa fra ADF4351, cuore del nostro generatore.
Ora passiamo alla programmazione dei
35M Hz a 4 GHz.
registri, nonché alla configurazione e alla
Seconda puntata. programmazione deii'ADF4351, conclu-
dendo poi con la costruzione e il collaudo
del nostro strumento da laboratorio.
Vediamo, per ognuno dei sei registri, la composizione, la de-
scriz ione, come configurarli e la modalità di programmazione.

Il Registro RO
In questo registro a 32 bit i bit sono suddivisi in due sezioni:
quel la relativa al valore intero (INT VALUE) e quella corri-

71

'

Control Bits valore minimo del prescaler sarà 75.


(3, C2 C1 Register l 12 bit Phase Value, da 0815 a 0826, vengono
o o o Register O(RO) programmati per regolare da Oo a 360 o la fase
della frequenza in uscita rispetto alla frequenza
o o 1 Register 1 (R1)
di riferimento, con una risoluzione di fase pari
o 1 o Register 2 (R2)
a 360 ° /MOD. Il valore impostato nei 12 bit del
o 1 1 Register 3 (R3) Phase Value deve essere inferiore al valore del
1 o o Register 4 (R4) MOD. Nelle applicazioni dove non è importante
l o 1 Register 5 (R5) la relazione di fase tra la frequenza di uscita e la
frequenza di riferimento, il Phase Value può essere
utilizzato per ottimizzare il livello delle spurie cau-
!"! Tabella 1
spandente al valore frazionario (FRAC VALUE) che sate dal processo di divisione N-frazionale operato
Indirizzi concorrono alla divisione della frequenza fon- dal modulo divisore RF dei contatori-divisori. Nella
dei registri damentale generata dal VCO. l 16 bit da 0815 a modalità di divisione N-frazionale di un PLL, la fase
dell' ADF4351. 0830, impostano il valore intero (INT) della divisio- della frequenza di uscita può stabi lirsi con qualsiasi
ne. Si consideri che esso corrisponde ai contatori valore di offset dalla frequenza di riferimento in
prescaler a doppio modulo P/P+ 1 che abbiamo ingresso; per garantire la coerenza di fase fra le
visto nella sezione dei contatori della Fig. 6 due frequenze, nell'integrato ADF4351 è imple-
riportata nella 1/\ puntata, pertanto, considerando mentata la phase resync, la cui impostazione sarà
che il prescaler a doppio può essere del tipo 4/5 dettagliata nella descrizione del registro R3, in cui
oppure 8/ 9, il valore INT può essere programmato vedremo coinvolto anche il MOD. Se non viene
rispettivamente da 23 a 65.535 o da 75 a 65.535. utilizzata la phase resync, né l'ottimizzazione delle
112 bit da 083 a 0814, impostano il valore del spurie, il Phase Value sarà impostato a 1.
numeratore (FRAC) della frazione FRAC/MODULUS, Abbiamo visto che il phase value controlla la fase
che appare nella formula N = INT + FRAC/MOD per della frequenza di uscita rispetto a quella di riferi-
il calcolo del blocco divisorio totale della frequenza mento REFI N. Quindi, ricordando che la risoluzione,
del VCO. Questa formula corrisponde proprio alla o step, di fase è pari a 360° / MOD, effettuando una
N=8P+A ricavata analizzando lo schema del PLL, scansione del MOD, si realizza in corrispondenza lo
• giacché l'elemento N, presente in tutte e due le SWEEP di fase del segnale di uscita per un range di
formule, rappresenta il valore complessivo della 360 °. Se si vuole realizzare lo sweep di fase, l'AD
divisione, INT e 8P costituiscono la parte intera, consiglia di disabilitare la selezione di banda del
mentre, FRAC/M OD e A la parte azionaria della VCO impostando il bit 0828 a 1.
divisione. Quindi, abbiamo già un elemento di Il bit 0827 "Prescaler", posto a 1 seleziona il
programmazione che ci dà il valore della divisione doppio prescaler P/ P+ 1 a 4/ 5, oppure, con O, a
della frequenza di uscita del VCO retroazionata al 8/9. Nella progettazione di un'applicazione PLL va
PFD, garantendo la desiderata esatta frequenza di tenuto presente che si può impostare il prescaler a
uscita dal sintetizzatore e la spaziatura del canale. 4/5 se la massima frequenza all'uscita del VCO non
supera 3,6 GHz, mentre oltre si dovrà selezionare il
Il Registro R1 prescaler a 8/ 9, considerando che in questo caso il
Nel registro a 32 bit R1 troviamo gli altri due valore minimo del prescaler è 75.
elementi che devono essere programmati per il Il bit 0828 "Phase Adjust". L'impostazione del bit
completamento del valore N della divisione VCO/ 0828 a 1, abilita la caratteristica Phase Adjust dell'
PFD, ossia, MODULUS e PRESCALER. 112 bit MOD, ADF4351, che consente di effettuare la regolazio-
da 083 a 0814, impostano il valore del denomina- ne della fase della frequenza in uscita. Si consideri
tore della frazione FRAC/ MOD che, come abbiamo che la disabilitazione della selezione di banda
visto in precedenza, compare appunto nella formu- del VCO deve essere effettuata solo nel caso di
la N=INT+FRAC/MOD. Invece, il valore del prescaler applicazioni che prevedono una frequenza fissa di
a doppio modulo (P/P+ 1), ossia, 4/5 o 8/9, viene uscita, oppure nel caso di variazioni di frequenza
selezionato mediante il bit 0827. Occorre tenere inferiori a 1 MHz rispetto alla frequenza seleziona-
presente che selezionando il prescaler 4/5, la ta originariamente.
massima frequenza all'uscita del VCO è 3,6 GHz,
quindi per frequenze maggiori si dovrà selezionare Il Registro R2
il prescaler 8/9, considerando che in questo caso il Questo registro configura molte impostazioni

72
'
,~
- ~ l l l -
~
- =- "-- -
~
·_ ...._ ·_ • ' \_
~
. ,. -
~

= ~- -- '
·~
l • ' .• L
~ '~
' ~ .
~
• . 1 l l L • •-
F, ~ ~l=

t· ~
\ •• ' l . l l ,- ,_ ~- = ~ f ~ t ' t ~ Ll t_ 1 l . l l l
,-t==<~ f l ~- , ~- 1= ~
f lo
o - o - - :- ' 1 = o -- f ,> j= -o - 1= - ·- l i o - É· l 1 f f - ' "' = - - l l l__ 1- [l · = l l ,
- l l l • • ~ : - .- . t • • .-.' ~- .-- ~- f- - - L l ' • • ' l~- - F .- - b • • ' ~ • t ~ ~ t_ k ,- - ~ f ' 1t f ! ' t i' - - 1- t t l .- • l l ' l l - - f lo ; - l ~ ' l l •

deii'ADF4351 . l bit D830-D829 "Low Noise" e il doppio buffering dei bit da DB22 a DB20 "RF
"Low Spur" Modes, selezionano la prestazione del DIVIDER SELECT" del Registro 4. Quando viene
PLL per l'ottimale rumore di fase (lo w noise mode), abilitato il doppio buffering, dopo aver caricato
oppure per il minimo livello delle spurie (low spur un nuovo valore nei bit da 0822 a 0820, deve
mode). La m.odalità low spur mode viene utilizzata essere effettuata una nuova scrittura nel registro
nel caso in cui l'applicazione richieda rapidi agganci RO affinché il nuovo valore venga reso disponibile.
di fase, per ottenere i quali, vengono impiegati filtri Ciò garantisce la correttezza di caricamento dei
di lo op a larga banda, almeno superiore a 1/1 O dati. Se impostato a O il bit DB 13, il nuovo valore
della risoluzione di frequenza {o step di canale), che caricato è immediatamente disponibile senza la
come abbiamo visto, attenuano meno le spurie necessità di effettuare una nuova scrittu ra nel
rispetto ai filtri a banda stretta. Per una migliore registro RO. l seguenti registri sono normalmente
prestazione rispetto al rumore, è decisamente bufferati: Phase Value, Modulus Value {MOD), Re-
meglio selezionare la modalità low-noise mode ference Doubler, Reference Divide-By- 2, R Counter
che consente il miglior rapporto dbc/Hz del rumore Value, e Charge Pump Current Setti ng.
di fase. Per contro, si avrà un maggior livello delle l bit da DB 12 a DB9 "Charge Pump Current Setting':
spurie di cu i se ne dovrà valutare l'impatto nelle impostano il valore di corrente del CP. Il valore di
applicazioni in cui viene richiesta la minore interfe- corrente dovrebbe essere selezionato in funzione
renza in banda utile. del filtro di loop progettato.
l bit da 0828 a 0826 uMUXOUT", controllano Il bit DBB "Lock Oetect Function (LDF)': consente di
il multiplexer interno aii 'ADF4351. Mediante configurare la funzione lock detect {LDF). L'impo-
l'impostazione di questi 3 bit possiamo rilevare stazione di questo bit decide il numero di cicli di
dall'uscita MUXOUT lo stato di uno dei 6 parametri PFD monitorati dal circuito lock detect. Quando il

presenti agli ingressi del multiplexer. bit D88 è impostato a O, il numero di cicli mo-
L'uscita "N DIVIDER" del multiplexer deve essere nitorati è di 40, mentre se è 1, il numero di cicli
disabilitata per far funzionare correttamente la monitorati è 5. Se il sintetizzatore è impostato
selezione di banda del VCO. nella modalità frazionale-N, il bit DB8 deve essere
-
Il bit D825 "Reference Doubler': controlla l'abilita- settato a O; altrimenti a 1 per la modalità intero-N.
zione del duplicatore della frequenza di riferimen- Il bit D87 "Lock Detect Precision {LDP)': imposta
to della sorgente esterna REFI N. Occorre tener una finestra temporale di confronto nel circuito
presente che quando viene abilitato il duplicatore, lock detect. Settato a O, la finestra di confronto
la prestazione relativa al rumore di fase viene è di 1O ns, mentre settato a 1, la finest ra è di 6
influenzata dal duty-cycle della frequenza di riferi- ns. Il circuito lock detect va allivello alto quando il
mento REF,N. Se il duty cycle ha un valore al di fuori numero di cicli consecutivi del PFD, impostati dal
del range compreso fra il 45%e il 55%, può risultare bit D88 LDF, sono inferiori al valore della finestra di
degradato il rumore di fase fino a 5 db. Quando il confronto. Ad esempio, per D88 =O e D87 =O, 40
duplicatore è abilitato, la massima frequenza di cicli consecut ivi del PFD di 1O ns o meno, devono
riferimento REF 1Ndeii'ADF4351 è 30 MHz. avvenire prima che il circuito digitale lock detect
Il bit D824 "RDIV2': controlla l'abilitazione del vada allivello alto. Se il sintetizzatore è impostato
divisore per 2 posto fra il contatore Re il PFD. nella modalità frazionale-N, il bit D87 deve essere ~ Il modulo
con ADF4351.
Questo divisore, oltre a consentire di applicare la settato a O, mentre, per le applicazioni intero-N,
massima frequenza REF 1N, fornisce in uscita un
segnale con un preciso duty cycle al 50%. Quindi,
come abbiamo rilevato poco fa, la garanzia di un
esatto duty- cycle al 50%fornito dal divisore per
2, evita il degrado del rumore di fase, sopperendo
così ad eventuali asimmetrie della forma d'onda
della frequenza di riferimento generata da sorgenti
esterne.
l bit da D823 a D8 14 "R COUNTER': relativi al
contatore divisore R a 1O bit, consentono di divi-
dere da 1 a 1.023 volte la frequenza d'ingresso di
riferimento REF 1Ncostituente il clock del PFD.
Il bit D8 13 "Double Buffer" settat o a 1, abilita

73
'

deve essere impostati a 1. L'impostazione a Odi questo bit è raccomandata


Il bit 086 "Phase Detector Polarity': imposta la po- nel caso di applicazioni per basse frequenze del
larità del PFD. Quando viene utilizzato un filtro di PFD (minori di 125 kHz). Nel caso di applicazioni
loop passivo oppure attivo non-invertente, questo con alte frequenze di PFD, anche fino a 45 MHz, la
bit deve essere settato a 1; mentre, se viene im- selezione di banda del VCO è necessaria affinché
piegato un filtro attivo invertente, questo bit deve la corretta banda venga scelta per la pertinente
essere posto a O. Il bit 085 "Power-Oown (PD)': frequenza. In queste applicazioni è possibile se-
imposta la modalità programmabile di power- lezionare la modalità di alta banda VCO mediante
down. Programmato a 1, attua il power-down, l'impostazione a 1 del bit 0823. Nel caso in cui le
mentre se impostato a Oil sintetizzatore torna frequenze del PFD siano più alte di 45 MHz, viene
alla normale operatività. In power-down tutte le raccomandato di seguire i seguenti step:
informazioni vengono mantenute nel registro e si 1. programmare la frequenza voluta del VCO con
perdono solamente se viene disconnessa l'alimen- l'aggiustamento di fase disabilitato impostando a
tazione dal dispositivo. Il bit 084 "Charge Pump a Oil bit 0828 del registro 1;
Three-State'' settato a 1 imposta il CP nella mo- 2. dopo aver ottenuto la corretta frequenza, riabili-
dalità three-state (alta impedenza). Per le normali tare l'aggiustamento di fase impostando a a 1 il bit
operazioni questo bit va posto a O. 0828 del registro 1 (frequenze del PFD superiore
Il bit 083 "Counter Reset" funziona come bit di a 32 MHz sono consentite solo con applicazioni
reset dei contatori R e N deii'ADF4351. Quando intero-N);
settato a 1, i contatori R e N sono costantemente 3. impostare la larghezza dell'impulso di antibac-
resettati. Per le normali operazioni questo bit deve klash a 3 ns mediante l'impostazione a 1 del bit
essere settato a O. 0822.

Il Registro R3 Per selezionare la frequenza del PFD, program-


Il bit 0823 ''Band Select Clock Mode" impostato mare correttamente i valori della frequenza di
a 1, consente una più veloce sequenza logica di riferimento mediante il registro R e del registro di
selezione di banda del VCO, la quale è idonea per controreazione N. Utilizzando questa procedura è
alte frequenze del PFO (maggiori di 125 kHz) ed è possibile ottenere anche più bassi valori di rumore
inoltre necessaria nelle applicazioni che richiedono di fase in banda.
~ Fig. 1 ·
veloci agganci di fase. In questo caso, il valore del Il bit 0822 "Antibacklash Pulse Width (ABP)"
Sensibilità
Kv del VCO divisore di clock di selezione della banda del VCO imposta la larghezza dell'impulso di antibacklash
dell' ADF4351. deve essere minore o uguale a 254. del PFO. Quando questo bit è impostato a O, la
larghezza dell'impulso è di 6 ns, impostazione rac-
comandata nelle applicazioni in cui il sintetizzatore
viene utilizzato nella modalità frazionale-N. Impo-
stando il bit a 1, la larghezza dell'impulso è di 3 ns,
nelle applicazioni intero-N, questa è l'impostazione
ottimale per ottenere un basso rumore di fase e un
più basso livello delle spurie, ma non è consigliata
nel caso della modalità frazionale - N.
Il bit 0821 "Charge Cancelation" impostato a 1,
>
--
>
t- abilita la cancellazione delle cariche del CP. Ciò ha
effetto di ridurre le spurie generate dal PFD nelle
-cn
1-
applicazioni configurate nella modalità intero-N.
z
w Nella modalità frazionale-N questo bit dovrebbe
cn
o essere impostato a O. In pratica, non essendo
~ ideale, il CP degrada le prestazioni di un PLL. La
differenza del livello di corrente durante le attività
di carica e scarica del CP, produce un offset di fase
stazionario e l'incremento qellivello delle spurie
del PFO. Per la precisione, si genera un eccesso di
o----------------~--------------------------
2.0 2.5 3.0 3.5 4.0 4.5 cariche nella fase di carica della corrente rispetto
FREQUENCY (GHz) alla fase di scarica. Quindi, questo squilibrio di

74
- - --- = -

= ;: ~ cc-~~o:;,- - - --=-~== -- --- -- ;: - :=-

cariche provoca l'effetto deleterio su descritto a


cui si pone rimed io mediante appunto la Charge
___,n.__ !! Fig. 2
Filtro di loop.
CHARGE R2
Cancelation. -~.. vco
PUMPOUT
Il bit DB18 "CSR Enable" settato a 1, abilita lari-
duzione del "cycle sii p" (CSR). Quando la larghezza
di banda del filtro di loop è troppo stretta rapporta- C1~C2~ ~C3
ta alla frequenza del PFD, l'errore di fase all'ingres-
so del PFD si accumula talmente in fretta che il PLL
non riesce a correggere, al lora il CP eroga corrente lock timer/Frequenza-PFD.
con un verso tale da indurre la correzione di fase
nella direzione sbagliata, rallentando notevolmen- Il Registro R4
te l'aggancio di fase. Questo fenomeno deleterio è Passiamo alla composizione del registro R4 e la
chiamato appunto "cyde siip". L'integrato ADF4351 funzione dei vari bit che lo costitu iscono.
fortunatamente dispone di una caratteristica, Il bit DB23 "Feedback Select" seleziona la retro-
definita CSR, che una volta abilitata, consente di ri- azione dall'uscita del VCO al contatore N. Settato
durre il fenomeno. L'intervento della CSR permette a 1, il segnale di uscita dal VCO viene riportato
di impiegare filtri di loop a banda stretta compati- direttamente all'ingresso del contatore N. Quan-
bilmente con rapidi agganci di fase, consentendo do questo bit è impostato a O, il segnale viene
così di ottenere contemporaneamente anche la riportato al contatore N dall'uscita dei divisori RF. l
riduzione del livello delle spurie, altrimenti difficile divisori possono coprire una larghezza di banda da
da ottenere con filtri di loop a banda larga. 34.375 MHz a 4.4 GHz. l bit da D822 a D820 "RF
l bit da DB16 e DB15 "Ciock Divider Mode': confi- Divider Select" impostano lo il valore del divisore

gurano la modalità operativa del divisore di dock. del segnale RF di uscita dal VCO.
Devono essere impostati rispettivamente a 1-0 l bit da DB19 a DB12 "Band Select Clock Divider
per consentire l'attivazione della caratteristica Value" impostano un divisore del dock della logica
phase resync, il cui significato è stato trattato nella di selezione di banda del VCO. Questo dock per
descrizione dei bit Phase Value, da D8 15 a D826 default corrisponde al valore della frequenza in
del registro R1 . 1mpostando i bit D816 e DB15 a uscita dal registro divisore R, ma, se questo valore
0-1 viene invece attivata la funzionalità fast lock; è troppo alto, ossia maggiore di 125 kHz, può
settati a 0-0 disabilitano il divisore di dock. essere abilitato un divisore supplementare per
l bit da DB14 a 083 "12-Bit Clock Divider Value" dividere la frequenza all'uscita del contatore R per
impostano il valore del divisore del dock a 12 bit. valori più bassi.
Il valore di questo registro divisore corrisponde Nelle applicazioni in cui viene richiesta una più
al valore di timeout che attiva la funzione phase veloce modalità di selezione di banda del VCO, oc-
resync, come abbiamo già visto nella trattazione corre impostare a 1 il bit D823 "Band Select Clock
appunto della caratteristica phase resync a pro- Mode" del registro R3 per abilitare una più veloce
posito del registro R1. Inoltre, il valore del divisore sequenza logica di selezione di banda, unitamente
di dock imposta anche il timeout del Fast Lock all'impostazione del divisore di dock di R per valori
Timer. Infatti, quando viene utilizzata la modalità sino a 254.
"fast lock': deve essere caricato un valore nel timer Il bit DB11 "VCO Power-Down" settato a O, abilita
del PLL per determinare la durata della modalità l'alimentazione del VCO, mentre, impostato a 1
a banda larga. Il valore del timer è proprio quello disabilita alimentazione del VCO.
impostato con i 12 bit del divisore di clock. La Il bit OB10 "Mute Till Lock Detect (MTLD)" quan-
sequenza di programmazione per la modalità fast do impostato a 1, mediante la circuiteria digitale
lock è la seguente: dellock detect, allo stadio della RF di uscita viene
1. all'accensione del sintetizzatore, si avvia la interrotta la corrente di alimentazione finché il PLL
sequenza di inizializzazione secondo la sequenza non effettua l'aggancio di fase.
cronologica di scrittura dei registri; Il pin DB9 "AUX Output Select" configura la RF
2. si carica il registro R3 impostando i bit DB 16 e di uscita ausiliaria. Quando viene impostato a O,
0815 a 0-1 e il valore del timer della selezionata l'uscita RF ausiliaria è disponibile all'uscita RF dei
modalità fast lock mediante i bit da DB 14 a D83. divisori. Settato a 1, l'uscita RF ausiliaria corrispon-
Quindi, la durata di permanenza del PLL nella de alla frequenza fondamentale del VCO.
modalità a banda larga sarà uguale al rapporto fast Il bit DBB "AUX Output Enable" abilita o disabilita

75 '

~ Fig. 3
Applicazione
del filtro
A Vdd DV dd
di loop.
20 7
~--- ----L:::J--- --'

Vtune CPo t--- -------<
* C1 R1 R2 C3
36 .4pF 4.50k 9.19k * 16

v * C2 v
495pF
Supply
ADF4350t1
V+
5
9N !---
v
29
F out Rei in

Gnd VCO E PLL


3
MUXOUT
30 Ricordate che prima di procedere alla configurazio-
LE
2 ne dei registri è necessario impostare il VCO. Una
v Data
tensione di tuning all'ingresso del VCO per l'otte-
Reierence 1
Clock nimento del Massimo range di frequenze in usci-
25.0MHz 12
RF OutA+ ta, può creare una situazione di instabilità delloop,
22
R set 13 pertanto è preferibile avere una bassa sensibilità di
RF OutA- !---
Rset tuning, ovvero un basso fattore Kv, che così deter-
5.1 Ok
RF OutB+
14 mina un più basso rumore di fase della frequenza di
v 15 uscita del VCO.In questo modo si possono ottenere
RF Out B-
alti rapporti portante/rumore in dBc/Hz, anche per
basse frequenze di offset. Si consideri ad esempio,
· Gnd Gnd Gnd
che le specifiche GSM relativamente al rumore di
fase fuori banda, prevedono un rumore di fase di
vvv -130 dBc/Hz a 1-MHz di offset.
Il VCO deii'ADF4351, proprio per ottenere un am-

pio range di frequen ze in uscita con bassi valori di
sensibilità di tuning, è costituito da 3 sezioni VCO,
l'uscita RF ausiliaria. Quando questo bit è imposta- ognuna delle quali utilizza 16 bande di frequenza,
to a O, l'uscita RF ausi liaria è disabilitata, mentre, garantendo così un basso rumore di fase e del
viene abi litata ponendo il bit a 1. livello delle spurie (vedere grafico nella Fig. 9 della
l bit 087 e 086 "AUX Output Power", impostano prima puntata).
il valore del livello di potenza dell'uscita RF ausi lia- La Fig. 1 mostra l'andamento della sensibilità di
ria, da -4 dbm a +5 dbm. tuning Kv in funzione della frequenza fondamen-
Il bit 085 "RF Output Enable" abilita o disabilita tale di uscita del VCO. Nel grafico si può rilevare il
l'uscita RF primaria. Quando questo bit è imposta- valore medio della sensibilità Kv pari a 40 MHz/V.
to a O, l'uscita RF primaria è disabilitata, ment re, Volendo far funzionare il VCO per bassi valori del
viene abi litata ponendo il bit a 1. rumore di fase, conviene scegl iere il primo range
l bit 084 e 083 "Output Power"impostano il di frequenze fondamentali a cui corrisponde la più
valore del livello di potenza dell'uscita RF pri maria, bassa sensibilità di tuning.
da -4 dbm a +5 dbm. Un altro elemento esterno molto importante per il
funzionamento del PLL, è il filtro di loop: rappre-
Il Registro RS sentato nello schema di Fig. 2, è t ipicamente un
Vediamo infine la composizione del registro R5 e la integratore del terzo ord ine ed è interposto fra
funzione dei vari bit che lo costituiscono. l bit 0823 l'uscita del CP del PFD e l'ingresso del VCO.
e 0822 "Lock Detect Pin Operation", impostano la Praticamente, il filtro integra gli impulsi di corrente
modalità operativa del pin lock detect (LO). Un li- provenienti dal CP, fornendo in uscita una tensione
vello logico alto del pin lock detect indica l'avvenu - livellata per il controllo del tuning del VCO. Il polo
to aggancio di fase del PLL, ment re un livel lo basso costituito da R2-C3 effettua una extra attenua-
indica il mancato aggancio. zione delle spu rie provenienti dal PFD. La lar-

76
_ •

_ ·~
. "'
., •
~
~
.- .
_ •
,
.
.
• • • ,
l
, ~ - •
-
-
o ==
=' "' ·
. -
• • •
.
: • •
. . .- - , "' ,- 1- .
• . - • : io ~ ~- •
t
,
'
1

:


l
1
'
1
l


1 '
' i
r • [_
-=
·~ •=, ;
"' "' ' r • • ' ' .
1 i t t ' • ,
l '
l l ~
• '
1
t r=
r .c
-=- , F
'-
t - • ' '
t "' ,_ ! a. ' ~ ! .• t
l l ,l l tl la rl .t ~,. r~ l l l l

CLK !! Fig. 4
Temporizzazione
SPI di
trasferimento dei
dati in un registro.
DB2 DB1 OSO (LSB)
DATA DS31 (MSB) DB30 (CONTROL BIT C3) (CONTRO.l BIT C2) (CONTROL BIT C1}

LE

LE

ghezza di banda di questo filtro dovrebbe essere conferma di scrittura mediante una nuova scrittu-
teoricamente 1/1 Odella frequenza di riferimento ra sul registro RO. In pratica, per i parametri che si
all'ingresso del PFO. A una maggiore larghezza di vuoi programmare con la modalità doppio buffer, il
banda del filtro corrisponde un minore lock ti me, nuovo valore va scritto nel registro di destinazione •

ma anche un più alto livello delle spurie. In ogni e poi dev'essere effettuata una nuova scrittura sul
caso la larghezza di banda non deve superare 1/5 registro RO.
della frequenza di riferimento o si rischia l'instabi- l parametri interessati dalla possibilità del doppio
lità del PLL. Un virtuale raddoppio della larghezza buffer, sono Phase value, modulus value, refer- •
di banda del filtro può essere ottenuto raddop- ence doubler, refe re nce divide-by-2, R counter
piando la frequenza di riferimento del PFO o la value e charge pump current.
corrente generata dal CP. Anche il parametro "divider select value" presente
Nella Fig. 3 vedete lo schema di un'applicazione nel registro R4 può essere a doppio buffer, ma
del filtro di loop avente una banda di 200 kHz solo se il bit 0813 del registro R2 viene settato a
inserito fra il CP e il VCO deii'AOF4351. Lo schema 1. Quindi, ribadiamo, ogni volta che viene aggior-
è stato estratto da una simulazione di questo nato il valore di uno dei parametri a doppio buffer,
progetto real izzata con il tool AOisimPLL. deve essere scritto anche il registro RO. Questa
procedura garantisce che il dato da programmare
LA PROGRAMMAZIONE DEl REGISTRI venga caricato correttamente.
Visti i registri, non ci resta che spiegare come
programmar! i. Mediante l'interfaccia di comuni- L'INTERFACCIA SPI
cazione seriale SPI, i dati di configurazione dei 32 L'integrato AOF4351 dispone di un interfaccia se-
bit di ogni registro, vengono inseriti in uno shift riai e compatibile SPI che consente la scrittura nei
register deii'AOF4351 ad ogni fronte positivo del vari registri mediante l'invio di dati dall'interfaccia
clock per ogni bit, mentre il pin LE deii'AOF4351 SPI di un microcontrollore, che in questo progetto
viene mantenuto allivello basso. Nello shift regi- è il PIC 18F46K20 della Microchip. Nella Fig. 5
ster vengono caricati prima i bit più significativi viene mostrato lo schema di connessione delle
M58, poi i restanti. Il dato completo a 32 bit viene interfacce SPI AOF4351-PIC.
quindi trasferito dallo shift register ad uno dei 6 Come visto, quando il pin LE deii'AOF4351 va al
registri {individuato dai bit di controllo C3, C2, e C1, livello alto, dopo che i 32 bit sono stati registrati
corrispondenti ai 3 bit LS8 del registro: 082, 081,
e 080) sul fronte positivo applicato al pin LE.
18F46K20 ADF4351
La Fig. 4 propone le temporizzazioni del caso. !! Fig. 5
Ricordiamo che la Tabella 1 riporta i tre bit di SCLOCK
• CLK Connessioni
controllo, o indirizzamento, C3, C2, e C1 di ogni MOSI
• DATA SPI PIC-
AOF4351.
registro. Nella programmazione dei registri si deve
tener conto anche che alcuni parametri possono
f"
• LE
1/0 PORTS -c
• CE
essere a doppio buffer, ovvero, per essere scritti
nel registro non basta la sequenza delle opera-
" -- MUXOUT
(LOCK DETEcn

zioni su descritte, ma, oltre a questa, necessita la

'
77
• •

dalla scansione del clock con LE mantenuto a


MODE CPOL CKP CPHA CKE
o o o
livello basso, essi vengono trasferiti nel registro di 1 o l 1
destinazione. Il trasferimento avviene mediante 2 1 l o l
il controllo dei pin CLK, DATA e LE deii'ADF4351, 3 1 1
controllati rispettivamente dai pin del PIC, SCLOCK.
MOSI e da una delle porte 1/0 digitali. Altre due !'! Tabella 2 • Modalità del clock SPI.
porte 1/0 digitali del PIC possono essere utilizzate
per controllare il pin d'ingresso CE e il pin di uscita
MUXOUT deii'ADF4351. Il pin CE attiva lo spegni- deve tener conto, nella definizione standard, della
mento dell'alimentazione (power down) dell'int e- polarità, denominata CPOL, e della fase, denomi-
grato, mentre il pin MUXOUT rende disponibile una nata CPHA, i cui rispettivi valori possono essere
delle selezionabili informazioni di funzionamento specificati O o 1, in funzione del modo utilizzato.
del sintetizzatore. Infatti, come indicato nella Tabella 2, sono previsti
Nello schema di Fig. 6, l'uscita MUXOUT. ad esem- 4 possibili modi di configurazione di polarità e fase
pio, è configurata per rendere disponibile alla porta del clock.
1/0 del PIC. lo stato della funzionalità lock detect. Per polarità CPOL del clock, si intende la defini-
Il PIC deve essere configurato in modalità Master zione degli stati di attivo e inattivo del periodo di
con i bit CKE del registro SSPSTAT e CKP del clock, ovvero, se per attivo deve configurarsi un

registro SSPCON 1 impostati rispettivamente a O livello alto o basso del clock, così, di conseguenza,
e a 1, in quanto I'ADF4351 richiede l'impostazione per lo stato inattivo. Ad esempio, se CPOL=O, lo
CPHA=O per il clock, ossia, il campionamento del stato inattivo è allivello logico basso; vice\Jersa, se
dato di ogni bit avviene in corrispondenza della CPOL= 1, lo stato inattivo deve intendersi allivello
transizione dallo stato di riposo (idle) allo stato at- alto. Per fase CPHA del clock, si intende la moda-
tivo del clock. Riguardo al parametro CKP, contra- lità di transizione dallo stato di inattivo ad attivo
riamente a quanto descritto nella Fig. 4, la polarità o viceversa, in corrispondenza del quale avviene il
del clock deve essere impostata con il clock di campionamento di ogni bit. In pratica, se ad esem-
livello alto nello stato di riposo. Qui occorre fare pio, CPOL=O e CPHA=O, il bit viene campionato
un piccolo richiamo alla teoria del protocollo di co- in corrispondenza della transizione dell'impulso
• municazione seriale SPI. L:impostazione dell'inter- di clock dallo stato di inattivo allo stato di attivo,
faccia seriale dei dispositivi coinvolti nello scambio ossia, dal livello basso allivello alto.
~ Fig. 6 dati, deve essere configurata in base alla modalità La Fig. 7 mostra i vari diagrammi di temporizza-
Schema di operativa del clocl< desiderata, o meglio, compa- zione SPI relativi al campionamento dei bit per
principio dei
multiplexer. tibile per ambedue i dispositivi. L: impostazione ognuna delle quattro modalità del clock. Nella
della modalità del clock di campionamento dei bit, stessa Fig. 7, i bit CKP e CKE, configurabili nei
rispettivi registri SSPCON 1 e SSPSTAT del PIC,
corrispondono rispettivamente a CPOL e CPHA
della Tabella 2. Si noti che nel primo andamento
DVoo
degli impulsi di clock (il clock generato dal PIC è
disponibile al pin di uscita SCK) è impostata la
modalità O del clock, la più diffusa delle 4. Nel
THREE-STATE OUTPUT
caso di questo progetto, i bit CKE e CKP sono
DVoo settati rispettivamente a Oe a 1, corrispondente
DGND alla modalità 2, ovvero il campionamento di ogni
bit avviene sul fronte di discesa del clock, come
R COUNTER OUTPUT CONTRO L
MUX
.... MUXOUT effettivamente richiede la specifica SPI di modalità
N DIVIDER OUTPUT
del clock deii'ADF4351.
ANALOG LOCK DETECT Una volta effettuate le configurazioni SPI del PIC,
DIGITAL LOCK DETECT può avviarsi la sequenza di inizializzazione. Il pin
RESERVED
d'ingresso CE deve trovarsi già allivello logico
..... alto. Prima di iniziare il trasferimento dei dati, il
pin LE deve essere settato a livello basso. Quindi,
DGND viene avviata la scrittura dei 32 bit nei registri
deii'ADF4351 mediante invio dal PIC di quatro •

78

gruppi di 8 bit verso l'interfaccia seriale dell'inte- segnale di caratteristiche e frequenza desiderato.
grato, trasferendo prima i bit più significativi MSB, Per ottenere ciò, tutto quello che dobbiamo fare
poi i restanti LSB, compresi i tre bit di controllo. è di configurare ognuno dei sei registri in fun-
Completata la scrittura del quarto byte, il pin d'in- zione dei parametri che dovremo considerare ed
gresso LE deve essere riportato allivello alto per inserire, in linea con la definizione del le specifiche
completare il trasferimento. L'ordine di scrittura richieste. Abbiamo visto nel corso della descrizio-
dei 6 registri deve sempre seguire l'ordine R5, R4, ne delle varie funzionalità offerte dall'integrato
R3, R2, R1, infine RO. Affinché l'uscita del sintetiz- ADF4351, che per avere il massimo di prestazione
zatore sia attiva, il software deve quindi prevedere dal sintetizzatore occorre fare dei compromessi.
che all'accensione avvenga il processo di scrittura Se vogliamo un segnale di uscita con un basso
secondo l'ordine cronologico su specificato. rumore di fase, ci aspettiamo purtroppo anche un
relativamente alto livello di spurie. Oppure, se ci
LA CONFIGURAZIONE DEl REGISTRI occorre un segnale pulito, con bassi livelli di spurie,
Chiarita la modalità di programmazione dei registri dobbiamo tenerci un rumore di fase più alto.
!! Fig. 7
Temporizzazione
deii'ADF4351, entriamo nel vivo del progetto Quindi, se vogliamo ottenere dal sintetizzatore un SPI nei 4 modi del
del sintetizzatore, il cui obiettivo è ottenere un segnale di uscita con basso rumore di fase, oppure clock.

Write to
SSPBUF

• SCK •

(CKP = o
CKE = o) l

SCK
(CKP = l .
l
CKE = o)
4 Clock
SCK Mod es
(CKP = o l
CKE = l)

SCK
(CKP = l l
CKE = l)

SDO bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit o


(CKE = o)

SDO bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit o


(CKE = l)

SOl
(SMP = 0)
- -----'-<1
l
< ) ll <,___,) ll < ) ll <'------') ll <.___,) ll <.___,) ll <.___,) ll < ) ,__
bit 7
l _
l bit O

lnput l l l l l l l l
Sample
(SMP = O)
SOl
(SMP = l)
"
/
/
'\.
/
'\.
'\
/
/
'\. "
/
/
'\.
'\
/
/
'\.
'\
/
/
l
"
l bit 7 bit• O

lnput l
Sample
(SMP = l)
SSPIF
Next 04 Cycle
SSPSR to _.___ after Q2J.
SSPBUF -------------- ----- -- - - - - -- - - -- - - - - - - -- - - - - -- - - - - - - - - - - - - --

-

- 79


'

- - -~ ~='"'- -- - - =
--=co--- -- -

~·-- - -
--- - o

con basso livello di spurie, in funzione dell'uso che • l NT corrisponde al prescaler contatore P/ P+1,
vogliamo farne in una certa applicazione, dobbia- configurabile nella versione 4/5, per valori da
mo programmare il sintetizzatore, non solo per il 23 a 65.535, oppure, 8/ 9, per valori da 75 a
valore della frequenza, ma anche per le caratteri- 65.535. Quindi, INT costituisce la parte intera
stiche qualitative del segnale. del complessivo blocco divisore N, il cui valore
viene impostato mediante i 16 bit INTEGER
LA PROGRAMMAZIONE DELL'ADF4351 VALUE del registro RO.
Il funzionamento del sistema PLL-VCO interno • FRACè il numeratore della frazione, il cui
aii'ADF4351 per la generazione di segnali di fre- valore ammesso, impostato mediante i 12 bit
quenza e caratteristiche desiderate, viene gestito FRACTIONAL VALUE del registro RO, va da Oa
mediante la programmazione di 6 registri, RO, R1, (MOD - 1). Come vedremo più avanti, esso può
R2, R3, R4 e RS, attivata mediante scrittura dei ri- essere considerato come moltiplicatore della
spettivi bit di controllo, come indicato nella Tabella risoluzione frequenza del sintetizzatore.
1. La Fig. 8 rappresenta il blocco divisore RF, ossia, • MOD, denominatore della frazione FRAC/M OD,
la sezione digitale dei contatori che effettua la di- è il modulo di preset del valore frazionale, il cui
visione della frequen za di uscita dal VCO riportata valore, impostato mediante i 12 bit MODU-
al PFD. Questo schema si relaziona ai registri di LUS VALUE del registro R1, và da 2 a 4095. In
programmazione che determinano il complessivo pratica, come spiegheremo in seguito, il valore
valore della divisione N, inteso come somma della del MOD determina la risoluzione di frequenza,
parte intera e frazionaria. Infatti, i registri interes- o canale, del sintetizzatore.
sati, RO e R1, dovranno essere programmati per • FPFD è la frequenza di riferimento all'ingresso
fornire ai vari moduli contatori, il valore intero nel del PFD. Il valore della FPFD viene determinato
registro a 16 bit INT VALUE, frazionario nei registri mediante la formula seguente:
a 12 bit FRACTIONAL VALUE e MODULUS VALUE.
FPFD = REFIN x [(1 + 0)/(R x (1 +T))]

LA MODALITA DI DIVISIONE FRAZIONALE- N
La modalità di divisione frazionale-N della fre- In questa formula:
quenza di uscita dal VCO, mediante l'impostazione • REFIN è la frequenza di riferimento della sor-
• dei parametri INT, FRAC, MOD, unitamente al con- gente esterna;
tatore divisore R, consente di generare frequenze • D è il valore del duplicatore della frequenza
in uscita spaziate in frazioni della frequenza di di riferimento della sorgente esterna REFI N;
riferimento applicata all'ingresso del PFD. può essere abilitato (REFI N x 2). o disabilitato,
La frequenza RFour all'uscita del VCO è: ponendo il bit 0825 del registro R2 rispettiva-
mente a 1 o a O;
~ Fig. 8
Sezione digitale RFOUT =FPFD x [INT + (FRAC/ MOD)] • R è il contatore divisore programmabile della
program mabile frequenza di riferimento REFI N da applicare al
del divisore N. Definiamo gli elementi di questa formula. PFD, il cui valore, impostato mediante i 1O bit
R COUNTER VALUE del registro R2, và da 1 a
1.023;
• T è il valore del divisore per 2 della frequenza di
RF N DIVIDER N = INT + FRAC/MOD
riferimento REFI N; può essere abilitato (REFI N
FRO M
VCOOUTPUTI : 2), o disabilitato, ponendo il bit 0824 del
OUTPUT DIVIDERs TO PFD
registro R2 rispettivamente a 1 o a O.
- N COUNTER .

! THIRD-ORDER
FRACTIONAL

Riprendendo la formula per il calcolo della fre-

'+'~
' /
INTERPO LATOR quenza di uscita del sintetizzatore, RFOUT = FPm
x [INT + (FRAC/MOD)]. vediamo come calcolare la

INT FRAC

MOD
risoluzione di frequenza (canale), ossia, il minimo
valore di spaziatura di frequenza fra una fre-
VALUE VALUE VALUE
"(
l
z
l
~
l ~ ~
quenza e l'altra. Possiamo riscrivere la formula di
RFOUT suddividendola in due parti:

RFOUT = (F PFD x INT) + FPFD x (FRAC/MOD).

80
- = - = =- ~ ~ - - ~ - - - - _-

Abbiamo così evidenziato la distinzione fra parte divisore N.


intera e frazionaria della RFOUT. Prendiamo ora in Nelle applicazioni intero-N, la massima frequenza
considerazione la parte frazionaria della formula, applicabile al PFD è di 90 MHz.
ovvero, FPFo x (FRAC/M OD). Se ipotizziamo che Il modulo divisore x2 posto all'uscita del contatore
il valore del·numeratore FRAC sia 1, otterremo il divisore R, oltre a dividere per 2 la frequenza del
valore frazionario minimo di frequenza pari a segnale entrante, ha anche la peculiarità di garan-
tire all'ingresso del PFD un esatto duty cycle del
FPFD l MOD. 50%. Ciò contribuisce alla corretta funzionalità di
riduzione del cycle slip (CSR), descritto preceden-
Ebbene, questo rapporto corrisponde proprio temente nella sezione relativa alla realizzazione di
alla risoluzione di frequenza del sintetizzatore più rapidi tempi di aggancio di fase.
FRES' cioè, come abbiamo più volte detto, lo spazio
minimo di frequenza fra una frequenza di uscita e Il modulo programmabile a 12 bit (MOD)
l'altra. Traducendo ciò in formula, abbiamo: Abbiamo visto nel paragrafo precedente, che il pa-
rametro MOD determina la risoluzione di frequen-
FRES = FPFD l MOD. za in base alla frequenza di riferimento applicata al
• PFD. Rispetto a molti altri PLL operanti in modalità
Una volta stabilita la risoluzione di frequenza, frazionale-N, l' ADF4351 consente all'utilizzatore
viene da sé che il valore del numeratore FRAC di programmare il registro del MOD oltre il suo
del rapporto FRAC/M OD, è il moltiplicatore della mero utilizzo. Infatti, la combinazione del modulo
risoluzione di frequenza che determina il valore duplicatore della frequenza di riferimento con il
frazionario da aggiungere alla parte intera per contatore R, anche in applicazioni in cui necessita •
costituire il valore finale della RFOUT. modificare la risoluzione di frequenza, è possibile
.. Nella modalità frazionale-N, il bit 088 (LDF) del ad esempio, raddoppiare la frequenza all'ingres-
registro R2 deve essere impostato a O, come so del PFD mediante il duplicatore, o ridurre la
già specificato durante la descrizione dei bit del frequenza mediante il contatore R, oppure, può
registro R2. garantire la stessa frequenza di riferimento all'in-
.. gresso del PFD riprogrammando il registro MOD
LA MODALITA DI DIVISIONE INTERO-N per le diverse risoluzioni. In quest'ultimo caso, ciò
Impostando FRAC a O nel sintetizzatore viene è importante, in quanto non necessita progettare
configurata la modalità intero-N. nelle applicazio- filtri di loop per le diverse configurazioni, evitando
ni basate sulla modalità intero-N , la frequenza di così rischio di generare problemi di stabilità del
uscita è determinata dall'impostazione del para- sistema.
metro INT che come già visto, costituisce la parte
intera del blocco divisore N, il cui valore viene Il prescaler a doppio modulo P/P+ 1
impostato mediante i 16 bit INTEGER VALUE del Nella scelta del prescaler a doppio modulo (P/P
registro RO. Quindi, RFoUT= FPFo x N. La risoluzione
+ 1), ossia, 4/5 o 819, come specificato nella
di frequenza corrisponde alla frequenza all'ingres-descrizione del registro R1, occorre qui ribadire
so del PH D, ovvero, FREs = FPFo' che selezionando il prescaler 4/5, la massima
In questa modalità il bit 088 (LDF) del registro R2frequenza all'uscita del VCO è 3,6 GHz, quindi, per
deve essere impostato a 1. frequenze maggiori si dovrà selezionare il presca-
- ler 8/9, considerando che in questo caso il valore
l moduli duplicatore e divisore per 2 minimo del prescaler sarà 75.
Il modulo duplicatore consente il raddoppio della Nella selezione della corrente del CP occorre tener
• frequenza di riferimento della sorgente esterna. Il presente che più alta è la corrente più basso sarà
raddoppio della frequenza all'ingresso del PFD ha il rumore di fase, ma a fronte di un più alto valore
l'effetto di migliorare di circa 3 d8 le prestazioni dei condensatori del filtro di loop. Comunque, con-
del sintetizzatore relativamente al rumore. Occor- siderando costante la larghezza di banda delloop,
re comunque considerare che nelle applicazioni in la scelta della corrente non influisce sul tempo di
cui si utilizza la modalità frazionale-N, la massima aggancio di fase.
frequenza applicabile al PFD è di 32 MHz, a causa Nel progetto del sintetizzatore bisogna considera-
della limitazione della velocità di elaborazione re che un grande range di frequenze di uscita im-
della sezione digitale dei contatori del blocco plica conseguenti ampie variazioni della sensibilità

'
81
piano di MONTAGGIO
=~~ " - _ --~ -~-~ co-- co

- - - -

1 00

LCOl

RS~ 1

P1 P3 P4

@] @] @]
RIGHT
WXJE LEFT
r::T es
) G ) ~ 01

l
U3

es ( C3 c ) C6
SW1

Cl
R12 ~ ( ) 01 C C2 R15

R2 -cJ- --[§]-- R11

,o R5 -cJ- -cJ- ~ R3

;B 0
o w Rl CN2 1
r::-:1
MI

~
ooooo
~~
o -----==!

8 '2RESE T
ooooo
o


CN1

o o

o o o
Elenco Componenti:

R1: 100 kohm R12: 10 kohm CS: 330 nF 50 VL poliestere P2: Microswitch
R2: 10 kohm R13: 3,3 kohm C6: 100 nF ceramico P3: Microswitch
R3: 10 kohm R14: 3,3 kohm C7: 47 nF 50 VL poliestere P4: Microswitch
R4: 10 kohm R15: 3,3 kohm CB: 47 nF 50 VL poliestere RSW1: Encoder rotativo
RS: 10 kohm R16: 10 kohm D1: 1N4001
R6: 10 kohm R17: 10 kohm 01: Quarzo 4 MHz Varie:
R7: 10 kohm RV1: Trimmer 10 kohm SW1: Deviatore a slitta - Strip maschio 6 vie
R8: 10 kohm C1: 22 pF ceramico U1: PIC18F46K20-I/P (MF1411) - Strip maschio 2x5 vie
R9: 1 kohm C2: 22 pF ceramico U2: Modulo ADF4351 - Morsetto 3 vie passo 2.54mm
R10: 1 kohm C3: 10 nF 50 VL poliestere U3: 7805 - Circuuito stampato 51411
R11 : 1 kohm C4: 100 JlF 35 VL elettrolitico P1: Microswitch (17x8 cm)

82

Kv di tuning del VCO e del blocco divisore comples- !! Fig. 9


sivo N. Ne consegue, che la larghezza di banda di Densità Spettrale
loop varia con la frequenza. Per compensare le del rumore in un
10k regolatore LDO.
variazioni di Kv del VCO e di N, è possibile ricorrere
a modificare la corrente del CP programmando i
bit appositi del registro R2.
otJ) 100
Per ottimizzare la prestazione del sintetizzatore in z
merito al rumore di fase, è importante considerare 10
il requisito dello slew rate della frequenza di rife-
1
rimento all'ingresso del PLL. Questo per garantire
che il Jitter, e quindi il rumore di fase, sia minimiz- o.'f "'-iooo.-.......;~...;...;.,;.;.--....................................-...............,;,;,;,;,;--......-.......----...........
0.1 1 10 100 1 10 100k 1M
zato all'ingresso del blocco divisore della frequen- FREOUENCY (Hz)
za di riferimento. La forma d'onda della sorgente
di riferimento va bene finché la relativa ampiezza
soddisfa il requisito dello slew-rate. La situazione componenti in ordine di altezza: prima i diodi e le
può diventare problematica nel caso di più basse resistenze, zoccoli, condensatori, pulsanti, switch,
frequenze di riferimento in cui l'onda quadra della quarzo, morsettiera, connettori. Riguardo il display,
sorgente fornisce un più alto slew rate. Occorre saldate una fila di strip a 16 pin femmina sul PCB
quindi accertarsi che il fronte di salita dell'onda e una fila di strip a 16 pin maschio sul display,
della frequenza di riferimento non sia troppo dopodiché inserite il display LCD posizionando lo
rapido o troppo grande in ampiezza in quanto ciò sui 4 distanziali e bloccandolo con le viti. Inserite
provocherebbe la generazione di elevati picchi di il PIC nello zoccolo rispettando la numerazione •
frequenze spurie. dei pin. Infine, saldate l'encoder. Completato il
• Non minore attenzione è necessaria nella scelta montaggio della scheda, occorre collegare due
del sistema di alimentazione di un sintetizza- conduttori di alimentazione fra il modulo RF e la
tore PLL-VCO basato. Infatti, anche impiegando scheda, saldando prima le estremità alle piazzole +
convertitori DC-DC e regolatori di tensione LDO a e- lato piste del connettore DC IN del modulo RF,
basso rumore, è possibile l'insorgenza di rumo- inserite poi le altre estremità dei due conduttori
.. re. Nella Fig. 9 viene rappresentata la densità nei rispettivi morsetti + e - della morsettiera M 1,
Spettrale del rumore in funzione della frequenza come indicato dalla seri grafia del PCB della scheda
in un regolatore LDO. È possibile notare l'anda- principale e come descritto con la nota inserita
mento della densità di rumore aumentare con nello schema elettrico del generatore. Dispone-
condensatori di bypass di 1~F rispetto a 1m F. Il te ora il modulo RF nella sede prevista secondo
rumore generato dal sistema di alimentazione l'orientamento mostrato nel PCB, bloccandolo con
può influenzare il corretto funzionamento di parti le rispettive viti sui 4 distanziali. Collegate il cavo
del PLL sensibili al rumore e al VCO relativamen- piatto 2 file x 5 vie al connettore del modulo RF e
te alle correnti di controllo del tuning. Di qui la al connettore CN2 della scheda.
necessità di un'accurata selezione dei dispositivi di L'alimentazione per lo strumento viene prelevata
alimentazione e la corretta progettazione del PCB dal jack DC IN del modulo RF ADF 4351; infatti, i
.. relativamente alla separazione dei collegamenti di contatti positivo e negativo del jack DC IN, colle-
• massa analogici e digitali. gati alla morsettiera M 1, inviano l'alimentazione
Nei grafico riportato nella Fig. 10 viene mostrato al regolato re U3 LM7805 che fornisce i +5V alla
l'andamento spettrale del segnale per una fre- restante circuiteria della scheda. Il carico sul jack
quenza di 1OOMHz all'uscita RF OUT+su un carico del modulo è ammissibile perché si tratta di un
r di 50 ohm, con l'uscita OUT- terminata su 50 ohm. assorbimento che, sommato a quello dello stesso
U2, è tranquillamente sopportato dal jack DC.
REALIZZAZIONE PRATICA
, Per preparare il circuito stampato potete COLLAUDO E UTILIZZO DELLO STRUMENTO
scaricare le tracce lato rame dal nostro sito Collegate lo spinotto di un alimentatore esterno
www.elettronicain.it. Per il montaggio dei compo- con tensione di uscita da 7V a 12V, al connettore
nenti consigliamo un buon saldatore o, meglio DC IN del modulo RF e accendete lo strumento
ancora, una stazione saldante con sal datore a agendo sullo switch SW1. Regolate il trimmer RV1
punta sottile. Procedete con il montaggio dei per l'ottimale visualizzazione del display. Il display

'
83
'

~ ~ !~;~: i - .~ - - ' .- - ~ ~ l1 ' Il = - ' ' ' ' . -- ' . J - -~ ·! ~ 1 ~ ~! ·~ - . - .' .


- = + ' ,_ - - - - •

generatore l'ingresso dell'analizzatore di spettro


terminato su un carico SMA 50 oh m mediante un
connettore a T SMA. Collegate l'altro connettore
SMA di uscita dello strumento direttamente su un
carico SMA 50 ohm, oppure, se ne disponete, a un
frequenzimetro. Selezionate con l'encoder la fre-
quenza desiderata da valutare alle varie potenze
di uscita disponibili. Impostate l'analizzatore per
una risoluzione da 2KHz a 6KHz sintonizzando il
ricevitore per la banda in cui ricade la frequenza
da visualizzare. Verificate le caratteristiche del se-
gnale confrontandole con quelle elencate nell'ar-
ticolo. Se non avete un analizzatore di spettro, in
alternativa potete usare un frequenzimetro, ma
potrete solo verificare l'esattezza della frequenza
visualizzerà i valori predefiniti previsti all'accensio- emessa dallo strumento. Si tenga presente che lo
!! Fig. 10 ne dello strumento, ossia, modalità di regolazione strumento genera segnali ad onda quadra, quindi
Misura spettrale dei parametri su "REGOLAZIONE FREQUENZA': con le relative componenti armoniche, in quanto
del segnale RF
frequenza di 35 MHz e potenza di -4 dBm, del le frequenze sono ottenute per divisione digitale
alla frequenza di
100 MHz. segnale UHF in uscit a. del segnale generato dal VCO, pertanto, nelle ap-
Ruotando in senso orario o antiorario la mano- plicazioni in cui si voglia un segnale "pulito" entro
pola dell'encoder RSW1, si osserverà su l display una definita banda, occorrerà prevedere un idoneo
rispettivamente, l'aumento o la diminuzione del filtro all'uscita dello strumento.
valore della frequenza in step di 1OKHz Hz, es-
sendo impostato per default il cursore del LCD sul CONCLUSIONI
digit dei KHz. Agendo sui pulsanti P3 "LEFT" e P4 Questo strumento, che in questo progetto deve
"RIGHT': il cursore del display si sposterà di un digit considerarsi quale mero mezzo di valutazione di
ad ogni pulsata rispettivamente, verso sinistra o un sistema digitale PLL-VCO per la generazione
• verso destra. Posizionandosi sui rispettivi digit, di segnali UHF a sintesi di frequenza. Nella sua
l'encoder regolerà da un valore minimo di step evoluzione professionale, unitamente ad altri
da 1 KHz (primo digit di destra), fino ad un valore idonei dispositivi, potrà essere utilizzato in varie
massimo di step da 1 GHz (primo digit di sinistra). applicazioni, ad esempio nelle infrastrutture Wi-
Pigiando il pulsante P4 "MODE': lo strumento reless (W-COMA, TD-SCDMA, WiMAX, GSM, PCS,
sarà selezionato sulla modalità "REGOLAZIONE DCS, DECT), negli strumenti di misura, nelle LAN
dBm': mantenendo il valore di frequenza impo- wireless, negli apparati CATV, per la generazione di
stato, così, regolando l'encoder, la potenza RF in clock ad alta stabilità. []
uscita potrà variare da un minimo di - 4 dBm, fino
ad un massimo di +5 dBm in step da 3 db ad ogni
scatto della manopola. Pigiando nuovamente il
pulsante "MODE': la modalità tornerà su "RE-
GOLAZIONE FREQUENZA" mantenendo il valore
di potenza impostato. Chiarite le modalità d'uso
dello strumento, per procedere con il collaudo l componenti utilizzati per realizzare questo progetto sono
vero e proprio, considerando le alte frequenze disponibili presso Futura Elettronica.
in gioco, occorre disporre di un analizzatore di Il microcontrollore Microchip PIC18F46K20-IIP
(cod. PIC18F46K20-1/P) è in vendita a Euro 5,50, il display LCD
spettro con larghezza di banda 30 MHz-4 GHz, 16x2 retroilluminato (cod. LCD1602A) è disponibile a Euro 5,00
risoluzione di banda (RBW) almeno di 2KHz e po- e la scheda di sviluppo ADF4351 (cod: ADF4351 DB) costa Euro
36,00. l prezzi si intendono IVA compresa. •
tenza d'ingresso massima >+5dBm, che consenta
la visualizzazione del segnale e la misura delle
relative caratteristiche prestazionali. Collegate lo
Il materiale va richiesto a:
strumento all'analizzatore di spettro mediante un
(
cavo coax SMA semi rigido di impedenza 50 ohm, Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775 - http://www.futurashop .it
fra uno dei due connettori SMA di uscita del signal

84
SPRING

'

Orario: saba o e domenica 9,30 - 19,00


IN CONCOMlTANZA CON
- ELECTRO N l C
DAY
MERCATO DEL
CONSUMER ELECTRONICS

-
"'"<n
-uc: 00
·-§ l)
·-- Cod. FR653 '
~
Cl.


entra ina arme w1re ess

Crea facilmente e velocemente un efficace impianto d'allarme grazie


alla nuova centralina antifurto wireless programmabile e controllabile da '
smartphone. Tramite l'apposita App gratuita per Androide iOS è possibile '
configurare e gestire da remoto il funzionamento della centralina in ogni
suo dettaglio sfruttando la rete GSM-GPRS oWi-Fi. Consente di monitorare
fino a 32 zone e di memorizzare fino ad 8 numeri telefonici a cui inviare
SMS e chiamate in caso di allarme; può essere attivata/disattivata tramite
radiocomando, chiave TAG RFID o smartphone. La batteria di backup
ricaricabile incorporata garantisce il funzionamento anche in assenza di
alimentazione principale.

VASTA GAMMA DI ACCESSORI!


Trasmettitore per Presa Sensore PIR wireless Rilevatore wireless Transponder Sensore PIR Sirena wireless Radiocomando
contatti magnetici wireless effetto tenda per fughe di gas a portachiavi wireless da esterno

'-• a


00 00 00 €79, 00 €8, 00
es,oo e19, 00 e16, 00 e22, €7, e16,
Cod. FR575MAGN Cod. FR653PRESA Cod. FR575TENDAPIR Cod. FR575GAS Cod. FR575TAG Cod. FR575PIR Cod. FR653WSIR Cod. FR575RAD

®
Futura Group srl
Via Adige, 11 • 21013 Gallarate !VAl
Tel. 0331/799775
Prezzi fVA inclusa. Caratteris~iche te~niche
e vend1ta on-l1ne su:
www. /l~UlU'/r~sholJ--'n • lf
• c;t /1


AS726Sl(,\S72652/AS72653 1 B Chunncl Spcctlal nadiomc:lcr

Contra i & Status


U pd~t" Modt: S\lll tn l EO Con lr ~ (Eitc lronic Shulttr)
P' Conllnuous Stop l l ut Sample:
Ol:26 pm
L[DO.l 1ru!\ ?iJ L!oq OFf :§}
Stop After. j
l S.mpl., l s:i l UOl: l 1 Z.5rnA5] LtDJ J OFF "§)

Show f" Raw G Cal~ Dillta ~rted by i C.hann ~ r Wa>mMgth 01 t:' u ~ctrum

P' Splint

r locfr.

0.0000
JSO 1050

di DAVIDE SCULLINO

Utilizziamo la piattaforma basata sui


sensori deii'AMS in abbinamento al
Personal Computer e grazie a un software
ad hoc tracciamo sullo schermo le curve
di spettro frutto deWanalisi eseguita.

ell'analisi dei materiali si utilizza da


tempo la spettrometria, che è un a
tecnica di metrologia basata sul rileva-
mento dello spettro di una luce cam-
pione (ad ampia gamma di lunghezze
d'onda) puntata contro la superficie da
analizzare e da essa riflessa, almeno
in parte; questa metodica permette
quindi di riconoscere i materiali solidi o la composizione di
una miscela liquida attraverso l'andam ento della curva di
risposta spettrale a una lu ce non coerente che le viene pun -
tata contro e parzialmente riflessa. La spettro metri a viene
utilizzata in tutti i laboratori di chimica e biologia e permette,
ad esem pio, di riconoscere un olio alimentare contraffatto
oppure di distinguere un vino di qualità da uno scadente, ma
anche di condurre analisi cliniche di vario genere.

87 '
'
~ Tabella 1
Canali spettrali e lunghezza d'onda di ~~~§~-~-c~_-

----== "'~==-
F~ •'"

-
• _

-
__ =:=';;-~'=

-=~~==---
_
--
,
'
• =--=
---==-
=~::'==~=· l ,

centro banda dei sensori AMS7265x.

Devi ce Chan nel Filter Type Center A (nm) FWHM (nm)


AS72653 A Gaussian/BP 410 20
AS72653 B Gaussian/BP 435 20 va in esecuz ione su una specifica piattaforma
AS72653 c Gaussian/BP 460 20 chiamata ActiveTcl scaricabile liberamente (in ver-
AS72653 D Gaussian/BP 485 20 sione free) dal sito di riferimento www.activestate.
AS72653 E Gaussian/BP 510 20 org; quindi non potete eseguirlo come qualsiasi
AS72653 F Gaussian/BP 535 20 appl icazione Windows, ma dovete installare il run- •

AS72652 G Gaussian/BP 560 20 t ime. Ma questo, come vedremo più avanti, non è
AS72652 H Gaussian/BP 585 20 un problema, in quanto l'ambiente di esecuz ione è J

AS72651 R Gaussian/BP 610 20 di libero utilizzo. •

AS72652 l Gaussian/BP 645 20 Ora facc iamo una panoramica su l progetto, con un ;

AS72651 s Gaussian/BP 680 20 approfondimento su i componenti utilizzati.


AS72652 J Gaussian/BP 705 20
AS72651 T Gaussian/BP 730 20 CO ME FUNZIONA •'
AS72651 u Gaussian/BP 760 20 Non stiamo qui a ripetere nel dettaglio il funzio-
AS72651 v Gaussian/BP 810 20 namento della breakout board: per questo e per
AS72651 w Gaussian/BP 860 20 la realizzazione rimandiamo chi fosse interessato
AS72652 K Gaussian/BP 900 20 al l'approfondimento, all 'articolo "Costruiamo uno ,
AS72652 L Gaussian/BP 940 20 spett ro metro" pubbl icato nel fasc icolo n o 230.
Ci limiteremo a un riepilogo delle caratteristiche '
dei t re sensori di spettro della luce con cui essa
La spettrometria si basa sul fatto che quando è equipaggiata; tali sensori sono prodotti dal la
la luce colpisce un oggetto che non la assorbe AMS e connessi nella configurazione suggerita
completamente (è il caso di quasi tutti i corpi) dal produttore. Ogni sensore di quelli util izzati nel
J
una parte di essa torna indietro: questo è un nostro progetto misura l'intensità della luce in sei l

fenomeno ottico comunemente conosciuto come lunghezze d'onda (ogni lunghezza d'onda è quindi
riflessione e se la porzione di luce riflessa colpisce un canale) ben definite e siccome nel circuito i
il nostro occhio, vediamo quell'oggetto del colore sensori uti lizzati son o t re, contiamo su un tot ale
co rrispondente. di ben 18 canali: ce n'è abbastanza per copri re un
La sensazione di colo re è dovuta al fatto che la ampio spettro di lunghezze d'onda e realizzare
luce riflessa è composta dalla sola porzion e, della uno strumento ut ilizzabile in moltissime analisi.

luce che l'investe, corrispondente alle lunghezze Infatti, grazie all 'integrazione di tre sensori della
d'onda non assorb it e, quindi un corpo che vedia- AMS, si riesce a ricostru ire lo spettro da circa i 350
mo verde alla luce del sole ci appare tale perché nm (il violetto) fino ai 1.000 nm, quindi si copre lo
dello spettro della luce solare ha respinto solo la spettro della luce visibile più parte del NIR (Near
l
gamma intorno al verde, estesa intorno ai 560 lnfrared Range), vale a dire del cosiddetto "vicino
• nanometri. i nfrarosso'~
Una cosa simile accade con i senso ri di immagine l t re sensori presenti nella breakout board appar- l

e in general e con i fotosensori, i quali sono sen- tengono alla famiglia AS7265 X della AMS e sono •

sibi li a determinate lunghezze d'onda e possono siglati AS7265 1, AS72652 e AS72653; ciascuno •
••
qu indi essere stimolati dalla luce riflessa dai co rpi. è in grado di rilevare onde elettromagnetiche di
sei lunghezze d'onda con un FWHM (Ful l Width
IL NOSTRO PROGETTO at Half Maximum) di 20 nm, vale a dire che la
Dopo questa premessa entriamo nel merito del larghezza di banda di ciascun canale considerata

progetto, che consiste nello svi luppare uno spet- a un livello pari a metà dell'intensità luminosa
trometro da PC ottenuto connettendo alla porta percepita nello stesso è pari a 20 nm. '

USB (che ormai è uno standard per i Personal l tre sensori montati nella breakout board sono
Computer e i dispositivi "mobile" come i tablet e stati pensati per lavorare coord inati da uno di ess i,
gli smartphone) mediante un adattatore seri ale/ ossia daii'AS72651, il quale integra un microcon-
USB la breakout board rilevatrice di spettro (il cu i tro ller che permette la comunicaz ione con gl i altri

progetto è stato pubblicato nel fascico lo n o 230) due attraverso un'interfaccia smart.
e utilizzando uno spec ifico soft ware fornito dal la Inoltre I'AS7265 1 si può interfacciare al computer
.,
AMS, che è il produttore dei tre componenti sen- mediante le linee deii'UART facente capo a RX
sori spettrali impiegati nella breakout board stes- (piedino 4) e TX (pin 5) olt re che le linee di reset
sa. Il software, installabile in ambiente Windows, RST (3) e INT (6); su l connettore della breakout

88
'

board abbiamo anche l'alimentazione (che dev'es- puntata contro gli elementi di cui analizzare lo
sere di 3,3V e la GND. spettro.
La Flash EPROM una AT25SF041 deii'Atmel, della Il funzionamento dei sensori AMS è schematizza-
capacità di ben 4 Megabit, duali/O, nella quale è to dalla Fig. 3, che nello specifico riguarda quello
caricato il nostro firmware Moonlight, scopo del deii'AMS72651 che è il master della triade e che
quale è permettere al senso re che funzionerà da può interfacciarsi con un microprocessore attra-
master di interrogare gli altri due e acquisire da verso il bus seriale {eventualmente convertibile
essi i dati corrispondenti all'analisi spettrale effet- in UART TIL) e con la memoria Flash dove viene
tuata da ciascuno, per poi inviare all'esterno i dati conservato il firmware, attraverso il bus SPI a 4 fili
di tutti e tre secondo la modalità prescelta. dedicato.
Lo stesso bus SPI dedicato alla lettura della Flash La Fig. 4 propone uno schema a blocchi della bre-
EPROM viene ripetuto sul connettore PRG della akout board con la connessione fra i tre sensori.
breakout board per la programmazione in-circuit. Ciascun dispositivo pilota, tramite la propria uscita
DRV, un LED collegato al positivo di alimenta-
l SENSORI DI SPETTRO AMS zione attraverso un resistore di limitazione della
Prima di entrare nel vivo dell'utilizzo dello spettro- corrente: detto LED viene acceso per proiettare la
metro da Personal Computer, dedichiamo qualche luce e subito dopo si attiva il sensore che rileva lo
paragrafo a un richiamo sui sensori di spettro spettro della luce riflessa. Ogni LED è sincronizza-
prodotti dalla AMS, perché ci aiuterà a compren- to quindi con il rispettivo sensore.
dere come sfruttare le informazioni rese disponi-
bili dal software su Personal Computer e a capire il L'l NTERFACCIAM ENTO
significato dei valori mostrati nelle varie scherma- DELLA BREAKOUT BOARO
te, così da sfruttare a pieno le informazioni nelle Per le comunicazione dati, nel sensore master
proprie analisi. AMS76251 possono essere implementate due
2
Come accennato, i dispositivi AS72651 , AS.72652 differenti modalità: tramite registri I C-Bus oppure
e AS72653 sono degli spettro metri digitali a 6 attraverso dei comandi AT (i comand i Hayes, se
canal i ciascuno e la Tabella 1 elenca le caratte- . preferite ... ) passando da un'interfaccia UART a
ristiche dei sei canali spettrali per ciascuno dei livelli di tensione standard TIL 0/ 5V integrata
se nsori della t riade AMS: per ciascun canale è indi- nel sensore. Chiaramente nel primo caso occorre ~ Fig. 1
cata la lunghezza d'onda su cui è centrata la curva interfacciare la triade di sensori con un dispositivo Curve di spettro
dei 18 canali
di sensibilità. tipo un microprocessore o microcontrollore nel
del sistema a tre
La Fig. 1 illustra le curve di risposta spettrale di quale sia presente un'interfaccia 12 C-Bus a due fili senson.•
tutti i canal i di ciascun sensore e riepi loga il fun- {SCL e SDA) rispetto a massa, mentre nel secondo,
zionamento del sistema Moonlight a tre sensori
e 18 canali; nella figura vedete rappresentate
l - 410nm
in verde le curve relative aii'AS72651, in rosso
- 435nrn
quel le riferite aii'AS72652 e in azzurro quelle 0,9 - 4GOnrn
deii'AS72653, per un totale di 18 curve. - 485nm
0,8
Per selezionare le varie lunghezze d'onda, nei sen- - SlOnm

sori spettrali deii'AMS viene utilizzato il cosiddetto +J


> 0,7 - 535nrn
·->
filtro gaussiano, che permette di estrarre dallo ·-V) - sGOnm
c 0,6 - S85nm
spettro della luce riflessa il1 00%esattamente o
a.
V)
- 610nm
della lunghezza d'onda corrispondente al canale Q)
~ 0,5
- 645nm
e una percentuale decrescente delle lunghezze "'
Q)
N
·--co 0,4 - GSOnm
d'onda attorno ad essa, costruendo una curva a
E'-
- 70Snrn
campana, corrispondente, appunto, alla funzione o 0,3 - 730nm
z
gaussiana. Ciascuna delle curve riportate in Fig. 1 - 7G0nm
' . 0,2
e una gauss1ana. - 810nm

La Fig. 2 mostra lo schema a blocchi interno dei 0,1 ,- 860nrn


- 900nm
se nsori della famiglia AMS, nel quale distinguia-
- 940nm
mo il sensore dello spettro (che ne è il cuore) il
2
circuito di comunicazione dati su 1 C-Bus e quello
Wavelength (À nm)
di controllo dei LED utilizzati per generare la luce 1

89
VDD1 VDD2

• il bus l'C, mentre se è a livello alto la comunicazio-


ne è in seriale TIL UART. Nella breakout board, il
r-------.,l Spocttii_ID
Senaor ~-----------1 piedino 8 riceve il livello logico che imposta I'UART
l Ccmnunlcltlon l LEDDr1wn l
l l tramite il partitore resistivo composto da R6 ed
VDD l l
l l
l
l l LED_IN D R7, perciò è impostata la modalità UART, che è
l l
l quella che ci interessa.
SCL S 1+-1 Cl.frenl
12C Slave Con~ol LED_DRV
SDA_S l l
l l ~

l l LE MODALITA DI COMUNICAZIONE
L------- l
-----------.J
l'----'
Ora che abbiamo chiarito struttura e funziona-
~ mento della breakout board possiamo approfondi-
RESN
osc REQ
re il discorso su lla comunicazione con il PC, che poi
16MHz
REQ
è ciò su cui verte questo articolo: per dialogare con
il PC sono possibili due soluzioni: la prima è ap-
GND
• punto quella consistente nell'eseguire sul compu-
ter un programma di terminale (il classico Telnet o
~ Fig. 2 ossia quello della comunicazione in modalità UART, I'Hyper Terminai di Windows) e impartire comandi
Schema a blocchi
i due fili diventano TX ed RX e il colloquio può Hayes, mentre la seconda consiste nell'utilizzare
interno del generico
sensore spettrale avvenire sia direttamente con un microcontrollore l'apposito software fornito dalla AMS e scaricabile
deii"AMS. che disponga a bordo di un UART (Ardui no rientra dal sito lntermet dell'azienda.
in questa categoria) sia con un Personal Compu- Per quanto riguarda la prima opzione, ogni co-
ter, fermo restando che in questo caso serve un mando viene inviato sotto forma di stringa di ca-
converter TIL/RS232 se si desidera l'interfaccia- ratteri, deve iniziare con "AT" e finire .con i caratteri
mento con una COM (che funziona con livelli +12V) di Carri age Return (CR) e Ne w Li ne (N L).
o un più comune TIL/USB per i PC moderni, che l principali comandi AT adottati nel nostro sistema
non hanno più le porte RS232. spettrometro sono i seguenti.
In entrambi i casi il controllo della triade di sensori 1. AT: per verificare che la comunicazione stia
e il colloquio su seriale avvengono tramite co- funzionando; il sistema risponderà "OK':
mandi AT, che rappresentano un semplice, quanto 2. ATDATA: ritorna la lista dei valori relativi ai 18
efficace, protocollo di comunicazione su seriale, canali, ponendoli in ordine di sensore, vale a dire
che ci permette un rapido test della breakout prima i sei del primo dispositivo, poi i sei del se-
~ Fig. 3 board anche attraverso un emulatore di terminale condo e infine quelli del terzo.
Schematizzazione per Windows, Linux o MacOS. 3. ATXYZR: ritorna la lista dei valori relativi ai 18
del funzionamento
Per quanto riguarda la comunicazione con l'ester- canali, ordinandoli per lunghezza d'onda.
del sensore
di spettro. che nello no, la selezione tra interfaccia l'C-Bus e UART si 4. ATIEMP: restituisce le tre temperature di
specifico esegue con il piedino 8 (12CE) e per l'esattezza, funzionamento dei rispettivi sensori, utili per

è il master quando quest'ultimo è posto a zero logico si attiva effettuare eventuali correzioni .
AMS72651.
5. ATVERSW: ritorna la versione del firmware
installato nella Flash EPROM con cui si interfaccia
il sensore che fa da master.
100nF 10uF

3V L'alternativa è la gestione mediante l'apposito


3V software deii'AMS, che in pratica provvede da
RX/ SCL_S
--t
uP
--1 TX l SDA_S
LED_IND
-- sè a interrogare la breakout board impartendo i
comandi AT, in modo a noi trasparente. Questa
.____ __.--t INT
LED_DRV soluzione è poi quella che descriveremo.

Light CONNESSIONE FISICA AL PC


MOSI La breakout board può essere interfacciata a un
Flash t----t MISO 18
1--1 SCK Channel ~--- PC mediante un converter TIL/USB come il mo-
Light In Target dello USBTOUART che potete trovare da Futura
L_____J--1 CSN_EE Sensor
Reflective Elettronica, on-l ine alla pagina web www.futu-
GND Surface rashop.it/moduli-GSM-GPS-Wireless- %20Embedded/
connettivit%C3%AO-networkinglconvertitori-usb/

'
90
l

convertitore-usb-uart-seriale-usbtouart. Il converter seguente. Il converter dispone di un mini-interrut-


TIL/seriale 1686-USBTOUART è simile al più noto tore che permette di selezionare il funzionamento
FT782M (sempre della Futura Elettronica} ma a 3,3 V o 5 V e tre LED di stato (alimentazione, TX,

ha il pregio che fornisce, sul suo connettore lato RX} e anch'esso, come I'FT782M, viene visto dal
seriale, un'alimentazione a 3,3V invece che a 5V, sistema operativo (gira sotto Windows 7, 8 e 1O}
quindi più adatta ad alimentare la breakout board come una COM virtuale, una volta installati i rela-
spettrometro. tivi driver. Siccome internamente al convertitore è
Questo piccolo convertitore da USB a UART è previsto un regolatore di tensione, l'impostazione
basato sul chip CH340 della WCH (invece che del mini-interruttore si riflette anche sulla tensio-
suii'FT232RL della FTDI} ed ha un connettore ne di uscita, pertanto siccome ci serve alimentare

d'interfaccia a 6 contatti che sono, nell'ordine, DTR. la beakout board con 3,3 volt, spostiamo la levetta
RXD, TXD, VCC. CTS e GND. L'ordine di disposizione del mini-interruttore in posizione 3V3 e siamo a
dei contatti che ci interessano è analoga a quella posto.
deii'FT782M, con la differenza che saltiamo un In alternativa aii'USBTOUART è comunque
contatto, ossia il CTS, dato che in questa appli- possibile interconnettere il PC alla breakout
cazione non lo gestiamo. Una piccola parentesi board tramite il tradizionale FT782M della Futura
su questo contatto: in realtà fa capo a un jumper Elettronica basato sull'integrato FT232 della FTDI.,
a saldare su PCB che permette di connetterlo al fermo restando che questo converte r. per quanto
CTS effettivamente oppure aii'RTS, quando fosse idoneo su l piano dei livelli logici sui contatti TX ed
• .

necessano . RX (perciò sulla seriale} fornisce 5 volt, mentre la
Lo schema di cablaggio è proposto nella pagina scheda con i sensori AMS sarebbe opportuno che

VDDt VDD2

AS72651 "f
l--------
~-----------1 ~ Fig. 4
Col_,..... l l LBIDd..ll 1
l
l
l
vool
l
l
l
......
SpocltiiJD
l vool
l
l
f.$ LED_IN D
Schema blocchi
della breakout
~--f---12C_ENB l l
board.
Current l
Mlcro f----RX/SCL_S l l
UARTor Contro l LED_DRV
Controller [[][I] [I]
Untt (MCU) 1----·rx l SDA_S
1-----INT :
l'c SIBYO
l
l [ij][YJI!l]
___________
l
l ..L
l
.,.,l
l l
l
r------ -----l
l vool l hiii?l .. lnlliltei l
l l
,-----------~~--so~M l
~
l voo,
r------------+- - - SCL_M
'
l'c Master
l
l
ADDR l MISO
l l
L------- ~
l SPI MOS l Serlal Rash
Hz
i Mnter SCK Memory
-so
RESN CSN
ll,_ _ _ _ _ _ _ _ _ _ _ _,'

• GND

-
VDOt VDD2 VDDt VDD2
- ~------t---t----------~
AS7265Z AS72653
,,._()O ,-------., Sptcf11()0
IlM or
leniOI' ~-----------1 ~-----------1

'--~;.;;.;;;....__. l UDDd"'ll 1 l ~ l l LSIDd,.. 1


l l l l
WD l ., l l VOOJ l
l l LED_IND l l LEO_IND
l l l l
l [§]l]] [D
~
0
SCL_S H-t H-t Current l
L - SD~S
t'c SI<Wo
l
Cooont
Conlml
l
LED_DRV ' - - - SD~S
SCL_S t'c st ..... :l
moom l
Conlml -' 1

l
LEO_DRV

l
L-------
l
!..'-_-_-_-'_------ ~ ~------ _: l
-----------""'
~ l

RESN
REO
RESN T REO
REO 1 - - - - - - - - l : j l REO


91
·schema di CA·BLAGGIO

vo lta stabilita la connessione bisogna installare i


USB
driver e a quel punto avete a disposizione la COM
virtuale che servirà a far dialogare il software di
gestione deii'AMS con la breakout board dello
spettrometro attraverso il convertitore.

IL SOFTWARE DI GESTIONE AMS


Vediamo dunque questo programma, che si sca-
USB tipo A rica dal sito web deii'AMS (il file è ams_Spectral_
Sensor _Dashboard.tcl) e che per l'esecuzione,
~ In alto
essendo in formato .tcl, richiede un ambiente di
Collegamenti
tra la breakout runtime: nello specifico si utilizza ActiveTCL, scari-
PC
board e il PC cabile in versione free da www.activestate.com.
attraverso il Una volta scaricato e installato l'ambiente si può
converter
lanciare il file ams_Spectrai_Sensor _Dashbo-
USBTOUART.
ard.tcl, che verrà quindi eseguito e mostrerà la
schermata iniziale visualizzata nella Fig. 5. Tale
venisse alimentata con una tensione inferiore. schermata è la Dashboard del programma.
In questo caso la connessione al PC si esegue Notate che prima di lanciare l'esecuzione del
,
molto semplicemente connettendo la linea TX del- software dovete aver connesso la breakout board
la breakout board alla RX deii'FT782M e la RX di al computer, altrimenti otterrete un messaggio di
quest'ultimo convertitore con la TX della breakout errore e il programma verrà chiuso. Se invece ave- r
board. Collegate poi il contatto -al GND della te già collegato la scheda, apparirà una finestra
breakout board, ma non l'alimentazione, che in di dialogo che proporrà l'impostazione della COM
questo caso sarà separata. affinché avvenga la connessione (Fig. 6); indicate
L'FT782M è quindi una soluzione consigliata se, la porta esatta e se non la ricordate, accedete a
ad esempio, si vuole mantenere separata dal PC Pannello di controllo e nelle impostazioni di siste-
l'alimentazione della breakout board contenenre ma e dell'hardware, verificate qual è la COM vir-
• i tre sensori spettrali: ad esempio perché si desi- tuale assegnata dal sistema operativo al converter
dera fornire un'alimentazione più filtrata di quella TIL/USB. Per selezionare la COM dovete cliccare,
offerta dal PC o magari, per limitare al massimo nel riquadro che elenca quelle trovate, sulla porta
la presenza di disturbi e residui degli switching desiderata e poi fare clic sul pulsante Open. Così
interni al computer, prelevare i 3,3V da un regola- accedete alla Dashboard. In questa troviamo
tore lineare, come ad esempio un LDO capace di quattro tab (schede) che danno accesso ciascuna
erogare una corrente d'uscita adeguata. a determinate funzioni; notate che la Dashboard è
~ In basso ..
Il prototipo Qualunque sia l'hardware che avete utilizzato per stata pensata per gestire un sistema di tre sensori,
cablato pronto interconnettere il PC alla breakout board AMS, una ossia la nostra breakout board.
per essere Partiamo dalla tab 18 Channel Sensor che è •

collegato suddivisa in due sezioni: la sezione Control &


al PC tramite
il connettore Status imposta i sensori per l'acquisizione dello
microlJSB spettro luminoso e quella sottostante riporta le
di cui è dotato letture. Control & Status è ripartita nelle tre parti
il converter seguenti.
seriale/USB.
• Update Mode, permette di decidere se i dati
mostrati debbano essere acquisiti in tempo reale
oppure one-shot; nel primo caso cliccate su
Continuous ponendovi il segno di sp.unta e in ogni
caso l'acquisizione si avvia con il pulsante Start e
si arresta cliccando su Stop (è lo stesso pulsante
solo che dopo il clic passa da Start a Stop) allorché
avrete dati aggiornati continuamente. Nella casel-
la Stop After potete scrivere dopo quanti campioni
acquisiti interrompere l'acquisizione, così da limi-

92

..

- - - '
= =- ~ _' = l l ~ ' - = ~ ~- ~ 1
: ; : ~ ) • ' l j l • ~ ~ ~· ~ ~ : ~ ~ _- :. _J ' .' ~ • ~~ : ~ =: ~;:. ~- -=· ~- ' - ~ '~ -~ -: : : ; ~ ~i :~ : - . ~ ~ ~ ~ ~ ~= :~ ~ ~ -~
.;o
1

l ·~ - ~ -_ ~ :: : ~ ~ =~: : -~

- -.-

t~ ~-
·~ ~·

;)1:._~~ ~-'-·
arns Spedral Sensor Dashboard 4.2 0 l• ç:;~ ~
.~ .. .' ~
..- ~
;o.!Lii:, . . 1 . . . ~·~,. . :.:

li AS72651/AS72652/AS72653 18 Channel Spectral Radiometer

l· 18 Channe.l Sensor Loggi n~& Control Console Update



.
Control & Status
- . -. .
i
~

Update Mode: Status LED Contro! (Electronic Shutter) l i.

D Continuous l1
Sample Last Sa mpie:
LEDO;
-1mA ~

-$ LED!: OFF -$ l'

06:08 pm '- ~ ~--


l t
·- li

LED2: J12.5mA:il. OFF -$



Stop AftB:
··-- -' Il
Samples
-
21 -
lED3:
-- ~ Fig. 5
... lnterfaccia utente
- del software AMS.
Show a" Raw (' Calibrated Data sorted by (." Cha nnel (' Wavdength or r as Spectrum
·.

AS72651 R (610nm) l 1 11 AS72652 G (560nm) l 4,} AS72653 A (410nm) l 0 ~1


S (680nm) l _!l H (585nm) l 4
11
l B {435nm) l ~1 11

T 030nm) l : ~l i
I {645nm) l 3[ r--
C (460nm) l: 3 11

U (760nm) l o[ J (J05nm) l l' D (485nm) l : lÌ l

·,
V ~lOnm)
l 0 11 K{900nm) J o~ ~
E (510nm) l 2
. W (860nm) l o[ '
L (940nm) l oj F {535nm) l 3,,
IU
.-.-: •

tare il numero di campioni acquisiti e l'occupazione osservazione dello spettro rifl.esso da parte dei
di memoria che ne deriva. Se invece non spuntate fotodiodi.
Continuous otterrete dati sulla risposta dei tre
sensori di spettro solamente quando cl iccherete Per quanto riguarda i dati sullo spettro ri levato,
sul pulsante, che in questo caso assume il nome saranno visualizzati nella sezione inferiore, distinti
di Sample. per sensore che li ha prodotti.
• Status, riporta il numero di campionamenti Sempre nella sezione inferiore, pot ete impostare

effettuato dall'apertura della Dashboard. la modalità di visualizzazione delle informazio-
• LED Contrai (electronic shutter) permette di im- ni sullo spettro di luce, scegliendo una tra le 5
postare la modalità di accensione dei LED in base opzioni proposte; più esattamente, accanto a
alle nostre esigenze, ovvero le correnti di lavoro di Show avete le opzioni di visual izzazione Raw
ciascuno, scegliendo tra i valori proposti nei si ngoli (che mostra i dati grezzi ottenuti dai tre sensori) e
menu a tend ina. Calibrated Data (che visualizza i dati dei sensori,
Ricordate che i tempi e le correnti di accensione ma calibrati). Invece accanto a sorted by avete le
dei LED determinano la qualità del rilevamen- tre opzioni seguenti:
to, così come la sincronizzazione tra i tempi di • Channel, che visualizza i dati divisi per canale del
sensore corrispondente;
• Wavelenght, che mostra le lunghezze d'onda
invece dei valori numerici rilevati nei singoli canali);
~ Fig. 6 • as Spectrum, che probabilmente è la più imme-
Impostazione della COM virtuale cui
connettere la breakout board. diata perché nella finestra del programma ci viene
tracciato un grafico di spettro, facilmente leggibile
Select arns D~..rice Port (Fig. 7).
Come vedete, si ottiene proprio la curva dettaglia-
OM68 Open ta per ampiezza delle singole componenti spettrali
e lunghezza d'onda, nel range misurabil e; il valore
Cancel
numerico sull'asse delle ordinate è quello relativo
alla capacità di rilevamento e sensibilità dei se n-

'
93
ams Spectral ~nsor Oashboard 4.2.0

AS72651/AS72652/AS72653 18 Channel Spcctral Radiometer

~····--··--· ...~
l~.ç.~r:-.~.!L~i<?.~J logging & Contro l Console U date
~--~----------------------------------------------------~

Control & Status


- --- - - -· -- -- -- -· ~

Update Mode: Status LED Control {Eiectronic Shutter)

R Continuous Stop J
last Sample:
LEDO: lmA -$
- lEDl~ OFF
..-
-;
02:26pm
·-----~· --·
Stop After: Samples LEDl: 12.5mA1 LED3: OFF
·1
-

~ Fig. 7 Show G Raw c.! Calibrated Data sort~ by r Channel c"": Wavelength or ~ as Spectrum
Visualizzazione
dello spettro 4.400 M Spline
sulla schermata
del software.

D lode

0.0000 --~~

350 450 551J 650 751J 850 950 1050

'

sori AMS. Passiamo alla tab Logging & Contro l, (Fig. 8).
nella quale appaiono alcune informazioni nella Nella sezione Logging possiamo aprire un file di
sezione Device, come ad esempio la versione log già creato e visualizzarne i valori memorizzati,
firmware e hardware, la COM selezionata eccetera mentre nella Sensor Control abbiamo due caselle:

amsSpecbal

AS72651/AS72652/AS72653 18 Channel Spectral Radiometer

18 Chi!mnel Sensor L~:~Si~i(~~i~::ç~~~!r.~J] Console Updatel


----------------------------------------------------~

Devi ce [ Firmware [ Hardware


f lightiD
<non e~
l 12.0.0
l Ox4041
l
~ Fig. 8 Logging
Tab Console ... Note
che mostra Op~ni ng or closing the log file
il terminale ' Open Data log ·'' will reset the sample counter.
integrato
nel software.
[ Data Log File
<none>
--
l
Sensor Control

lntegration (ms): 56.0 -$


-
-- . -l
~

• Gain: 3.7x ~ . Factory R~5et


l


94

ams Spectral Sl!nsor

AS72651/AS72652/AS72653 18 Channel Spectral Radiometer


18 Channel Sensor &

Cmd·Log File
<none> Open Cm d Log l
Cmd Mode
Cmd File ~ Fig. 9
<none> Ci' Capture Visualizzazione
• del terminale
AT Command:
r Playbaclc:
implementato
J
... nel software
OK
ATINITIME=22
Open Cmd File l AMS.
OK
A!IN!TIME=2 3 • Playba~~ l
OK
ATFRST
am::~ AS7265 fW12 . 0 . 0

A!IN!!IME
20 OK
A! GAI N
l OK
ATIN!TIME
20 OK
ATGAIN
l OK oT ClearOutput l

• lntegration (ms) da dove impostare il tempo temente valide, ad un costo irrisorio se paragona-
di osservazione dei sensori, ovvero per quanto to a quello di uno spettrometro professionale da
tempo acquisire la luce riflessa dopo l'accensione laboratorio di anal isi.
dei LED; questa funzione corrisponde al tempo di Le grandi capacità di elaborazione dei Personal
esposizione delle macchine fotografiche e va da Computer vi permettono, se siete in grado di
sè che più alto è il tempo, più luce viene rilevata e scrivere software capaci di interrogare la breakout
viceversa (un tempo lungo aumenta la sensibilità board per estrarne e interpretarne i dati di spettro,
del sistema e uno breve accelera il refresh delle di realizzare applicazioni specifiche in grado, ad
analisi, ma lo fa a discapito della sensibilità); esempio, di eseguire azioni automatiche in base
• Gain, dalla quale impostare l'amplificazione del alle analisi spettrali effettuate, come attivate un
segnale fornito dai fotodiodi e quindi la sensibilità servomeccanismo che rimuove un prodotto da un
dei sensori alla luce. nastro trasportatore o generare un alert al ricono-
scimento di un prodotto alimentare adulterato.
L:ultima scheda che vediamo è la tab Console, che Le possibilità di impiego sono, come immaginere-
ci mette a disposizione un vero e proprio termina- te, davvero tante. Cl
le integrato (Fig. 9), nel caso vogliamo impartire
direttamente comand i AT senza dover uscire o
switchare su un altro programma. Da questo ter-
minale possiamo inviare tutti i comandi standard
e visualizzare la comunicazione con la breakout ç;J Cosa occorre?
board.
l componenti utilizzati in questo progetto sono disponibili
presso Futura Elettronica. La breakout board spettrometro
CONCLUSIONI (cod. BREAKOUT021) è in vendita a Euro 49,00 mentre
Utilizzato in abbinamento a un sistema a micro- il modulo convertitore USB/UART (cod. USBTOUART) è
controllore oppure abbinato al Personal Computer disponibile a Euro 8,00. l prezzi si intendono IVA compresa.

tramite converter TIL/USB come descritto in Il materiale va richiesto a:


queste pagine, lo spettrometro su breakout board
si dimostra uno strumento affidabile e in grado di Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
Tel: 0331-799775- http://www.futurashop .it
restituire analisi di spettro dei materiali sufficien-



95
Realizziamo con Raspberry Pi 3 B+ un sistema in grado di rilevare
il movimento di persone e oggetti tra~mite una videocamera e di
inviare e-mail di allarme.

di PIER CALDERAN ·

a cosiddetta Computer Visi on o visione artificiale, è


un settore di ricerca che si occupa di come i computer
possano interpretare la realtà visiva esattamente come
un essere umano; essa si avvale di algoritmi complessi in
grado di elaborare immagini fisse o in movimento, al fine
di fornire indicazioni e informazioni su persone e oggetti,
proprio come farebbe il nostro sistema percettivo.
Dal punto di vista pratico, la visione artificiale elaborata da un computer
cerca di automatizzare quelle attività che il sistema visivo umano svolge
naturalmente. l campi applicativi della Computer Vision vanno dalla digi-
talizzazione ambientale, la ricostruzione virtuale di luoghi e scenari, fino al
riconoscimento e il monitoraggio visivo degli oggetti e delle persone.

97 '·
'

L'acquisizione delle immagini e l'elaborazione delle • Il modulo dnn ora include il backend Vu/kan spe- -
informazioni visive in tempo reale necessitano rimentale e supporta le reti in formato ONNX.
solitamente di dispositivi ottici ad alta risoluzione, • Il famoso algoritmo Kinect Fusion è stato imple-
di potenti computer e software ad hoc mentato e ottimizzato per CPU e GPU (OpenCL).
In questo articolo esporremo un'applicazione di • Un rilevatore e decodificatore di codice QR sono
OpenCV 4, ossia la release più recente della diffusa stati aggiunti al modulo objdetect
libreria libera, rilasciata sotto una licenza BSD • L'algoritmo di flusso ottico denso 015 ad alta
(Berkeley Software Distribution}, che permette di efficienza è stato spostato da opencv_ contrib al
sviluppare applicazioni di visione artificiale anche modulo video.
molto complesse. • Maggiori dettagli possono essere trovati negli
-
annunci delle versioni precedenti: 4.0-alpha,
LA LIBRERIA OPENCV 4 4.0-beta, 4.0-rc e nel changelog.
Dal sito ufficiale di OpenCV (https:llopencv.oriJ
vediamo innnanzitutto le caratteristiche salienti. Ricordiamo che OpenCV è disponibile per interfac-
• OpenCV è ora una libreria C++ 11 e richiede un ce C++, Python e Java e supporta le piattaforme
compilatore conforme a C++ 11. La versione Windows, Linux, Mac 05, iOS e Android. Per il -
CMake minima richiesta è stata portata a 3.5.1 . nostro progetto verrà utilizzata la versione Linux/ •

• Molte API C di OpenCV 1.x sono state rimosse. Ubuntu ottimizzata per Raspberry Pi 38+ e inter-
• La persistenza (la memorizzazione e il carica- faccia Python 3.
mento dei dati strutturati da/a XML, YAML o La scelta di sviluppare un progetto di home auto-
JSON} nel modulo principale è stata completa- mation con OpenCV e la scheda Raspberry Pi si
mente reimplementata in C++ 11 e ha perso basa su due semplici motivi: il primo è legato alla
anche le API in C. compattezza del microcomputer, che può essere
• Èstato aggiunto il nuovo modulo G-API, che tranquillamente alloggiato in un piccolo contenito-
funge da motore per pipeline di elaborazione re, magari stampato in casa con la stampante 30,
molto efficiente per immagini basate su grafici. il secondo è legato alla presenza della porta GPl O
• Il modulo dnn è stato aggiornato con Deep di Raspberry Pi a cui possiamo collegare facilmen-
~ Fig. 1 Learning Deptovment Toolkitdal toolkit te dispositivi di controllo e di allarme.
Il menu • OpenV!NO TM R4. Consultare la guida su come Aggiungiamo infine la facilità di sviluppare in am-
Preferenze > Raspberry costruire e utilizzare OpenCV con il supporto biente Python, che è già integrato nel suo sistema
Pi Configuration di
DLDT. operativo.
Raspbian.

openCV (raspbenypD - VNC Vi...,er

,_, -~

Programmazione ) System ~ [. lnter:f~~~ J Performance ocalisatiOn


lstruz1one )
Camera· :é'l Enable n Dtsable
" Ufficio
SSH. 1• • Enable 1 Dtsable
Internet )

Audio e video ) VNC: ci0 1 Enable 0 Disable



111:
f Grafica SPI: C•J Enable ' ) D1sable
~ Giochi )

12C. (i) Enable O Disable


)

Seria! Port • Enable D1sable


@ Help )

Seria! Console •J Enable D1sable


Add l Remove Software
1-W1re: ~· ~ Enable l D1sable '''
Appearance Settings '
<t} Run ...
iO
! Audio Dev1ce Settings Remote GPIO. (e
- Enable Disable
Shutdown...
Mam Menu Editor - l

"
Raspberry Pi Conf1guration Canee! )' DK
, e· "l •

Recommended Software
Tastiera e Mouse ~ Fig . 2
La finestra Raspberry Pi Configuration
con le interfacce tutte attivate.

98
RASPBIAN STRETCH
~ Fig. 3
Prima di installare OpenCV 4 abbiamo pensato La finestra
che fosse utile provarlo sulla versione di Ra-
spbian più recente. Dal sito ufficiale di Raspberry
Configure: l interface ... l r-~~~-::l Network
Preferences.
Pi (https:"raspberrypi.org) si consiglia di scaricare O Automatically c~'ìtigure empty optìons
l'immagine di Raspbian Stretch nella versione "con
O Disable l~v6
desktop e software consigliato':
La data dell'ultimo rilascio al momento in cui scri- 1Dv4 Address: [ 92...168 .. 10012-J. ]
viamo è novembre 2018.
Èfortemente consigliata questa versione per- 1Pv6 Address: [..___ _ _ __ __ --'j
ché, fra le molte migliorie di sistema, c'è anche la
localizzazione in italiano del desktop e il supporto Romer. [~1_9_2._16_8_.1__1_________1
linguistico per alcune applicazioni. Inoltre, il wizard
iniziale permette di configurare velocemente l'am-
J \IS Servers: 1192.168. .1 8 8 8 8 l
biente operativo come, per esempio, la tastiera J:-.JS Search: 1'-------------J]
italiana, il fuso orario, la rete Wi-Fi e altro ancora.
Per coloro che conoscono poco l'ambiente Ra- Clear Appt·ca [ Chiudi J
spberry Pi e non sanno come creare una card SO
masterizzata con il sistema operativo Raspbian,
è disponibile un'ottima sezione di Help nel sito
ufficiale. configurazione WLAN o LAN. Se si vuole sfruttare
la rete Wi-Fi della scheda è sufficiente aprire la •
VNCVIEWER finestra Network Preferences (Fig. 3) in cui è visibile
Anche se si può operare direttamente con un mou- l'indirizzo assegnato dalla connessione WLAN.
se, una tastiera e un monitor HDMI, collegati alla
scheda Raspberry Pi, di solito si preferisce creare CONNESSIONE VNC
un collegamento al desktop di Raspbian attraverso Per creare una nuova connessione con VNC Viewer,
una connessione SSH o VNC. basta inserire nella finestra Propertiesl'indirizzo ~ Fig. 4
In questo modo, dopo aver configurato la rete lP della scheda Raspberry Pi, come illustrato in La finestra
Wi-Fi o Ethernet di Raspberry Pi, si può accede- Fig. 4. Una volta avviata la connessione VNC verrà Properties di VNC
Viewer.
re al desktop remoto utilizzando uno dei tanti chiesto il nome utente e la password di autentica-
terminali SSH oppure tramite il comodo VNC
Viewer, scaricabile gratuitamente dal sito ufficiale
o x o x
https:" www.realvnc.com e disponibile per tutte
le piattaforme. Per la cronaca, abbiamo usato la Generai Options &pert
Enter a \'NC Ssnr 3ddren or
versione per PC Windows, ma l'utilizzo è identico --~----1

anche per tutti gli altri OS.

CONFIGURAZIONE DELLE INTERFACCE


DI RASPBERRY Pl
openCV
1\
Prima di configurare la connessione VNC è neces- VNC ~ 119_
~..... 2.1_
6!_
1 .8_ _ _ _ _ _ _~
sario attivare l'interfaccia VNC dal menu Preferenze Name: lf riendly ident1fier
> Raspberrv Pi Configuration di Raspbian, come illu- ltbels
To nestlabtl~ separate names .nth a fcM~rd 5ltih (l)
strato in Fig. 1. Per fare questo, una volta aperta
Enl!t a l~l name, or press Down to appJy east•ngl1btl$
la finestra Raspberrv Pi Configuration, basta fare clic
sulla voce VNC Nella stessa finestra si possono S«Urity

attivare anche tutte le altre interfacce, compresa Enayption: Ltt 'INC Se:r. er choc~

l'interfaccia Camera, come illustrato in Fig. 2. Le 0Authe'ltica~ using single sig,.on (SSO) if possible
!;1Authenticate using 1 sm1rtc~rd or certifiate stcre if pcssible
altre interfacce, anche se non servono per questo
progetto, potranno venire utili in futuro. PrivJcy

Per usare la connessione VNC bisogna conoscere E2J Update desktop p~~ 1utomatica.fty

l'indirizzo lP che è stato assegnato automati-


l OK Cancel
_--'
camente alla scheda al momento della prima

'
99
'

'

- --- - . -
~ = _; - - -= ~ - =' - - - = " ~= ~ .= - - :: ? -= ~~ ~: ~- ', ' • - • - ~ ~~ : ~ '"' _- " '~ ~ ·~ • - .- -'= = -

rlJ Authentication x
Enter the credentials expected by VNC Server running on the remote computer.
RASPBERRY Pl 38+ E CAMERA MODULE V2
Note these are not your ReaiVNC account credentials.
Per questo progetto abbiamo optato per la scheda
VNC Server: 192.168.1.100::5900 (TCP) Raspberry Pi modello 38+ e per Raspberry Pi
Usemame l~p_i______________________________________~----------~~ Camera Module v2. La versione 2 della videoca-
mera offre una risoluzione di ben 8 Megapixel e
Password: l"'"•_
" •_•_• •_•_•_•_•___________________.._....AJ 3.820 x 2.464 pixel di risoluzione del sensore. Per
........................................................ .
~

tutte le atre caratteristiche si veda la pagina sul


~~.~.~m.P.~r.P.~~.Q.rgj
sito ufficiale https:~www.raspberrypi. org/documen­
Catchphrase.: Santa na kitchen canyon. Split mineraf flared. tationl hardwarelcamera. La Camera Module v2 va
Signature: 47-db-a2-10-20-a7-be-7e collegata come illustrato in Fig. 7, usando il flat
cab le in dotazione e facendo attenzione al verso di
l. . _ o_K_ _.I _ Canee!. J inserimento alla porta CSI di Raspberry Pi 3 B+.

~ Fig. 5 TEST DELLA VIDEOCAMERA


La finestra
Per vedere se la videocamera funziona corretta-
Authentication
di VNC Viewer. zio ne che, per default, sono rispettivamente "p i" e mente con Python, si consiglia di effettuare questo
"raspberry" {Fig. 5). semplice test. In una nuova finestra dell'editor di
Una volta effettuata la connessione, il desktop di Python scrivere queste poche righe di codice:
Raspbian sarà visibile a tutto schermo sul monitor
del PC. Da questo momento in poi, si potranno from picamera import PiCamera
scollegare il mouse, la tastiera e il monitor dalla from time import sleep
scheda Raspberry Pie avere il controllo totale da camera = PiCamera()
remoto. Può capitare che l'indirizzo lP assegnato camera.start_preview()
dal DHCP cambi, quindi è consigliabile configurare sleep(10)
un lP statico nella scheda Raspberry Pi. camera.stop_preview()

Per configurare un lP statico è sufficiente aprire una finestra del termi- #indirizzi staticj dei server
nale (Fig. 6) a digitare il seguente comando: ~ Fig. 6
Una volta salvato nfile e riavviato il sistema, la finestra
.,
dell'editor nano
sudo nano /etc/dhcpcd.conf l'lP statico così impostato permetterà dt effet-
in cui modificare
tuare la connessione VNC utilizzando sempre il file dhcpcd.conf.
Questo aprirà il file dhcpcd.conf netra finestra dell'editor nano. lo stesso indirizzo.
Nell'esempio riportato nel file dhcprdconf, basta quindi decommentare
le seguenti righe e modificare i dati in base alla propria rete e all'indiriz-
zo lP che si vuole usare per la conne·ssione remota:

interface wlan0
#oppure ethO se si usa una rete LAN

static ip_address=192.168~1.100/24
•• ·c!

#un qualsiasi indirjzzo nel segmento di rete del proprio router

static routers=192.168.1.1
#indirizzo lP del router

::

stati c domain_name_servers=192. 168.1 .J 8. 8. 8. 8


! ·::.

100

All'avvio dello script dovrebbe aprirsi una finestra


di preview e ch iudersi dopo 1Osecondi.
Se questo non accade, controllare che il flat cable
sia ben inserito nel verso giusto nello slot. Se tutto
funziona a dovere, si può proseguire tranquilla-
mente all'installazione di OpenCV 4.

INSTALLAZIONE DI OPENCV 4
SU RASPBIAN STRETCH
Come per le precedenti versioni, anche OpenCV 4
necessita di una particolare installazione. Per cu i,
se non si dispone del già citato sistema operativo ~ Fig. 7
Raspbian Stretch, è necessario aggiornare il siste- Collegame nto
ma operativo per sfruttare le nuove funzionalità. del modulo
{
Camera Module
Attenzione l OpenCV 4 non è stato testata su v2 a Raspberry Pi
versioni di Raspbian precedenti a Stretch. 3 B+.
Data la giovane età di OpenCV 4, non abbiamo
trovato molte guide an-li ne, per cui ci siamo
affidati all'esperienza di Adrian Rosebrock che
gestisce il suo blog sul Deep Learning all'indirizzo grafica:
https:llwww.pyimagesearch.com e di Satya Mallick
che gestisce il sito https:llwww.learnopencv.com sudo apt-get install libgtk-3-dev
dedicato alla Computer Vision a al Machine Lear- sudo apt-get install libcanberra-gtk*
ning. Entrambi riportano pressappoco la stessa (l'asterisco acquisirà la specifica GTK ARM}
procedura di installazione. .
Notate che per molti comandi da terminale si deve A questo punto servono due pacchetti che conten-
usare il carattere tilde H. Se non è presente sulla gono ottimizzazioni numeriche per OpenCV:
tastiera, usare i tasti SHIFT +CTRL+u e inserire il
codice esadecimale 7e +INVIO. sudo apt-get install libatlas-base -dev gfortran

INSTALLARE LE DIPENDENZE DI OPENCV 4 Infine, installiamo gli strumenti di sviluppo per


Prima di avviare qualsiasi installazione su Ra- Python 3:
spbian è sempre consigliabile aggiornare i reposi-
tory con il comando apt-get, aprendo una finestra sudo apt-get install python3-dev
del terminale:
Dopo aver installato tutti i prerequisiti, è possibile
sudo apt-get update && sudo apt-get upgrade eseguire il download di OpenCV 4.

Quindi, sempre con apt-get, si devono installare DOWNLOAD DI OPENCV 4


tutti gli strumenti di sviluppo, inclusa l'ultima È preferibile scaricare gli archivi di OpenCV4 nella
versione di CMake: cartella Home. Tutte le librerie di OpenCV 4 sono
disponibili in due repository github chiamati opencv
sudo apt-get install build-essential cmake unzip pkg-config e opencv_ contrib. Il repository contrib contiene
moduli aggiuntivi creati dagli utenti.
Successivamente, installiamo una selezione di li- Ecco i comandi da digitare per tornare alla cartella
brerie per il trattamento delle immagini e del video: Home e scaricare i due repository.

sudo apt-get install libjpeg-dev libpng-dev libtiff-dev cd -


sudo apt-get install libavcodec-dev libavformat-dev wget -O opencv.zip https://github.com/opencv/opencv/
libswscale-dev libv41-dev archive/4.0. 0.zip

sudo apt-get install libxvidcore-dev libx264-dev wget -0 opencv_contrib.zip https://githu b.com/


opencv/opencv_contrib/archive/4.0.0.zip

Quindi, installiamo i toolkit GTK per l'interfaccia Una volta scaricati gli archivi zip, vanno decom-

101
pressi, sempre nella cartella Home: è necessario aggiornare il file -lprofile, usando

questi semplici comandi echo:
• •
unz1p opencv.z1p
unzip opencv_contrib.zip echo "export WORKON_HOME=SHOME/.virtualenvs" » -t.profile

echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/py-
thon3" » -t.profile
Verranno così create le directory opencv-4.0.0 e
opencv_ contrib-4.0.0. Per motivi pratici si con- echo "source /usr/local/bin/virtualenvwrapper.sh" >> -/.profile
siglia di rinominare le cartelle come opencve
opencv_ contrib: Le aggiunte al profilo indicano il percorso della
cartella di lavoro virtualenvs, creata dallo strumen-
mv opencv-4.0.0 opencv to virtualenv nella Home e il percorso dello script
mv opencv_contrib-4.0.0 opencv_contrib virtualwrapper che si trova nella cartella /usr/bin.
Una volta aggiornato il profilo, basta attivarlo con il
A questo punto, prima della compilazione vera e comando seguente:
propria della libreria OpenCV 4, è necessario predi-
sporre l'ambiente virtuale di Python 3. source -/.profile

CONFIGURARE L'AMBIENTE VIRTUALE CREARE UN AMBIENTE VIRTUALE PER


DI PYTHON 3 CONTENERE OPENCV 4 E l PACCHETTI
Se non si ha familiarità con gli ambienti virtuali di AGGIUNTIVI
Python e per sapere perché è consigliabile lavorare A questo punto si può creare un ambiente virtuale
su un ambiente virtuale si veda il box dedicato. OpenCV 4 per Python 3 e lavorare co.sì in maniera
Per prima cosa, bisogna installare pip: indipendente da altri ambienti.
Questa linea di comando crea semplicemente un
wget https://bootstrap.pypa.i o/get-pip.py ambiente virtuale Python 3 chiamato "cv':
sudo python3 get-pip.py •

mkvirtualenv cv -p python3
Quindi installiamo virtualenv e virtualenvwrapper
che consentono di creare ambienti virtuali di Si può dare un nome qualsiasi all'ambiente virtuale,
Python 3: ma si consiglia, per praticità, di tenere un nome
corto. Se il profilo è attivato correttamente e viene
sudo pip install virtualenv virtualenvwrapper creato l'ambiente virtuale "cv'; si può verificare
~ Fig. 8
sudo rm -rf -tget-pip.py -t.cache/pip che siamo nell'ambiente "cv" usando il comando
Attivazione
del profilo e workon, come indicato dalla freccia di Fig. 8:
dell'ambiente Per completare l'installazione di questi strumenti,
virtuale cv. workon cv
• •

INSTALLAZIONE DI NUMPY
Il pacchetto Python richiesto da OpenCV 4 è
NumPv. Per installarlo basta digitare il comando
seguente:

pip install numpy

CMAKE E COMPILAZIONE DI OPENCV 4


Per compilare OpenCV 4, si userà CMake, seguito
da make. Questo è il passo più dispendioso in
termini di tempo. lnnanzitutto, bisogna torna alla
cartella opencv nella Home e creare al suo interno
una sottodirectory bui/d:

cd -topencv
mkdir build


102

cd build

A questo punto eseguite CMake per la creazione


della bui ld di tipo release.

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=-/opencv_contrib/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=0N \
-D BUILD_TESTS=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF ..

Notate che il carattere backslash serve a conti-


nuare il comando con un a capo. Notare anche zio ne o la scheda si blocca, si può provare senza
~ Fig. 9
la presenza del percorso per la compilazione dei l'opzione -j4. Normalmente, il processo di compila- Compilazione
moduli aggiuntivi opencv_ contrib. zione di OpenCV 4 è abbastanza lungo e dispen- terminata con
dioso di risorse, per cui si consiglia di prendersi una successo.
AUMENTARE LO SWAP SUL RASPBERRY Pl bella pausa e lasciare che la scheda lavori senza
Prima di iniziare la compilazione vera e propria si interventi esterni di nessun tipo, ovvero senza •
consiglia di aumentare lo spazio di swap. Questo toccare mouse o tastiera. Al termine della compi-
per evitare che la compilazione si interrompa a lazione, se tutto è andato bene si potrà vedere la
causa dell'esaurimento della memoria. Per fare ciò percentuale di compilazione al 100%(Fig. 9).
basta modificare temporaneamente il file di swap Ora non ci resta che installare OpenCV 4 con due
che si trova in questo percorso letcldphys-swapfile: tipici comandi:

sudo nano /etc/dphys-swapfile sudo make install


sudo ldconfig
... e quindi modificare la variabile CONF _SWAPSIZE
portando la da 100 a 2.048 MB. Con il carattere# si Non dimenticare di ripristinare lo swapfile, ripor-
commenta la riga: tandolo a 100 MB, e riavviandolo:

# CONF_SWAPSIZE=100 sudo nano /etc/dphys-swapfile


CONF_SWAPSIZE=2048 CONF_SWAPSIZE=2048
sudo /etc/init.d/dphys-swapfile stop
Se non si esegue questo passaggio è molto pro- sudo /etc/init.d/dphys-swapfile start
babile che la scheda si blocchi durante la compila-
zione. Una volta modificato il file di swap, bisogna COLLEGAMENTO SIMBOLICO
fermare e riavviare il servizio di swap: Un ultima cosa molto importante è il collegamento
simbolico di OpenCV 4 con la directory dei pacchet-
sudo /etc/init.d/dphys-swapfile stop ti del nostro ambiente virtuale. Bisogna entrare
sudo /etc/init.d/dphys-swapfile start nella directory dei site-packages dell'ambiente
virtuale e linkare la libreria cv2.so. Ecco i comandi:
COMPILAZIONE DI OPENCV 4
Ora tutto è pronto per compilare OpenCV 4. Digita- cd -/.virtualenvs/cv/lib/python3.5/site-packages/
re semplicemente il comando seguente: ln -s /usr/local/python/cv2/python-3.5/cv2.cpy-
thon-35m-arm-linux-gnueabihf.so cv2.so
make -j4 cd -

Si noti che l'opzione - )4 specifica l'uso di 4 core per Notate l'opzione -s di In che sta per symbolic.
la compilazione. Se si verificano errori di compila- Se non si esegue questo passaggio, OpenCV 4 non

'
103


'

•• '::1
··- "::'!!

•• ;;:::-;:···t!>< •· ·•••.Ì: W::.

.,, ..:· -- .. '· ·. - . :. ,,. ;, .:. - . ::: +.l


·=- :. ,..,_:;:t,;;
li-dll ··i·'';; T: ,..

:ii •••,.·!:
'·· '::" - !!. ::; ., .:;;·;; :;;:;>.

··"' '::::ili . : ,., :;; ;··•·:::: ' - : ;:; .:. : -~ .-


;.; -" ,_, .:;: ::.. ·1 ~.11: •:]...:. • :; .;: '"' :;,
11 !

Virtif·a.l Envir~hment 5t~ per ambiente virtuale. S.i fratta dl.una prattca
• ,.,,,,_,· ...., ::•. ,: - ,., ,, •••!• •• "' •• • • - ;. ·,:;
quest~ :çartella ~g~remo ij:oHnstan:~re tutti J.Jnodun.ç9n la ve.~ ione che-
che ~~rmetfe i:li -tr-ear.~r€1egU spazì indip,e,~denti d~l resto ael siste.ma i~
-·:t ;,,_,, .::- ;, ·:;!!:· - ':· ••. • ,.
,,,".vogliamo Ìfl basè"a ~ prage,~o su e:ufst sta la,varanda. ·:.: -
:;. + :;· . :· - ·::nt::l:: :::·'i: w;:.::.'· , ,. - ·· '"' · -:: .,.,
"m''' ,,,,

Gui è" p'ossibilé. t~sta~~!''a lavorare con llython e piJj:.


::. ;- • •
·~ , - ,.. • .:;.. ::% ,. ·i'"'
..,,. Una-volta"Ereato",i jn ambiénte virt·Uale, basfa"attivar'to~ iniziare a
,. ,.:. -_i:: F- _w ·:o.,;, ;:;::t.',·· .,;.: :· . ... .•
.-.,.,.., .,.,_,.::,:.

ln~Jtre parole;.gli ambienti virtuali consentono éli.lavorar~ e speri.:";;," ,;":f'avoraré"' iil suo interno""·.·',.'<.·_", .- ·, ··~ · . ,...·: . . j,. •
ti ,;; " •' • ;;!:•' •• -~: - .:. • : ! - ! • ·::,;~: . • "' -,;. :; • '":: ' - ::, ,~, • '" '" ,,; ' •

me.n(are con più proge~ti conl-einporaneamente, ~onostanfe questL -


":·:·: -"'; _t;,: ,. - • ..;; • • ·• - "' ,•,,::: '- ::.
' Se non ~~già slata fatto irl"'prec~denza, biso.gna inst~J'Iare il pac·chetto ····-
:::,;:- • • ;:; ••• , ::: '·;:·! i" ,~,::;·:::. - . " - .. .:: ·: :: ... ,•::;::; ..:~ "::. - ._,,,_,,, .. ·::·

. utilizzino una versione·,. diversa ·Hegli stessi modul'i.


" -" . . '" . ·.,;,"i';;'
·,. ., . . : :: .,,.,,. '!! ·- ::; :. ,. ::. " . '- -
·. ·: virtualénv con pip! ~ ",'
,•..:; ,;.-;,_ •• 1;:·
'·, .
-::: ;;.·;;l;i;:,;:;·ii. • ... :;:lri''' ;; • "'
-=
;;,-,::::"'

lno1tter perm·e·ttono d L'instaUa.r~ modulit:on pip senza i pri~vileg1 drroot, . ·pip insfaU virtualenv.
·_·:·.· ;., . . . " , "'· . ,'i. ·"''"
., .... .;: : -
" ::: '~ ::: ·":::: - '''·'·' . - ;,
...,:,
..
con .:tutti i vantaggi che questo.: comportct in termini di sicUtezza. ,"",",, ::::

.,,_.:i.ll: ,;:
.....
~:
'"·
.:. ~' . .
. .:
- ~ ,.,. !::,::; • " ,,. "' ' l.: " - ;; ::•"i' ' !'i,:: .:....: " :;:. ;, . ,, :i'

~ In prJ~tica, viene creata una carte11a che -c;pnterrà i fUe nece"ssari al ·:;~· . ·: ; P.rjma.di.tutto; stconsigli~;dicreare· una carfella di ta\Joro: ,",:.: ;; .. '"''"
"
" - .. '.' ·- . 'i ,;: ,;: .:iJ :;: • '"' .,;- ::: "•- • ·:lll'li' '" :!l ., .n • .;
""'"
~,. funzranamente dell'ambiente e'una copia dei binary di Pythan.1lentro ·"·":·mkdir progetto , ;: : .'"., .. ........, .,.., , ' ;
;; .... "'' '~'::
.. ;:
,;,·::;·
. ., , ..,_ '" , .. ,;;,;; ;;- ,;:;_ ...;: •• ,,li;;!'H' ·::::: ...

- ....,.;:: ...
;.; :.,,;- ".
0
-
Cd PrOietto
.. · · - · . · · -
-
•• .-·
---
--
-
'''"
·"··- • .:;.,;::'" r,:ll -;:::::"::- ·'.! !: _, ...
" ;,·;;·

·;;;;;.;:,t::
;

::.::• .. '
''''!
::·;;::.' .. - ,;;,::::
-:' .,;.i';·i·"'.
- ;:; d - -..,;,::: ,;; :. ;: '
l'!'~'i··ii ';; ~: '""" •. i:·

:::';:""'"' ' ' l!::'":'i! "!"


,_,,.

':./ C'1ln ii,~Qma-ndq::~he sego,~ si può:t reare IJambiente·'Yi~tuate ng.lla ::;; ...

~~~~~~~~~~~~ '

carte li~· proget!,9.,,scegUendo urr·n~me -~ç~,~J~"iasi: · . ·:


• :::," - l

., . ;,, . .,-

· '-"virtual'e'nv env ·name, ~·;,;::_· ,. .,, ,~ ·"


• - 1 ' '

~.;:.-;:.:; .,, ·:·'•·.:;!<!::.:;- .. ,,, •., ti' l!;-

, , Quest~·çomand9 iRstaH~.f.à tutti g,,i strurri~nti nece,~sari all'~l~terno- .,


. ·,
(Jell'al"ribiente.\ihtuale env name. ,
_,,
"" .,.,:,!-"''" -rm·- - .. ..,,....,- -, .,
·;, ;;

"
·:'.::.

'"·::; ...
.,_,., '". ,. - :;:.-•;,::: - :b . ",••., ·TI ,;.,.,:: ·-

' " "Jnfine-,·:c.J.si sposta nerra Gattella bin éleff'"a'JT\bieRte-virtuare-el711_name ":.-. " ;;::r.;,-;: " - " "' .•• - :: ::. :: - • 'i: • . • .l
,.
- .-
, e"lo srattiva conJl comatnio activate:
;;;

., ... ::,.,_
... . ,,.,, - -· ' ,:"' ' .. ;: : _,,, "' •h

·····c·d e-nv · . ,n· a.me/".ln· ·.:::.-,,.•;-.::;·::


,., .,
··source attivate ..
p
- '

. ,,. -
:::' ·iho

'" ;;;;;;.,·:·
::.:::
::·:.-::- .. ·;:

J:·

::!t:;::

• - Ìl' - ::; ·:·::;

:::):: . .., ii·'·


.. . ::!'l! .. ::i::. ,., . . 'l. :::-.

- • .. _,, • •• :1;: :i ., l ,1, · ::· -i: :: ,. :: :::-. .;:.·•:·- ;;. :: ·: - ~: 'l' ;:·

·. Per disattivareJtambi.ent~ virtoa1e"e torn.areal prompt norm,ale, basta


·::.-•;•Iii::::·:: 'E il 'i::: :::··,'''","
•. ,! . .,,:: ... "- ., :.

, digitare"il coma.r:tdo deac.tivate. -_·:"· · ,,-,, .,_


" •• ;! .!! - ... !:o

·'!
w:;·" ...
. .:; '::.- ! ,,,,,,.. ,,,: "--
·i
,.
! • "' "' .
. f, ., -·:;>t •'' :::-:· ..
.... - ,:;: - ' •~t! ·~ ::. :.' .:'' ""
::- ""' ::· .,..:;.;;· :.

riconoscerà i pacchetti dell'ambiente virtuale di prete e si torna al terminale.


Python 3. A questo proposito controllare che nella Ricordate che al riavvio del sistema bisogna riatti-
directory - ! virtualenvsl cvlliblpython3.5/site-packa- vare ogni volta l'ambiente virtuale (nel nostro caso
ges sia presenti il link alla libreria cv2.so. "cv") e quindi iniziare a lavorare, con il comando
workon cv.
VERIFICA DELL'INSTALLAZIONE DI OPENCV 4
Per vedere se OpenCV 4 è stato installato cor- source N/. Profile
rettamente, rimanendo all'interno dell'ambiente workon cv
virtuale cv, eseguire quanto segue dal terminale:
Per usare l'interfaccia ID LE di Python 3 all'inter-
python no dell'ambiente virtuale è necessario digitare il
>>> import cv2 seguente comando:
>>> cv2. -·-version--
'4.0.0' python -m idlelib.idle
>>> exit()
Con l'interfaccia IDLE aperta, si possono creare
Come illustrato in Fig. 1O, il primo comando apre nuovi script o apri re quelli già fatti in preceden-
l'interprete Python 3 associato all'ambiente cv. za. Se si tenta di aprire al di fuori dell'ambiente
Il comando import cv2 importa la libreria e il co- virtuale uno script che importa la libreria cv2, ..
mando cv2.__ version fa vedere la versione 4.0.0 apparirà il Traceback con l'avviso di errore:
della libreria. Con il comando exit() si esce dall'inter- lmportError: No modu/e named 'cv2:

104

• r
VIDEOSORVEGLIANZA CON OPENCV 4 l'oggetto del messaggio. L'istanza msg eredita i
Abbiamo pensato a questo progetto come a una metodi della libreria MIMEMultipart.
valida alternativa ai sistemi d'allarme basati su
sensori PIR, a ultrasuoni, a contatto e così via. Una SMTPserver = 'smtps.server.xxx'
volta ril evato un movimento, lo script fotografa sender = 'sender@email.com'

l'intruso e manda la foto a un indirizzo di posta destination = 'destination@email.com'


elettronica per identificare la persona. username = 'my@email.com'
Qualunque sia lo scopo, abbiamo creato lo script password = 'myPassword'
basato su OpenCV 4 per la cattura del movimento text_subtype = 'plain'
per l'invio di email a un indirizzo di posta. Contem- content='Messaggio'
poraneamente, il movimento rilevato attiva una subject='Allarme'


porta GPlO alla quale collegare eventualmente un msg = MIMEMultipart()
rei è e un sistema di allarme. Raspbian include le

librerie per la gestione della posta e della porta La funzione email_send() è designata all'invio di
,
GPl O, per cui non serve installare altro. un'email con un allegato, che nel nostro caso è
Di seguito commentiamo le parti salienti dello un'immagine jpg dell'intruso o dell'oggetto che si è
script (il codice completo potete scaricarlo dal no- mosso nella stanza. Come vedremo più avanti, la
stro sito www.elettronicain.i~. Le librerie importate funzione di invio e-mail è opzionale e può essere
all'inizio dello script servono solo alla gestione chiamata o meno nello script. Se l'invio avviene
SMTP, ovvero all'invio di e-mail tramite un server correttamente, sul terminale verrà stampato "Invio
di posta noto. Per questo utilizzo, è necessario eseguito" altrimenti apparirà "Invio fallito':
connettere Raspberry Pialla rete WiFi o Ethernet. •
def email_send():
from smtplib import SMTP_SSL as SMTP try:
from email.mime.text import MIMEText
from email.MIMEMultipart import MIMEMultipart msg['Subject']= subject
from email.MIMEBase import MIMEBase msg['From'] = sender
from email import Encoders msg['To'] = destination
msg.attach(MIMEText(content, 'plain'))
Nella sezione che segue vanno cambiati i para- msg.attach(part)
metri per il server SMTP. Si consiglia di impiegare conn = SMTP(SMTPserver)
il server SMTP normalmente usato per l'invio di conn.set_debuglevel(False)


posta dal computer di casa. Le variabili sendere conn.login(USERNAME, PASSWORD)
destination contengono gli indirizzi del mittente e try:
del destinatario, ovvero l'indirizzo con il quale si conn.sendmail(sender,
. destination, msg.as_string())
mandano normalmente le email e l'indirizzo a cui print(''Invio eseguito")
si vuoi inviare il messaggio. Le variabili username e finally:
passwordsono il nome utente e la password usati conn. qui t()
per l'invio al server SMTP. Il tipo di messaggio è di except Exception: print("Invio fallito")
.. testo p/ain e la variabile content indica il contenuto
del messaggio mentre la variabile subject riporta Quelle che seguono sono le librerie che devono

File Mod1f1ca Schede Aruto

~ Fig. 10
Verifica
dell'installazione
di OpenCV 4.

'
105
'

'

essere importate per la gestione della videocame- Come vedete, alcuni parametri sono posti a true
ra, della data, dell'orario, degli effetti video, dei file o false e altri contengono valori numerici e array.
json, di cv2 (OpenCV 4) e della porta GPl O. Leggendo questi parametri con la suddetta istru-
zione conf = json.load(open('configurazione.json')),
import cv2 si possono impostare le funzionalità dello script di
import time videosorveglianza, senza dover toccare ogni volta
import datetime il codice. Per esempio, se non si vogliono salvare i
import imutils file delle immagini catturate e usare la videosorve-
import json glianza solo per accendere il rei è di allarme, basta
import RPi.GPIO as GPIO scrivere nel file json la seguente istruzione:
from picamera.array import PiRGBArray
from picamera import PiCamera "use_img": false

Le istruzioni seguenti impostano l'uscita GPI026 Allo stesso modo, se non si desidera l'invio di
(potete, da qui, sceglierne un'altra): email:

GPIO.setmode(GPIO.BCM) "use_email": false


GPIO.setwarnings(False)
GPIO.setup(26,GPIO.OUT) Se non volete visualizzare la finestra di anteprima:

Lo script prevede l'importazione di alcuni para- "video_preview": false


metri attraverso un file di configurazione, che
abbiamo chiamato appunto "configurazione.json': Gli altri parametri permettono di impostare:
Grazie alla libreria json si può quindi fare il parsing • min_time: valore predefinito 3 secondi; è il
dei valori assegnati ai parametri di configurazione tempo minimo per rilevare il movimento;
e assegnarli alle variabili o alle funzioni. L:istruzione • min_motion: valore predefinito 8 frame; è
che segue permette il caricamento del file json che il numero minimo di frame prima di attivare
viene spiegato nel prossimo paragrafo. l'accensione del LED, il salvataggio dei file e/o
l'invio dell'email. Si può aumentare o diminuire

conf = json.load(open('configu razione.json')) il valore per rendere più o meno sensibile il
rilevamento ;
IL FILE CONFIGURAZIONE.JSON • threshold: valore predefinito 5; definisce
Di solito un file JSON (JavaScript Object Notation) la soglia di sensibilità per il rilevamento del
viene usato nell'ambiente di programmazione movimento. Si può aumentare o diminuire
Javascript. Grazie alla sua versatilità, viene usato questo valore a seconda che si voglia rendere il
spessissimo come file di configurazione in altri contrasto più o meno sensibile;

ambienti. Si tratta di uno script che supporta il lin- • resolution: (predefinito 640x480 pixel) è la riso-
guaggio Javascript e quindi accetta la sintassi tipica luzione video, ovvero la dimensione del riquadro
del linguaggio. Aprendo il file "configurazione.json" (frame) di preview; si consiglia di lasciare inalte-
con un semplice editor di testo si possono vedere i rata la risoluzione per evitare rallentamenti nel
parametri da assegnare a variabili e funzioni: flusso video o nell'invio delle e-mail;
• fps: imposta i frame al secondo; si consiglia
{ di lasciare il valore predefinito (25) per evitare
"use_img": true, rallentamenti nel flusso video;
"use_email": true, • min_area: predefinito 5000. È il valore minimo
'Video_preview": true,
1
dell'area del riquadro verde che viene creata
"min_time": 3.0, attorno al soggetto rilevato. Di solito non serve
"min_motion": 8, modificarla.
"threshold": 5,
"resolution": [640, 480], Proseguiamo con l'analisi del codice: l'oggetto
"fps": 25, camera eredita i metodi della libreria picamera. l
"min_area": 5000 parametri della videocamera vengono impostati in
} base alla lettura dei parametri resolution e fps del

106
file json. Notate l'uso del tipo tu pie che in Python if avg is None:
permette di creare una lista di valori separati da
virgole: avg = gray.copy().astype("float")
rawCapture.truncate(0)
camera = PiCamera() continue
camera.resolution = tuple(conf["resolution''])
camera.framerate = conf["fps"] cv2.accumulateWeighted(gray, avg, 0.5)
rawCapture = PiRGBArray(camera, frameDelta = cv2.absdiff(gray, cv2.convertScaleAbs(avg))
size=tuple(conf[''resolution"]))
thresh = cv2.threshold(frameDelta,
Vengono quindi definite alcune variabili che ver- conf["threshold"], 255, cv2.THRESH_BINARY)[1]
ranno utilizzate nello script per stabilire il tempo di thresh = cv2.dilate(thresh, None, iterations=2)
inizio e di fine della cattura dei frame. (cnts, _) = cv2.findContours(thresh.copy(),
cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
count = 0 -
avg = None ...
motionCounter = 0
lastUploaded = datetime.datetime.now() Rilevato un movimento, il soggetto viene eviden-
ziato con riquadri verdi attorno ai bordi. Quando
All'avvio dello script, si potrà vedere su l terminale il valore di soglia viene superato, apparirà il testo
la scritta "Avvio .. ." poi il sistema attende 2 secondi "Stato attuale: Movimento rilevato" e la variabile
e inizia la cattura video. Si fa notare che nella motionFiagviene posta a True. •
finestra di preview viene sovraimposto nella parte
alta il testo "Stato attuale: Nessun movimento" e, text = "Movimento rilevato"
in basso, la data e l'orario (Fig. 11 ). motionFlag = True
A questo scopo, viene usata la libreria imutils per ts = timestamp.strftime(,.%A %d.%B %Y %I:%M:%S%p")
ridimensionare il frame e la libreria datetime per
l'orario da Internet, per cui l'orario e la data do- A questo punto, se la variabile motionFiag è True,
vrebbe essere precisi. Con la libreria cv2 si imposta inizia il confronto fra il tempo corrente (currentTime)
la maschera per rilevare un oggetto in movimento. e il tempo impostato per il rilevamento (lastTime)
Si fa notare che il parametro tresh legge il valore di impostato dal parametro min_ ti me nel file json
soglia, ovvero il parametro threshold dal fi le json e inizia il conteggio dei movimenti rilevati con la
di configurazione. La variabile motionFiag viene variabi le motionCounter.
posta a False.
if text == "Movimento rilevato":
print "Avvio ... " if (currentTime - lastTime).seconds >= conf["min_
time.sleep(2) time"]:
motionCounter += 1
Tutta la iterazione for serve a contare i frame e
rilevare le differenze della maschera di grigio che
viene sovraimposta all'immagine catturata, come
illustrato in Fig. 12. Il valore di treshold imposta la
soglia di intervento per rilevare il movimento.

for f in camera.capture_continuous(rawCapture,
format="bgr", use_video_port=True):
frame = f.array
timestamp = datetime.datetime.now()
text = "Nessun movimento"
~ Fig. 11
motionFlag = False La finestra
frame = imutils.resize(frame, width=500) preview riporta
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) "nessun
movimento".
gray = cv2.GaussianBlur(gray, (21, 21), 0)

'
107
'

: ~co : l = ~ cc < = ~ - : ~ ~ :- ' - ! ' - - =: '- ' ' - l - ~ •- l l • ' - : ,- • l -

GPIO.output(26, GPIO.HIGH)
print «LED ON".

oppure:
print (''LED OFF")
GPIO.output(26,GPIO.LOW)

Se è stato impostato l'invio dell'email con il para-


metro use_ email, viene creato l'oggetto partche
imposta il formato MIME (Multipurpose Internet
~ Fig. 12 Mai l Extensions) per comporre il messaggio di
Maschera
di contrasto. posta. Il messaggio viene automaticamente codifi-
cato in formato base64 e quindi spedito tramite la
funzione email_send(),vista in precedenza.
Il messaggio di posta invierà in allegato il file
tifato_ 1.jpg" e successivamente il file "foto_2.jpg" e
Se il numero dei movimenti rilevati supera quella così via, in base alle volte che la videocamera rileva
impostato dal parametro min_motion nel file json, un nuovo movimento.
si può decidere se salvare il file jpg del soggetto. La Fig. 13 illustra un esempio di ricezione di un'e-
Questa opzione viene impostata dal parametro mail di allarme.
use_img del file json. Notate che il nome del file
img = foto_' + str(count) + 'ipg' segue una numera- if conf[''use_email'']:
• •
z1one progressiva. part = MIMEBase('application', «octet-stream'')
l nomi dei file vengono salvati localmente con part.set_payload(open(t, ''rb'').read())
l'istruzione cv2.imwrite(img, frame) come foto_ 1jpg, Encoders.encode_base64(part)
foto_2jpge così via. part.add_header('Content-Disposition', 'attachment;
filename='+ img)
if motionCounter >= conf[''min_motion'']: email_send()
• if conf[«use_img'']:
count += 1 CONCLUSIONI
img ='foto_' + str(count) + '.jpg' Per ora è tutto. Per fare un po' di esperienza po-
cv2.imwrite(img, frame) tete provare a modificare il listato per aggi ungere
funzionalità o modificare i parametri del file json
Nel frattempo, il LED/relé su l pin GPI026 viene per vedere cosa succede.
~ Fig. 13 attivato o disattivato, mentre viene stampato LED li Stiamo lavorando a un progetto di riconoscimen-
E-mail con la ON" sul terminale, a seconda se viene rilevato o to facciale e di espressioni emotive, sempre con
foto in allegato.
meno il movimento: OpenCV 4. A presto! D

Q Allatme
---·-
... 18!45

O Me <pltrOcaldenn.info> * 4) Rispond1 ... Inoltra e Atchrvi.s è Indesiderata @ Elimina Altro v


Ogge-tto Allarme

Cosa occorre?
l componenti utilizzati in questo progetto sono disponibili
presso Futura Elettronica. La board Raspberrv Pi 3 tipo B+
(cod. RPI3BPLUS) è in vendita a Euro 44,00 e la telecamera
da 8 MegaPixel per Raspberrv Pi (cod. 9132664RS)
è disponibile a Euro 39,90. l prezzi si intendono IVA compresa.

Il materiale va richiesto a!

v
Futura Elettronica, Via Adige 11, 21013 Gallarate (VA)
D1 allegato: rotoJ.jpg ~,g.ne Tel: 0331-799775 - http://www.futurashop.it

108

IC:ROC:HIP

opo aver imparato il concetto di CIP ed aver sco-


Scopriamo nuove periferiche perto quanto sono utili nei piccoli microcontrollori
CIP dei microcontrollori Microchip e in che modo possono aumentarne le
Microchip e mettiamo le alla possibilità di utilizzo, nella seconda e terza puntata siamo
prova con esempi di test scesi nel dettaglio studiando le prime periferiche. In questo
quarto appuntamento del nostro corso proseguiamo
realizzati con la nostra board di
l'esame delle CIP studiandone altre molto interessanti, che
sviluppo Curiosity. troviamo in alcune MCU a 8 e 16 bit di Microchip. Come
Quarta puntata nella precedente puntata, per i nostri esempi dimostrativi
continuiamo ad utilizzare la scheda di sviluppo "Curiosi-
tv" (www.futurashop.itcod. CUR/05/TYDB) che utilizza un
PIC16F1619, l'ambiente di sviluppo MPLAB X, che è stato
Internai:
• Any of 4 CLC outputs
• Any of 2 Comparator
Angular Timer Internai:
outputs • Any CLC input
• Zero Cross Detect lnput Signa! ' Period • Timer 2/4/6
•SMT
External:
• Angular Timer lnput pin
Internai:
Missed
• Any CLC input

Internai or External " .,. Phase Internai:


Clock Sources Reference Clock • Any CLC input

~ Fig. 1 - Schema logico delle possibilità dell'Angular.

aggiornato alla versione 5.1 O, il plugin MCC (MPLAB® Code gnale periodico". Un primo contatore tiene traccia dell'inizio
Configuratoli, che è alla versione 3.66 ed il compilatore XCB, del periodo del segnale e può essere sia confrontato con
attualmente alla versione 2.0. più valori, definiti dall'utente, per scatenare eventi (inter-
rup~. che essere letto da programma per funzioni scelte
AT (ANGULAR TIMER) dal programmatore.
La CIP di cui ci occuperemo ora è il AT, ovvero il "Timer Le applicazioni consentite da tale CIP sono molteplici,
Angolare"; CIP piuttosto complessa, ma molto potente, come misure sulla rete AC, rilevamento dello "stalla" di
permette di fare operazioni che, specie su una piccola MCU motori, controllo di motori brushless o il rilevamento TDC
ad 8 bit, sarebbero piuttosto complicate e .molto (therma/ conductivity detecton per motori a combustione
impegnative. interna.
Brevemente, un modulo AT suddivide un "segnale perio- Un secondo contatore tiene invece traccia del periodo.
dico" in ingresso, in intervalli più piccoli equidistanti, il cui Questo può essere, ad esempio, usato per misurare l'errore
numero rimaoe costante al variare della frequenza del "se- del periodo dato su un "set poinf' pre-programmato oppure

CPU
~ Fig. 2 - Esempio di generazione di un
impulso al zoo di un segnale periodico. per input period

Time-Based lnput

Angle-Based Output
Pln Module

System Module

@ Easy Setup § Registers


~~--~--------------------------------------------.-------~
~ INTERNAL OSCILLATOR

Current System clock 8 MHz

Oscillator Select INTOSC oscillator: l/0 function on CLKIN pin ...


~========~~-----------------------------·~
Fo_s_c_____l..__·_.l
System Clock Select l'-_

Internai Clock l'--------:-'-:=-


8MHz_HF l •!lO ~PLL Capable Frequency

External Clock 1 MHz

0 PLL Enabled O Software PLL Enabled

~ WWDT

Watchdog Timer Enable l WDT disabled


Clock

Clock Source Software control, controlled by WOTCS bits ...


Window Open Time Software WDT window sìze contro l (WDTWS bits) •

Time-out Period l Software Contro l (WDTPS)

~ Programming

lIl I Low-voltage Programming Enable

~ Fig. 3 - Schermata di configurazione iniziale con MCC.

rilevare gli impulsi mancanti nel "segnale periodico". seconda CLC porteremo su un altro pine quindi al secondo
Date comunque le infinite possibilità che offre questa CIP, canale dell'oscilloscopio, permettendoci di verificare che
per una sua trattazione di dettaglio e della "matematica" l'impulso venga realmente generato con il ritardo, espres-
che c'è dietro ad ogni singola possibile misura, rimando il so in gradi (rispetto all'inizio del periodo del nostro segnale).
lettore al "datasheet" di Microchip (05400017700) sezione richiesto.
31. In pratica avremo la situazione schematizzata dalla Fig. 2.
Per quanto riguarda invece i collegamenti in ingresso ed in In essa il "Time-Based lnput" sarà fornito da un timer
uscita del AT, essi possono essere riassunti nello schema a interno collegato ad una CLC (. .. che avrà il compito anche di
blocchi proposto dalla Fig. 1. portar/o su uno dei pin della MCV) e il "Angle-Based Output"
Contrariamente al solito, dove la scheda "Curiosity" ci è sarà un segnale che, sempre tramite una CLC, porteremo
sempre stata sufficiente, questa volta, per il tipo di esem- su di un pin in uscita. Come sempre, apriamo MPLAB X e
pio che andremo a fare, ci occorrerà un "oscilloscopio a creiamo un nuovo progetto di tipo "standalone"; selezio-
due canali" per poter visualizzare sia il segnale in ingresso niamo come MCU il PIC16F1619 (MCU montata nella "Cu-
che verificare il risultato. Quello che faremo, sempre e solo riositv" P/N# OM164137), come "Hardware Tool" (debugger)
con l'utilizzo di MCC, è di generare un segnale periodico "Microchip Starter Kits -> Starter Kits (PKOB) -> Curiosity"
(un' onda quadra) attraverso un timer, portarlo su di un pin e come compilatore XCB v2.00. Andiamo poi sulle proprie-
con una CLC per poterlo inviare su uno dei canali dell'oscil- tà del compilatore (XCB Globo/ Options) e, nella categoria
loscopio ed utilizzare poi un AT per generare un impulso "Giobal Options'; alla voce "C standard" selezioniamo "C90"
sfasato di un certo numero di gradi (20°) che, grazie ad una [attenzione, se non si effettua questa selezione e si lascia il
PlnModule lnterrupt Module System Module

TMR2 8 ~

Hardware

lv'l Enable Timer


T" er Clock Timer Period

Clock Source
l FOSC/4 l,l Timer Period 16 us "' 1.8 ms s 4.096 ms

Clock Frequency Ac ual Period 1.8 8 ms (Pe ·od cal cufated via imer Per iod)
32.768 kHz

Postscaler 11:1 l,l Ext Reset Source l T2 N l,l


Prescaler 11:32 l lT Con ol Mode l Roti over p lse l l
T

Polarity l Rising Edge l •l Sta t /Resel Option l Software control


l l
T

D Enable Prescaler O/P Sync


D Enable Cloc Sync
D Enable Timer lnterrupt
Sof ware Set ings

Callback Function Rate OxO x Tlme Period = 0.0 ns

~ Fig. 4 - Schermata relativa alla configurazione del Timer4 .


default C99, si avranno errori durante la compilazione del codi- del nostro "segnale periodico" facilmente divisibile per
ce). A questo punto possiamo mettere in esecuzione il tool 360, ad esempio 3,6 ms (pari a circa 277 Hz) in cui ogni
MCC per la solita configurazione di base. (Fig. 3). "grado" corrisponde ad un intervallo di tempo di 1OiJsec
Selezioneremo come "Oscillator" INTOSC, come "System (3.6 msec l 360), per cui, dovremo impostare il nostro
Clock" FOSC e come "Internai Clock" 8MHz_HF (notate "Timer2" in modo che generi un impulso ogni 1,8 millise-
che nei vari esempi, delle varie puntate, stiamo utilizzan- condi, impulso che, successivamente inviato ad una CLC
do un po' tutte le frequenze di clock che la MCU ci mette configurata come "flip-flop J-K", generi un'onda quadra con
a disposizione). toglieremo eventuali segni di spunta che periodo di 3,6 ms (Fig. 4).
dovessero essere presenti nelle caselle relative al PLL e ci Verificata la presenza del segno di spunta sulla casella
accerteremo che il "Watchdog" sia disabilitato. "Enable Timer", selezioneremo come "Ciock Source" FOSC/4,
Terminata la configurazione iniziale andremo a configurare come "Postscaler" il valore 1/1 e come "Prescaler" il valore
il "Timer" che ci permetterà di generare (quindi simulare un 1/32 che ci permetterà di selezionare il periodo del Timer
segnale che arriva dall'esterno) il nostro "segnale periodico" da un minimo di 16 IJSec ad un massimo di circa 4,096 ms.
di base, che utilizzeremo come ingresso del AT. Sceglieremo come periodo 1,8 ms (valore che, in realtà, ci
Sulla sinistra, selezioniamo il tab "Resource management darà un periodo di 1,808 ms).
(MCC)", e nella sezione "Devices Resources" apriamo, fa- Collegheremo ora l'uscita del Timer all'entrata di una CLC
cendoci sopra un clic, la risorsa "Timer". configurata come "J-K Flip-Fiop with R" così da avere una
Come già visto nelle altre occasioni, ci verranno presentati commutazione del flip-flop ogni 1.808 msec ed un'onda
i vari "Timers" presenti nella MCU; selezioniamo il "Timer2 " quadra in uscita con un periodo di circa 3,6 ms pari a circa
facendo doppio clic su di esso ed al centro, si aprirà un 277,7 Hz.
nuovo tab, relativo a detto "Timer2", dove potremo proce- Selezioniamo di nuovo il tab "Resource manage·ment
dere alla sua configurazione. (MCC)", e nella sezione "Devices Resources" apriamo,
Dato che l'esercizio riguarda la "misura di angoli" e che facendoci sopra un clic, la risorsa "CLC". Ci verranno pre-
un angolo giro è di 360 °, solo al fine di semplificarci la sentati le varie "CLC" presenti nella MCU; selezioniamo la
vita nei calcoli e nelle verifiche, sceglieremo un periodo "CLC1" facendo doppio clic su di essa. Al centro, si aprirà un
nuovo tab, relativo a detta "CLC1" dove potremo procedere golare" AT perché legga in ingresso tale segnale e ci indichi,
alla sua configurazione (Fig. 5). ad esempio, il momento in cui il nostro segnale si trova a
Come sempre ci accerteremo della presenza del segno di 20 ° (dato che abbiamo opportunamente scelto il periodo
spunta sulla casel la "Enable CLC" e verificheremo che non totale a 3.6 msec e sappiamo che ad ogni grado corrispon-
ci siano altri segni di spunta nelle altre caselle. de un tempo di 1O IJS, ci aspettiamo di vedere l'impulso
Nel menu a tendina chiamato "Mode" selezionere- generato dal AT dopo circa 200 IJSec).
mo "JK fii p-flop with R", nel menu a tendina, collegato Selezioniamo la tab "Resource management (MCC)", e nella
alla prima porta logica di "Ingresso", selezioneremo sezione "Devices Resources" apriamo, facendoci sopra un
T4_postscaled_out ovvero il segnale che ci indica che clic, la risorsa "AT". Ci verrà presentato l'unico "AT" presen-
il "Timer4" ha raggiunto il tempo programmato ed ha te nella MCU facendo doppio clic su quale si aprirà, nella
ricominciato a contare. Faremo un solo clic nel rettangoli no sezione centrale, un nuovo tab relativo a detto AT, dove
tratteggiato corrispondente così da collegare tale segnale potremo procedere alla sua configurazione.
al primo pin della prima porta di "Ingresso". Provvederemo Dato l'elevato numero di paramentri, la tab non sta tutta
infine a fare un clic nei due rettangolini tratteggiati relativi in una schermata, quindi l'abbiamo spezzata in due: nella
all'uscita della seconda e quarta porta di "Ingresso" (corri- in Fig. 6 trovate le informazioni presenti nella parte alta;
spondenti ai segnali J e K del flip-flop) in modo che appaia il qui, per prima cosa, ci accerteremo che la CIP sia abilitata
'o' indicante la "negazione" del segnale in uscita. e quindi verifichiamo la presenza del segno di spunta sulla
In questo modo avremo configurato la nostra CLC in modo casella "Enable AT", dopo di che passiamo a configurare i
che, ogni volta che il "Timer4" va in overflow venga inviato vari parametri richiesti.
un segnale sul clock del_flip-flop e che esso commuti il Scegliendo per "Ciock Source" la voce FOSC, si deve sele-
segnale in uscita generando così un'onda quadra con un zionare il valore del "Prescaler" tenendo conto di quanto
periodo di circa 3,6 msec. descritto nel datasheet per il "Angular Timer" (Documento
Abbiamo così configurato il nostro generatore di "segnale Microchip DS40001770D) e nelle "Note di Implementa-
periodico'; il passo successivo è configurare il "Timer An- zione" (Documento Microchip DS90003143A). In pratica

Pin Modulc Jnterrupt Modulc Sy5tem Modulc

CLC1

@ Easy Setup § Regist ers

Hardware Set tings

l..ti Enable C C
D Enable CLC lnterrupt
D Enable Rising lnterrupt D Enable Falling lnterrupt
[ Export CLC image ]

Mode l JK flip -flop with R


T2.,J:osts.aleclout •
1

• 2 Q 1----.

3
CLClNO {CLCIMPI>S) • .---l K
R

4
CLCi O !CLC!t.OPI>S) •

<'r-------------- --------------- --------------- ------------. >


~ Fig. 5 - Schermata relativa alla configurazione della CLC1.
t-Pin---No...:.....;
du_l<-=_,__ln_,._rr__,•P_'Nod_u_l•_ __._s.:..ys_
tem_Nod_ul<_-' AT campo "Ang Tmr Mode" selezioneremo Single Pulse Mode
AT mentre per il campo "Missing Pulse" selezioneremo Adap-
@ Easy Setup § Reglsters tive Missing Pulse Mode (spiegazioni dettagliate su questa
Hardware Settings
A
scelta, e su altre successive, esulano da quest'articolo e
sono da ricercare nel suddetto datasheet).
0 Enable AT
Il parametro successivo da selezionare è la risoluzione
... Clock
voluta e, dato che vogliamo apprezzare il singolo grado,
Clock Source l FOSC l•j scriveremo 360. Automaticamente MCC ci confermerà che
Prescalar J AT1CLK l •l •
la "Resolution" è di 1deg e che il "Resolution Count" è 360.
D Period prescalar ls rese! at start Ulteriori due parametri ci permettono di configurare: il
primo, "Missing Pulse Count'; la rilevazione di mancanza
... Mode di "periodi" nel nostro "segnale periodico" e la generazione
di un segnale indicante tale evento; il secondo, "Set Point';
Ang Tmr Mode l Single Pulse mode impostato con la frequenza aspettata, un segnale indican-
Mlssing Pulse Adaptive Misslng Pulse mode
te la variazione del periodo del nostro segnale.
Resolution
t=-.----, Anche se non lo utilizzeremo, possiamo impostare tale se-
condo parametro alla frequenza da noi aspettata che, come
Max Phase Value 1 " 360 " 1024

Expected Pulse 1s 1 s 360


Resolutlon 1deg PlnNodule l:l lnterrupt Module D SystemNodule Cl AT o~
Resolutlon Count 360
AT 00 ~
Mlssing Pulse
@ Easy Setup § Registers 1
A
Missing Pulse Count -8191 s O s 32767
.., lnput Signa!
Missing Pulse Delay 900 us
Active Edge l rising edge l. l
Set Point

Set point 0.68 Hz ~ 277.7 Hz


Signa! Selection l CLC1_out l •l
• 22.22222 kHz
lnput Frequency 0.68 Hz " 277.7 Hz " 22.22222 kHz
Set point Count 80
Period 80.02
Set Point Error O
Period Count 80
v
Period Error -1.22 %

~ Fig. 6 - Parte alta della tab relativa alla


.., Output Polarity
. configurazione dell' AT.
Perlod l Active high l• J

Phase l Active high l •l


occorre selezionare un valore affinché il clock sia sufficien-
temente alto per migliorare la risoluzione, ma non così alto
Missing Pulse l Active high l •l
(in funzione del "segnale periodico" che si deve misurare) Capture/Compare1 CapturetCompare2 l Capture/Compare3 l "
da mandare in overflow il registro ATxPER.
hl l Enable Capture/Compare
Nel nostro caso abbiamo FOSC che vale 8MHz, il "segnale
periodico" (che ricordo stiamo generando con il Timer2 Mode Select l compare mode

+ CLC1) che vale circa 277 Hz e possiamo selezionare Output Polarity l Active high

come "Prescaler" il valore AT1 CLK ovvero il valore di Fase
senza alcuna divisione. Dato, infatti, che abbiamo detto
lnput Polarity l rising edge l ..
voler apprezzare la risoluzione di 1 grado, avremo che:
lnput Selection l AT1CC1 pin


8'000'000 l 277 l 360:::: 80, ovvero ogni grado durerà 80 Compare Value O " 20 " 1023

periodi di clock del AT (valore che ovviamente non mada in


.., lnterrupts
overflow il regista ATxPER che è a 16 bit essendo compo-
sto da ATxPERH e ATxPERL). D Enable/Disable Alllnterrupt
Ancora una volta MCC ci aiuta nella configurazione e ci evi- D Period lnterrupt D Capture/Compare1 lnterrupt
ta di poter commettere errori difatti, come tra poco vedre- D Phase lnterrupt D Capture/Compare2 lnterropt
mo, impostati i suddetti valori, calcolerà automaticamnete D Missing Pulse lnterrupt D Capture/Compare3 lnterrupt
1';:;
una serie di altre informazioni che altrimenti avremmo
dovuto calcolare a mano usando le formule del datasheet. ~ Fig. 7 - Parte bassa della tab relativa alla
Passeremo poi a selezionare la modalità operativa; per il configurazione dell'AT.
abbiamo visto, è di circa 277.7 Hz (teorici). re quando, in un dato momento, si vuole leggere l'angolo
Proseguendo, sco rre ndo verso il basso, an dremo nella raggiunto dal "segnale periodico", la modalità "Compare" è
parte bassa della tab, dove troveremo quattro blocchi che quando si vuol e essere avvisati del raggiungimento di un
conterranno altri parametri da noi configurabili (Fig. 7). Nel det erminato angolo. Dato che in quest'esempio vogliamo
primo blocco, quello relativo al "lnput Signal'; dovremo un segnale dal AT quando abbiamo raggiunto un ango-
caratterizzare il nostro "segnale period ico" in ingresso; lo di 20 ° nel nostro segnale, abiliteremo sol o uno dei
nel campo "Signal Selection" indicheremo da dove arriva il tre "Capture/ Compare" mettendo il segno di spunta nel
nostro segnale, ovvero, in quest'esempio, dall'uscita della cam po "Enab le Capture/ Compare" del "Captu re/Compare1·;
CLC1 e quindi selezioneremo CLC1_out, nella selezione del lasceremo il campo "Output Polarity" al suo valore di base
"Active Edge" (fronte utilizzato per la misura) selezioneremo (ovvero attivo HIGH) ed inseriremo nel campo "Compare
rising edge e, come "lnput Frequency" metteremo il valore Value" il valore richiesto, ovvero 20.
teorico calcolato della frequenza del nostro "segnale perio - Nel quarto ed ultimo blocco, relativo agli "lnterrupts'; non
dico'; ovvero 277.7 Hz. Automaticame nte MCCfarà i calcoli essendo richiesti nel nostro esempio, non metteremo
per noi e ci dirà che, con il cl ock che abbiamo selezion ato alcun segno di spunta.
per l'AT (ricordiamo che abbiamo scelto FOSC senza pre- Conc lu sa la configurazione del AT (che, facci o ancora nota-
scaler, quindi 8MHz) dovremmo avere una suddivisione del re, essere stata totalmente semp lificata dall'uso di MCC)
periodo in 80,02 parti che viene ovviamente arrotondato a dobbiamo ora portare il segnale del "Capture/Compare1"
80 con un errore del - 1,22%. su un pin fi sico così da poterlo esaminare con l'oscillosco-
Il secondo blocco, "Output Polarity'; ci permette di selezio- pio. Per fare questo utilizzeremo una seconda CLC di cui
nare la polarità delle uscite del AT e noi lasceremo i valori collegherem o l'ingresso all'uscita del ATe l'uscita ad uno
proposti ovvero normalmente LOW e attivi HIGH. dei pin della MCU.
Il terzo blocco ci permette di configurare sino a tre valori Dal tab "Resource management (MCC)'; nella sezione
di "Capture/Compare"; la modalità "Capture" è da utilizza- "Devices Resources" apriamo la risorsa "CLC". Come sempre

Pin l\lodule Cl lnterrupt Module El Syuem Module ,Cl TMR2 E3 CLCl 13 AT f3 CLC 2

CLC2 00 @
1
@ Easy Setup § Regìsters
,.,
Hardware Settings r

lv'i Enable CLC


D Enable CLC lnterrupt
D Enable Rìsing lnterrupt D Enable Falling lnterrupt
[ Export CLC ìmage J

Mode l ANO -OR l l T

Angulilr T,.,R Ccmpl •


: .
~
1

.
'\
CLCINO !CLCINOPPS) •
2
l r-..
• ./ ....
...
. v
CLCJNO ICLCINOPPS) •
3 .... ·


4 ..
CLCJNO!CLCINOPPS) •

v
<L >

~ Fig. 8 - Schermata relativa alla configurazione della CLC2.


Output - MPI..AifJ Code Configu,..,. Notlflcations Notlficatlons [MCC) Pin Manager; Grid View O
~

Package: PDIP20 .... Pin No: 19 18 17 4 3 2 13 12 11 10 16 15 14 7 6 sls 9


l

PortA., Port B,. Port c,.


l
Module Function Directlon o 1 2 3 4 5 4 15 6 1 o 1 t 2 3 4 s l,__6 7
.. ,.
l

ATCC1 input 'il 'à , 'à ~ 'h 'h 11 ,11 ,'11 11


l
11 1 '11 ~ 11 'à 'à 'h 'il 'il
AT ,.
ATCC2 input 'à 'à .'à 'b 'il .. ~ 'à · 'b 'à 'il 'à l 'Il 'à 'à 'à 'il 'à
ATCC3 input 'à 'à Ì'à 'D 'à'à 'à ,'b 'à 'à 11 ,11 'il 11 'à 'à'à'à
ATIN input
-
'à'à'à 'h 'à'à 11 '11 'à 'à --'à -''h 'h 'h 'à 'à'à'à
CLC1 C C10 UT output 'à 'à 'à 'à.. ,. ..
'à 'à 'h 'à 'à 'à 'à i • 'à 11
1-

CLC2 C C20UT output 'à 'il i 'à 'ìl 'à 'à 'à 'il 'à 'à 'à 'à 'à 'à'à 'Il •
,C CINO input 11 'à 'à ,'à 'à'à'à'à ,'à'à 'h 'à ,'à ~ 'à ,'h 'à 'h
'
C CIN1 input 'il ,. ·,. T~~ 'll ~ 'à 11 11 '11 .11 'à'à'à'à'à'à'à'à
CLCx ,.
CLCIN2 input 'à 'b 'b 'b 'à'à 'à 'à 'b'à 'à 'à 'il 'b 'à 'à 'à 11
CLCIN3 input 'à 'D ,.
'b 'à 'b 'b 'à 'b 'à 'à 'à 'à 'à 'à 'à 'il 'il
osc C KOUT output 'à
Pin Module,. r-
GPlO
l
input 'à 'à 'à 'D 'à 'ìl 'il 'à 'à ,'à 'à '11 1'11 'Il 'à 'à 'à 'à
GPlO output 'à 'b 'à , D 'à 'à 'b 'à 'à 'à'à'à 'b 'à'à'à'à'à
RESET MCLR input i -
TMR2 T21N input 1111 'à 7 'à 'à 'à 'Il 'h 'à 'à 11 'il 'b 'à 'b 11 11
~

~ Fig. 9 - Schermata relativa all'assegnazione dei pin alle uscite delle CLC.

ci verranno presentati le varie "CLC" ancora disponibili nella In corrispondenza del la riga in cui compare il modulo CLC1,
MCU; selezioniamo la "CLC2" facendo doppio clic su di essa. funzione CLC1 OUT, facciamo clic sul piccolo lucchetto aper-
Al centro, si aprirà un nuovo tab, relativo a detta "CLC2 " to, su sfondo di colore azzurro, che si trova in posizione C5
dove potremo procedere alla sua configurazione (Fig. 8). dopo di che, in corrispondenza della riga in cui compare il
Verificata la presenza del segno di spunta sulla casella modulo CLC2, funzione CLC20UT, facciamo clic sul piccolo
"Enable CLC" ed accertato che non ci siano altri segni di lucchetto aperto, su sfondo di colore azzurro, che si trova
spunta nelle altre caselle, passeremo al menu a tendina in posizione A2. Entrambi si trasformeranno in un picco-
chiamato "Mode" e selezioneremo "ANO-OR". Nel menu a lo lucchetto chiuso su sfondo di color verde, ad indicare
tendina, collegato alla prima porta logica di "Ingresso': se- l'avvenuta connessione. Una volta terminata la configura-
lezioneremo Angular TMR Comp1 ovvero il segnale in usci- zione con MCC, come ormai sappiamo fare, utilizzeremo il
ta dai"Capture/Compare1" del AT. Faremo un solo clic nel pulsante "Generate" che si trova sulla sinistra, cliccandovi
rettangolino tratteggiato corrispondente così da collegare
tale segnale al primo pin della prima porta OR di "Ingresso".
Provvederemo infine a fare un clic nel rettangoli no tratteg-
giato relativi all'uscita della seconda porta OR di "Ingresso"
(corrispondenti al secondo segnale di ingresso della prima
ANO) in modo che appaia il 'o' indicante la "negazione" del
segnale in uscita (non essendoci nulla collegato su lla OR
di ingresso il suo segnale di uscita sarebbe LOW, in questo
modo lo abbiamo portato ad HIGH). Risulta evidente che
l'uscita della CLC2 sarà uguale al segnale presente in
ingresso, ovvero al segnale proveniente dai"Capture/Com-
pare 1" del AT.
A questo punto non ci resta altro da fare che co llegare
l'uscita delle nostre CLC ad un paio di pin della MCU così
da poter visualizzare, con l'uso di un oscilloscopio, l'onda
quadra generata ed il segnale proveniente dal AT.
~ Fig. 10
Spostandoci tutto in basso selezioneremo il tab "Pin Mana- l connettori della
ger Grid View" (Fig. 9). scheda Curiosity.
• • l•
PicoScope 6 Beta

-
"' Il. d!. i?~ < 1- > < [1MS < 25ol25 ·D , ~ o l\. "' <:-. piCO •
A < ~ DC B 4 AIJIO ~ ~ (1\1)
-
• 5.0
v
-- so
v
l

4.0

3 3 o

2.0

l o •
IO

o o

·1.0 -l o

-2 .0 - 2.0

-3 ,0 -3 .0

-4 o -·o

-s o
- 3.0 ~2 .0 -1 .0 0.0 l .O 2.0 3.0 4.0 s.o 6.0
ChaMtl Name Test Fabes Vallt Mn Count

A 276.8 Hz J

A < [943.2mVl • < [30% l > [~ ) /Oo


~ Fig. 11 - Schermata dell'oscilloscopio dei segnali in uscita.

sopra per avviare la generazione del codice che, senza potranno, come negli altri esempi, sia esaminare dal tool
modifiche, potremo direttamente compilare e caricare sulla MCC i vari registr.i delle varie Cl P, sia andare a guardare il
scheda "Curiosity" per metterlo in esecuzione (i più curiosi codice 'C' generato).

PicoSeope 8 Beta

> < [1MS J > -


p1CC>
A < Auto > DC 8 • Auto > DC
8<•~ 1
5 .0 5.0 l
v v

•o

l o 30

2 o
e e Scope 1 - Ruters
20
1 2 A

l .O l O

0- . . . . . . . . . ., 00

- t o -l o

-2 o -2 o

-3 .0 ·l o

'''
_,o J' -·o
'''
-5o o'
-1.0 - 0 .5 0.0 0 .5 l. O 1.5 2.0 2.5

[~ A [x]['!..) • (o43.>mvJ • • § :::J • bJ l


~ Fig. 12- Oscillogramma che mostra la differenza di tempo tra i due segnali.


· #include "mcc_generated_fileslmcc . h" •

o




• •
; int32_ t map (int32_ t x, int32_t in_min , int32 t in max , int32_t out_min , int32_t out max) { •'

: return (x - in min) * (out max - out min) l (in max in min) + out min ; •


; } •




• •
; l* •



Main application •




*l •


• •
• •
• •
: void main (void) •

• •
: { •

• •
o
o
uint16 - t convertedValue ; •

• •


uint16 t newATvalue ; •
o •

.•
o





Il
initialize the device •



• SYSTEM Initialize() ; •

• •
• •
• •
•o
o
Il When using interrupts , you need to set the Global and Peripheral •





Il Interrupt Enable bits •





Il Use the following macros to : •


• •
• •



Il Enable the Global Interrupts •





Il INTERRUPT_GlobalinterruptEnable() ; •


• •
.
• •




Il Enable the Peripheral Interrupts •



• Il INTERRUPT_PeripheralinterruptEnable() ; •

• •
o

• •
•'



Il
Disable the Global Interrupts '




IIINTERRUPT_GlobalinterruptDisable() ; •


.• •

• •

• Il
Disable the Peripheral Interrupts •

• •

o
IIINTERRUPT_PeripheralinterruptDisable() ; •

• •
• •
• •

• ADC- SelectChannel(POT- l) ; •

• •

• ADC StartConversion() ; •

• •

• while (l ) •

• •


{ •




Il
Add your application code •


• •


if (ADC- IsConversionDone()) { •


• convertedValue = ADC - GetConversionResult() ; •

• •

• newATvalue = map(convertedValue , O, 1023 , O, 359) ; •

• •

• Il •'



ATlCClH = (newATvalue & OxFFOO) >> 8 ; '



o

Il •





ATlCClL = (newATvalue & OxOOFF) ; •




} •

• •


} •

:• } •


• •
• •
• •
• •
• •
• •
,. • • • • • • • • .. ~ • • " ,.. • • • • • 41 • • • " Il " • • Il Il • • • • • • l • • • " • • • • i • ,. • • l " .. • .. .. Il • iJ .- • .. • • • • • • l •• " • • l • • • " " .. • • • • • • • • • lo • • • .. • • • • Il il • • l Il l " • • l • ~ • • • • " l • • • Il • • • • • • • • • Il ~ • • • • • • .. • • Il 111 l • • • • • • .. " .. Il • " l ..

Collegati, tramite i due connettori posti ai lati della MCU, i Il passo successivo è quello di diminuire la base dei tempi
puntai i dell'oscilloscopio ai pin identificati come GND, RA2 (per migliorare la visibilità) e posizionare due cursori. Uno
e RC5 sulla scheda dimostrativa (Fig. 10) potremo esami- sul fronte di salita del nostro "segnale periodico" (uscita
nare i segnali in uscita (Fig. 11 ). della CLC1) ed uno in corrispondenza dell'impulso in uscita
L'immagine riportata è stata presa dalla schermata su dal AT (uscita della CLC2). In una piccola finestra posizio-
macOS di un "Picoscope 2000"; in blu abbiamo il nostro nata al centro, è visibile il calcolo della differenza dei tempi
"segnale periodico" (prelevato dal pin RC5) mentre in rosso tra i due cursori dove leggiamo, come ci aspettavamo,
l'impulso generato dal AT a 20° (prelevato dal pin RA2). E' un valore /J pari a 202.8 ~se c (20 o x 1O ~s/grado = 200
stata attivata una "misura" ed in particolare la "frequenza" ~s; i 2,8 ~s in più che troviamo rispetto ai 200 ~secche
del"segnale periodico" che, come si vede indicato dalla ci aspettavamo sono dovuti sia al fatto che il.segnale pe-
freccia ha un valore reale di 276.6 Hz( ... se ricordate il riodico non è esattamente 277,7 Hz, sia al fatto che i due
Timer2 non genera esattamente un impulso ogni 1.8 msec, cursori sono stati posizionati manualmente con il mouse e
ma ogni 1.808 msec che dà un periodo di 3.616 msec pari quindi è possibile un piccolo errore di posizionamento
appunto a circa 276.6 Hz). (Fig. 12).
STESSO ESEMPIO, MA CON ANGOLO VARIABILE ble ADC': selezioneremo come "Ciock Source" FOSC/8, come
Partendo dall'esempio sopra riportato, è facile fare una "Result Alignment" right e come "Auto-conversion Trigger"
semplice modifica affinchè, ruotando il "Trimmer" che, come TMR2_postscaled (senza sprecare un altro Timer, utilizziamo
ricordate, è presente sulla scheda Curiosity, venga variato lo stesso che usiamo anche per generare il "segnale pe-
l'angolo a cui il nostro AT genera l'impulso ed, in particolare, riodico"). Non ci resta altro che collegare il nostro trimmer
da Oa 359 o . Per fare questo, dovremo rientrare in MCC per POT _ 1 all'ingresso del nostro ADC (CO) così da poter variare
aggiungere al nostro progetto una CIP ADC (che abbiamo già la tensione e, di conseguenza, l'angolo a cui scatterà il nostro
incontrato in una precedente puntata) per leggere la tensione AT. Ci spostiamo di nuovo in basso dove selezioniamo il
sul capo del "Trimmer" (POT _ 1) che poi noi convertiremo in tab "Pin manager: Grid View" e, come già fatto in passato, in
un numero da Oa 359 da inserire nel registro ATxCC1 del AT, corrispondenza della riga in cui compare "ADC': "ANx': "input"
registro a 16 bit (ATxCC1 H ed ATxCC1 L) che indica appunto facciamo clic sul piccolo lucchetto aperto, su sfondo di colore
l'angolo voluto. azzurro, che si trova in posizione CO. Esso si trasformerà
Dal tab "Resource management (MCC)': nella sezione "De- in un piccolo lucchetto chiuso su sfondo di color verde, ad
vices Resources': apriamo, facendoci sopra un clic, la risorsa indicare l'avvenuta connessione (Fig. 14). Saliamo ora verso
"ADC': Selezioniamo "ADC [PIC1 O/PIC12/PIC16/PIC18 MCU l'alto e selezioniamo il tab "Pin Module" che ci permetterà di
by Microchip Technology, lne.]". Al centro, si aprirà un nuovo assegnare un nome "mnemonico" (Custom name) a detto pin,
tab, relativo a detto "ADC" dove potremo procedere alla sua che chiameremo con il nome di POT _ 1, assicurandoci che
configurazione (Fig. 13). nella colonna di nome "Analog" sia presente un solo segno
Verificata la presenza del segno di spunta sulla casella "Ena- di spunta in corrispondenza appunto di tale pin. Terminata

Pin Module 12. lnterrupt Module :f3 System Module -m· TMR2 CLCl AT ~· CLC2 ADC G~
~

ADC ·~
l

n l

~ Easy Setup l § Registers
Hardware Settings

[{) Enable ADC .

ADC Clock Result Alignmen right ...


Clock Source FOSC/8 , Positive Reference VDD y

1 TAD 1.0 LJS Auto-conversion Trigger T R2 postscaled ...


Sampling Frequency 86.9565 kHz
Conversion Time 11.5 TAD = 11.5 us

O Enable ADC lnterrupt


Selected Channels

P in Cha n nel Custom Name


Internai Channel Te mp channel_Temp
Internai Channel FVR channei_FVR
'
RCO AN4 POT...1
Internai Channel DAC channel DAC

<L ]

<;: J >
~ Fig. 13 - Schermata reiativa alla configurazione del ADC.
quindi la configurazione, in cui, come sempre, grazie all'uso Per cui, alla fine, dichiarate anche le variabili che ci occor-
di MCC, non ci siamo preoccupati né di studiare i registri coin- rono, il nostro main.c conterrà (al netto di alcuni commenti
volti per la loro corretta impostazio ne, né di scrivere una riga inseriti da MCC) quanto mostrato nel Listat o 1.
di codice, ut ilizzeremo il bottone "Generate" che abbiamo In pratica, nel super-l oop (while (1)) viene verificato che
già ut ilizzato in precedenza e passiamo a modificare il main.c I'ADC abbia co mpletato la conversione A/D del valore di
che è stato generato. Come abbiamo già fatto in un altro tens ione letto da POT_ 1, viene rimappato il valore letto nel
esempio, aggiungeremo le righe per selezionare l'ingresso valore voluto e vengono riempiti i due regsitri AT1 CC 1H e
(ADC_SelectChannel) ed attivare la conversione (ADC_Start- AT1 CC1 L, del AT. con detto valore.
Conversion) del modulo AD C. Le funzioni a disposizi one per Se si esaminano, come visto in precedenza, i segnal i
fare ciò sono ben descritte nei commenti che si trovano in in uscita, si scoprirà il nostro "segnale periodico" non è
ade. h e pertanto, nel nosto "mai n" aggiungeremo le seguenti altro che l'impulso deii'AT che si sposterà, da un estremo
due righe: all 'altro, in funzione di quanto ruoteremo il 'Trimmer" che
equipaggia la scheda demo "Curiosity".
ADC_ SelectChannei(POT_ 1};
ADC_StartConversion(); CONCLUSIONI
In questa quarta puntata del nostro corso ab biamo esam i-
Ci occorrerà, poi, una funzi one per rimappare i valori prove- nato un'ulteriore Core lndependent Peripheral che possia-
nienti dal ADC (valori che vanno da Oa 1024, essendo un ADC mo trovare in alcune delle MCU a 8 e 16 bit di Microchip, il
a 1Obit) nei valori di nostro interesse (valori che vanno da Oa AT, ovvero il "Timer Angolare·: Timer da util izzare quando
359). Prendendo spu nto da codice già esistente anche in altri serva effettuare misure legate a segnali periodici e agli
ambienti, scriveremo la nostra funzione: angol i di fase. Nel la prossima puntata continueremo l'e-
same di altre CIP e vedremo, sempre tramite degli esempi
int31_t map(int31_t x, int32_t in_min, int32_t i nJ~ax , int32_t out_min, int32_t out_max) [ pratici appoggiati alla demoboard Curiosity disponibi le dal
return (x - in_min) • (outJOOX- out_min) l (in_oax - inJnin) + outJOin; sito www.futurashop.itcon il cod ice CUR IOSITYDB, la loro
} co nfigurazione con l'ausilio del preziosissimo too l MCC. [J

Output - MPJ.AI® Code Configurator Notlflcatlons Notificatlons [MCCI Pin Manager: Grid View O
Package: PDIP20 .... Pin No: 19 18 17 4 3 2 13 12 11 10 16 15 14 7 6 5 8 9
• Port B T Port C •
PortA •
Module Function Direction o 1 2 3 4 5 4 5 6 7 o 1 2 3 4 5 6 7
ANx input 'à 'à 'à 'à 'à 'à i 'à 'à 'à 'à 'à
ADC •
VREF input 'à
ATCC1 input 'à 'à 'à h 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à
ATCC2 input 'à 'à 'à 'à'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à
AT T
ATCC3 input 'à 'à 'à'à ... 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à
ATIN input 'à 'à 'D 'à'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à
CLCl I"'I_C10 UT output 'à 'à 'à'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à i 'à 'à
CLC 2 II"'I_C20 UT output 'à 'à 'à i 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à

~
CL o input 'à 'à 'à 'à'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à
I"'I_CIN1 input 'à 'à 'à 'à'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à
C Cx •
I"'I_CIN2 input 'à 'à 'à 'à'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à
II"'I_CIN3 input 'à 'à 'à 'à'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à
ose ICLKOUT output 'à
linput
Pin Module • l:::o IO o
'à 'à 'à 'à 'à
'à 'à 'à 'à 'à
'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à
'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à •

RESET R linput i
TMR2 1 .:tN linput 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à

~ Fig. 14 - Schermata relativa alla assegnazione dei pin d'ingresso dell'ADC.


Futura Group srl
Via Adige, 11 • 21013 Gallarate (VA) Prezzi IVA inclusa.
Jel. 0331/799775
Inaugurato il prototipo di telescopio pSct
~

E stato inaugurato, all'Osservatorio Cta è un'iniziativa globale, che vede


Whipple ad Amado in Arizona, pSct. Si impegnati oltre 1.400 scienziati e
tratta di un prototipo di telescopio per ingegneri di 31 paesi nello sviluppo
l'astronomia a raggi gamma. pSct ini- scientifico e tecnico dell'osservatorio
zierà a prendere dati nei prossimi mesi
per fornire indicazioni per la costruzio-
ne dei telescopi di media grandezza che
faranno parte del Cherenkov Telescope
Array (Cta), l'osservatorio diffuso per
fotoni gamma di prossima generazio-
ne, cui l'Italia partecipa con l'lnfn e con
l'lnaf, Istituto nazionale di astrofisica.
di raggi gamma ad alta energia più
grande e sensibile al mondo, con circa
120 telescopi, di tre dimensioni diver-
se, divisi tra due siti: uno nell'emisfero
nord all'Osservatorio di Roque de los
Muchachos, appunto, e l'altro nell'e-
misfero australe vicino al sito esisten-
te dell'Osservatorio meridionale di Pa-
ranal, in Cile.

www.inaf.it
Emettitori blu
incrementano
il ci cio vita le
deii'OLED
Per rendere efficienti gli OLED
bianchi che sono privi di me-
talli delle terre rare, i ricerca-
tori che lavorano al progetto
PHEBE finanziato daii'UE si
sono concentrati .su un pro-
cesso noto come TAPF (Ther-
mally Activated Delayed Fluo-
rescence). Esplorando ricerche
innovative sul campo essi
hanno svelato nuovi emettito-
ri blu che sono più economici e
migliori per l'ambiente.
Attualmente, la breve durata
di vita degli emettitori blu è
un problema importante che
impedisce l'utilizzo di emetti-
tori OLED fosforescenti nelle
applicazioni di illuminazione
commerciale. Gli OLED fo-
sforescenti sono fatti di un
materiale ospite (tipicamente
un polimero) sul quale viene
aggiunto, come sostanza dro-
gante, un complesso organo-
metallico basato su un metal-
lo delle terre rare quale l'i ridio.
Un'attenta selezione del ma-
teriale organico utilizzato per
l'emettitore è un altro fattore
significativo che dovrebbe
consentire agli OLED di gua-
dagnare una parte importante
dei mercati dell'illuminazione.

www.h2020-phebe.eu
Controlla facilmente l'irrigazione, le luci di casa, il cancello elettrico·, l'impianto d'allarme e
molto altro con i nuovi trasmettitori e ricevitori a 1-2-4 canali operanti sulla banda dei 433 MHz.
Forniscono' un segnale stabile a lunga distanza e un bassissimo consumo di corrente in modalità
stand-by. l ricevitori possono essere alimentati a 220VAC o a 12VDC in base al modello.

RIC VITORE RICEVITORE


• • • • • • . .l • • • • • • • • • • • • • • • • • • • • • • • • • • •• ••• •• •• •• •• •• •• ••

•• : 1 CANALE. 220VAC

cod. EMY220RX2 , •• : cod. EMY220RX1

cod. EMY12RX2
00 •
' :• 1 CANALE 12VDC
4 CANALI12VDC ·• cod. EMY12RX1
cod. EMY12RX4 . 00
e ' •


o•







o•
TRASMETTITORE : •


••• •••••• ••• •••••• •
'
1 CANALE



o•
cod. EMYTX1 • •

00 TRASMETTITORE : - ·.. TRASMETTil~ ORE
• • • • • • •••• •• • ••••• ..... '· ............. .
' 2 CANALI 00 4 CANALI 00
cod. EMYTX2 e cod. EMYTX4 e
' il trasmettitore con lo stesso numero di canali. '
Ai ricevitori va abbinato esclusivamente

W'VAV/w. /l~u:.f.l

l r~shot n j.f.
Futura Group srl
® Via Adige, 11 • 21013 Gallarate (VAl Prezzi rvA Inclusa: te~niche
Caratteristiche
f-' • Il
Tel. 0331/799775 e vendita on·hne su: l U l Cl
1 •
Mobility
Engineering:
nuova laurea
magistrale
Il Politecnico di Milano, insieme a 13
enti e imprese-chiave del settore, ar-
ricchisce la propria offerta formativa
con il Corso di Laurea Magistrale in
Mobility Engineering (#LMMobilityEn-
gineering). Il corso è stato presentato
dal Rettore dell'Ateneo Ferruccio Re-
sta, da Renato Mazzoncini, docente
di Mobility, lnfrastructures & Services
e da Dario Zaninelli, coordinatore del-
la commissione per la progettazione
della nuova Laurea Magistrale. Il nuo-
vo corso, attivo dal prossimo anno ac-
cademico 2019/2020, sarà erogato in
lingua inglese.
In dettaglio, il laureato in Mobility En-
gineering del Politecnico di Milano sarà
uno specialista della mobilità a 360 o:
saprà affrontare il tema della mobilità
a più livelli, partendo dalle infrastrut-
ture terrestri (strada e rotaia) e dai si-
stemi regolatori e di sicurezza per pas-
sare all'erogazione di servizi di mobilità
e agli scenari futuri di innovazione.
La nuova figura professionale av@ una
solida preparazione ingegneri ~ e
, , dologicq, , Hn~ Jo"'""'" ,;
l
1 !i
l, • ,, ,

· m , interdisciplinafe'' 'e 'una',


1 1 11 !1 il !1!1 jl!l !i !l'l Il 1 l 1 l
111

sistema strategica, particolarme


prontata al tema della sicurezza
le sue declinazioni, dalla incolumi~'t-1
persone alla sicurezza nella costru~one,
dalla manutenzione e gestione deJ~ste­
mi di trasporto, alla sicurezza ambi_~nta­
le e alla protezione dei dati.

www.polimi.it
Innovativa tecnologia della
membrana dell'idrogeno
Una start-up tedesca ha sviluppato drogeno prodotto mediante elet-
un'eccezionale membrana in mate- tricità senza emissioni di carbonio
riale composito. Combinata con ca- può essere usato in un'ampia gam-
talizzatori non preziosi, essa forni- ma di applicazioni praticamente in
sce una piattaforma economica per tutti i settori dell'energia: trasporti
l'elettrolisi dell'acqua alcalina, velo- industriale residenziale e portatile.
cizzando e migliorando l'efficienza Questo vettore energetico soste-
della produzione dell'idrogeno. L'i- nibile incanala notevoli quantità di
corrente in settori che sono difficili
hydrogen oxygen da decarbonizzare attraverso l'elet-
Hz 02 trificazione. Il progetto MEMBRA-
SENZ rappresenta un'importante
pietra miliare sul percorso per ren-
dere possibile questa transizione
verso le energie rinnovabili.

www.membrasenz.com

128
• • l
Design With Simplicity IRE LE
Fishino UNO, Fishino MEGA, Fishino32, Fishino GUPPY e Fishino SHARK sono schede
di sviluppo Arduino- compatib ile dotate di WiFi e lettore di schede microSD.
Grazie ad un completo pacchett o di librerie (scaricabile dal sito www.fishino.it),
si ha la possibilità di gestire tutti i propri progetti dal web in maniera semplice e veloce!

-::-- . ....,...~.~!~~~+
•• •••
Fishino UNO • Controller: ATmega328 • Controller: ATmega2560
••
.·. FISHINOMEGABO X ••
cod.
Fishino MEGA
•••
-
·Alimentazione:
-da 7a12 Vdc (tramite plug) -§ · Alimentazione:
- 3,6 Vdc (tramite batteria esterna
l
l: G
l
90 . .,.
\f!
::
- ~ ~~ };!
- 5Vdc (tramite porta USB) §
-
allitio)
~~~·~ ~~ t _.:fil
• Compatibile al1 00%
con Ardui no UNO
::
-§ -da 3,5 a20 Vdc (tramite plug)
- 5Vdc (tramite porta USB)
~ _..._..
·......
...... ~
... ..··#
---
• Modulo WiFi -~ ·Circuito di ricarica per batteria allitio Ifai
·lnterfaccia per scheda MicroSD § ·Compatibile al100%
·Modulo RTC con batteria di -:: con Ardui no MEGA
mantenimento
-
·Sezione di alimentazione a3,3 V
----
:: • Modulo WiFi
• lnterfaccia per scheda MicroSD
--
t.~!~ ~ ... potenziata
--- • Modulo RTC con batteria
~ ••• •• cod. •• · • Compatibile con shield eschede
--- di mantenimento
j../ FISHINOUNOBOX \~ millefori
00 { € 1 90 \:a ·
Peso 25 g ------ ·Stadio di alimentazione switching
(5 Vdc e3,3 Vdc)

: ·Dimensioni 76,5 x 53,5 x 14m m --- ·Compatibile con shield
./l; ---- eschede millefori
.....# -- cod. FISHINOMEGA
cod. FISHINOUNO
3 l -- ... ~
·--. "
···~~ ---
---
·Peso 37 g
·Dimensioni 101,5 x53,5x 15 mm

111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
--- • Controller: ATmega328
Fishino32
- - • Alimentazione:
~ Fishino GUPPV
---- - 3,6Vdc (tramite batteria esterna
--- allitio)
-- - da 6,5a20 Vdc (tramite PIN VI N)
---- - 5Vdc (tramite porta USB)
---- ·Circuito di ricarica per batteria allitio
-- • Compatibile al1 00%
---
• Circuito di ricarica per batteria al litio
-- con Ardui no NANO

·Compatibile con Ardui no UNO


---- · Modulo Wifi
--- ·lnterfaccia per scheda MicroSD
• Modulo Wifi -- cod. GUPPY ·Peso 10 g
• Controller: PIC Microchip a32 bit • Modulo RTC con batteria -- 33,9 ·Dimensioni 75 x 20 x 18,5 mm
·Alimentazione: di mantenimento ----
- 3,6 Vdc (tramite batteria • Clock 120 MHz, riducibile via software = 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
esterna allitio) • lnterfaccia per scheda microSD ----
cod. FISHIN032 -da 3,5a 20 Vdc (tramite plug o • Codec audio stereo ---
5 l sull1ngresso Vi n) ·Peso 29 g ---- Fishino SHARK
- 5Vdc (tramite porta USB) ·Dimensioni 76,5 x53,5 x 14m m ---
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 --
--
---
·Alimentazione: --
Fishino PlRAN HA -3,7 Vdc (tramite batteria esterna allitio) --
-da 3,5 a20 Vdc (tramite plug) ---
-
-da 3,5 a20 Voit sull1ngresso Vi n ---- cod. SHARK
- 5Vdc (tramite porta USB)
·Circuito di ricarica per batteria allitio
---- €
'
---
·Compatibile al100%con Ardui no MKR1000 ---
• Modulo WiFi ---
cod. PIRANHA
·lnterfaccia per scheda MicroSD ----- • Formato standard Arduino MEGA ·Tensione di alimentazione: 3-:-20Vdc
·Peso 10 g
€44, • Dimensioni 62 x25 x 16 mm
---- · Processare PIC32MX470F512 · Alimentazione a batteria, plug e/ovia
--- • 512 kB di ROM connettore USB
--- ·128 kBdi RAM • Funzionamento interno a3,3V
---
- • Frequenza di dock di 105 MHz • Pin DIGITALI5V-tolerant
---
- • lnterfaccia USB nativa, sia device che host • Ricarica automatica di una batteria LiPo
- • RTC incorporato
---
-- • Lettore per schede microSD • Spegnimento da software con processare
Set contenente il necessario - in standby
•, ,
j
per realizzare applicazioni cod. FISHINOSTARTER
con Fishino UNO. € 5,
-:: • Modulo WiFi integrato
-:: • Codec audio • Wake-up tramite pin esterno oin tempi
pre fissati
---

t'CS
{/) .
.2
(.)

·-
c:


,

.00 •
€ ,
Cod. ROBOARM PICK ANO PLACE PER BRACCIO
ROBOTICO "ROBOARM"
RACCIO ROBOTICO IN PLEXIGLASS - IN KIT
- _·B _
=~- :Jraccio robotico è un'esperienza interessante per chi vuole
:. -~ -- ~ si a ~onda della robotica e prepararsi a sfide più complesse.
:: ~ :-:: .,· contiene tutto il necessario per realizzarne uno di tipo articolato

.. _ - ~~ ·g ass a 4 gradi di libertà, con base rotante (180°), pinza per afferrare
; : =~etti (montabile sia in posizione orizzontale che verticale)
~ - se locomandi gestibili da Arduino o altra elettronica (acquistabile
'
:-=:l..a:amente) . E disponibile anche il kit "Pick an d Piace" composto -
=~ _-a piccola pompa a depressione, un'elettrovalvola, un microswitch,
: ~ ·. .~bi e ventosa, che permette di equipaggiare il braccio robotico € ,
: :~ ... ~ sistema di prelievo e rilascio di piccoli oggetti. Cod. PEPARM

•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
ri anche gli altri modelli ••• BRACCIO ROBOTICO
6DOF CON PINZA E
~-:: :· _ eccanico, SERVI RC - IN KIT
· que motori •

-- =-~a ·colazioni
_~ ... -·-~ i controllo

a c1nque

Potrebbero piacerti anche