Sei sulla pagina 1di 131

www. el "' a .

lt
Quel sottile filo che lega
Rivista mensile, anno xxrv n. 228
SEnEMBRE 2018 Arduino all'Olivetti
Direttore responsabile:
Arsenio Spadoni
(Alsenlo.Spadon/Oe/e11ron/cain.it)
"Ivrea città industriale del XX innovativo. Cui fece seguito, alcuni
Redazione:
Stefano Garavaglia, Paolo Gasparl, secolo" è stata riconosciuta anni dopo, Programma 101, in
Boris Landoni, Davide Scullino, recentemente Patrimonio Mondiale assoluto il primo Persona! Computer
Gabriele Oaghetta, Alessandro Sottocornola
(redazlone@ete11ronfcaln.it) UNESCO: è il 54° sito del nostro al mondo.
Grafica: paese (record mondiale), il secondo Un percorso di successo che si
Ales.sia Sfulclnl, Fiiippo Gorl a carattere industriale dopo quello interruppe bruscamente con le
(Alessfa.Sfufcfnf@efettronfcafn.ft)
di Crespi d'Adda. Il riconoscimento misteriose morti di Adriano Olivetti
Ufficio Pubblicità:
Monica Premoll (0331-752668) riguarda l'insieme delle realizzazioni e di Mario Tchou, a capo della
(Monica.Premofl@etettronlcafn.lt) collegate al progetto industriale e divisione elettronica, e che in
Ufficio Abbonamenti:
Elisa Guarnlero (0331-752668)
socio-culturale di Adriano Olivetti: seguito vide lo smembramento e un
(Ellsa.Guamfero@efertronlcaln.it) un complesso di edifici progettato rapido declino della società.
DIREZIONE, REDAZIONE, PUBBLICITÀ: dai più famosi architetti e Secondo molti un'occasione persa
FUTURA GROUP srl • Divisione Editoriale
via Adige 11 • 21013 Gallarate (VA) urbanisti italiani per mantenere la leadership
Telefono 0331-752668 Fax 0331-792287 del Novecento, mondiale in questo settore,
Abbonamenti: riconoscibile nel e continuare a fornire un
Annuo 10 numeri Euro 45,00
Estero 10 numeri Euro 45,00 (digitale) tessuto urbano esempio di solidarietà
Le richieste di abbonamento vanno Inviate a: della città. sociale.
FUTURA GROUP sr1 Un progetto Dell'eredità dell'Olivetti
via Adige U. 21013 Gallarate (VA)
tel. 0331·752668. che parte dal di allora, tuttavia,
Distribuzione per l'Italia: concetto di qualcosa è rimasto:
S0.01.P. Angelo Patuzzl S.p.A. responsabilità sicuramente
via Bettola 18 · 20092 Cinisello Balsamo (Ml)
Telefono 02·660301 Fax 02-66030320 sociale dell'impresa e STMicroelectronics
Stampa: che pone l'uomo, in questo (allora SGS), la società
ROT03 Spa • Via Turbigo, 11/b caso il lavoratore, sempre fondata da Adriano Olivetti e
20022 CASTANO PRIMO (Ml)
al centro dell'interesse comune e Telettra per sopperire alla carenza
Elettronica In: che nell'immediato dopoguerra di transistor durante la costruzione
Rivista mensile registrata presso Il Tribunale di
Miiano con Il n. 245 Il 03/05/1995.
ha cercato di dare un'alternativa dei sistemi Elea.
Prezzo di copertina Euro 6,00. Gli arretrati nel sostenibile all'industrializzazione AIvrea è anche nato il progetto
formati cartaceo e digitale (pdf) sono acquistabili sul Arduino, nell'ambito dell'Interaction
sito della rivista al prezzo di Euro 6,00.
selvaggia e non rispettosa dei
Poste Italiane Spa • Spedizione In abbonamento bisogni delle persone. Un progetto Design Institute, ospitato in un
Postale • D.L. 353/2003 (conv. In L. 27/ 02/2004) che Adriano Olivetti ha portato vecchio stabile Olivetti, la Casa
art. 1 comma 1 • DCB Miiano.
FUTURA GROUP sr1 è Iscritta al Registro Operatori al successo negli anni sessanta Blu, lo stesso colore delle schede
della Comunicazione n. 23650 del 02/07/2013. (tra l'ostilità dell'establishment Arduino. Un progetto che, al di là
Impaginazione ed immagini sono reallzzaU In
DeskTop Publishing con programmi Adobe lnDeslgn industriale di allora) facendo l'aspetto tecnico, richiama valori
e Adobe Photoshop per Windows. dell'Olivetti l'azienda leader sicuramente in sintonia col pensiero
Tutti I contenuti della Rivista sono protetti da
Copyright Ne è vietata la riproduzione, anche mondiale nel campo dell'Office di Adriano Olivetti, dalla cura del
parzlale, la traduzione e più In generale la diffusione Automation, come di direbbe design, alla democratizzazione della
con qualsiasi mezzo senza l'autorizzazlone scritta da
parte dell'Editore. I circuiti. Il firmware ed il software oggi, con prodotti meccanici e tecnologia, all'importanza della
descritti sulla Rivista possono essere realizzatJ solo elettromeccanici, come le famose comunità.
per uso personale, ne è proibito lo sfruttamento a
carattere commerciale e Industriale. Tutti possono calcolatrici Divisumma. Un mondo Che sia proprio Arduino l'erede
collaborare con Elettronica In. L:invlo di articoli. che stava per subire l'impatto dell'Olivetti?
materiale redazionale, programmi, traduzioni, ecc.
implica da parte del Collaboratore l'accettazione
dell'elettronica allo stato solido,
dei compensi e delle condizioni stabilite dall'Editore occasione che Adriano Olivetti ,.., ,....,
(www.elettronicaln.fVase.pdl). Manoscritti, disegni
seppe cogliere realizzando i ! I I '
{~ ./!w'
e foto non richiesti non verranno in alcun caso
restituiti. L:utllizzo del progetti e del programmi primi computer a transistor della
pubblicati non comporta alcuna responsabllìtà da
serie Elea, famosi non solo per le
parte della società Editrice. a J
FutuL prestazioni ma anche per il design
~l)io'Spadoni
(Arsenio.Spadonf@elettronicain.it)
© 2018 FUTURA GROUP srl Group
/ ,J;, iflm

ELETTRONICA IN - Settembre 2018 1


ommar10 Settemb re 2018
n. 228

ARTICOLI
21 SICUREZZA
"f'TnD Tl\<.'l'ADll e

Cercametalll di piccole dimensioni ideale sia per


ritrovare monete e oggetti metallici nella terra e
nella sabbia, sia per rilevare corpi metallici nei
vestiti e nelle borse o tubi di ferro nei muri.

WIRELESS
29 ' ... -· ...
rnll l'IU.ITCt.UJA
: !:ARDUINO

Iniziamo a utilizzare le nostre schede per


l'loT basate su architettura Arduino.

IN COPERTINA:
Questo mese non potevamo che dedicare
la copertina al compatto generatore 005 di
segnali che, oltre alle Interessanti prestazioni
offerte, presenta anche un aspetto
decisamente attraente.
ROBOTICA
56 ...

r.n
........ I

PU~K
JBOTf CO
& Pl·Ar.E
Dotiamo il braccio robotico pubblicato
nel fascicolo precedente di un sistema pneumatico
di presa erilascio di oggetti, comandato attraverso
uno shleld Arduino reallzzato allo scopo.

67 TOP PROJECT

•~ nrm 1=n
Flshmograph permette di monitorare con precisione
I terremoti che coinvolgono la nostra abitazione utilizzando
il sensore 075, notificandoci tramite email gli eventi rilevati,
consentendoci di mettere in sicurezza persone e cose.

2 Settembre 2018 - ELETTRONICA IN


HOME PROJECT
79 I GFN~ nRE F,Ql ICO
Piccolo aerogeneratore, installabile su un
terrazzo o sul tetto, che può fornire elettricità
da immagazzinare in accumulatori, ad esempio
per far funzionare utilizzatori di casa come
l'impianto di videosorveglianza, quando siamo via
La tiratura di questo numero è stata di 18.500 copie.
e togliamo corrente con l'interruttore generale.

lf{ijil\
W Mensile associato all'USPI,
Unione Stampa Periodica ltalìana

87 TECNOLOGIA
r11~· .. n r.1111)4 l l=I!
Auto più sicure grazie a nuove tecnologie
che hanno permesso la guida autonoma e
che presto la promuoveranno da fenomeno
sperimentale a realtà su larga scala.

01 EDITORIALE 99 DIDATIICA
I Dtl~DDCDDV PI
05 ELETTRONICA Costruiamo una cassetta degli attrezzi
INSIEME per chi vuole prendere confidenza con
li mondo della programmazione fisica
12 APPUNTAMENTI utilizzando GNU/Linux e Raspberry PI,
ma non solo. Seconda puntata.
& EVENTI
17 COMPONENTI
& SISTEMI 113 DIDATTICA
t: Tn

109 SCIENZA Continuiamo il nostro viaggio alla scoperta


& TECNOLOGIA del tool di sviluppo per applicazioni Android
basato su un linguaggio di programmazione
completamente grafico. In questa puntata
123 EMBEDDED IOT analizzeremo la gestione delle liste e delle
procedure, nonché delle animazioni, tramite la
126 RINNOVABILI famiglia di componenti drawlng and animation.

ELETTRONICA IN - Settembre 2018 3


Elettronica Insieme Richieste, suggerimenti e segnalazioni dei lettori

Queste pagine sono dedicate alle richieste, ai suggerimenti ed alle


segnalazioni dei lettori. Raccomandiamo, per quanto possibile, di proporre
argomenti di interesse generale. Contattateci numerosi all'indirizzo:
redazione@elettronicain.it

La direttiva RED
Un mio amico 111i ha riferito che la norma-
tiva R&ITE relativa agli apparati radio
11011 è più i11 vigore. Evero? E 11 q11ali
norme bisogna fare riferimento?
Roberto Sani - Napoli

La norma UE 99/5/CErelativa alle


apparecchiature radio (R&TIE- Radio
and Telecommunications), origina-
riamente pubblicata nel 1999, è stata
sostituita dalla Direttiva REO (Radio
Equipment Directive) da alcuni anni:
Questa direttiva, pubblicata nella Gaz-
zetta ufficiale dell'Unione Europea nel
2014, è applicabile a tutti i dispositivi
elettrici ed elettronici che emettono
e ricevono onde radio con frequenze
inferiori ai 3000 GHz.
I principi generali della Direttiva REO
per le apparecchiature radio sono sono tenuti a conformarsi a~le prescri- in ambito ricerca e sviluppo.
simili a quelle della Direttiva R&TIE, e zioni di tale direttiva. · In Europa, dunque, la conformità alla
comprendono il rispetto dei requisiti I requisiti essenziali della REO sono marcatura CE dei prodotti radio viene
essenziali per la sicurezza del prodot- citati nell'Articolo 3: ora coperta con la Direttiva REO.
to, la compatibilità elettromagnetica - Requisiti di Sicurezza (Art. 3.1 a):
(EMC) e l'uso efficiente dello spettro Tutela della salute e della sicurezza
radio. Come per le altre direttive dell'utilizzatore finale e di qualun-
comunitarie, la direttiva REO si basa que altra persona, sulla base dei re- Storage più
su norme armonizzate per specifici quisiti di protezione della Direttiva performante con
requisiti tecnici, e il rispetto di questi Bassa Tensione 201 4/35/UE.
requisiti presuppone la conformità ai - Requisiti EMC (Art. 3.1 b) Un adegua- i protocolli NVMe
principi essenziali della direttiva. to livello di Compatibilità Elettroma-
I requisiti della direttiva per le gnetica in base alla Direttiva EMC e NVMe-oF
~f~~r:~~~i:~~re
tr.ati in vigore nel
@ I"( )'\
~
2014/30/UE
- Requisiti Radio (Art. 3.2) Uso efficace So elle le tecnologie NVMe e NVMe-oF
dello spettro radio/risorse orbitali al sono in grado di a11me11tare le prestazio11i
giugno 2016, e le ~ '.I fine di evitare interferenze dannose. delle memorie di massa ma 1w11 Ilo ben
apparecchiature e capito come avviene tutto ciò.. .
i dispositivi radio Uno dei più significanti cambiamenti L11c11 Veronese - Roma
immessi sul merca- introdotti dalla Direttiva REO è sicu-
to dopo tale data ramente la modifica del campo di NVMe (Non Volatile Memory Express)
applicazione che include ed esclude e NVMe over Fabrics (NVMe-oF) sono
specifiche tipologie di prodotto rispet- due protocolli di comunicazione svi-
to alla precedente R&TIE. Sono infatti luppati specificatam ente per le unità di
inclusi: memoria allo stato solido (SSD) da un
-Apparecchi Audio e TV; consorzio di aziende (NVM Express lnc.)
- Apparecchi che operano al di sotto con lo scopo di sfruttare al massimo
dei 9 kHz; le capacità di queste memorie, le cui
-Apparecchi di radio-localizzazione. prestazioni sono limitate dai protocolli
Mentre sono esclusi i terminali di tele- SATA/AHCI sviluppati In passato per
comunicazione che non dispongono pilotare gli hard disk, le unità di me-
di un modulo radio e i kit di valutazio- moria elettromeccaniche che noi tutti
ne su misura per profession·isti desti- conosciamo.
nati ad essere utilizzati esclusivamente Lo stack SCSI, progettato per HDD, pre-

- ELETTRONICA IN - Settembre 2018 5


Elettronica Insieme

senta infatti molti elementi specifici per i


supporti a rotazione, accessibili mediante DRAM DIMM
testine del disco in grado di eseguire una
sola richiesta alla volta. Dopo il passaggio
3D XPoint
del settore agli SSD fl ash, più veloci e
con requisiti di gestione inferiori, molti
elementi degli stack SCSI sono divenuti
obsoleti. La capacità di applicare appieno Fabric RDMA-Based
la velocità e la capacità dello storage allo NVMe SSD
(3D XPoìnt o
stato solido si scontra infatti con le limita-
flash NANO)
zioni del protocollo SCSI e degli stack di
software SCSI. Le moderne interfacce SAS NVMe o ver Fabrlcs NVMe Back End
hanno un limite di l, l - 1,2 GBps, mentre
gli SSD possono offrire molto di più.
La tecnologia NVMe elimina questo Confronto tra NVMe over Fabrics (front-end) e NVMe Back End (NetApp).
collo di bottiglia introducendo uno
stack ottimizzato, con un nuovo set di
comandi e un numero enorme di code NVMe-oF, recentemente formalizzata, za. Anche se i miglioramenti del sistema
I/O per lo storage diretto. Di conseguen- estenderà queste efficienze agli storage back-end NVMe si verificheranno in gran
za, i dispositivi NVMe possono ottenere array su larga scala. parte "sotto la superficie", NVMe-oF abilita
miglioramenti significativi rispetto allo Questi nuovi protocolli di comunicazione un'interfaccia lato host nei sistemi storage
standard SAS in termini di latenza, IOPS e sono ancora più importanti se si pensa e la capacità di scalare in orizzontale un
larghezza di banda. all'introduzione delle nuove tecnologie gran numero di dispositivi NVMe all'in-
La tecnologia NVMe sfrutta il bus PCI di memoria SCM (Storage-Class Memory), terno di un data center, anche su lunga
Express (PCle) che si occupa del tra- conosciute anche come PMEM, come i distanza.
sferimento dei dati nei dispositivi che modelli lntel 30 Xpoint e Samsung Z- La combinazione di NVMe-oF e SCM cree-
richiedono una banda molto ampia e una NAND. rà presto un punto di svolta nello storage.
bassa latenza. Questo bus beneficia di un In un sistema convenzionale, le I fabric di data center emergenti che
collegamento molto vicino alla CPU riu- interconnessioni SAS presentano latenze supportano esponenzialmente più IOPS e
scendo ad offrire potenzialità al di sopra di accesso tra i 20 e i 40 µ s mentre il tem- latenze dei dispositivi 'misurate in micro-
di qualsiasi altro standard. PCI Express po di accesso dei nuovi SCM è dell'ordine secondi ( µ s) consentiranno ai provider
può essere configurato con più linee: del microsecondo; la soluizione NVMe di fare molte delle cose che fanno oggi
xl, x2, x4, x8, xl 6, con la più recente ver- diventa dunque obbligatoria per sfruttare (business intelligence, data warehousing
sione (PCle 3.0) che raggiunge velocità al massimo queste caratteristiche. e data analytics) molto più rapidamente,
di circa 1 GB/s per linea. Attualmente Per quanto riguarda i sistemi di con un overhead di CPU nettamente
NVMe utilizza la configurazione PCle x4 memorizzazione più estesi, come quelli inferiore. Inoltre, sfruttando appieno gli
che consente di raggiungere velocità di dei data center, il miglioramento della lar- IOPS estremamente elevati che le nuove
trasferimento di 4 GB/s contro i 500 MB/s ghezza di banda e della latenza di NVMe architetture sono in grado di produrre,
del SATA. potrà essere esteso anche a questi sistemi verranno sicuramente implementate nuo-
Non solo, la tecnologia NVMe è in gra- grazie alla specifica NVMe-oF, recente- ve, interessanti, applicazioni.
do di abbassare l'overhead di calcolo e mente formalizzata.
ridurre notevolmente la latenza, fino al La specifica NVMe-oF definisce un'archi-
30-40% in meno. tettura comune per estendere il protocol- Save my Child
Il protocollo NVMe sta già conquistando lo di storage a blocchi NVMe su una vasta
il mercato dei consumatori, fornendo un gamma di fabric di storage networking e ... mydog!
accesso diretto più rapido della CPU agli (Ethernet, Fibre Channel e lnfiniband)
SSD nei computer portatili. La specifica mediante interfacce RDMA a bassa laten- Anche se le cronache 11011 lo riportano, è 1110/to

6 Settembre 2018 - ELETTRONICA IN


Exarnple Car Setup

...
/

pitì frequente In morte di cani dimenticati in (www.ti.com/too/IT/DEP-0100 7) utiIizza spostano dei blocchi che rappresentano
auto piuttosto che quella di bambini. Per que- il chip AWRl 642 e pochi altri componen- delle funzioni di ingresso o di uscita che
sto motivo vorrei modificare il progetto "Save ti; come si vede nell'immagine, il disposi- vogliamo vengano eseguite) mentre per
my Child" proposto sul fascicolo di marzo per tivo è in grado di coprire un angolo di 60 quanto riguarda l'hardware si utilizzano
adattarlo anche ai cnni. Come posso fare? gradi, per cui per coprire l'intero abitaco- le corrispondenti schedine fisiche col-
Luigi Masala - Cagliari lo è necessario utilizzare due sensori. legate attraverso dei semplici cavetti e
Con lo stesso principio, e utilizzando la dei connettori, senza dover utilizzare il
Evidentemente è necessario modificare stessa tecnologia, è possibile effettuare saldatore. Tra i sistemi di sviluppo di que-
il sensore che nel progetto originale era il conteggio delle persone che entrano e sto genere, sicuramente il più noto (e più
realizzato con un set di pulsanti posti escono in un edificio passando attraverso performanti) è "WIO Link", un progetto
sotto il seggiolino, una soluzione og- la porta d'ingresso. Il sistema garantisce promosso da Seeed Studio per creare un
gettivamente un tantino "artigianale". una elevata precisione ed è in grado di nuovo modo di sviluppare applicazioni
Il problema sta proprio qui, trovare un discernere due o più persone che entra- loT, progetto che ha fatto la sua compar-
sensore adatto ad entrambi i casi non no o escono dall'edificio contemporane- sa già nel 2015 su KickStarter.
è così semplice: l'impiego di sensori di amente e molto vicine tra loro. WIO Link è una scheda di sviluppo Wi-
movimento PIRo radar, del tipo di quelli Fi open source basata su ESP8266 con
utilizzati negli impianti antifu rto, non si una piattaforma software (in pratica una
presta infatti allo scopo a causa dei troppi App) che consente agli utenti di creare
disturbi ambientali. l:IoT per tutti applicazioni loT virtualizzando una serie
Fortunatamente la tecnologia - di quelle di moduli plug-n-play (quelli della serie
più avanzate, oltretutto - ci può esse- Vorrei realizzare un controllo basato s11l 111io Grove della stessa Seeed Studio). La bo-
re d'aiuto. Ci riferiamo alla tecnologia Smartphone nond zé la relativa App per verifi- ard principale WIO Link viene alimentata
mmWave di TI utilizzata in ambito auto- care un valore di tensione e, nel caso, attivare con una adattatore di rete e dispone di
motive per rilevare gli ostacoli davanti e o disattivare da remoto un circuito elettrico. una batteria ricaricabile per consentire il
intorno all'automobile. Questi dispositivi TI fatto è elle sono completamente a digiuno fu nzionamento in modalità autonoma;
radar - che operano tra 76 e 81 GHz e pre- di programmazione o non ho neppure molta sono presenti anche un paio di pulsanti,
sentano un ingombro ridotto e consumi dimestichezza col saldatore ... un LED e una serie di connettori che ven-
molto bassi - vengono sempre più spesso L11ca Barbieri - Roma gono utilizzati per collegare i modulini
utilizzati in altre, innovative, applicazioni, Grove (sensori e attuatori}. Dal punto di
sia in ambito automotive che industriale. Quello che tu vorresti realìzzare, qualche vista hardware, dunque, non è necessario
Recentemente Texas lnstruments, che anno fa avrebbe richiesto l'impegno di realizzare neppure una saldatura per
ha in produzione l'unico prodotto single- più persone, almeno uno sviluppatore mettere in fu nzione il circuito. Se tutto
chip per questa applicazione, ha presen- software specializzato in Android (e/o ciò rende già molto semplice il progetto,
tato una soluzione completa di hardware iOS) e un esperto progettista hardware. ancora più sorprendente è il modo di fun-
e software in grado di "contare" il numero Oltretutto tecnici di un certo livello, zionamento della piattaforma software.
di persone o animali presenti all'interno di in grado di muoversi agevolmente t ra Per realizzare l'App della riostra applica-
un'automobile. Una soluzione smart nata standard di rete, programmazione di zione, è necessario scaricare e installare
per ottimizzare l'impianto di climatizza- microcontrollori, gestione dei protocolli sullo Smartphone l'App "WIO Link", da
zione e il sistema degli air-bag ma che loT, ecc. Oggi, invece, grazie ad alcuni configurare successivamente utilizzando
può essere utilizzata anche come sistema tool di sviluppo hardware e software una modalità drag and drop. In pratica
anti-intrusione o per rilevare la presenza semplicissimi, chiunque ha la possilbilità dovremo scegliere tra una serie di simboli
di uno o più essere viventi all'interno della - anche coloro che non hanno mai scrit- la funzione da assegnare ad uno specifico
vettura. to una riga di codice o che non hanno 1/0 . Successivamente dovremo impostare
Il principio di funzionamento è piuttosto mai usato un saldatore - di realizzare il modo di attivazione (o di lettura) di
complesso, anche se a noi interessa ave- complete e sicure applicazioni per l'In- quella specifica porta utilizzando IFITT,
re solamente un segnale che ci indichi ternet delle Cose. Sembra impossibile un servizio web gratuito che permette la
la presenza o meno di esseri viventi ma è proprio cosi: per la creazione e creazione di semplici catene di condizio-
all'interno della vettura, a prescindere l'impostazione dell'App su Smartphone ni, senza dover scrivere una sola riga di
dal numero. Questo Reference Design si utilizza una tecnica visuale (in pratica si codice.

ELETTRONICA IN - Settembre 2018 7


..

Elettronica Insieme

Fig. 1 - Rappresentazione grafica di un fiftro FIR.

A questo punto dovremo scaricare il


programma così realizzato sulla board
x(kl
WIO Link; per fare ciò sarà sufficiente
. premere un pulsante per predisporre
la board in modalità programma-
zione. I dati verranno inviati on-air
e il firmware verrà memorizzato nel
microcontrollore della board. Conclu-
so! In meno di 5 minuti avremo il no-
stro circuito hardware perfettamente
funzionante connesso al Wl-Fi di casa
o dell'ufficio e una applicazione sul
nostro Smartphone con cui controllare
da remoto il circuito attivando l'uscita
o leggendo i dati provenienti da esso.
Puoi acquistare la scheda WIO Link e i
modulini Grove da Futura Elettronica
(www.futurashop.it).

Cosa sono F1R e IIR? Fig. 2 - Rappresentazione grafica di un fiftro llR.

Sento sempre più spesso parlare di filtri


FIR e IIR. Di cosa si tratta esattamente' E
dove vengono utilizzati? in cui la risposta d'uscita è limitata dal un oscillatore. li ritardo di fase, dei filtri,
Marco Lodè - Sassari numero di campioni di cui il filtro è non è lineare con la frequenza, quindi
realizzato; il numero dei campioni di non sono adatti per la sagomatura di
I dispositivi FIR (Finite lmpulse Respon- un FIR riguarda la memorizzazione dei canale. Si tratta di filtri molto critici e
se) e llR(Infinite lmpulse Response) valori di segnale digitale d'ingresso instabili con l'unico vantaggio, data la
sono filtri digitali in grado di elaborare istantaneo catturato nei campioni presenza di poli, di richiedere minori
segnali digitali numerici, ovvero il precedenti, moltiplicato per alcuni tap a parità d'ordine del filtro da
risultato della conversione Analogico/ coefficienti. realizzare.
Digitale; al contrario, i filtri analogici La progettazione di un filtro FIR riguar-
elaborano i segnali quando questi han- da la determinazione della risposta im-
no ancora un andamento analogico. pulsiva e quindi di questi coefficienti.
Rispetto ai filtri analogici, quelli digitali Le successive posizioni di ritardo sono
sono molto più precisi e performanti, dette tappe (tap) del filtro. Ad ogni Web Forum
essendo il risultato di un trattamento
di dati numerici. Nel caso dei filtri ana-
tappa del filtro, quindi ad ogni ritardo
(z-1), corrisponde uno zero o un polo.
e supporto tecnico
logici, infatti, i risultati sono legati alla Così un fi ltro ad una tappa è del tipo
complessità circuitale, alle instabilità, primo ordine, a due tappe del secondo Hai un problema con uno dei
alla tolleranza dei componenti elettro- ordine e cosl via. Uno dei più semplici circuiti pubblicati? Vorresti
nici e agli sbalzi termici. esempi di filtro FIRè quello a una effettuare una modifica?
Con il campionamento e la conversio- tappa, ove in base al tipo di algoritmo Accedi al nostro Web Forum
ne si passa così da un segnale analo- si può realizzare il passa-basso o il dove i nostri tecnici (ma anche
gico continuo nel dominio del tempo, passa-alto. gli altri lettori) ti aiuteranno a
ad un segnale digitale prelevato ad Nel caso dei filtri llR (Infinite lmpulse chiarire qualsiasi dubbio
istanti ben precisi e rappresentato nel Response) parte del segnale viene di natura tecnica.
domino Z, dove Z rappresenta il cam- riportato all'ingresso (reazione). La Collegati a:
pione del segnale digitale prelevato retroazione è negativa, altrimenti una
nei diversi istanti. reazione positiva con guadagno mag- www.elettronicain.it/webforum
I fi ltri FIR sono quelli con risposta finita, giore di uno trasformerebbe il fi ltro in

8 Settembre 2018 - ELETTRONICA IN


lii """""'"""''""'' " "'"'"'""'""" lii

1-•111111•111111•1
lii ROME •

MAIN PARTNER GOLO PARTNER TECHNICAI. PARTNER OFFICIALCARRIER LOCATION THANKSTO

~ /\M[j!JW ,
,.
, -FERROVIE
! ! I ITAUANE
_j,f.,FUTURA
mtt'R1f1ffCA•
futurashop . /t
,.
d TRENITAliA
-----
o FIERA
ROMA
Mal\e.
... .
m.o etone.com
CON Elettronica In
LE IDEE
'
DIVENTANO
REALTA!
Mese dopo mese
realizza i progetti
descritti sulla rivista,
rimani aggiornato
con i nostri Corsi,
approfondisci
la conoscenza delle
tecniche e dei
componenti più avanzati
con i nostri tutorial
e le nostre news.

COME ABBONARSI

CD compilando il modulo riportato nella


pagina "Abbonamenti" del nostro
sito www.elettronicain.it.

scrivendo a abbonati@elettronicain.it
con i dati riportati nel coupon a lato.

®
compilando il modulo di
abbonamento riportato a lato e
inviandolo al seguente indirizzo:

FUTURA GROUP srl


Via Adige 11
21013 Gallarate {VA)

@ @
telefonando a compilando il modulo di
+39-0331·752668 abbonamento riportato
a lato e inviandolo al
seguente numero:
+39-0331-792287

PER I RINNOVI ATIENDERE NOSTRO AVVISO


desidero abbonarmi per un
anno alla rivista Elettronica In.
Riceverò i seguenti omaggi:

DISCOUNT CARD "Futura Elettronica"


UNO, ASCELTA, TRA QUESTI VOLUMI
della collana "L'Elettronica per tutti".

Entra nel mondo di Raspberry P1 3


F1shino Arduino el'Internet delle
13 Settembre 1898:
il pastore episcopaliano Hannibal Cose in un unica innovativa scheda
Williston Goodwin brevettò l'impiego RandA Raspberry Pi + Arduino
della celluloide come supporto ARDUINO UNO - Programmazione
per le pellicole fotografiche. avanzata e librerie di sistema
Si trattò di una rivoluzione nel campo Tecnologia e apparati GPS
della folografia e rese possibile la Impara l'elettronica sperimentando
nascita della cinematografia.
Pnm1 passi melettronica
Arduino e le tecniche
di programmazione
dei microcontrollori ATMEL
Raspberry P1 - 11 mio pnmo
Lmux Embedded
Alla scoperta d1 Arduino YUN
Programmiamo con i PIC
l'ABC di Arduino

Resto in attesa del primo numero


e degli omaggi.
Cognome:

Nome:

Via:

N•: CAP:

Città:

Provincia: Telefono:

e-mail:

IN OMAGGIO PER TE: Data: Firma:

effettuati con la DISCOUNT CARD


SUI TUOI presso il punto vendita Resto In attesa di vostre disposizioni per il pagamento.
Ats0f1Sldel'art. l3do Dlgs 196/2003 1n1emad1prot .oneda

ACQUISTI di Gallarate Cl/A) o nel nostro


store on-line www.futurashop.it
dai personali FlITURA GROUP r lllforma che I d.it1 bcrameo1.
lom 11 ttra1 rso la comp lazlo11e del p16$ente modulo saranro
1rattat1 e conseNatl in conrorm lii a tulle le noimative v genU I
dall suddetti saranno trattati 5u supporto cartaceo e lnfonnatico
mediante stslemi d1 protezione utt1 alla tutel~ cfulla nservatezza. pe<
~nal là co11nesse all'PS!!C\JZJOM de rap)X'rti contrattual instaurati

+
lnv a 1n busla chlus.i 1
Futura,':
OroupJ
/
FUTURA GROUP srl

I1VOLUME ASCELTA I della collana "L'Elettronica per tutti".


Via Adige 11 • 21013 Gallarate (VA)
Tel. +39-0331-752668 • Fax: +39-0331-792287
"'

Il Forum Nazionale delle Misure


Il più importante evento italiano dedicato alle Misure si terrà 91iche nazionali. Essa infatti è capillarmente distribuita sul
quest'anno dal 17 al 19 settembre 2018 presso l'Università de- territorio nazionale, grazie alle sue 42 Unità di Ricerca con
gli Studi di Padova. sedi presso le più prestigiose Università e Istituti di ricerca.
In quest'ambito si terranno anche il XXXV Congresso Nazio- www.gmee.org/forum2018/
nale di Misure Elettriche ed Elettroniche e il XXVI Congresso
Nazionale di Misure Meccaniche e Termiche.
L'evento sarà un momento di incontro per tutti i ricercatori e
gli esperti italiani operanti nel settore delle Misure.
Il Forum è organizzato dalleAssociazioni GMEE (Gruppo Misu-
re Elettriche ed Elettroniche) e GMTI (Gruppo Misure Mecca-
niche eTermiche) di cui fanno parte i più noti esperti nazionali
di metrologia. In particolare l'associazione "GMEE" rappresen-
ta una importante realtà nel quadro delle attività metrolo-

12 Settembre 2018 - ELETTRONICA IN


Forum
Meccatronica 2018
La quinta edizione del Forum Mec-
catronica: mostra-convegno ideata
dal Gruppo Meccatronica di ANIE
Automazione e realizzata in collabo-
razione con Messe Frankfurt Italia,
dal titolo "L'esperienza manifatturiera
,,
«>

italiana nel passaggio al 4.0: tecno- e+


logie e competenze" si svolgerà il 26
settembre 2018 presso il CNH Indu-
striai Village di Torino.
I più importanti fornitori di soluzioni
meccatroniche che operano sul mer-
cato italiano presenteranno, anche
attraverso casi applicativi, degli ap-
profondimenti su differenti aspetti
tecnologici quali motion control, ro-
botica, software industriale, impianti- I I I
stica, con una particolare attenzione
alla progettazione meccatronica e a
:
I I I
tutte quelle tecnologie e competen-
ze che il passaggio al 4.0 richiede.
La transizione verso la manifattura 4.0
è iniziata anche nel nostro Paese e in
questa edizione del Forum troveran-
no spazio le tecnologie abilitanti ma
anche le esperienze concrete di in-
tegrazione e applicazione di tali tec-
nologie spesso legate a competenze
sviluppate in Italia; competenze di cui
in futuro si avrà sempre più bisogno
per completare questo passaggio
epocale.
Partecipare al Forum Meccatronica
è la giusta occasione per aggiornarsi
professionalmente su temi di forte
attualità che rappresentano fattori
competitivi per OEM, System Integra-
tor ed End-User di piccole e grandi
dimensioni.
www.forumeccatronica.it/

ELETTRONICA IN - Settembre 2018 13


• 13-18 SETTEMBRE 2018 i quali tutti i leader di mercato nei vari al settore dei media elettronici e
settori tecnologici, con opportunità dell'intrattenimento, sia nelle ses-
IBC 2018 di networking senza eguali.
Dalla produzione multimediale ai
sioni che durante le opportunità di
networking; oltre 1.700 delegati e
Amsterdam • Olanda nuovi dispositivi, dalle applicazioni 400 relatori in 5 giorni di discussioni
al marketing digitale, dai offriranno una visione del
social media alla perso- futuro del settore.
L'lnternational Broadcasting Con- nalizzazione dei contenu- Tra le varie iniziative, IBC
vention (IBC} è la principale ma- ti, dai big data ai servizi Next Gen Video combina
nifestazione europea dedicata ai cloud, la manifestazione un'esposizione dedicata
professionisti di tutto il mondo rappresenta da oltre 50 con funzioni apposita-
della comunicazione e dell'in- anni il punto d'incontro mente progettate per
trattenimento, creatori, gestori e tra i principali attori internazionali del aiutare i visitatori ad espandere rapi-
distributori di contenuti nonché mondo della comunicazione e offre damente ed efficientemente le pro-
alle tecnologie ed alle apparec- una visione a 360° sui nuovi modelli prie conoscenze e la comprensione
chiature utilizzate in questo setto- di business e sullo stato dell'arte della delle ultime tendenze, strategie e
re. Con più di 60.000 partecipanti tecnologia dell'informazione. sviluppi della TV e del video online
provenienti da oltre 170 paesi del La Conferenza IBC rappresenta una offrendo una panoramica completa
mondo, IBC combina una Confe- opportunità senza eguali per sco- degli sviluppi di questo settore in ra-
renza di grande interesse e una prire e discutere le numerose sfide pida evoluzione.
fiera con più di 1.700 espositori tra e opportunità che si presentano www.ibc.org

14 Settembre 2018 - ELETTRONICA IN


• 23-28 SETTEMBRE 2018
European Microwave Week 2018
Madrid • Spagna
Per la prima volta nella sua storia, che si è svolta a Norimberga, in Ger- resse e una fiera commerciale e tec-
l'European Microwave Week sbar- mania, nel 2018 è dunque la volta nologica cui prendono parte i leader
ca in terra di Spagna, precisamente della Spagna. L'European Microwave mondiali del settore. EuMW2018
nella capitale Madrid. Week è un evento della durata di sei garantisce l'accesso alle ricerche, ai
La manifestazione ha carattere iti- giorni che nasce dalla collaborazione prodotti e alle iniziative più recenti «>
nerante e ogni anno si tiene in un tra industria e mondo accademico, nel settore delle microonde. e +:
paese diverso: dopo l'edizione 2017 con tre conferenze di grande inte- www.eumweek.com/

MOSTRE MERCATO
MONTESILVANO (PE) S. LUCIA DI PIAVE (TV) BOLOGNA
FIERA DELL'ELETTRONICA FIERA DELL'ELETTRONICA MONDO ELETTRONICA
Palacongressi d'Abruzzo DI SANTA LUCIA Bologna Fiere - Via Aldo Moro
Montesilvano (PE) Area Espositiva Santa Lucia Organizzazione: Expo Fiere Sri
Organizzazione: CM Eventi Organizzazione: Eccofatto Tel: 054527548 Fax: 0545291179 I I
Tel: 3208322538 Tel: 3498632614 info•expositionservice.it
infot1cm-eventi.it · www.cm-eventi.it silvia@eccofatto.info • http://eccofatto.eu/ www.mondoelettronica.net
06 e 07 Ottobre 2018 06 e 07 Ottobre 2018 06 e 07 Ottobre 2018

ROMA POTENZA ANCONA


MAKER FAIRE - EUROPEAN EDITION EXPORADIO POTENZA EXPO ELETTRONICA
Nuova Fiera di Roma Quartiere fieristico EFAB Quartiere fieristico Ancona
Organizzazione: Innova Camera Tito Scalo (PZ) Organizzazione: Blu Nautilus Sri
Tel: 066976901 • Fax: 0652082837 Organizzazione: Ente Fiere Basilicata Tel: 0541439573 - Fax: 0541439584
info• makerfairerome.eu Tel: 3476583905 infoE?expoelettronica.it
www.makerfairerome.eu fieradibasilicata•libero.it www.expoelettronica.it
12. 13 e 14 Ottobre 2018 12. 13 e 14 Ottobre 2018 13 e 14 Ottobre 2018

FERRARA FIRENZE CASALE MONFERRATO (AL)


MONDO ELETTRONICA ELETTRONICA FIRENZE FIERA DELL'ELETTRONICA
Quartiere Fieristico - Ferrara OBIHALL - Via Fabrizio De Andrè - Firenze Quartiere fierist ico Casale Monferrato
Organizzazione: Expo Fiere Sri Organizzazione: Prometeo Organizzazione: Open Office srl
Tel: 054527548· Fax: 0545291179 Tel: 057122266 ·Fax: 05710831142 Tel: 0308376078
info• mondoelettronica.net info•prometeo.tv info• fierelettronica.it
www.mondoelettronica.net www.prometeo.tv www.fierelettronica.it
13 e 14 Ottobre 2018 13 e 14 Ottobre 2018 13 e 14 Ottobre 2018

FASANO(BR) FAENZA(RA) ISOLA DELLA SCALA (VR)


MOSTRA MERCATO DEL RADIOAMATORE EXPO ELETTRONICA FIERA DELL'ELETTRONICA
E DELL'ELETTRONICA Quartiere Fieristico • Faenza (RA) Palafiere • Via Bastia
Quartiere Conforama - SS16 Organizzazione: Blu Nautilus srl Organizzazione: Openoffice Sri
Organizzazione: ARI Bari Tel: 054153295 - Fax: 0541439584 Tel: 0 308376078 - Fax: 0308376078
Tel: 3476847524 - Fax: 080748931 info•expoelettronica.it info@fierelettronica.it
/el/ofib• gmail.com - www.aribari.it www.expoelettronica.it www.fierelettronica.it
20 e 21 Ottobre 2018 20 e 21 Ottobre 2018 20 e 21 Ottobre 2018

LECCO SCANDIANO (RE) ROVIGO


FIERA DELL'ELETTRONICA FIERA REGIONALE DELL'ELETTRONICA F.l.E.RA - Fiera Informatica,
+MERCATINO Centro Fieristico di Scandiano (RE) Elettronica e Radiantismo
Palataurus - Via Brodolini 35 - Lecco Organizzazione: Comune di Scandiano Centro Servizi Rovigo Fiere
Organizzazione: Eventi e Fiere Tel: 0522764302 - Fax: 0522857592 Organizzazione: Area Rebus
info• eventiefiere.com entefiere•comune.scandiano.re.it Tel: 042527402 ·Fax: 042527065
www.eventiefiere.com www.fierascandiano.it fiera•arearebus.com - www.arearebus.com
20 e 21 Ottobre 2018 27 e 28 Ottobre 2018 27 e 28 Ottobre 2018

L'elenco aggiornato di tutte le Mostre Mercato del 201a e dei più importanti eventi nazionali e internazionali di elettronica,
sicurezza e fonti rinnovabili è dispornbile sul sito www.elettronicain.it

ELETTRONICA IN - Settembre 2018 15


fiera dell'elettronica • tecnologia • computer • hi-tech ,
I
I I

- - - - - - - /.e-.X~tJ \
-
:§::. .::. ~§
-- ------ -- -- = ~ ~;::::-
g §§- - --- / r
--- - ---_, ._ _ ._

----
--~

-
-
- -
-
-
- -
-
-
- --- I

- ------ --- -- -- ----......., _..


....
----
-- --
--...... --...... - --
--
I - ·
......•d
.._.. ..._.. ._ - .....
.._.. ....... ..._.. .._... ....... _.. .., ...... ---~··-

22 - 23
SETTEMBRE
2018

N o
PARCO ESPOSIZIONI NOVEGRO
www.parcoespo sizioninovegro.i t
RTP, l'oscilloscopio top di gamma di Rohde & Schwarz
Rohde & Schwarz presenta la nuova fa- segnale all'oscilloscopio (deembed-
miglia R&S RTP di oscilloscopi ad eleva- ding). E nonostante tale correzione, la
te prestazioni, espandendo il proprio velocità risulta ancora molto alta e il
portafoglio di oscilloscopi, in linea con trigger digitale, grazie alla sua esclusi-
il suo motto ·ascilfoscope lnnovation. va architettura, è in grado di attivarsi
Measuremenr Confidence'. Durante lo con precisione sui segnali compensati.
sviluppo della nuova famiglia di oscil- L'R&S RTP combina più strumenti di
loscopi, il team di progettisti si è foca- qualsiasi altro oscilloscopio della sua
lizzato in particolare sull'accuratezza classe. Oltre al canali dell'oscilloscopio
della misurazione, sulla velocità, su una analogico, sono disponibili 16 cana-
vasta gamma di funzioni e su una tec- componenti embedded con interfacce li logici, quattro canali di tensione e
nologia a prova di futuro. L'oscillosco- RF digitali o a banda larga particolar- quattro canali per la misura della cor-
pio R&S RTP combina vari strumenti, mente veloci. L'R&S RTP è disponibile rente; lo strumento supporta l'analisi
come nessun altro oscilloscopio della nelle versioni a 4 GHz. 6 GHz o 8 GHz. ~ del protocollo delle interfacce seriali
sua classe. Tutte queste caratteristiche l'unico strumento sul mercato in grado e offre potenti funzioni di analisi dello
rendono l'R&S RTP l'oscilloscopio ide- di compensare in tempo reale le per- spettro e del segnale.
ale per il debugging, ad esempio di dite di trasmissione dalla sorgente del www.rohde-schwarz.com

Primo chip con dual Wi-Fi 802.11 ax Nuove soluzioni per cruscotti
per veicoli connessi integrati Automotive Grade Linux
plete 802.11 ax. L'innovativa
architettura dual-Wt-Fi simul-
Green Hills Software ha an-
nunciato la disponibilità del
security-c:ritical, come
cruscotti definiti via sof-
<>
tanea di Marvell stabilisce un suo sistema di virtUalizzazione tware, telecamere, siste-
nuovo precedente tecnologi- sicura INTEGRITY Multivisor mi ADAS, OTA. gateway e V2X.
co, che integra due sottosiste- e degli strumenti di sviluppo Il risultato finale è la possibilità
mi Wi-Fi completi in un singolo avanzati per Automotive Gra- di realizzare sistemi completi a
SoC e consente a due flussi de Linux (AGL) per i principali costi inferiori ottenendo piat-
dati 2X2 indipendenti di es- circuiti integrati SoC a 64 bit taforme più scalabili, tempi
sere eseguiti contemporanea- per applicazioni automotive. di sviluppo più brevi e minori
Marvell ha presentato la prima mente e alla massima velocità. Per la prima volta, è possibile costi di certificazione ASIL Il
soluzione wireless dual Wi· Fi Sono molti i casi d'uso che integrare nei sistemi a bordo progetto Automotive Grade
802.llax del settore con 2x2 richiedono questa tecnologia, di un autoveicolo applicazioni Linux è un'iniziativa promossa
più 2X2 connessioni simulta- specie all'interno dei veicoli. AGL in grado di garantire i più da Linux Foundation.
nee, oltre a BluetoothS/Blueto- L'88Q9098 consente il riutilizzo alti livelli di sicurezza definiti www.ghs.com
oth LE e 802.11 p per la comu- di una singola soluzione in tutte dalle norme ISO 26262 grazie
nicazione vehicle-to-vehicle. le applicazioni di infotainment al sistema operativo in tem-

~
La nuova soluzione combo e telematica, offrendo strea- po reale (RTOS) INTEGRITY. In
8809098 offre prestazioni a ming multimediale leader di questo modo, gli OEM posso-
livello di gigabit, affidabilità mercato, aggiornamenti sicuri no eseguire in totale sicurezza
superiore e maggiore sicurez- over-the-air, comunicazione da applicazioni di infotainment e
za In auto; questo SoC, inoltre, veicolo a veicolo (V2V) e funzio- per auto connesse basate su AUTOM""JT IVE
amplia la leadership di Marvell nalità hot-spot. AGL in partizioni sicure, insie- GRADE
nella fornitura di soluzioni com- www.marvell.com me a funzioni safety-critical e

MAXl 7260 e MAXl 7261, indicatori di livello di carica ModelGauge da Maxim


I progettisti possono oggi mas- di progettazione. I dispositivi fuzioni concorrenti. Ciò consen- ne senza necessità di caratteriz-
simizzare l'autonomia dei dispo- MAX17260 e MAX17261, dota- te ai progettisti di massimizzare zare né di calibrare la batteria.
sitivi portatili e migliorare l'espe- ti dell'algoritmo ModelGauge l'autonomia dei loro dispositivi MAX17260 è disponibile a
rienza degli utilizzatori grazie mS EZ. assicurano un maggiore evitando spegnimenti prema- 0,93 dollari (per quantità di al-
agli indicatori del livello di carica livello di precisione nell1ndica- turi od improwisi, pur con bat- meno mille pezzi, FOB USA);
MAX17260 eMAXl 7261 Model- zione della carica rispetto a so- terie di piccole dimensioni. Gli MAX17261 è disponibile a 1,2.2
Gauge m5 EZ di Maxim lntegra- indicatori del livello di carica, dollari (per quantità di almeno
ted. ldeall per una vasta gamma che impiegano piccolissimi mille pezzi, FOB USA); entrambi
di applicazioni alimentate da contenitori di 1,5 mm x 1,5 mm, possono essere acquistati dal
batterie agli ioni di litio, queste si caratterizzano per una bassis- sito web di Maxim o da distribu-
soluzioni - che non richiedono sima corrente di quiescenza - tori autorizzati selezionati. I kit di
la caratterizzazione della batte- solo 5,1 µA - per minimizzare la valutazione MAXl 7260GEVKIT
ria - assicurano alti livelli di pre- scarica della batteria nei lunghi e MAX17261GEVKIT sono di-
cisione offrendo al contempo periodi di stand by. Consentono sponibili a 60 dollari.
piccole dimensioni e semplicità inoltre una rapida progettazio- www.maximintegrated.com

ELETTRONICA IN - Settembre 2018 17


MLX81325, soluzione integrata per l'azionamento in applicazioni automotive
Melexis presenta una nuova do di integrare direttamente motori con funzionalità di
soluzione di azionamento le funzioni di rilevamento rete UN e con un controller
per motori con sensore in- all'interno dell'elettronica di di protocollo, alloggiato in un
tegrato e con spazzole che è azionamento, semplificando minuscolo package QFN32 da
destinata principalmente ad e accelerando così l'attività 32 pin da Smm x 5 mm che
applicazioni di automazione di progettazione per gli in· consente un controllo fine del
in campo automotive, come gegneri che ideano soluzioni PowerFET per un azionamen-
la regolazione dei sedili, gli al- automotive a basso costo e to efficiente e a basso rumore
zacristalli e l'azionamento dei ad alte prestazioni. dei motori con spazzole con
tettucci apribili. La soluzione, L'MLX81325 è un pre-driver awio e arresto graduali.
costituita da due IC, è In gra- intelligente integrato per www.melexis.com

dsPIC33CH, dsPIC dual-core per Renesas semplifica lo sviluppo


applicazioni di controllo embedded del software multicore automotive
Renesas Electronics ha an- questo autunno, mentre
Microchip Technology annuncia nunciato un aggiornamento un ulteriore supporto' per
un nuovo Digitai Signa! Controller del suo ambiente di svlluppo la serie di MCU RH850/E2x,
(DSO con due core dsPIC DSC in un model-based "Embedded che include fino a sei core,
unico chip per applicazioni avanza- Target for RH850Multicore" è in fase di pianificazione.
te di controllo embedded. Il primo per microcontrollori (MCU) Inoltre, Renesas prevede di
core è progettato per funzionare multicore per applicazioni implementare questo am-
come master, il secondo come sla- nel campo automotive. biente di sviluppo sull'intera
ve; quest'ultimo viene utilizzato L'aggiornamento supporta piattaforma Renesas auto·
per l'esecuzione di un codice di lo sviluppo di sistemi mul- nomy, inclusa la famiglia di
controllo dedicato e time-criticai tirate (periodi di controllo SoC "R-Car". Col tempo, Re-
mentre il core master è occupato miglia offre un'integrazione senza multipli), che è ora comune, nesas prevede di applicare
nell'esecuzione dell'interfaccia uten- precedenti in un piccolo package ad esempio, nei sistemi di la propria esperienza in pia-
te, del monitoraggio del sistema 5 x 5 mm ed include funzionalità controllo del motore e del nificazione model-based nel
e delle funzioni di comunicazione come la comunicazione CAN-FD. corpo. Questo ambiente di campo dello sviluppo auto-
per l'applicazione finale. dsPIC33CH Per ridurre i costi di sistema e le sviluppo model-based si è mobllistico alla famiglia RX,
è progettato specificamente per dimensioni delle schede, sono di- dimostrato pratico anche in in continua crescita anche
facilitare lo sviluppo indipendente sponibili periferiche avanzate per scenari di sviluppo del sof- nel settore industriale, dove
del codice per i due core da parte di ogni core, inclusi ADC ad alta velo- tware per MCU multicore, e si sta assistendo a un pro-
team di progettazione diversi, e per cità, DAC con generazione di forme può ridurre gli oneri di svi- cesso di Importanti aumenti
consentire una perfetta integrazio- d'onda, comparatori analogici, am- luppo di software sempre della complessità.
ne quando riuniti in un unico chip. plificatori analogici programmabili più complessi, in particolare www.renesas.com
La famiglia dsPlC33CH è ottimizzata e hardware PWM (Pulse Width Mo- nello svìluppo dei sistemi di
per realizzare alimentatori digitali di dulation) ad alta risoluzione. Avere controllo per veicoli a guida Multicore Operati on of Multlrate Control for
Englnes
elevate prestazioni, controlli moto· due core, con periferiche dedicate, autonoma.
re ed altre soluzioni che richiedano consente di programmare i core li nuovo ambiente di svilup-
sofisticati algoritmi: circuiti per ap- affinché si controllino a vicenda, po model-based è proget-
plicazioni in alimentazioni wireless, facilitando così la progettazione di tato per supportare l'MCU
alimentatori per server, droni e un sistema robusto. RH850/P1H·C di Renesas,
sensori per autoveicoli. La nuova fa· www.microchip.com che include due core, entro

Da ST nuovi convertitori Off-Line VIPerl 1


Il convertitore Off-Line VIPerl 1 numerose applicazioni consu- risparmio in termini di spazio
Off-line high-voltage converters di STMicroelectronics con MO- mer e industriali. I convertitori ediBOM.
tor rugged and flexlble 5-30V SFET integrato da 800V dotato Off-Line VIPerl 1 di STMicroe- I convertitori ad alta tensione
power supplles
di elevata resistenza all'effet- lectronics sono adatti a circuiti VIPerl 1 consentono topologie
to valanga offre la possibìlità con tensione di uscita di 5-30 flyback, boost o buck I boost,
di realizzare alimentatori e V; grazie all'elevata tensione soluzioni connesse diretta-
adattatori più performanti e di startup, all'amplificato- mente alla linea AC rettifica-
robusti. La tensione di startup re d'errore e all'oscillatore a ta o ad altre sorgenti DC per
drain-source di 26 volt del basse emissioni EMI, questo generare la tensione di uscita
MOSFET garantisce un'ampia dispositivo semplifica la pro- desiderata, utilizzando un
gamma di tensione di ingres- gettazione di convertitori e di semplice divisore di tensione.
so e aumenta la flessibilità in alimentazione e consente un www.st.com

18 Settembre 2018 - ELETTRONICA IN


I
> I I
Processori sicuri S32S di NXP per ADPDl 8881, modulo ottico integrato I
il controllo di veicoli elettrici e autonomi per sensori di fumo
NXP Semiconductors ha an- NXP ha soddisfatto le esigenze Analog Devices annuncia
nunciato una nuova famiglia delle case automobilistiche che l'ADPD188BI, un modulo
di microprocessori sicuri ad stanno sviluppando i futuri vei- ottico per sensori di fumo
alte prestazioni per il contro!- coli elettrici autonomi e ibridi con che comprende due LED,
lo della dinamica dei veicoli di un nuovo processore a 800 MHz: fotodiodo e front-end ana-
prossima generazione, elettrici primo della linea di prodotti 532, logico (AFE) integrati in un
e autonomi. I nuo- il microprocessore singolo package. Il Front
vi microprocessori 5325 offre le pre- End Analogico {AFE) ad alte quattro (23%) è avvenuto
NXP 5325 gesti- stazioni ASiL D più prestazioni è caratterizzato in luoghi dove i rilevatori
ranno in sicurezza performanti oggi da un'alta capacità di reie- di fumo erano guasti o
i sistemi che acce- disponibili. I pro- zione della luce ambientale disabilitati. L'ADPD188BI
lerano, frenano e cessori NXP 5325 e da consumi ridotti, ga- è stato progettato nel
guidano i veicoli, = · ·~ = utilizzano una serie rantendo una lunga dura- rispetto dei nuovi re-
sia quelli condotti ~------~ di nuovi core Arm ta delle batterie. i due LED quisiti dello standard
da un conducente che quelli Cortex-R52, che integrano il più contribuiscono a ridurre UL217 e delle specifiche
completamente autonomi. alto livello di funzioni di sicurezza i falsi amarmi frequente- EN54/14604. La sua strut-
Questi dispositivi sono studiati di qualsiasi altro processore Arm. mente causati da vapore e tura integrata utilizza due
per offrire elevate prestazioni La configurazione prevede quat- polvere. i falsi allarmi rap- diverse lunghezze d'onda
ed un alto livello di sicurezza ai tro unità di elaborazione ASIL D, presentano la causa prin- per discriminare le dimen-
veicoli elettrici e autonomi di completamente indipendenti,
prossima generazione: in grado di garantire un'elabora-
• Primo prodotto della nuova zione parallela particolarmente
cipale di rimozione o disa-
bilitazione dei sensori da
parte degli utenti. Secondo
sioni delle particelle, con
una maggiore capacità di
rilevare e classificare i tipi
<>
piattaforma di elaborazione sicura. Inoltre, l'architettura 5325 la National Fire Protection di fumo e ignorare le fonti
automobilistica 532 di NXP: supporta una nuova funzionalità Association, negli Stati di disturbo.
Nuovo microprocessore I di "fail availability" che consen- Uniti circa un decesso su www.analog.com
mlcrocontrollore multico- te al dispositivo di continuare a
re a 800 MHz realizzato in funzionare dopo aver rilevato e
tecnologia 16 nm; isolato un guast9, una capacità
• Primo dispositivo ad utilizzare fondamentale per le future appli-
il nuovo multi-core Arm Cor- cazioni autonome.
tex-R52 per soluzioni ASIL D. www.nxp.com Da TI i più piccoli ed efficienti
convertitori DC/ DC
AS520DL, sensore angolare dual-die Texas lnstruments (TI) ha In- Smallest and most efficient
per applicazioni automotive trodotto due regolatori buck SIMPLE SWITCHER'
synchronous converters
DC I DC con tecnologia Simple
Ams ha rilasciato il dispositivo mento, di ottenere due segnali Switcher ad elevata gamma di
A55200L, un sensore magne- di uscita perfettamente identici tensioni di ingresso in packa-
tico angolare con doppio die tra loro, soluzione di grande im- ge ultra-small HotRod quad-
e interfaccia 12C che consente portanza per impieghi automo- no-lead (QFN}. I convertitori
lo sviluppo di nuovi progetti tive. Ciascun sensore dispone di di tensione step-down a 3-A
salvaspazio in applicazioni au- pin separati per evitare che un LMR33630 e 2-A LMR33620 ad
tomobilistiche critiche per la guasto di natura elettrica pos- elevato livello di integrazione
sicurezza. Il sensore A55200L sa influire su entrambi i circuiti. garantiscono la migliore effi- wettable flanks che consentono
certificato AEC-0100 grade 1 Come tutti i sensori di posizione cienza a pieno carico del setto- l'ispezione ottica post-saldatura
espande l'ampio portafoglio di magnetici di Ams, l'AS5200L be- re - ben 92% - per la realizza- per velocizzare la produzione;
sensori magnetici di posizione neficia dell'immunità intrinseca zione di alimentatori industriali in ogni caso il package utiliz-
di Ams, con il suo esclusivo set di ai campi magnetici vaganti e robusti e affidabili con frequen- zato conferisce al dispositivo
funzioni focalizzato sul controllo produce misure particolarmen- za di commutazione fino a 2, 1 LMR33630 la densità più alta del
drive-by-wire come il shift-by- te accurate e ripetibili anche in MHz. Utilizzati in combinazione settore pari a 0,5 A I mm2 con
wire nei sistemi a leva, rotanti o ambienti rumorosi. con WEBENCH Power Designer una corrente di 3 A.
a pedali. Le tradizionali tecnolo- www.ams.com di TI, i convertitori semplificano La particolare configurazione
gie di rilevamento della posizio- la conversione di potenza e ve- del contenitore e il posiziona-
ne ad alte prestazioni ed elevata locizzano il processo di proget- mento simmetrico dei pin mi-
affidabilità di Ams vengono tazione. nimizza l'induttanza parassita e
ulteriormente migliorate nel I regolatori buck da 3,8 V a 36 facilita il posizionamento otti-
sensore A55200L grazìe all'im- V LMR33630 e LMR33620 sono male dei condensatori di bypass
piego di due die. La particolare offerti in package termica- in ingresso riducendo anche le
configurazione stacked (un ele- mente avanzato da 2X3 mm. emissioni di rumore condotte e
mento sopra l'altro), consente, Il minuscolo package HotRod irradiate.
con un solo magnete di riferì- quad-no-lead (QFN) dispone di www.ti.com

ELETTRONICA IN - Settembre 2018 19


COMPAGNI
D'AVVE NTURA I
Cercametalli di piccole dimensioni ideale sia per
ritrovare monete e oggetti metallici nella terra
e nella sabbia, sia per rilevare corpi metallici
nei vestiti e nelle borse o tubi di ferro nei muri.

METAL DETECTOR
TASCABILE
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • •• • • • • • • • • • • • • • • • • di BORIS LAN DONI

p iù o meno tutti saprete che cosa si intende per


metal detector o rilevatore di metalli, perché
qualsiasi apparato capace di rilevare la presenza
di metallo, sia ferromagnetico che diamagnetico o
almeno una volta sarete incappati in un dispositivo paramagnetico, a una certa distanza o all'interno
del genere entrando in banca, in posta, andando in di un varco a portale o di alh·o genere, sebbene
aeroporto o in tribunale o seUlplicemente vedendo tipicamente si tenda a distinguere tali apparati in
qualcuno che al mare, fuori stagione, faceva pro- cerca.metalli e metal detector: con il primo nome si
spezione (ricerca di oggetti metallici sotto la sabbia, tende chiamare i dispositivi con cui si fa prospe-
per esempio) sperando di trovare monete, gioielli e zione, ovvero si va alla ricerca di metalli preziosi,
quant'altro perso in estate dai bagnanti. gioielli ed effetti personali, reperti archeologici
Con il termine cercametalli si intende, in generale, nel sottosuolo, ma anche di tubature metalliche a

~ ELETTRONICA IN - Settembre 2018 21


Q1 PWR Q3
(,)
.....
~
I.LI
t C4

+
~
~
rC1 RI
Q2
es

LSI
~
E
<l)
.e
(.)

muro o nel pavimento, mentre si chiamano metal frequenza di oscillazione, Ja cui bobina costituisce
detector tutti i dispositivi finalizzati alla ricerca di anche l'avvolgimento primario di un trasformatore
arnù addosso alle persone o nei bagagli, di bombe in aria; il secondario è la bobina L2, che si trova in
sotterrate ed anche di protesi o placche metalliche serie al condensatore C2, necessario a disaccoppia-
nel corpo ai fini della preparazione ad esami come re la componente continua di polarizzazione a ripo-
la Risonanza Magnetica Nucleare. Alla fine sono la so della base del transistor (se non ci fosse, la base
stessa cosa, ma cambia la tecnologia per adattare il del Ql sarebbe cortocircuitata con il positivo di
dispositivo alla destinazione finale. alimentazione e l'oscillatore non funzionerebbe) ma
In queste pagine vogliamo proporvi la realizzazio- dimensionato per farsi attraversare dal segnale alla
ne di un piccolo cercametalli funzionante a pile e frequenza di lavoro dell'oscillatore, senza presen-
utilizzabile per verificare che in una parete dove tare apprezzabile reattanza. Anzi, idealmente C2
volete piantare un chiodo o un tassello non vi siano forma con L2 un circuito risonante serie accordato
tubazioni o cercare un oggetto metallico perduto alla stessa frequenza di qlllello risonante parallelo
nella terra in giardino. Nulla vieta di utilizzarlo per formato da LI e C3.
.rHevare la presenza di parti metalliche addosso alle Notate che per facilitare la realizzazione, i due
persone, sebbene non si tratti di un vero cercame- avvolgimenti (bobine) sono realizzati da piste del
talli per addetti alla sicurezza come quelli utilizzati circuito stampato opportunamente dimensionate.
negli aeroporti o nei tribtmali. L'oscillatore di Meissner rientra nella categoria dei
circuiti oscillatori a trasformatore, nella quale la
SCHEMA ELETIRICO retrocessione del segnale necessario a innescare l'o-
Entriamo subito nel vivo del progetto analizzan- scillazione avviene mediante un trasformatore d1e
do lo schema eleth·ico del circuito, che trovate in accoppia il circuito di uscita con quello di ingresso.
queste pagine e che appare molto semplice: consta Lo sfasamento di 180° viene determinato dal fatto
infatti di tre h·ansistor con i quali viene realizzato che il trasformatore restituisce al secondario w1a
un oscillatore a retroazione cui segue un amplifica- tensione indotta che è sempre in opposizione di
tore di potenza con filtro capacitivo. fase rispetto a quella che alimenta il primario (quin-
L'oscillatore è di tipo Meissner e verte sul h·ansistor di, 180° esatti). Nell'oscillatore a trasformatore la
NPN QI, al cui collettore è applicato un circuito frequenza dipende dalle caratteristiche del h·ansi-
antirisonante (formato da L1 e C3) accordato alla stor e dall'induttanza degli avvolgimenti, ovvero
dal ritardo che il trasformatore inh·oduce nella
pratica a causa delle proprie componenti parassite
e che non è sempte 180° come in teol'ia.
CARATTERISTICHE TECNICHE Nell'oscillatore di Meissner il trasformatore retro-
• Tensione di alimentazione: 9 +1 2V cede al primario tma tensione che, per come sono
• Corrente a ssorbita: 50 mA realizzati gli avvolgimenti (le due spirali sono
• Funzionamento: a variazione d'Induttanza affiancate e la fine dell'Ll si trova in corrisponden-
• Rilevamento: t utti i metalli za dell'inizio deU'L2 e viceversa), è in opposizione
• Segnalazione rilevamento: acustica di fase e tale da innescare l'oscillazione: in pratica
quando la tensione ai capi della LI cresce perché il

22 Settembre 2018 - ELETTRONICA IN


potenziale sul collettore diminuisce a seguito della
maggiore conduzione del BJT (aumento della cor-
rente di collettore) cresce anche la differenza di po-
tenziale ai capi della L1 e il potenziale di base viene
incrementato determinando un ulteriore aumento
della corrente di collettore e un abbassamento del
potenziale di collettore. Invece, quando il poten-
ziale di collettore cresce (perché il transistor va
all'interdizione), sulla base giunge una tensione che
spinge l'interdizione. Insomma, alla base giunge
un segnale in fase con quello presente sul collettore
e ciò innesca l'oscillazione, al contrario di quanto
avverrebbe utilizzando il circuito da amplificatore,
dove la retroazione tende a contrastare l'incremen-
to di ampiezza del segnale d'uscita. Il circuito del metal
Il funzionamento si può spiegare immaginando detector si alimenta con una
che nel rumore termico generato dai semicondut- pila da 9 volt.
tori e in quello elettrico è presente sicuramente
una frequenza tale che, amplificata dal circuito
di collettore, riesca a far retrocedere alla base una di retroazione positiva e guadagno è uguale a 1, è
tensione di ampiezza sufficiente a innescare e man- stato inserito il trimmer R3, che consente, attraver-
tenere l'oscillazione. Tale condizione corrisponde so la variazione della resistenza di emettitore, di
a un prodotto tra tasso di retroazione e guadagno raggiungere il guadagno desiderato, occorrente
dello stadio a transistor uguale a 1, in condizioni di all'innesco dell'oscillatore. Più esattamente, il trim-
retrocessione di un segnale che spinga il transistor mer permette di regolare il guadagno per ottenere
ad amplificare invece che ridurre il guadagno. l'innesco dell'oscillazione, ma anche di controllare
La frequenza d'innesco è quella di accordo del la sensibilità del metal-detector attraverso il rag-
circuito antirisonante posto sul collettore (esiste giungimento della massima ampiezza della tensio-
però una variante dell'oscillatore di Meissner in ne in oscillazione.
cui il circuito antirisonante è sulla base) quindi La frequenza di lavoro, ossia quella alla quale
dipende dai valori di L1 e C3; siccome l'oscillazio- oscilla il circuito, si determina precisamente grazie
ne si può innescare quando il prodotto tra segnale al fatto che il primario del trasformatore forma, con

La bobina è integrata nel


PCB ed è realizzata con
spirali sulle due facce dello
stampato.

Il trimmer a 'bordo del


circuito stampato serve sia
a innescare l'oscillatore per
far rilevare i metalli, sia a
regolare la sensibilità.

ELETTRONICA IN - Settembre 2018 23


Come funzionano i metal detector
Il principio di funzionamento dei cercametalli è la reazione bile. Anzi, per l'esattezza, l'energia elettrica sviluppata dalle
che il campo magnetico generato da una bobina elettrica, correnti parassite viene prelevata, per accoppiamento ma-
utilizzata nell'esplorazione del terreno, del muro o del sogget- gnetico, dal circuito della bobina inducente. Ciò vuol dire che
to da analizzare, presenta quando in esso viene introdotto la presenza di un corpo elettricamente conduttore richiede
qualcosa di ferromagnetico, paramagnetico o diamagnetico un maggiore assorbimento di elettricità dal circuito che pilota
purché elettricamente conduttìvo. Il rilevamento può avvenire la bobina di ricerca del metal-detector; rilevando la variazio-
perché il mate~iale trovato: ne di consumo, si rileva la presenza. Rilevare l'assorbimento
modifica la permeabilità assoluta del mezzo in cui si crea nei metal-detector permette la ricerca degli oggettì composti
il flusso magnetico indotto e quindi varia l'induttanza da elennenti paramagnetici; anzi, i cercametalli progettati allo
della bobina esploratrice, la quale, essendo alla base di scopo sono in grado di rilevare i due effetti che si originano
un oscillatore, provoca una deviazione della frequenza facendo entrare un corpo paramagnetico nel campo elettro-
generata; magnetico prodotto dalla bobina di ricerca:
elevando la permeabilità, consente un più alto flusso - la modifica della permeabilità assoluta del mezzo in cui
magnetico; è il caso degli apparati basati su trasformato- si crea il flusso magnetico indotto e quindi la variazione
re, nei quali il materiale captato modifica l'accoppiamento dell'induttanza della bobina esploratrice;
magnetico tra due solenoidi; - la variazione di assorbimento dovuta all'energia sottratta
• se è conduttore, diventa sede di correnti superficiali che, dallo scorrimento delle correnti parassite.
a loro volta, provocano un campo magnetico contrastante
quello del metal-detector. Teoricamente si potrebbe fare altrettanto anche nella ricerca
dei materiali ferromagnetici, tuttavia in questi la variazione
Il primo caso riguarda i cercametalli a variazione di induttan- di permeabilità è preponderante e di per sé sufficiente a
za, mentre quelli a variazione del flusso induttore sono basati determinare indicazioni facilmente discriminabili dai falsi
su speciali trasformatori realizzati con una bobina alimen- allarmi dovuti ai disturbi. In linea generale gli apparecchi che
tata a corrente variabile, che perciò induce in un secondo rilevano le variazioni di assorbimento o di frequenza dovute
solenoide un flusso magnetico e determina ai suoi capi una all'azione delle correnti parassite sul suolo o negli oggetti
tensione indotta. Ma i metal detector funzionano anche e sottostanti, sono adatti a rintracciare qualsiasi massa che
soprattutto sfruttando l'effetto delle correnti parassite; que- risulti elettricamente conduttiva, risultando tanto più sensibili
sto spiega come mai si possono rintracciare anche metalli quanto più bassa è la loro resistenza elettrica. I metal-
quali oro e argento, che non manifestano effetti magnetici e detector che rilevano le variazioni di frequenza (dovute alla
in generale tutti i metalli: ferromagnetici, diamagnetici e pa- variazione di induttanza della bobina inducente) o di corrente
ramagnetici. si sfruttano proprio le correnti parassite. I cerca- in un avvolgimento indotto sono invece prettamente dedicati
metalli per materiali ferromagnetici funzionano prettamente alla ricerca di materiali ferromagnetici e paramagnetici.
a variazione di induttanza, ovvero di permeabilità magnetica Le tecnologie utilizzate nei metal detector odierni sono:
del mezzo in cui vengono irradiate le onde elettromagneti- - BFO; rilevano quasi esclusivamente masse ferrose, dato
che. Quando un corpo ferromagnetico viene a trovarsi nel che hanno una bobina la cui induttanza varia in funzione
campo generato da un induttore avvolto in aria, può far salire della permeabilità magnetica della zona esplorata; rileva-
fortemente la permeabilità, tanto da determinare una netta no comunque anche oggetti conduttivi;
variazione di frequenza (se la bobina è parte di un oscillatore - TR; quelli che sfruttano il principio del trasformatore rile-
LC) ovvero il flusso tra tale induttore e una seconda bobina vano solo oggetti ferromagnetici, perché la loro presenza
che va da secondario (è il caso dei sistemi a trasformatore). aumenta l'intensità del flusso e quindi della corrente pre-
Lo stesso principio può essere utilizzato per rilevare i mate- leva bile sulla bobina secondaria; gli 18 e i TR a sintonia,
riali paramagnetici, anche se è megiio ricorrere all'azione sentono invece anche i conduttori e, purtroppo, l'effetto
dovuta a quelle che la Fisica chiama correnti parassite suolo, il quale è dovuto al flusso di correnti parassite
di Foucault o correnti superficiali. Il fenomeno si spiega nel terreno e all'effetto che producono, tale da falsare il
considerando che in un corpo immerso nelle linee di forza di rilevamento;
un campo magnetico variabile, quale quello generato dalla - PI; lavorano essenzialmente sul ferro e quasi per niente
bobina di ricerca del metal-detector, viene indotta una ten- sui diamagnetici, in quanto si basano sul rilevamento della
sione che, essendo il metallo un conduttore, determina una magnetizzazione residua degli oggetti investiti da un flus-
corrente che circola preferibilmente sulla superficie. La cor- so; per questa ragione, possono rilevare oggetti ferroma-
rente, che rappresenta un fenomeno parassita, è a sua volta gnetici anche molto piccoli, ma ignorano i metalli preziosi;
causa di un campo magnetico che interagisce con quello che - VLF; combinano l'effetto delle correnti parassite tipico
l'ha generata. La chiusura dei circuiti virtuali all'interno della degl i elementi diamagnetici a quello della variazione di
massa metallica o conduttrice, dalla superficie all'interno, fa permeabilità magnetica caratteristico dei ferromagnetici
sì che il metallo o conduttore investito dal campo di un metal e dei paramagnetici; sono insensibili all'effetto suolo
detector reagisca generando un proprio campo elettroma- perché, pur rilevando l'assorbimento dovuto alle correnti
gnetico. Questo fenomeno porta a sottrarre energia al campo di Foucault, funzionano sentendo lo spostamento di fase
che l'ha generato, perché la corrente in cortocircuito di una provocato da esse e nelle versioni gestite da microproces-
spira immersa in un campo magnetico variabile dipende da sore, scartano la risposta alla frequenze alle quali il suolo
quella che alimenta la bobina responsabile del campo varia- mineralizzato dà maggiore risalto.

24 Settembre 2018 - ELETTRONICA IN


r··[piano di M NTAGGIO]······································································ · · · · · · · · · · · · · · · · · · · · · ~
~ ~
~ ~
~ ~

i i

Elenco Componenti:
R3: Trimmer 100 ohm
C1: 100 nF ceramico 01: S9018
C2: 2,2 nF cermico 02: S9015
C3: 2,2 nF cermico 03: S9012
C4: 100 nF ceramico LS1: Buzzer
C5: 100 µF 25 VL elettrolitico
R1: 220 kohm 1% Varie:
R2: 2,2 kohm 1% - Circuito stampato S1386 (61x66 mm)
: ............................................................................................................................................................................................................................................:

un condensatore postogli in parallelo, un circuito la alla quale la reattanza capacitiva eguaglia quella
accordato antirisonante; quest'ultimo ha la caratte- induttiva, almeno nel modulo) e molto bassa alle
ristica di presentare un'impedenza elevatissima in altre frequenze. In virtù di ciò, il trasformatore tra-
corrispondenza della frequenza di dsonanza (quel- sferisce alla base del transistor un segnale abbastan-
za ampio da innescare l'oscillazione praticamente
alla sola frequenza di risonanza del circuito LC.
Si può quindi affermare con sufficiente approssi-
mazione che la frequenza di lavoro vale:

1
fo= - -- - -
2n -I (LxC)
Dunque, l'oscillatore emette teoricamente un
segnale sinusoidale a frequenza uguale a quella di
risonanza del bipolo LC.
Notate che nel circuito le due resistenze di sinistra
servono alla polarizzazione in continua della base
e il condensatore provvede a cortocircuitarle in
presenza di segnale.
L'oscillatore di Meissner esiste in due varianti, la
prima delle quali è quella appena descritta; l'altra
ha il circuito accordato sul secondario (base) invece
che sul primario (collettore). La frequenza di oscil-
Gli awolgimenti del trasformatore ricoprono lazione del caso si calcola con una forma analoga a
entrambe le facce del circuito stampato. quella appena esposta, con la sola differenza che al

ELETTRONICA IN - Settembre 2018 25


posto di L va il valore di induttanza del secondario, tico, la permeabilità sale notevolmente e cambia
ossia della bobina che sta sulla base del transistor. l'induttanza di L1 ed L2. Questa condizione altera
Fin qui abbiamo spiegato come funziona l'oscillato- la frequenza di lavoro dell'oscillatore e ciò viene
re ma senza esporne l'utilità ai fini del rilevamento sfruttato dalla porzione di circuito che segue; per
dei metalli; ora è giunto il momento di spiegare l'esattezza, Q2 è configurato come amplificatore
qual è la sua :funzione: il trasformatore cli cui L1 e invertente che amplifica il segnale di collettore del
L2 sono primario e secondario è "avvolto" in aria, transistor costituente l'oscillatore di Meissner e il
ovvero senza alcun nucleo ferromagnetico che condensatore C4, insieme alla resistenza di colletto-
incrementi il flusso magnetico trasferito, quindi re R2, forma un filtro passa-basso del prim'ordine
se al circuito stampato del nostro metal detector che taglia la frequenza nominale a vuoto dell'o-
viene avvicinato un pezzo di metallo ferromagne- scillatore, mentre lascia passare una componente

26 Settembre 2018 - ELETTRONICA IN


filtrata, continua, quando la frequenza scende al minali c!he hanno piazzole in comune su entrambi i
disotto di essa, come nel caso in cui al circuito lati, così da realizzare le interconnessioni (vie) tra le
stampato viene avvicinato un oggetto metallico. due ramature.
Notate che la frequenza di lavoro viene altera ta Termina te il montaggio con il cicalino e con una
anche dalla presenza di metalli non ferromagneti- presa volante "a strappo" per pile da 9V, che utiliz-
ci, in quanto essendo elettricamente conduttivi, le zerete per alimentare il metal-detector.
tensioni indotte in essi dalla presenza del campo Per l'ori.entamento dei componenti polarizzati fate
elettromagnetico irradiato dalla bobina L1 vengono riferimento al piano di montaggio che trovate in
cortocircujtate, determinando un carico nell'oscil- queste pagine.
latore (sotto forma di maggiore assorbimento dal Una volta completate le saldature, tagliate le ecce-
transistor Q l), tale da determinare un abbassamen- denze dei terminali e verificato che tutto sia a posto,
to della frequenza di oscillazione. ln questo caso il potete già utilizzare il vostro metal detector, visto
rilevamento avviene ad opera delle correnti paras- che l'unica taratura, ossia quella del trirnmer, si
site determinate dal cortocircuito della tensione esegue "sul campo", cioè provando ad avvicinare
indotta. il circuito (alimentato con una pila da 9V) a delle
In tutti i casi, più la frequenza sul collettore del Ql parti metalliche e ruotando il cursore fin quando
scende, più cresce l'ampiezza della tensione ai capi non si sente il suono uscire dal cicalino.
del condensatore di filtro C4 (perché diminuisce la Tn vero il trimmer si può registrare anche con degli
caduta su lla R4), il che porta gradualmente il PNP strumenti e, nello specifico, con un oscilloscopio,
Q3 a condurre sempre più (perché cresce la diffe- collegand o la sonda di quest'ultimo tra la massa
renza di potenziale tra emettitore e base), pulsando (negativo di alimentazione) e il collettore del tran-
con il proprio collettore sul condensatore elettroli- sistor Ql e verificando quru1do, ruotando il cursore
tico C5, che filtra ulteriormente il segnale residuo del trimmer, si sviluppa la sinusoide corrispon-
variabile e con la tensione continua che viene cosl dente all'oscillazione (se il circuito non oscilla il
ricavata aJjmenta il cicalino LSl; quest'ultimo è collettore avrà un potenziale costante ... ) e cercando
del tipo con oscillatore integrato, iJ quale emette di ottenere la massima ampiezza.
una nota acustica tanto più intensa quanto pili la Peraltro con l'oscilloscopio potete anche verificare
frequenza di oscillazione si abbassa a causa della cosa accade al segnale dell'oscillatore quando il me-
vicinanza del metallo o della consistenza del metal- tal detector viene avvicinato a un pezzo di metallo.
lo stesso. Una volta regolato il circuito è il caso di pensare a
Concludiamo l'analisi dello schema elettrico con un conte nitore per racchiuderlo, che dovrà necessa-
l'alimentazione dell'intero circuito, che si applica riamente essere non metallico (va bene in plastica)
ai punti +e - PWR e viene filtrata dal condensatore per evitare che venga rilevato esso stesso, deter-
Cl; l'alimentazione può essere prelevata da una minando false segnalazioni; il circuito stampato
comunissima pila piatta da 9 volt, visto che l'assor- dovrà essere appJjcato col lato saldature aderente a
bimento del circuito non è molto elevato. un pannello del contenitore, in modo da limitare il
più possibile la distanza tra la bobina e le parti da
REALIZZAZIONE PRATICA ru1afuzare, a tutto vru1taggio della sensibilità del
Passiamo adesso dalla teoria alla pratica spiegando
come si costruisce il metal detector: la prima opera-
zione da compiere è preparare il circuito stampato,
metal detector.

che è del tipo a doppia faccia e che raccomandjamo
ili ottenere a partire dalle tracce lato rame pubbli- per il MATERIALE
cate (e scaricabili) s ul nostro sito www.elettronicnin.
it insieme aglj a ltri file del progetto; scaricati i file,
stampateli su carta da lucido o acetato e otterrete le
Il mini metal detector in kit (cod. MINIMETALDET) è di-
pellicole per procedere con la fotoincisione.
sponibile presso Futura Elettronica al prezzò di Euro 4,90.
Inciso e fora to il cirmito stampato, rusponetevi i
Il prezzo si intentende IVA compresa.
pochl componenti richlesti a pa1tire da resistenze :::=-~".li[ ~ • < •• --.... •. r.T ,-._ • ·- "
e condensatori (dando la precedenza a quelli non ÌI materiale va richie.sto a:
polarizzati) e poi passate al trimmer e ai transistor; : '.futura Elettronica, Via Adige 11. 21013 ~allarate (VA)
stagnate bene da entrambe le facce i reofori dei ter- Tel: OlU-799775 ·Fax: Ò33l-792287 ·- www.futurashop.it

ELETTRONICA IN - Settembre 2018 27


ANTENNINO:
Iniziamo a
utilizzare le
nostre schede
per l'loT basate
L'ARDUINO su architettura
Arduino.
CON L'ANTENNJA

dell'Ing. MIR KO UGOLI NI

Q uando (nei fascicoli n° 225 e n° 226) abbiamo


presentato Antennina, ossia una speciale
ciata all'impiego del chip TPL5110, quindi durante
il periodo di riposo del nodo sensore, l'unico chip
scheda Arduino dotata di connettività e capace che rimarrà attivo sarà il TPL5110, riducendo così
di operare in modalità Periferica o Gateway, ci l'assorbimento a 29 nA. Nel secondo esempio uti-
sia.mo fermati alla descrizione dell'hardware e alla lizzeremo invece la seconda modalità LowPower di
configurazione, promettendovi di ritornare sull'ar- Antennino, quella propria dell' ATmega328P.
gomento per farvi vedere in pratica un esempio Concluderemo con l'esecuzione dell'aggiornamen-
di utilizzo applicabile al mondo reale. Abbiamo to OTA dei moduli Ante1mino.
messo in evidenza le peculiarità di Antennina,
spiegato cosa sono e come si configurano i FuseBit, CARICHIAMO IL PRIMO SKETCH
conducendovi fino al caricamento di un bootloader Antennina, contrariamente alle schede Arduino cui
su Antennina. Ora è arrivato il momento di pas- siamo abituati, non possiede un c01mettore USB a
sare alla pratica, realizzando la comunicazione tra bordo e quindi per poterlo programmare è necessa-
due moduli: uno configurato come sensore remoto rio dotarsi di un adattatore USB/ITL. L'adattatore
(Periferica) e l'altro da Gateway; quest'ultimo avrà deve avere un connettore micro o mini USB fem-
a bordo il piccolo display OLED, menh·e l'altro sarà mina ed un connettore con passo 2.54 mm con il
il nodo sensore. classico pin-out [GND-CTS-VCC-TX-RX-RTS]. Nel
Per quest'ultimo utilizzeremo due diverse configu- caso sia possibile, preferite adattatori che adottino
razioni di Antennino e di conseguenza due sketch: il chip FT232.
il primo farà uso della modalità LowPower asso- Quando lo collegherete la prima volta alla p01ta
- - --- ---------
ELETTRONICA IN - Settembre 2018 29
e
r«fllic~C1'1Q&Rtiot6 . e
Sef\.1111-'0fttlCt CM•~ft:•M

StAa!Plo't:et C;1· Sl'\.ti•t ll.!;·.LIJ..l.aa~ c:-11.,........,,,,N&'•"

~ "Arei...'WIGnnnoVno·

P«t-C<».W
A WJ0""°'o..A.llJIC b .. -,.uny p~g> · 9ltt1qeyl•j ''h scou. topi
""'°"""'°
~ ·A.VRtSP"
AtG~lm>(#ltog,Jl'nm.ftOfloc'I) ...._UA~Q.:4.:l::J.U.UU ~'IT'' ' ·m •'' •••.u a , ..,,,,,,, :tgr~~

~
.......... ~
AretllftQ/GrrLlr'IOZtt0lNt11R-USSPort1
AidulftQ/~l'll)MK1llOOO

Aroi.lll'(llf'~~

Il 'C• hM•'"" U ;'tiri eiia •U~•:i • • i u .n .ud AtouinQJl,l\Rf0X f200


1 4 l :kfU.• .tD!~U_fl:lftl. 1"C4 Arclui1'0W~GSM 140>
I AidYl~fl~WNiUOO

f/ tcf..uJJt'• .U 'UI l!h• ~"" H:t•f• Pltt•• llf


fl • u..._..v., ' ... , • ~· .U...•.tah• U tr..H
.......'-"""'""'"""'
Afeull'IO MO'Pro (Jl't09f'Jm~ 1otU
AiOu!no ._.,, P.., (f~ US8 PorU
1 lsdt,. :a:s...'!.u& ro'

--
~tf'U/)OM~«~.tl560
Al'OilinoMtQ.aADl

~~lTH
Ard\inrQIGcn..inoMIOO
kdlllno[aplOr'•
~llOll'll
Àfd\llno Erntmtt
M:1111"°rt0
Nc:Mnolll
l.11).'°aG~USS
ll'Vf'WArdUlln;i

Fig. f · Selezione Board

USB del vostro PC vi verrà richiesto di installare i Board stiamo usando. Antennino è compatibile con
driver, i quali possono essere reperiti dal sito del Arduino/Genuino Uno, quindi selezioniamo dal
rivenditore dell'adattatore oppure dal produttore menu (Fig. 1)
del chip. Tools>Board> "Arduino/Genuino Uno".
Nel caso in cui abbiate scelto un adattatore con Per poter caricare gli Sketch su Antennino, non è
chip FT232 i driver si trovano a questo url: obbligatorio rimuovere le batterie, ma è una proce-
http://wwwftdichip.com/FTDrivers.htm. dura consigliata per evitare che una configurazione
Alla pagina http://wwwftdichip.com/Support/Docu- errata dei jumpers possa creare dei problemi.
111ents/InstallGu.ides.htm è possibile consultare una Per programmare la scheda è necessario settare i
guida esauriente per l'installazione dei driver. ponticelli come in Fig. 2, in modo di poter alimen-
Il dispositivo presente nello shop di futura eleth·o- tare Antennino dal cavo dell'adattatore USB.
nica è un buon candidato: In questo modo la scheda viene alimentata tramite
https://wwwjuturashop.it/connettivit%C3%AO- il regolatore lineare MCP1703. Per quanto riguarda
networking/convertitori-usb/UCOOA_CONVERTITO- la piedinatura del connettore per la programmazio-
RE_USB-SERJALE%203,3V-5V. ne fate riferimento alla Fig. 3. La disposizione dei
Terminata l'installazione se tutto è andato a buon pin è pensata in modo che una eventuale inversio-
fine dovreste trovare una nuova porta COM virtua- ne non crei dei danni, ma è sempre buona norma
le pronta per l'uso. prestare la massima attenzione nella fase di colle-
Attenzione: prima di collegare l'adattatore ad An-
tennino, verifichiamo che 1'adattatore sia configu-
rato per lavorare con una tensione di 3,3V e non 5V.

HELLO ANTENNINO
È sempre bene iicevere una piccola gratificazione idefine LED 9
void set up ()
immediata ed allora facciamo una cosa. Essendo pinMode(LED, OUTPUT} ;
Antennino a tutti gli effetti un Arduino, vediamo
void loop() {
se il classico Sketch Blink funziona sulle nostre due digita l Wri te(LED, HIGH) ;
schedine (Listato 1). Unica accortezza è definire il delay(lOOO) ;
digìta l Wr i te (LED, LOW) ;
PIN associato al LED in modo corretto. Ricordiamo delay(l000 );
che su Antennino il LED si trova sul PIN 9.
Per poter iniziare a programmare con Antenni-
no dobbiamo indicare alla IDE di Arduino quale

30 Settembre 2018 - ELETTRONICA IN


Fig. 2 · Configurazione
jumper per alimentare la
scheda da adattatore USB.

te di avere più consapevolezza di dove andranno a


finire le librerie scaricate.
Nel caso abbiate già una o più delle librerie che
Fig. 3 · Connettore Seriale vi indichiamo sotto, provate ad usare quelle già
per caricamento Sketch. presenti e solo in un secondo momento se incon-
traste un problema di compilazione di Antennino
+ CON7 relativo alle librerie "vecchie" andate a sostituirla
lo o o o o ol con quella da noi proposta.
J1 o o :z 1- Scarichiamo quindi dalle seguenti URL le librerie
o z
<!>
>
lO > o:
X X
I-
ti)
o: elencate:

https://github.com/LowPowerLab/SPIFlash
gamento dei connettori. Siete pregati di fare riferi- https://github.com/PaulStoffregen/OneWire
mento a questa configmazione per il caricamento https://github.com/milesburton/Arduino-Temperature-
degli altri Sketch nel corso dell'articolo. Control-Library
Collegniamo infine l'adattatore USB al PC e al https://github.com/GreyGnome/PinChangelnt
connettore di Antennine e clicchiamo sul pulsante https://code.google.com/p/u8glib/
a forma di Play della IDE per compilare e caricare
il nostro primo Sketch sulla nostra Board. Per comodità, a questo link
Se tutto funziona a dovere dovreste vedere lampeg- https://github.com/open-electronics/antennino
giare velocemente il led a bordo dell'adattatore USB sono dispo1ùbili le librerie e i sorgenti.
e al termine se non ci sono stati errori il led a bordo Una nota che potrebbe essere banale per i più
di Antennina dovrebbe iniziare a lampeggiare al esperti ma che molte volte fa perder un sacco di
ritmo di circa un impulso al secondo. Bene, ora che tempo ai neofiti: raggiungendo il link Github della
abbiamo testato le nosh·e schede possiamo dedicar- prima libreria, atterreremo nella pagina simile a
ci a qualcosa di più impegnativo e gratificante. quella riportata in (Fig. 4) .
A questo punto, per scaricare la libreria necessaria
ORA INIZIAMO A FARE SUL SERIO... dovremo cliccare sul pulsante "Clone or download".
Come avrete notato, nello Sketch Blink che abbia- Unzippiamo il file che abbiamo scaricato.
mo appena caricato non sono state definite delle Il file conterrà una cartella con il seguente nome (in
librerie particolari. questo caso): SPIFlash-master.
/1
Gli sketch che impiegheremo ora, utilizzano libre- Rimuoviamo il suffisso -master", lasciando solo la
rie che normalmente non si trovano nelle installa- prima parte del nome della cartella: SPIFlash.
zioni standard, dovremo scaricarle, scompattarle Ripetiamo lo stesso procedimento per le successi-
ed inseribile nella opportuna cartella libraries della ve librerie da scaricare. A questo punto abbiamo
IDE di Arduino. diverse cartelle distinte: RFM69, SPIFlash, ecc.
Ad onore del vero esiste un'altra modalità di scari- Ora dobbiamo individuare dove L'IDE di Ardui-
camento delle librerie, ma per il momento preferia- no conserva le librerie. Normalmente la cartella si
mo usare questa prassi manuale, ma che ci permet- trova nel seguente percorso:

; t a l'1 n: I !f qit.hub.com U3"t • •• C'J (/ ~ ,...,.., lii ID V -

" 1 1.lrontli .U. 5 <011t11bu1or~ oÌ"GPL 3.0

• ,,,dmplt> SPlflash.ReadWnte

1rav1s.ym Cont1~uou< Integrai 0·1 '""'9 @PlatlormlO ,,.,d @iiravis-cl

Fig. 4 · GitHub, come scaricare una libreria dal repository.

ELETTRONICA IN - Settembre 2018 31


1. - i J8
1- = iJ7
Fig. 5
1:...--i J4 Configurazione byte FAMILY Dl ;
.~ jumper per nodo
byte FlRMNl\REVERSION = l;

·-·
1-=::J J3 TPL5110. byte NODEID = l ;
byte NETWORKID = l ;
byte DATll_GllTEWAY_ID D 253 ;
1I J2
byte OTA_GATEWAY_ID = 254 ;
+ ·-
Parte comune a tutti gli Sketch che andremo ad
utilizzare d'ora in poi è la configurazione della se-
C:\Program Fil es (x86) \Arduino \ libraries zione RF che deve essere personalizzata nel valore
del NODEID. Nel nodo sensore che andremo ad
Andremo quindi ad inserire le cartelle delle nuove utilizzare abbiamo settato il valore come ripo1tato
librerie scaricate nella cartella libraries di Ardu- nel listato. Sempre da Listato 2 abbiamo riportato
ino. Riavviamo l'IDE Arduino e saremo pronti a le quattro variabili principali che defu1iscono i
lavorare. settaggi di rete del nodo.
Questi parametri verranno caricati nella EEPROM
PRIMO TEST: del chip ATMEGA328p per evitare che in seguito
NODO MODALITÀ LOWPOWER·TPL5110 all'aggiornamento OTA possano essere sovrascritti.
In questo primo test utilizzeremo una scheda An- Quindi l'aggiornamento modificherà il funzio-
temùno su cui andremo a caricare lo Sketch Node- namento del nodo ma non i parametri di rete del
TPLSl 10.ino. In Fig. 5 vediamo come dovremo nodo ìn modo da preservarne l'identità in rete.
configurare i jumper una volta terminato il carica- Lo sketch del nodo sensore è strutturato nel modo
mento del firmware. classico, con una parte iniziale in cui vengono defi-
Gli sketch corrispondenti sono piuttosto lunghi, niti gli import, le variabili globali e alcune funzioni
per cui non li riporteremo integralmente sulla rivi- usate ripetutamente: ReadLux(), ReadBatteryLe-
sta, ma metteremo in evidenza solo le parti salienti; vel(), ReadTrigger(), sendData() etc .. Naturalmente
chi vorrà potrà scaricarli dal nostro sito www. abbiamo la pa1te comprendente il Setup che ini-
elettronicain.it insieme ai file del progetto. zializza il funzionamento e il ciclo Loop che viene
Dopo la parte iniziale in cui si definiscono le libre- ripetuto finché il dispositivo non viene resettato.
rie da includere, abbiamo inserito la definizione di Particolare attenzione va posta alla funzione Re-
due parameh·i molto importanti per quanto riguar- adTrigger() che riportiamo per esteso nel Listato 3.
da la possibilità di aggiornare il modulo da remoto. Ricord iamo brevemente che nella modalità
Vedere il Listato 2. Lowpower che usa il TPL5110 il microcontrollore
FAMILY specifica la tipologia di nodo. Mentre non è alimentato e quindi i classici interrupt non
FIRMWAREVERSION definisce la versione at- funzionano. lnolh·e non è sufficiente risvegliare il
tuale del firmware caricato stù nodo. Vedremo poi Microcontrollore, ma è necessario informarlo che
come vengono impiegate queste informazioni per il risveglio è stato causato da tm segnale di allarme
l'aggiornamento OTA. che deve essere intercettato dal codice al momento

-.. - ... ... .. ... . . .. .. . . .. . .. . ... .. .. .


i
.....-----~-·-

Listato 3
int ReadTri99er() I
Il Leggo la tensione presente sulla capacità Cl
int v = analogRead(TRIGGER_INPUT) ;
delay(50) ;
Il Scarico i l condensatore portando il PIN in modalità OUTPUT
Il e poi ad un livello Basso
pinMode(TRIGGER_INPUT, OUTPUT);
digitalWrite (TRIGGER_ INPUT, LOW) ;
return v;

32 Settembre 2018 - ELETTRONICA IN


Listato 4 .~~
H (radio . sendWithRet r y(GATEWA'fID , (cons t void*) (&theDa t a) , sizeof(theData) , ACK_TIME ) )
Serial . println (" -> Repl y OK ! ") ;
packet _sent_cor r ectly = true ;
Serial.println (l:( " --STOP TASK--" )) ;
Il Disabilito l ' alimentazione
digitalWrite (DONE_TASK , ìi!GH) ;
lelse {
Serial.println( " - > NO reply ... ");
nurnber_of_atternpts = number_of_atternpts +l ;

del risveglio. È qui che entra in gioco la funzione ·111"1m--·m ®·


1111
· ~®~--~··· ····· ··
ReadTriggerQ. Questa funzione viene invocata
nella fase di setup di Antennina. Normalmente typedef struct {
Antennino si risveglia secondo l'impostazione del unsigned long uptime ;
float ternp;
trimmer collegato al timer TPL5110 ma questo ri- float battery_level ;
sveglio programmato serve a notificare al gateway int l ux ;
che il nodo è ancora in "buona salute" e ad inviare int allarrn;
Payload_t;
alcw1e informazioni come lo stato della batteria, la
luminosità ecc ... Quindi il risveglio programmato
non deve scatenare alcuna allarme sul Gateway. Se
quindi il risveglio è dovuto ad un evento schedula- digitalWrite(DONE_TASK, HIGH); Porta High
to il valore letto dalla fw1zione ReadTrigger() sarà il pin Done del timer TPL5110 il quale in seguito
un valore molto basso se non proprio O. Se invece il a questo determina la rimozione immediata della
risveglio del nodo sensore è stato causato portando tensione al Microconh·ollore ed il ciclo si ripete in
a massa il pin WUP, questo provocherà il risveglio attesa dello scadere del tempo del timer o di un
immediato del TPL5110 anche se non è scaduto il evento di allarme sul pin di risveglio.
tempo programmato e contestualmente il carica- Negli esempi si è fatto uso di w1a struttura dati che
mento del condensatore Cl il qual essendo colle- si chiama "struct" vedi Listato 5 che verrà utiliz-
gato ad un ingresso analogico ad alta impedenza zata per contenere il Payload (carico utile), cioè il
permarrà carico per un certo tempo e sicuramente dato informativo da inviare al gateway.
nel momento in cui la funzione ReadTrigger() Questa struttura dati è definita in un file My-
andrà a leggere il valore lo troverà alto e questo Types.h a parte che deve essere messo nella
permetterà di capire che il risveglio è stato causato cartella dello sketch principale e che deve essere
da una situazione di allarme. poi incluso nello sketch stesso tramite l'istruzione
Appena eseguita la lettura analogica del valore #include "MyTypes.h". Poi vedremo che lo stesso
presente sulla capacità la modalità del PIN viene file contiene in effetti un'altra struttura dati che
modificata per settarlo come PIN di OUTPUT a verrà usata per la programmazione orA.
valore LOW, questo determina la scarica quasi im- Una nota sul chip TPL5110: la modifica del valore
mediata della capacità allo scopo di evitare che al del trimmer affinché si rifletta su una modifica
prossimo risveglio programmato del timer venga
trovata ancora un valore alto in conseguenza della
carica residua della capacità Cl.
!...--i
1 ~ J8
In seguito al rinvenimento di un valore alto della
carica della capacità Cl, nella fase di Loop, il valo-
1 lllJJ1
re della struttura di payload viene caricato con il
valore allarme ;::: l, con gli altri valori acquisiti dai ·-·- o
11 J4
sensori e viene inviato immediatamente un pac-
chetto di dati al Gateway_Dati.
Dall'estratto di codice del Listato 4 vediamo che
,:-·
·-
o J3

viene invocato l'invio tramite la hmzione radio. 1 :- , . , J2


Fig. 6 - Configurazione
sendWithRetry, la quale si attende un ACK
Jumpers per modalità
+ ·-
(segnale di feedback) da parte del nodo Gataway, Lowpower classica.
se il nodo non risponde vengono fatti tentativi J1 o
successivi. Nel momento in cui risponde, il codice o
----------
ELETTRONICA IN - Settembre 2018 33
"'

Listato 6 .:
i f (TriggerDetected) (
batteryReportCycles aQ ;
TriggerStat us = cligitalRead(TRIGGER INPUT) ;
sendData () ; -
Blink(LED, 3);
else if (batteryReportCycles >= BATT CYCLES)
Il invio le notifiche sullo stato della batteria solo se sono in modalità LowPower
i f '( Sleep_Time > O ) (
sendDa ta () ;
Blink (LED, 3) ;

batteryReportCycles=O;

if (Sleep_Time >0) (
for (byte i~O ; i < Sleep_Time; i++) (
LowPowe r.powerDown (SLEEP_Ss, ADC_OFF, BOD_OFF) ;

batteryReportCycles++;

dell'intervallo temporale necessità il riavvio dell'al- quale invia la struttura dati Payload_t valorizzata
imentazione. con i dati ricevuti dai sensori e lo stato dell'allar-
me. Se durante il funzionamento normale non si
SECONDO TEST: verifica alcun allarme, allora l'invio di dati avviene
NODO MODALITÀ LOWPOWER·ATMEGA328P quando batteryReportCycles >= BATT_CYCLES
In questo secondo esercizio utilizzeremo una in pratica ogni risveglio viene incrementata la
scheda Antennino in modalità Lowpower. In Fig. variabile batteryReportCycles e quando viene
6 vediamo come dovremo configurare i jumper raggiunta la soglia BATT_CYCLES viene inviato
una volta terminato il caricamento del firmware. In un pacchetto di dati al Gateway_Dati. Il cuore della
questo caso caricheremo lo Sketch Node-LowPo- temporizzazione è la funzione LowPower.power-
wer.ino. Down che permette di portare a basso consumo il
Anche per questo Sketch andremo ad analizzare microconh·ollore, in questo caso per un tempo di
solo le parti più interessanti. Nel Listato 6 vediamo 8 Secondi. Si può ovviare al limite degli 8 secondi
una parte del loop ed in particolare la gestione del inserendo come nel blocco di codice di fig. 7 la
passaggio in modalità LowPower, l'intercettazio- funzione all'interno di un loop. In questo caso se
ne di un allarme tramite interrupt e l'invio di un Sleep_Time =1 il periodo di temporizzazione sarà
pacchetto informativo periodico di dati al Gate- di 8 secondi altrimenti sarà pari a 8S * Sleep_Time.
way_Dati. Se portassimo il valore di Sleep_Time=O come
Notiamo che se viene intercettato un interrupt la risultato avremmo un nodo sensore che non andrà
variabile TriggerD etected viene posta a true nel mai in modalità basso consumo.
loop e questo determina l'invio di informazioni al Per triggerare un allarme è necessario portare bas-
Gateway_Dati tramite la funzione sendData(), la so il PIN 07. Questo evento farà risvegliare il nodo,
determinerà l' invio di una struttura dati contenen-
te il valore di allarme=l e poi il nodo tornerà in
1-@J JB
11
modalità LowPower.

.--
1-
1-UQjJ J7
11
GATEWAY_DATI
Possedere w1a rete di sensori senza poter elaborare
·-
11 J4 le informazioni che gli stessi raccolgono è di scarsa

·-o
.--
utilità e quindi si rende necessario avere un nodo
·-
11 J3 Gateway_Dati che funga da concentratore per tutti
1- i nodi sensori. Allo scopo dobbiamo caricare su un
11 J2 modulo Antennino lo Sketch Gateway_Dati.ino
Fig. 7 · Configurazione
·- per alimentazione continua
Anche in questo caso non riporteremo il listato com-
pleto1ma solo le ftmzionalità più importanti.
usando batterie AA a bordo.
Il Gateway_Dati deve poter ricevere le informazioni
provenienti dai nodi sensori, quindi deve fare riferì-

34 Settembre 2018 - ELETTRONICA IN


1I·- o
,_ JB
mento alla struttura dati trasmessa dai nodi, dovre-
Fig. 8 - Configurazione
per utilizzare una
·-o
1 ,_
I J7
mo quindi includere MyTypes.h (vedi Listato 5).
Il gateway avrà come NODEID =253 e quindi
alimentazione esterna.
·-o
11,_ J4
questo id non potrà essere usato da altri nodi della
rete, mentre dovrà essere configurato in tutti i nodi
·-m
1 1,_ J3

·mo
sensori nella variabile DATA_GATEWAY_ID.
Sul modulo abbiamo previsto la possibilità di vi- 11,_ J2
sualizzare i dati ricevuti in tempo reale tranùte w1 +
piccolo display Oled.
Se ritenessimo di non volerlo utilizzare potremmo
rimuovere tutti i riferimenti nel codice compresa
l'importazione della libreria ed utilizzare solo la
porta seriale per visualizzare i dati ricevuti sul
monitor seriale collegato al PC. Il funzionamento dello Sketch è veramente molto
Se invece intendiamo avvalerci del display Oled, semplice, come di consueto è presente una sezione
dovremo sincerarci per prima cosa che il pinout di definizione variabili, e delle funzioni comuni,
dello stesso sia compatibile con quello di default una funzione di setup ed una di loop che è quella
del modulo Antennina, altrimenti si renderà in cui vengono intercettati i dati ricevuti dai nodi
necessario invertire le h·acce sotto il connettore del sensori. Il seguente spezzone di codice propone il
display Oled. Non inserite un display con una pie- Loop del Gateway_Dati.
dinatura invertita perché rischiate di compromet-
tere il funzionamento del display o del regolatori a if (radio.receiveDone()) I
bordo di Antennino. if (radio . DATALEN •• s~zeof(Payload_t))

Inoltre dovremo verificare il chip utilizzato sul


display. byte myOwnBuffer(radio . ~ATALEN] ;

Nel codice sono previste già due opzioni: memcpy(myOwnBuffer, (const void • )radio . DATA, radio . DATALEN);
una configurazione relativa al chip SH1106 ed una Cast_To_Struct(curData , myOwnBuffer) ;
relativa al chip SSD1306. In mancanza di infor-
mazioni pW1tuali sul modulo è necessario andare Qui gestiamo la visualizzazione dei dati sul di-
a tentativi, ma non succederà nulla di grave: al splay; in alternativa possiamo gestire la ricezione
massimo il display rimarrà nero. di una ·Condizione di allarme da un nodo, utilizzan-
Il Gateway_Dati non permette la memorizzare le do allo scopo curData.allarm:
informazioni pervenute dai sensori e quindi l'idea-
le sarebbe collegare tramite porta seriale il Gateway )else!
ad un Raspberry Pi dotato di un software specifico Serial . print(F( " Invalid payload : " )) ;
che permetta di storicizzare i dati ricevuti su un dB Serial . print( ' ( ' ) ; Serial . print(radio . SEN-
MySql ed eventualmente visualizzarli tramite una DERID, OECl ; Serial . print(" ] " ) ;
interfaccia Web. for (byte i • O; i< radio . DATALEN; i++) {
Questa opzione è già in cantiere e vedremo di Serial . print((char)radio . DATA [i}) ;
spiegarla eventualmente in un altro articolo. Per
il momento potremmo intercettare l'arrivo di un Serial. print (f' (" (RX_RSSI : " )) ;Seria l.
allarme da W1 nodo ed attivare un pin di uscita dal print(radio.RSSI);Serial.print(")•) ;
Gateway collegato ad un allarme. Serial . println( "" ) ;
Dobbiamo decidere come alimentare il Gateway_
Dati. Consideriamo due Opzioni.
Usiamo le batterie a bordo del modulo impiegando Analizzando il codice è evidente che il dato ricevu-
il regolatore Step-Up Max856. Questa naturalmen- to dal sensore viene preso in considerazione sola-
te è una opzione di test ma che non ha senso usare mente se ha una dimensione consona a quella della
in un ambito reale (Fig. 7). sh·uttura dati che ci si attende Payload_t altrimenti
L'altra opzione è quella che utilizza un'alimenta- viene emesso un messaggio con il testo: "lnvalid
zione esterna da applicare ai pin Yin del modulo payload".
antennina e che verrà portata a 3.3 V dal regolatore Se la dimensione del messaggio soddisfa questo
lineare MCP1703 a bordo del Modulo Fig. 8 primo filtro, il messaggio stesso viene "converti-

ELETTRONICA IN - Settembre 2018 35


to" tramite la funzione Cast_To_Stmct(curData, leggere un file binario .hex originato dalla compi-
myOwnBuffer) nella struttura dati che ci si attende, lazione eseguita con l'IDE Arduino e consente di
per poterne estrarre le informazioni necessarie per caricarlo sulla FLASH memory a bordo del modulo
poi visualizzarle sul display, attivare dei pin oppu- Gateway_OTA.
re inviarle ad un eventuale Raspberry pi tramite Fatto questo il modulo viene posto in modalità
seriale. Programmazione remota e sarà in grado di ricevere
richieste di aggiornamento dai nodi Sensori che si
AGGIORNAMENTO FIRMWARE OTA trovano in modalità Lowpower.
Durante il funzionamento normale i nostri nodi Oppure se abbiamo dei nodi che sono sempre
sensori, sia che utilizzino la modalità LowPower accesi potremmo uplodare direttamente l'aggior-
nativa oppure quella associata aJ chip TPLSllO namento definendo il node_id target sulla inter-
si troveranno per la maggior parte del tempo in faccia della applicazione Windows ed inviare il
modalità basso consumo e quindi non saranno nuovo firmware al nodo. In questo caso spetta a
raggiungibili dal Gateway. noi assicurarci che il nodo che abbiamo individua-
Dovrà quindi essere il nodo sensore a richiedere to come target sia adatto a ricevere la versione del
l'aggiornamento del Firmware nel momento in cui Firmware che abbiamo pronta sulla Flash del nodo
si risveglia dalla modalità LowPower. Gateway_OTA.
Per implementare questa funzionalità abbiamo Se sbagliassimo non succederebbe nulla di grave, a
modificato il comportamento della libreria RFM69_ patto che il nuovo firmware rispetti lo standard dei
OTA.cpp di programmazione wireless aggiungen- Nodi Antennino. Se per errore caricassimo sulla
do delle funzioni specifiche ed abbiamo realizzato Flash del modulo Gateway_OTA uno sketch come
una applicazione Windows AntenninoFlashPro- il Blink.ino l'aggiornamento avverrebbe ma poi
grammer.exe sarebbe impossibile effettuare un ulteriore ag-
A tal fine è necessario caricare lo sketch Gate- giornamento OTA del nodo e saremmo costretti a
way_OTA.ino su un modulo Antennina che dovrà smontare il nodo dalla sua sede e riprogrammarlo
essere dedicato a svolgere la funzione di Gate- tramite seriale.·
way_OTA. Nel caso della programmazione di nodi Lowpo-
L'applicazione Windows in concerto con lo sketch wer, per assicurarsi che l'aggiornamento avvenga
caricato sul modulo Gateway_OTA permette di in modo corretto per ogni nodo viene indicata la

Nodo 2

Fig. 9 · Schema della topologia


di una rete Antennino.

36 Settembre 2018 - ELETTRONICA IN


Dreferences X
Settlngs tletwork

Sketchbook locatìon:
C:\Users\mlrko\Documents\Ardulno Browse

Editor language: System Default v (requires restart of Arduino)

Editor font size: 12

Interface scale: 0 Automatìc -~~ ~ % (requires restart of Arduino)

~how verbose output during: 0 compilation I0 upload


Compiler warnings: None v

0 Display llne numbers


O Enable Code Foldlng
0 Verify code after upload
O Use external editor
O Check for updates on startup
0 Update sketch fìles to new extension on save (.pde ·> .ino)
0 Save when verifying or uploading
Addltlonal Boards Manager URLs: irlab_lndex.json,http:/;ardulno.esp8266.com/ stable/ package_esp8266com_index. json L:J
r lor·· , efe1e ces 1..0 be d•L• ,i Jtr ti,. ir th>! file
C: \Users\mirko ,AppDatalLocal\ArduinolS' preferences.txt
ed Jt

OK Cancel

Fig. 1 O · Settaggio modalità Verbosa del fog.

famiglia di appartenenza e la versione del firmware tra la famiglia del richiedente e quella assegnata
corrente. al firmare sul gateway e verifica se la versione del
Al momento del risveglio il nodo sensore invia firmware del nodo richiedente è inferiore a quella
una richiesta di aggiornamento verso il Gateway_ presente sul Gateway.
OTA, fornendo la versione attuale del firmware Se queste due condizioni sono soddisfatte viene
(FIRMW AREVERSION) e la famiglia di apparte- iniziata la procedura di aggiornamento e al termine
nenza del nodo (F AMIL Y) in modo che il firmwa- il nodo Sensore viene riavviato e fatto ripartire con
re venga caricato sulla tipologia corretta di nodi la nuova versione del firmware. Al nuovo risveglio
remoti. dallo stato Lowpower, se la versione sul gateway
Le variabili relative all'ID del nodo remoto (NO- non viene aggiornata e di conseguenza incremen-
DEID), ID della rete (NETWORKID), ID del Gate- tato in numero di versione, non si verificherà alcun
way dati (DATA_GATEWAY_ID) e Gateway OTA successivo processo di aggiornamento. Per capire
(OTA_GATEWAY_ID) sono salvati in EEPROM, in dove Arduino salvi i file binari .hex delle compila-
modo che non vengano sovrascritte dall'aggiorna- zioni che esegue, dobbiamo abilitare una opzione
mento del FiJmware. nella IDE.
n gateway riceve la richiesta di aggiornamento Andiamo quindi sotto File/preferenze e spuntiamo
remoto, verifica se il firmware a disposizione è "Show Verbose Output"(Fig. 10).
adatto al nodo richiedente. Esegue un confronto Mandiamo quindi in compilazione uno sketch e

ELETTRONICA IN - Settembre 2018 37


O Node-TPL5110 I Arduino1.8.1 o X
ffle .Edìt S.ketch Iools J:ielp

1 l "
:? linelude <llO!f!o.h>
J tinclud~ ~ Rl"H69_ATC .h>
4 finclude <RFM69_0'l'A .h>
S tinclude <SP IFlash.h>
~ Jinelude <SPI .h>
; tinelud~ <O'lleWire . h>
8 hnclude <Dal a~TeT!lp"'ra1;1 r . h >
5 f~nelude <EEr.ROH .h>
10 tinclude "My'l'ypes.h"
11
1:?
13
14

H Il
17 Il
II l!'AMJJ.Y: definisce la famiglia del dispositivo

Fig. f f · Percorso di salvataggio dei binari degli sketch nell'IDE Arduino.

.... Settings o X

Defd BaudRate Q15200

PfdullO EUdPath lc:\UsersVnirko~Data\~l\Temp\ Browse

Fig. f 2 - Settings
Save
dell'applicazione.

38 Settembre 2018 - ELETTRONICA IN


andiamo a leggere (Fig. 11) il percorso nella parte lungo e verboso log di compilazione della IDE alla
di log della IDE di Arduino. ricerca del file binario compilato.
Nello specifico abbiamo ottenuto il seguente percorso: Ora vediamo come caricare il file .HEX binario
C:\Users\AppData \Locai\ Temp \arduino_bu- nella memoria Flash del Gateway_OTA. Dovremo
ild_113078/Node-TPL5110.ino.hex preventivamente aver caricato lo sketch Gate-
Purtroppo ogni volta che chiudiamo l'IDE e la way_ OTA.ino sul modulo Antennine deputato a
riapriamo per compilare, la parte arduino_bu- tale scopo. Colleglùamo l'adattatore USB RS232 al
ild_XXXXX cambia in modo random. A noi però modulo, selezioniamo la porta corretta, lasciando
interessa la parte iniziale del percorso. Lanciamo gli altri parametri invariati.
l'applicazione Windows Antennino Flash Pro- Clicchiamo sul pulsante "Load to Locai Flash"
grammer.exe ed apriamo File/Settings (Fig. 12) (Fig. 14). Dopo qualche secondo verrà mostrata una
ed inseriamo il BaudRate predefinito (115.200) e finestra di dialogo (Fig. 15) che ridùede il consenso
il percorso di ricerca dei file binari compilati dalla al caricamento. Selezionando Yes si inizia la pro-
IDE di Arduino. ced ma di caricamento del file binario nella Flash
Per testare il funzionato di questa funzionalità, Memory del Gateway_OTA.
apriamo l'IDE di Arduino, mandiamo in compila- Completata la procedura (Fig. 16), per poter invia-
zione uno sketch. Al termine della compilazione, re altri comandi dobbiamo attendere che si verifichi
lasciando aperta l'IDE Arduino, lanciamo l'applica- il Timeout (30 secondi).
zione Antennino Flash Programmer e clicchiamo A questo punto possiamo verificare il contenuto
sulla Combo Box "File to Upload" (Fig. 13) questo della memoria Flash (Fig. 17) al termine ripuliamo
richiamerà una funzione che ci fornirà come primo la finestra di Log della Applicazione cliccando sul
elemento il percorso dell'ultimo file binario com- pulsante "Clear".
pilato dalla IDE di Arduino. Comodo, no?! Questo Ora testiamo l'aggiornamento OTA di un nodo. Per
ci eviterà di dover ogni volta andare a leggere il farlo ci servirà oltre al nodo Gateway_OTA anche

® AnteMino Flash Programmer • Futura Elettronica o X


Fil• Crcdits
SMal Loo Option•
Port
ICOM3 vi
Baud Rate
1115200 V l
P.ty
1~ ,,,,
90!) Bu

lt«
D.itallb "'
la "I

FlcTo~ ~I~~~~~~~~~~·~·~~~~c=======..,~l &1>"~


Fllrif D Venion D
TaivetlD D Ratn to remoleT~

Fig. 13 - Selezione de/l'ultimo file binario compilato dalla /DE.

ELETTRONICA IN - Settembre 2018 39


I An:fMlno ~sh "rogra'Mler - Mur• Sew0<1<a o X
Fil• Crt<flls
SMal loQ ~
Po<t ope....t • t l6/ 06/ lOl 8 ll1$S1I) "Cli
EKTElltSETUP
Fl.ASH INITOKl COf.'3
EXlT SETUP
ENTERlOOP Baud FW
WAIT FOR COHHAHO 11520C
lteady PM:t
/....e vJ

_ _ _ _ _v I~ I 1.oac1ro1ou1 BMh

T~ IO ....-
..___ fldl to -T~

Fig. 14 - Fase preparatoria per caricamento binario su Flash Locale.

un nodo Antennino con a bordo lo sketch di un già visto nella Fig. 5. Per comodità (ma non è essen-
nodo, per esempio TPL5110.ino. Se usiamo il nodo ziale) potremmo collegare anche il nodo sensore
TPLSl 10 dobbiamo settare i jumpers come abbiamo tramite seriale al PC (ci servirebbero però due adat-

Filt Crt<fiu
s-11..oo
o.:-is
Port opened •t 16/06/ 2018 1 11$?100 i'Cll
W AIT P\EASE !!
e.......9 Flu h eh.., ••• OOHE [001.13
S(T lOAO lOCAl Fl.ASH
Wa.t ffH r.a. . HEX to lo•d .. FLASH Htm0ry a.ud A«~
ITimeout lst 30 S«on<IJ 1t2);
Pttr
·.cne
I
~Sù
Or>e v)
O.Ca Bb

~ ~
X
Mode
0 Hox
O St1 S-•<uro di wolt r uuur~ la f l .:..SH.. @T~

-
Tu Ilo Conttl
.

Fig. 15 · Finestra di conferma per caricamento Flash in locale.

40 Settembre 2018 - ELETTRONICA IN


1j, Antenn1no flash Pro9rammer • Futura Elettronica o X
File Crtdlts
S..al Log
Opbot'ls
EHTI:R SE'l\IP Pat
Fl.ASll IHIT OK!
EX1T Sfl\IP lco"°
"'
EHTI:lllOOP
WAIT FOll COHHAHO Ba.dRau

Rudy
:n5200 vi
[T_OO NlOAD hiiy

OOWNlOAO HOOE
U11Jt!U01l
:ra.e vi
9cpllts
PAYlOA01 [ REHOT'E_ FAHllY:l LOCAl.....FAHILY:l REHOT'E_FnlHWAREVERSlON=l lOCAL_FlRHWAREVERSIOH: 3J

UPOAT'E IH PROCA.(55••••• • PLEASE WAm


:ane vi
FUC?HOK Oàallb
ta111eU01l
PAYlOA01 [ RE140T'E_FAHILY:1 LOCAL_ FAIC1LY:1 R.EHOTE_FIRMWAREVERSIOH:1 LOCAl._FI RHWAREVERSIOH:l)
18
3
UPOATE IN PROCRESS ...... PLEASE WAm
Mode
Q Hex
@T=

load to loca Rnh

Fig. 16 - Caricamento file binario in Flash completato.

tatori USB). Una volta collegato il nodo alla seriale simile a quello riportato in Fig.18. Notiamo che il
apriamo il Monitor Seriale relativo alla porta a cui nodo, circa ogni 8 secondi cerca prima di contattare
è collegato il modulo e dovremmo vedere un Log il Gateway_OTA inviandoli la famiglia del nodo

® Antenn1no Flash Programmer - Futura Elettronica o X


Fil< Crtdots
Sei.i Log
N(870) 58 41> 48 5154 H 52 48 48 5S 50 54 70 55 50 50 87 50 48 54 53 55 50 54 40 55 51545754695455 50 48 5S 55 55 50 54 57 48 67 13
N(877J 58 41> 48 51 54 67 !12 48 48 !15 52 55 52 !14 !13 54 61> 50 48 54 52 54 40 :S!I !12 54 40 50 48 50 00 :IO 00 50 69 :IO 48 41 48 !15 51 52 :n 13
°"""'"
Poi!
N[l78J 58 41148 51 54 lii 52 48 48 54 40 54 08 !15 48 54 67 54 53 52 53 54 60 54 :Il !5' 50 5S 57 55 48 !15 52 52 66 54 !13 55 !17 48 48 87 !17 13
N(870J !18 40 48 !1154 89 !t2 48 48 !13 '155 52 54 40 55 50 55 52 50 48 54 60 54 70 54 52 54 S3 50 69 :IO 60 50 00 48 48 52 00 54 70 H 66 13
'. CON3
"I
Ba.d Raie
~-)'8411485154~524848545254»504852!1752525048'10850484848»:11»48525750485254548754411665213
N[Nl) 5140 48 51SS48 52 48 48 55 5154 58 50 48 52 !17 54 69 54 57 55 52 :IO 48 52 70 52 68 50 40 48 48 53 515348 52 57 :IO 48 517013
N[Nl) 58 40 48 51S:S40 52 48 48 '2 54 54 117 54 40 55 5154 58 5048 52 57 54 69 54 57 55 52 50 48 51 54 !Il 40 52 57 !Il 87 50 40 85 54 13
!11s200 "I
~~J'841>48'15S505248484848:U54514114848»5154»5469545254575469545S50485S5155525S505S:U:U5813 p~
N[N4J !J8 40 48 !11 !1!1 !115148 48 54 51 55 52 50 48 50 :Sii 48 48 5048 53 48 52 40 53 57 52 li7 !12 70 5140 52 52 51 65 :SO 48 :13 68 56 55 13
N(N:SJ '8 40 48 5155 52 !12 48 48 48 48 50 48 54 54 .54 40 54 68 .54 57 54 87 !15 57 !U 68 48 48 :SO 4154 54 55 55 S'.J 70 55 54 54 53 53 70 13 !None vj
~-~58411485155:U524848'55055'1:145754~:1469'1084848:U68484850485048:SO:S04848504854:IO!l557'168U 9cp 8ts
N[887) 584048!11 !1554 !12 4848 55 52 54 53 55 5150'7 50 484848 50 48 5008 5169 :SO 48 53 :SO 54 » 55 48 54 67 55 57 50 48 f f 57 13
N(8NJ 58 41> 48 5155 55 52 48 48 52 70 52 86 :SO 4048485048:SO1115169 50 48 52 69 S2 70 :SO 48 5S :IO 54 53 55 48 :14 67 55 57 70 54 U
N[NOJ 58 40 48 515556 52 48 48 50 69 :SO 69 !IO 69 48 48 48 48 48 48 48 48 48 48 70 48 48 86 48 86 48 55 58 65 4154 517048 87 87 5113
'ane ~
..____
H[l90J 58 40 48 515557 52 48 48 6S 40 48 li7 65 53 41156 5169 48 86 55 56 48 54 66 70 48 56 52 52 48 57 516748 58 67 4t 48 67 68 70 13 Ollla 9b
rg-
N[ffl) !J8 40 48 51U65 52 4148 CIO 70 48 54 65 07 48 54 48 48 48 48 48 48 48 48 70 48 48 86 68 86 4187 !16 65 48 54 40 JO 48 69 70 70 13
N(892J 58 40 48 !1155H!1248 48 65 49 48 87 6!I » 48 !lii !5169 48 66 !1152 48 68 !l«I 67 48 69 e7 48 48 H 65 48 48 f f 87 49 48 87 5l 69 U ~
N(803J 5840 41!11556752 48 48 86 70 48 54 65 67 48 :14 48 48 48 4848 48 48 48 :SO 58 49 5167 5149 !1248 !1749 5l :IO 514051CIO15 13
N[894J 58 49 48 515588 52 48 48 49 53 49 515454 40 51411811486!148 48 54 f f 54 49 54 69 48 48 54 57 54 69 54 54 48 48 54 70 52 52 13
N[lt!IJ 58 4115151556t !12 48 48 !1!154 54 54 48 48 48 48 48 53 13 Mode
N(lteJ !J8 4148 48 48 48 48 48 49 70 70 13 o He>.
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Nu......, R>ghei 896
® Teit

............................................................ ..........
NUmt<O 8yle140285

femJot L 1 Vfll'lion Ll

Fig. 17 - Verifica del caricamento del binario sulla Flash Memory del Gateway_OTA.

ELETTRONICA IN - Settembre 2018 41


$ COMS o X
Stnd

,Ji:T PARAME:Tt ilS FROM Et?ROM:


ròOOt IO : 1
S!:TlfOPJ";I O: l
DATA_ GATt llAY_ ID : 2 53
O'l'A_GATEllAY_ IO: 25'1
·············•••!•••···············
•END SE:Ttfi'••

rRI GG!:R: O

3endi nq $truc e PAi"LOAO: fainil y=l f~_ v o$r .si on = l) ( ~ b yte~ ) -> ~O rop l y . •.
· STAR'!' TASK· ·
Scnding ~true t PAYLO~D: up~imeQ.•UlO ~ oempai-J0 . 25 Sa t.t.ery;0 . 25 Lux c 4t l) (1.6 byte.5 ) - > NO repl y • • .
3end ing et r uct. PA'iLO:.D: f a.mily=l fw_~er.s io n= l ) (~ b yte• ) - > NO rep ly ••.
-.START T ;>..SF. - -
.S~ ndi ng 3 t ruc t PA'tL:OAD: ...,p d .m't'a 8'4 78 t.em.p.;;30 . 00 &at.tery-;;i0 , 2.S Luxc4 05) (16 byt c s } • > NO .rc pl ;· • • ,
So&nding a~ruce PA'tl.tOAD: f a.m.ily=l fw_~er .s io n = l] (4 b yte.s ) - > t-iO re?l y • ••
-START T;>..51'••
Se ndi ng oe:uc e PA'tLOAD: ui>• i ,..e=l2S l S • • ,.!'= 30 . 00 5U<e:y=0 .2 3 Lux= U O) (16 b y; u) · > SO repl y • . •
Se nding ' t ruc-; ~A\"lrOAO: f a m.i ly=t f-11( ?~r.sion=l] (4 by,_•_
u_)______ - - - - - - - - - - - - - - - : = = = = - - = = = - - -vi
G2]Autosaoll NevA!ne V 115200 beud V

Fig. 18 · Log del modulo TPL511 O.

e la versione del Firmware. E poi cerca anche di adattatore USB anche il mod ulo Anteimino che
inviare dati al Gateway_Dati per aggiornalo sullo svolge il compito di Gateway_OTA. Mandiamo in
stato dei sensori. Ora colleghiamo al PC tramite esecuzione l'applicazione Antennino Programmer.

@Antennino Flash Programmer • Futura Elettronìca o X


Fdt Crtdits
Serial Log Opbons
ENTERSETUP Port
F1.ASH INIT OKI
EXlT SETUP
ENTER lOOP
ICOM3 vi
WAIT FOR COHHANO Baud Rate

Rudy
1115200 vi
SET_ OOWNLOAO Pùy

SET DOWNLOAD HOOE INMe vi


tarveuo11 SIOPBh
PAYlOAO: ( REHOTE.FAIUl.Y =l l.OCAl..FAHll.Y: l REHOTE. nRHWAREVERSION=1 l.OCAl.. FIRKWAREVERS!QN:3)

UPDATE IN PROCRESS...... PLEASE WAtTI


lene
FUC7NOK
t•rveUD:l
PAYLOAD• ( REHOTE_FAHll.Y:1 LOCAl._FAIULY:l REHOTE_FI RHWAREVERSION : 1 lOCAL_nRHWAREVERSION:3)
Del4Bb
le "'
"I
UPOATE I N PROCRESS...... Pl.EASE WAIT!
Mode
0 Hex
@ Teid

Citar Oose Port

Fig . 19 · Modalità di Aggiornamento ,d ; nodi Remoti LowPower.

42 Settembre 2018 - ELETTRONICA IN


(l) Antemino Flash Programmer • Futura Eletuomca O X
File Cre<f<ts
Selial I.Dg
Ta09et_IO ilr 1
SET UPlOAD HODE
FlX:INV: ltoMl vi
Bul Raie
§3
Paty
!None vi
Slll!' Bù
@ne 3
Data Bb
la "I
Mode
o~
@ T...i

I I

l.oad to loca Ra!h

Tatgtt ID 1 I Rath to IMIClle T119« I

Fig. 20 · Update firmware di un nodo remoto in modalità Lowpower.

exe e dalla scheda dello stesso settiamo il Gate- CONCLUSIONI


way_OTA in modalità download (Fig. 19). Apria- In questo articolo abbiamo inizialmente caricato
mo quindi la connessione seriale con il modulo uno sketch di test e poi siamo passati a testare le
Gateway, inseriamo la famiglia del Firmware e la funzionalità di comunicazione h·a un nodo sensore
versione relativa al binario caricato nella Flash del ed un nodo Gateway. Abbiamo poi visto come
Gateway e clicchiamo sul pulsante "Set Download utilizzare l'aggiornamento remoto OTA utiliz-
Mode". Appena fatto vedremo arrivare le richie- zando un gateway specifico ed una Applicazione
ste di aggiornamento del nodo e se le condizioni Windows che ci permette di caricare il binario nella
sono corrette il nuovo firmware verrà scaricato e Flash del nodo Gateway e di settare la modalità di
al termine il nodo remoto si riavvierà con la nuova aggiornamento dei nodi. Nel prossimo Numero
versione. vedremo come realizzare un Gateway Raspberry Pi
A questo punto se abbiamo mantenuto invariate le per storicizzare le informazioni sui sensori e visual-
condizioni del Gateway vedremo che alle nuove ri- izzare i dati su una interfaccia web.
chieste di aggiornamento il Gateway_OTA rispon-
derà che non è necessario alcun aggiornamento per
il nodo perché la versione attualmente presente per il MATERIALE '
sul nodo remoto è uguale a quella presente sul
Gateway.
È possibile aggiornare anche un nodo di tipo attua- La scheda Antennina (cod. ANTENNINO) è in vendita
tore. Quindi un nodo che non si trovi a lavorare in montata e collaudata presso Futura Elettronica al prezzo
modalità LowPower. In questo caso è sufficiente, di Euro 39,00. È disponibile, separatamente, anche il di-
una volta caricato il File binario del nuovo firmwa- splay OLEO 12C da 0,96" (cod. OLED096C) al prezzo di
re sul Gateway_OTA, inserire il target ID del Euro 11,00. I prezzi si intendono IVA compresa.
nodo da aggiornare e cliccare su "Flash to Remote ';;""'\~ .......... - ...,,...- ,-- ..--:-·. - ...., -., ~·- - -_:y--- .-~-..-y - --:-.·:.--- •....-:1
--.,.;-~-t

Target''. ~~~!,'.
'"'}~J:JJf~!.Yr.~J!et.t!:oniç~. Via'Adige 11, 210.U ~~ll!}ra(e
· ·
'·· . . .
H materiale
.: .
va richiesto
•.·· ..........
. ..·
a: ..
Il file binario verrà inviato al nodo remoto che, . '"" '. ..

·'-, :. (VA)
completata la procedura si riavvierà con la nuova
~lJ:-:l~?]?~r~x:.on.l-792287 - www,futura~.h .~~·!,V
versione del Firmware (Fig. 20).

ELETTRONICA IN - Settembre 2018 43

.
è lo strumento più importante
ratorio elettronico da · • estga
1JI' ali tutto la possibilità di ti
buona risoluzione la tensione e la corrente ---
---
di uscita, requisiti soddisfatti da questi nuovi
alimentatori. Mantengono i valori impostati ---
---
- - -r
---
in modo affidabile e indipendentemente dalle
fluttuazioni della tensione di alimentazione o
del carico collegato. ---
-----
---
ALIMENTATORE LINEARE CON DOPPIA
---
-- -
---
_. ....
USCITA REGOLABILE
0-30 VDC I 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 I 3 A
Tensione di ripple: < 1 mv
C54,DO ALIMENTATORE SWITCHING
A SINGOLA USCITA
Dimensioni: 360x265x165 mm Cod. AL1502
Peso: 10 kg
REGOLABILE
0-15 VDC I 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

DISPONIBILE ANCHE NELLA


VERSIONE DA 0-30 VDC I 0-3 A
COD. AL2X3003 € 189,00 -·~-

e22B, 00
Cod. AL2X3005 Prezzi IVA inclusa.

FUTURA Futura Group srl . . . . .


• WW W. f U t Ur 3 S h 0 p j t Via Adì e 11 • 21013 Gallarate (VA) Caratten~t1che tecniche d1 questi pro~oth
Tel. ~ 7
ELETTRONICA re) '
03 1 99775 e acquisti on·hne su www.futurashop.1t
Generazione per
sintesi digitale diretta

considerati storici, composti da banchi di quarzi e


mixer in grado di soth·arre o addizionare una o più
frequenze generate dai quarzi: si tratta di circuiti
I molto complessi, dal costo molto elevato e in grado
:r I di generare solo poche frequenze.
Alla seconda categoria appartengono tutti i sintetiz-
zatori a PLL nei quali un oscillatore conh·ollato in
tensione viene agganciato in fase ad un oscillatore
(quarzato) fisso e di grande stabilità; così si
La generazione di un segnale per sintesi diretta avviene secon-
do lo schema a blocchi qui sopra e con gli integrati di ultima possono generare, indirettamente appunto, un nu-
generazione è concettualmente semplice: la parola di sintonia mero elevato di frequenze con uno schema relativa-
(Tuning Word) è fornita, tramite un'interfaccia (SPI, nel nostro mente semplice.
caso), a un latch Interno all'integrato che realizza il DDS. Il va- Da pochi decenni sono disponibili in forma inte-
lore a N bit di questa parola viene sommato al contenuto di un
grata dei sintetizzatori detti digitali diretti o Di.rect
accumulatore interno al DDS; il risultato di tale addizione viene
nuovamente immagazzinato nello stesso accumulatore. Questa Digitai Syntesizer (ossia i DDS); tali circuiti permet-
operazione conduce a una crescita continua del valore nell'ac- tono la generazione di una sinusoide, ma in qualche
cumulatore, il quale però, avendo un'ampiezza limitata (sarà caso anche alh·e forme d'onda, con un approccio
anch'esso realizzato come un latch di M bit) quando il risultato tutto digitale. Non sono alternativi in tutto ai sinte-
dell'addizione oltrepasserà il valore massimo rappresentabile
il riporto (carry) verrà ignorato e il conteggio ripartirà da un nu- tizzatori a PLL ma riescono ad essere complementa-
mero più piccolo. In pratica all"uscita dell'accumulatore si pre- ri e come tutte le soluzioni, il loro utilizzo presenta
senteranno una serie di valori rappresentabili come una rampa vantaggi e svantaggi.
nel dominio del tempo; infatti l'accumulatore non si comporta La teoria del funzionamento del DDS è spiegata
solamente come un registro ma è implementato come un latch
nell'apposito riquadro qui accanto, cui rimandiamo
di tipo Da doppio stadio che viene fatto avanzare dal clock che
viene fornito dall'esterno al DDS. per l'approfondimento del caso.
L'uscita dell'accumulatore viene sfruttata per indirizzare una
ROM che contiene la rappresentazione di un periodo di un'on- Esistono generatori a DDS molto complessi e
da sinusoidale (in effettì per economizzare si riesce ad ottenere capaci di generare frequenze di molte centinaia di
lo stesso risultato memorizzando solo un quarto di una forma
d'onda simmetrica come una sinusoide). MHz. Qui verrà, invece, proposto un progetto che
In questo modo, con un po· di matematica, si può dimostrare sfrutta tm integrato dell' Analog Devices, I' AD9833
come sia possibile generare frequenze che vanno da O Hz fino (punto [1] della bibliografia), che viene pilotato da
a metà della frequenza di clock con un passo di risoluzione pari una frequenza di dock fino a 25MHz, capace di
a 1/2"N. Ad esempio se N=28 e Fclock=25MHz sarà possibile generare frequenze con risoluzione di 28bit, il che
generare frequenze a passi di 0,09313 Hz. La relazione per tro-
vare il valore della parola da fornire al DDS è, data la frequenza significa avere una risoluzione, ovvero un passo
f che si vuole generare e la fclock disponibile: fra le frequenze generate, di circa 0,1 Hz; inoltre le
forme d'onda all'uscita possono essere sinusoidale,
N=f/fc/ock*(2"N)
hiangolare e quadra.
Sempre con un DDS a 28 bit come l'AD9833 se si vuole genera- Chiaro che un dispositivo di questa complessità ri-
re una frequenza f=1.200Hz con una fclock=25MHz si ottiene: chiede un controllo da parte di un microcontrollore;
perciò abbiamo scelto un ARM-Cortex-MO+ della
N=12884,9 NXP, molto piccolo, essenziale e a bassissimo costo
siccome N dovrà essere intero si approssimerà a:
ma che presenta delle caratteristiche decisamente
interessanti. Il firmware per questo microcontrol-
N=12285 lore è stato sviluppato con una toolchain completa-
mente free-software basata sul gcc (GNU C Compi-
il che comporterà che la reale frequenza di uscita sarà:
ler) e relative librerie.
f=N/(2"28) *fclock=1200, 01Hz
SCHEMA ELETIRICO
Lo scarto nel valore ottenuto è confrontabile o inferiore alla Diamo dunque uno sguardo allo schema del circui-
tolleranza del quarzo. La parola digitale disponibile sul bus dei to, dove il sintetizzatore vero e proprio è U3 il quale,
dati della ROM viene inviata direttamente ad un DAC interno al
DDS che trasformerà il dato digitale in una tensione analogica; oltre alle alimentazioni e ai relativi disaccoppia-
il filtro passa-basso esterno completerà l'opera attenuando gli menti (piedini 1, 2, 3, 4 e 9) richiede un dock a livel-
alias dovuti al campionamento. li logici LVHCMOS 0-3.3V in ingresso al piedino 5
(MCLK). L'uscita del sintetizzatore è sul piedino 10.

46 Settembre 2018 - ELETTRONICA IN


sv 3V3

~crl
CONNl L1
JN OUT
U2
ce
t::1,, l l l l Cl C2 C3
GND

l
C13

3V3 CONNS C28 C29


r....r....

C21 8 R't RS 18 15 C1S


R6
J;ua L3 L4 LS CDNN4
vcc VRFP VCC

I U4 SOA
6
5 9
10
SOA
I C18 C20 C22 C25

!°"'
AO
Al
SCL

7
SCL

Ul
3V3 +
l l I I
A2 wc R12 3V3
GNO
4 5
RST
52 C24 8 C9 C10

tI
CONN3
14 vcc
R7
RB
R9
13
12
PIOB
PIOS
PIO! PI023 8
COMP
VOUT
U3

5
l I
~
FSINC MCLK
RlO 11 2 7 3
4 PI015 PI017 SCLK C2VS

51,, PI013
3 G
MOSI
GND AGND
Cll C14
....
(.)

PIOO 3V3
3V3
4 9
I I
3V3
5~
~
Rll

6
PI04 4 2 ~
4
E
CO

VRFN
17 '~ 16
I
t Sl
I
~
Q)
..e:
(.)

• ••! ••t•••t••tt••\ ' ! •_!•••• ' ' ' ' '.J ·~•.! ' •• •••J. '.I !.-"i l...''P1'J ''"-"

Il dock necessario al fw1Zionamento del DDS viene


generato da un quarzo e due porte logiche a bordo CARATTERISTICHE TECNICHE
della scheda: Xl, US e U6 e relativi componenti • Tensione di allmentazlone: 5 Vcc
passivi. È stato scelto di utilizzare un quarzo • Corrente assorbita: 30 mA
da 25 MHz (la massima frequenza ammessa • Forme d'onda: sinusoidale, quadra, triangolare
dall' AD9833) ma niente vieta di utilizzare qualsiasi • Frequenza generata: 5 Hz+10 MHz
frequenza minore di questo valore. L'unica modifi- • Risoluzione In frequenza: 0,1 Hz
ca dovrà essere fatta nel firmware, che necessiterà • Ampleua segnale d'uscita: 0,6 Veff
di conoscere la frequenza del dock del DDS per
poter effettuare correttamente i calcoli della parola
parallela di programmazione della frequenza.
Il controllo del DDS avviene attraverso l'interfaccia gere la sua funzione di "traduttore" dai comandi
SPI messa a disposizione del microcontrollore Ul; che gli vengono impartiti tramite la UART verso la
tale componente richiede veramente poco per svol- SPI. Nella parte alta dello schema si possono notare,

~ ELETTRONICA IN - Settembre 2018 47


oltre a pochi condensatori di disaccoppiamento connessi a qualsiasi periferica tramite una
sulle alimentazioni le connessioni per la SPI, quelle matrice di interconnessione configurabile all'inter-
per l'PC, la UART e due connettori ausiliari, attual- no del programma, il che semplifica notevolmente il
mente non sfruttati. lavoro del progettista che deve disegnare il circuito
Non è previ.Sto un quarzo per il dock del microcon- stampato. Completano lo schema, il connettore
trollore, perché nel nostro caso è sufficiente l'oscilla- (CONN2) per la UART (attenzione è una UART a
tore RC interno al microcontrollore: la sua precisio- 3,3V, non una RS232, quindi occorre un traslatore di
ne è adeguata alle tolleranze imposte dalla UART. livello verso una RS232 o più probabilmente verso
L'unica mancanza di questo microcontrollore, det- una USB), un regolatore di tensione a 3,3V (U2) a
tata da criteri di economicità e dalle tecnologie del tre terminali e due pulsanti, ossia uno per il reset
silicio, è l'assenza di una EEPROM interna; pertan- (S2) e un altro per far enh·are il microcontrollore in
to, per poter memorizzare vari dati e parametri di modalità di programmazione della sua memoria in-
configurazione (come, ad esempio, la frequenza da terna (Sl). Sono inoltre disponibili, come accennato
generare all'accensione) è stata prevista una piccola sopra, due coru1ettori ausiliari, uno per I/O digitali
EEPROM esterna connessa su PC, U4. (CONN3) e uno per un ingresso analogico sull' ADC
L'LPC822 è un microcontrollore della classe ARM- interno al microcontrollore.
Cortex-MO+ prodotto dalla NXP (un tempo Philips) La programmazione del micro avverrà tramite
orientato ad applicazioni a bassissimo consumo e interfaccia SPI localizzata sui piedini 6, 7 e 8 (MOSI,
ridotto numero di piedini. SCK e SS, rispettivamente).
Nonostante questo si tratta di un processore con
notevoli capacità di calcolo: lavora a 30 MHz di IL FUNZIONAMENTO
dock con una architettura a 32 bit e un set di istru- Da un punto di vista di sistema, la descrizione è
zioni (RISC) che permette una notevole velocità di molto semplice: il firmware implementa una i/ f
esecuzione (essendo dotato di istruzioni per mol- tramite canale UART a prompt, tramite la quale
tiplicazione e divisione su interi a 32 bit a singolo è possibile impostare alcuni parametri di funzio-
colpo di dock, ad esempio) ma anche una notevole namento. Tutte le volte che viene cambiato uno di
compattezza del codice. questi parametri (frequenza, fase, forma d'onda,
Nel piccolo contenitore TSSOP20 sono racchiuse, ecc ...) il microconh·ollore, tramite la SPI, riprogram-
oltre all'architetttura ARM, alla RAM e alla Flash ma uno dei registri dell' AD9833, che è pilotato
di programma, una moltitudine di pe1iferiche per costantemente dal dock generato dal quarzo Xl.
le più comuni interfacce: SPI, PC, UART, ma anche L'uscita dell' AD9833 passa attraverso un filtro
timer, ADC, comparatori ecc. passa basso con frequenza di taglio di circa 10 MHz,
È da notare, inoltre che (con l'eccezione dei pie- indispensabile per eliminare gli alias dovuti al cam-
dini di alimentazione e quelli per il riferimento pionamento della forma d'onda.
dell' ADC) tutti gli altri piedini possono essere Se si desidera avere l'uscita non filtrata, si elimi-

I due pulsanti vanno collegati


essenzialmente per la programmazione
del microcontrollore; nell'uso si fa tutto
dalla tastiera del PC.

48 Settembre 2018 - ELETTRONICA IN


[~::2~o~~n:~NTAGGIO] ··········································································································•·mm••·························1

C 1: 22 µF 16 VL ceramico
C2, C3: 100 nF ceramico
C4, C6: 100 pF ceramico
C5: 100 nF ceramico
C7. C8: 100 nF ceramico
C9: 1OµF ceramico
C10+ C12: 10 nF ceramico
C13: 100 nF ceramico
C14: 10 µF ceramico
C15, Cl 7: 100 nF ceramico
C 16: 100 µf 16 VL elettrolitico (06 mm)
C18:-
o
C19: 100 nF ceramico
C20. C22: 330 pF ceramico
C21 +C24: 100 nF ceramico
C25:- L 1, L2: Induttanza 100 µH S2: Pulsante N.O.
C26: 15 pF ceramico L3: Induttanza 1 µH CONN1: Morsetto 2 vie
C27: 1O pF ceramico L4: Induttanza 2,2 µH CONN2: Connettore filo-scheda 3+3 vie
C28: 100 pF ceramico L5: Induttanza 1 µH CONN3: Strip maschio 5 vie
C29: 100 pF ceramico U1: LPC822M101JDH20J CONN4: Presa BNC verticale da CS
R1, R2: 100 ohm U2: MC78LC33 CONN5: Strip maschio 3 vie
R3+ R10: 10 kohm U3: AD9833BRMZ J1 :Strip maschio 2 vie
R6+R10: 100 ohm U4: 24LC08B/SN
R11, R12: 15 kohm U5, U6: SN74AHC1G14DBVR Varie:
R13: 1 Mohm Xl: Quarzo 25 MHz (HC49) - Jumper (2 pz.)
R14: 2.2 kohm $1: Pulsante N.O. ·Circuito stampato S1398 (45 x 48 mm)
: .........................................................................................................................................................................................................................................................................:

nerà il ponticello fra i piedini 2 e 3 del connettore e connettendo direttamente l'uscita delI'accumu-
CONNS e si preleverà il segnale fra i piedini 1 latore al DAC, mentre l'onda quadra è creata per
(GND) e 2 (uscita non filtrata) dello stesso connet- comparazione dell'MSB dell'uscita dall'accumula-
tore CONNS; in questo caso il connettore CONN4 tore. Questo produce delle forme d'onda accetta-
resterà inutilizzato. bili a basse frequenze (intendiamo basse rispetto
L'uscita resterà comunque accoppiata in alternata: alla frequenza cli dock. ..) ma comporta un certo
con i due condensatori C16 e C17 si avrà una fre- jitter man-mano che la frequenza generata aumen-
quenza di tagHo inferiore di circa 5 Hz, che dovreb- ta. Quindi le forme d'onda triangolari e quadra
be essere sufficiente per la maggior parte dei casi. andranno utilizzate con cautela e verificando prima
Nulla vieta cli cortocircuitare C16 e C17 ed avere che le caratteristiche siano adatte allo scopo.
un'uscita accoppiata in continua: riferirsi al da- Inoltre se per le forme d'onda sinusoidale e trian-
tasheet dell'AD9833 (punto [1] dei Riferimenti) per golare l'ampiezza sul piedino 10 dell'AD9833 può
inclicazioni su come effettuare questa modifica. arrivare al massimo a 0,6Vpp per l'onda quadra i
All'interno dell' AD9833 abbiamo due generatori livelli sono quelli dell'alimentazione dell'integrato;
separati ma solo uno dei due può essere connesso quindi dopo C16 e C17 l'onda quadra avrà un'am-
all'uscita (piedino 10 dell' AD9833). È molto como- piezza picco-picco di circa 3,3V.
do, però, avere due DDS indipendenti all'interno Per dia1ogare con questa scheda è neces?ario un tra-
dello stesso integrato per poter effettuare salti cli slatore cli livello o protocollo da UART 3;3V a RS232
frequenza veloci come richiesto per la generazione o USB. Nel caso, si tratterà cli adattare le connessio-
di modulazioni FSK o PSK. ni: il connettore CONN2 ha due contatti cli massa
L' AD9833 è in grado cli generare tre forme d'onda: (piedini 1 e 6) e può fornire qualche decina cli mA
sinusoidale, triangolare e quadra. In effetti, però, la cli corrente a 3,3V attraverso i piedini 2 e 5.
ROM contiene solo le informazioni per la sinusoi- I segnali RXD e TXD della UART sono disponibili
de: l'onda triangolare è generata saltando la ROM sui piedini 3 e 4; dal piedino 4 esce il segnale che va

ELETTRONICA IN - Settembre 2018 49


DDS e PLL a confronto
Vedendo pubblicati nelle pagine di Elettronica In due progetti
di generatore DDS in poco tempo (l'ultimo risale al fascicolo
n• 225) viene spontaneo chiedersi se i DDS soppianteranno i
sintetizzatori a PLL La risposta è quasi certamente no, anche ASPml FIRMWARE
se in molte applicazioni possono offrire prestazioni decisamen- Il firmware attuale del circuito è una versione molto
te superiori. embrionale dove, però, le parti di basso livello del
Con i PLL si possono sintetizzare frequenze dell'ordine delle
decine di GHz, mentre le frequenze di clock per ì DDS di fascia
controllo delle periferiche e la funzione main() sono
più alta arrivano a 1GHz circa. stati realizzati, verificati e hanno un funzionamento
La differenza più sostanziale, però, soprattutto per impieghi stabile. Il firmware, che potete scaricare dal nostro
nelle radiocomunicazioni e in tutti gli altri campi tipici delle sito Internet www.elettronicain.it insieme ai file del
tecniche a radiofrequenza, risiede nel compromesso fra rumore progetto, viene rilasciato anche come codice sorgen-
di fase e purezza spettrale.
te in maniera libera e gratuita con licenza GPL v3. È
Il PLL è un sistema in retroazione nel quale un oscillatore libero,
il VCO, viene comandato confrontando la sua frequenza (divisa possibile quindi utilizzare, modificare, distribuire e
per un fattore N) con quella di un oscillatore di riferimento ridistribuire il firmware modificato; l'unica limita-
(generalmente al quarzo). Il sistema è complesso e le cause di zione della licenza GPL è che il firmware non può
non idealità possono essere molteplici, così come le sorgenti di essere rilasciato sotto un'altra licenza.
rumore, immahcabilmente presenti nei vari stadi. Per sviluppare nuove funzioni su questo firmware
Ciò comporta che anche l'oscillazione del VCO non avvenga a
è necessaria una toolchain basata sul gcc e sulle
una sola frequenza ma abbia, nelle sue immediate vicinanze di
frequenza, delle bande di rumore: il cosiddetto rumore di fase. libnewlib; per i sistemi GNU /Linux è sufficiente
Questo, come tutte le fonti di rumore, costituisce una limitazio- installare (oltre ad un buon editor come emacs) i
ne alla realizzazione delle radiocomunicazioni. La progettazione pacchetti che di solito hanno i nomi: gcc-arm-none-
di un buon sintetizzatore a PLL richiede competenze ed espe- eabi, libnewlib-arm-none-eabi, libstdc++-arm-none-
rienza notevoli per ottenere buoni risultati che portino con- eabi-newlib e binutils-arm-none-eabi.
temporaneamente un ridotto rumore di fase, una accettabile
presenza di prodotti spuri e una sufficiente velocità nel passare
Per altri sistemi operativi esistono diversi porting
da una frequenza a un'altra. della stessa tookhain concessi sempre sotto licenza
Il DDS, invece, è un sistema diretto, senza retroazioni, che per- GPL, quindi liberamente scaricabili e utilizzabili.
tanto non soffre di rumori di fase aggiunti dai vari componenti Tutto il firmware è scritto in C e i sorgenti, sono
del sistema: il suo rumore di fase in uscita sarà approssimati- divisi in più file per maggior chiarezza. Una volta
vamente quello della sorgente di clock ed essendo quest'ultima
scompattato il pacchetto contenente i sorgenti
realizzata con un quarzo, potrà essere molto basso.
Anche la velocità nel passaggio da una frequenza all'altra può <sddsg_fw-v0.1.zip> si entrerà
essere molto elevata, generalmente limitata solo dalla velocità nella directory dove sono presenti tutti i sorgenti e i
con la quale si possono programmare I registri interni al DDS. file di configurazione; qui con il comando make sarà
Di contro, però, è insito nel processo di costruzione per cam- possibile compilare i sorgenti ed ottenere il binario
pioni della forma d'onda di uscita la generazione di frequenze da ti-asferire sul microcontrollore.
spurie, seppur molto attenuate, la cui disposizione nello spettro
cambia a seconda della frequenza generata. Queste spurie
Per fa programmazione, ossia il caricamento del
possono essere non prevedibili e causare delle interferenze nei firmware, abbiamo una buona notizia: il microcon-
segnali ricevuti oppure costituire delle emissioni inaccettabili trollore che abbiamo utilizzato non ha bisogno di
per un trasmettitore. alcun programmatore, in quanto è dotato di un bo-
Insomma, caso per caso il progettista esperto dovrà valutare otloader su una piccola ROM interna che permette
quale soluzione sia la migliore visto che la tecnica richiede sem-
la programmazione della memoria Flash di pro-
pre compromessi per ottenere il miglior risu ltato complessivo.
gramma direttamente tramite la UART utilizzata
anche per interagire con il firmware, come descritto
qualche riga indietro.
Per poter trasferire il binario del firmware (o meglio
il .hex) sul microcontrollore sarà pertanto neces-
dal microcontrollore all'host, mentre nel piedino 3 sario solo del software da far girare su PC, oltre,
entra il segnale generato dall'host e diretto all'RXD ovviamente, un traslatore di livelloI protocollo da
del microcontrollore. UART a RS232 o USB. Per il software in questione,
L'alimentazione della scheda è prevista a SV (U2 in ambiente Linux può essere utilizzato l'lpc21isp
ricava i 3,3V) e si applica tramite il connettore (punto [3] dei Riferimenti) mentre per altri sistemi
CONNl. Aprendo il ponticello J3 sarà possibile operativi esistono porting dello stesso (punto [4] dei
alimentare la scheda non tramite il predetto connet- Riferimenti) o software equivalenti: un motore di
tore CONNl, ma attraverso i piedini 2 e 5 (sempre ricerca fornirà facilmente tutte le indicazioni, dato
riferiti alle masse sui piedini 1 e 6) del connettore che questi microcontrollori hanno tm' ottima diffu-
della UART CONN2; in questo caso l'alimentazione sione in ambito sia professionale che dilettantistico.
dovrà essere a tensione di 3,3V. Il nostro consiglio è, poi, di rendere disponibili le

50 Settembre 2018 - ELETTRONICA IN


modifiche e migliorie che avrete eventualmente sdds g 0.1
apportato a questo firmware. 1-l >

Se resettiamo il micro con il pulsante "boot" aperto


(o alimentiamo il circuito nelle stesse condizioni) il In pratica sullo schermo del computer vediamo che
micro fa partire il firmware che è stato precedente- il firmware mostra il nome della scheda (sddsg) e
mente scritto nella Flash; invece se al momento del la versione di firmware in esecuzione (0.1, in questo
reset (eseguito con il pulsante S2), il pulsante "boot" caso), dopo di che viene visualizzato il prompt dal
(Sl) è chiuso (cioè il piedino corrispondente è a quale possono essere impa1·titi dei comandi.
massa) allora entra in modalità bootloader e aspetta Riepilogando, per gestire il generatore e impartire i
di ricevere i comandi per programmare la Flash comandi occorre avviare un emulatore di terminale,
interna. aprire una sessione di comunicazione sulla COM
corrispondente (velocità 115 kbps, 1 bit di start e
MODALITÀ DI COMANDO uno di stop, nessuna parità) e attendere il prompt;
Bene, adesso stabiHamo di b:ovarci nella modalità fatto questo si impartiscono i comandi seguiti da
operativa, ossia che al reset del microcontrollore Invio e il generatore si imposta di conseguenza.
o all'accensione del circuito Sl sia aperto e che di I comandi attualmente implementati sulla vO.l del
conseguenza il microcontrollore avvii il firmware firmware sono descritti di seguito.
esistente nella Flash di programma. - fO: imposta la frequenza in Hz (che deve essere
Se prima dell'avvio avete collegato il generatore fornito come numero intero) del primo generato-
(alimentato, s'intende ...) a un Persona! Computer e re dell'AD9833 e se il valore è positivo la fre-
avviato una sessione di terminale sulla COM asse- quenza viene impostata e resa immediatamente
gnata, il firmware si presenta con: all'uscita. Se il valore della frequenza è negativo,

Alte prestazioni.
Multifunzionalità.
Scopri il nuovo Oscilloscopio R&stRTP (da 4 GHz a 8 GHz)
1 De-embedding in tempo reale
1 Strumenti multipli in uno
1 Dimensioni contenute

L'innovazione fra gli Oscilloscopi. Misure affidabili.


Per saperne di più: www.rohde-schwarz.com/RTP

ELETTRONICA IN - Settembre 2018 51


la frequenza viene impostata ma non si commuta - sq2: imposta l'onda quadra a metà frequenza
sul primo generatore automaticamente (nel caso come forma d'onda di usàta.
non si sia già selezionato questo generatore). Se - rst: reset dell' AD9833.
il valore di frequenza è zero non si modifica la - eew: comando di basso livello per la scrittura di
frequenza impostata ma si seleziona questo gene- un byte sulla EEPROM esterna, la cui sintassi è:
ratore per l'output dall' AD9833.
- fl: imposta la frequenza del secondo generatore eew <addr> <data>
del!' AD9833.
Se il vaJore di frequenza è positivo la frequenza dove <addr> è l'indirizzo della EEPROM in esade-
viene impostata e resa immediatamente all'uscita. cimale (da 000 a 3FF) e <data> è il valore del byte
Se il valore è negativo, la frequenza viene impo- da scrivere, sempre in esadecimale (da 00 a FF).
stata ma non si commuta sul secondo generatore - eer: comando di basso livello per la lettura di un
automaticamente (nel caso non si sia già selezio- byte sulla EEPROM esterna.
nato questo generatore). La sintassi è:
Se il valore di frequenza è zero non si modifica
la frequenza impostata ma si seleziona questo eer <addr>
generatore come uscita dell'AD9833. Anche qui il
vaJore deve essere fornito come numero intero ed dove <addr> è l'indirizzo della EEPROM in esa-
espresso in Hz. decimale (da 000 a 3ff).
- pO: imposta la fase del primo generatore Viene restituito il valore del byte letto, sempre in
dell' AD9833, che deve essere fornito come nume- esadecimale (da 00 a ff).
ro intero espresso in gradi. - ddsw: comando di basso livello per scrivere un
- pl: imposta la fase del secondo generatore valore in un registro dell' AD9833; riferirsi al
dell' AD9833 e anche in questo caso il valore deve data-sheet dell' AD9833 per una descrizione dei
essere fornito come numero intero, in gradi. registri e del modo di accesso.
- sq: imposta l'invio all'uscita della forma d'onda - sleep: seleziona lo stato di sleep dell' AD9833.
quadra. La sintassi è:
- sin: imposta la sinusoidale come forma d'onda
inviata ali' uscita. s leep <val>
- tri: imposta l'onda triangolare come forma d'on-
da di uscita. <val> può assumere i valori:

52 Settembre 2018 - ELETTRONICR IN


O- funzionamento normale
1 - DDS operativo, DAC disabilitato
2 - dock interno disabilitato
3 - DAC e dock disabilitati

- getstat: comando di debug per verificare il fun-


zionamento del microcontrollore e del firmware
a basso livello.

Ciò detto, vediamo in pratica questi comandi: una


tipica sessione di lavoro può essere la seguente.

sddsg 0.1

[-] >getstat
Fig. 1 - Una tipica finestra di comando da terminale.
system core clock 30000000
uarto_stat l
LPC_USARTO·>STAT 1012 minimo di attrezzatura che comprende una pinzet-
LPC_SPIO- >STAT 132 ta per posizionare i componenti, della pasta-salda
o filo di lega saldante molto sottile (al massimo 0,5
ad9833_ ctrlreg 2008 mm di diametro), una stazione saldante con stilo
ad9833_freqreg 4058 molto sottile e potenza massima di 30 watt, oltre a
ad9833_;phasereg cooo una lente d'ingrandimento per aiutarsi nel posizio-
namento dei componenti più piccoli.
(-] > Può essere utile deporre del flussante sulle piazzole
1-l > prima di saldarvi i componenti, giacché aiuta nel
I·] >fO 12500 mantenerli in posizione e dello sciogliere la lega
1-J >fO -,10000 saldante tra essi e le rispettive piazzole.
1- l >fl 137600 Il montaggio deve iniziare dal microcontrollore
1-l >fO e dai due integrati, quindi proseguire con tutti i
[-) >tri passivi e i transistor, andando in ordine di altezza
[- ) >eer O e seguendo l'orientamento visibile nel piano di
55 montaggio illustrato in queste pagine; i pin-strip
per realizzare i due jumper, il cormettore a vaschet-
(- ] >eew o aa ta a 6 poli dell'ICSP (programmazione in-circuit) la
[-) >eer O
aa

[-) >

Si parte col solito prompt, cui nel caso di questo


I componenti utilizzati per realizzare questo progetto
esempio abbiamo fatto seguire il comando getstat
sono disponibili presso Futura Elettronica.
con il relativo esito. Di seguito abbiamo 1'esito di
Il Microcontroller IC ARM (cod. LPC822M101JDH20)
altri comandi d'esempio. La Fig. 1 propone la scher-
costa Euro 3,80 la breakout DDS con AD9833
mata corrispondente su Linux.
(cod. AD9833BREAKOUT) è in vendita a Euro 6,90.
I prezzi si intendono IVA compresa.
REALIZZAZIONE PRATICA
Bene, concludiamo con gli aspetti costruttivi: il
- .. )i;n··:~.~~~·~·t~~:-~r.·: ç~:- ~:;~:--.-.;.·:i:;.:?~-~~~~.~·~.,,;:.~:.-;;:.­
generatore richiede un circuito stampato a doppia . ~ .'.~~l .-· r .Il materiale:v'a richiesto"a:'·.- · · ·' · · ·...
faccia a fori metallizzati e componentistica SMD, F.·~~ùra Et~éttron.ica:,v·ia.t\dige 11; 21rii3'.Ga1tàrate (VA), ·
quindi la realizzazione richiede una certa manualità 03.31-799ÙS · Fax.:' b~Ù-792287 ~~ w~w.futurashop .it
e pratica con il montaggio superficiale, oltre a un . '

ELETTRONICA IN - Settembre 2018 53


morsettiera di alimentazione e il BNC da stampato
vanno saldati per ultimi, sempre procedendo in
ordine di altezza.
A riguardo vi facciamo notare che per il montaggio
del BNC avete la possibilità di scegliere tra la dispo-
sizione che vedete nel piano di montaggio (vale a
dire dal lato componenti) o quella dal lato opposto
del circuito stampato; quest'ultima opzione, possi-
bile perché il PCB è a doppia faccia, facilita l'intro-
duzione del connettore BNC volante (in quanto non
ci sono componenti attorno) soprattutto se pensate
di mettere il circuito in un contenitore.
In tal senso il montaggio del connettore dal lato
saldature consente di montare il generatore a
ridosso del pannello frontale di un contenitore, cosa Se volete, potete montare il connettore BNC sul
che se montassimo il BNC dal lato componenti non retro del circuito stampato, owero lato saldature;
sarebbe semplice. ciò renderà più semplice l'inserimento in un
Al circuito andranno poi collegati in modo volante contenitore, perché il BNC sarà accessibile per
due pulsanti (tra le piazzole 51, 52 e di massa) per il quasi tutta la propria altezza.
controllo del generatore DD5.
L'interfacciamento al PC, come accennato, si effet-
tua mediante un adattatore 'ITL/U5B o RS232C, 2) premere brevemente il reset (o ponticellare mo-
che peraltro ha senso solo se avete un computer mentaneamente e rilasciare le piazzole di 52);
dotato delle tradizionali COM. 3) lanciare il software di programmazione, ad
esempio se si usa l'lpc21isp sotto linux da linea
PROGRAMMAZIONE DELL'LPC822 di comando basta impartire:
Come descritto nel testo l'LPC822 ha un piccolo bo-
otloader interno su ROM che permette la program- $ lpc21ìsp buìld/sddsg.hex /dev/ttyUSBO 115200 12000
mazione di questo processore senza un apposito
programmatore ma inviando i dati tramite la UART 4) rimuovere il ponticello sulle piazzole di 51;
impiegata in questo progetto anche per il controllo
del generatore. 5) eseguire un nuovo reset.
La sequenza per entrare nella modalità di program-
mazione è la seguente. Ora la scheda è pronta a funzionare; notate che
1) ponticellare 51 (premere e tenere premuto il pul- invece di premere il reset si può togliere e ridare
sante se installato oppure inserire un ponticello l'alimentazione alla scheda, con pari effetto.
sui pin-strip saldati al posto di 51); Bene, con questo abbiamo concluso! •

'

54 Settembre 2018 - ELETTRONICA IN


Istruzioni
in italiano! Vuoi gestire facilmente il clima domestico
anche quando sei lontano da casa
e risparmiare sui consumi energetici?
Con il nuovo termostato Wi-Fi puoi fare
tutto questo tranquillamente. Grazie
all' App gratuita per Android e iOS,
con un semplice tocco sullo smartphone,
puoi attivare da remoto il riscaldamento,
modificare la temperatura e impostare
la programmazione.

Alimentazione: 230 VAC 50 Hz


Precisione: circa 0,5° C
Range di temperatura: da 5° Ca 35° C (impastabile)
Limite range di temperatura: 5-99° e
Consumo: <0,3 Watt
Sensore di temperatura: NTC (1Ok)1 %
Montaggio: a incasso
Dimensioni: 86 x86 x17 mm
Peso: 234 grammi

~i1kflOJ
cod. FR695
...

sa, va montata al posto della pinza, la quale andrà


quindi rimossa; rimarrà la base, ossia il polso, azio-
nato dal solito servocomando da 1,2 kg/ cm che ne
consentirà la rotazione per ruotare, all'occorrenza,
il pezzo prelevato. La ventosa è forata all'interno e
comunica con un tubicino, il quale va nel raccordo
comune dell'elettrovalvola, le cui due vie termina-
no una sulla pompa a depressione e l'altra su uno
sfiato, che consente di portare a pressione atmosfe-
rica la ventosa quando la valvola commuta dalla
pompa allo sfiato stesso. La ventosa è sostenuta da
Dettaglio della testa uno stelo fissato in cima alla staffa di sostegno (che
pneumatica con in consente il fissaggio al polso del braccio) median-
evidenza il finecorsa te un dado che fa presa sul suo estremo filettato;
COLLJS/ONSENS. tra la staffa di sostegno e il raccordo pneumatico
della ventosa è interposta una molla che consente
la presa morbida perché se anche il braccio scende
eccessivamente, la ventosa e il suo stelo possono
compresi nel braccio robotico base descritto nel rientrare in una certa misura.
fascicolo scorso. Il funzionamento del sistema di pick & place è il
Tra le varie funzioni implementate, lo shield si oc- seguente:
cupa di fornire l'alimentazione ai servo e di coman- 1. la ventosa viene posizionata sul particolare da
dare l'elettromagnete dell'elettrovalvola e la pompa prelevare e spinta sulla superficie di quest'ultimo
a depressione che consentono il pick and place. fino a farla aderire;
2.Arduino aziona, tramite lo shield, la pompa a
PRENDERE E RILASCIARE OGGETTI depressione e, siccome 1'elettrovalvola a riposo
Ciò detto, possiamo entrare nel vivo dell'appli- collega direttamente la ventosa, quest'ultima ri-
cazione, che consiste nell'equipaggiare il braccio succhia il pezzo mantenendolo attaccato ad essa;
robotico di un sistema di prelievo e rilascio di 3.Arduino comanda il braccio affinché asporti il
piccoli oggetti basato su una ventosa collegata a un p ezzo e lo posizioni nella sua destinazione;
aspiratore (una piccola pompa a depressione) me- 4.a questo punto Arduino attiva l'elettrovalvola, la
diante un'elettrovavola, a tre vie, che permette di qu ale commuta il raccordo comm\e sullo sfiato,
commutare la ventosa sulla pompa o su uno sfiato; allorché smette la depressione e l'oggetto può
quest'ultimo consente il rilascio immediato dell'og- cadere;
getto prelevato. Per limitare il consumo di elettricità 5.rilasciato l'oggetto, l'elettronica riporta il braccio
da p arte dell'elettrovalvola abbiamo scelto di utiliz- nella posizione originaria e si predispone a un
zare il raccordo normalmente collegato al comune nuovo prelievo.
per la ventosa e connettere il comune stesso alla
p ompa a depressione. Queste fasi riassumono l'attività del braccio, per
Il manipolatore degli oggetti, vale a dire la vento- eseguire la qu ale serve un'elettronica comandata
manu almente (per esempio tramite due joystick)
. . . . . . . . . . . . . . . . .. ...... * ..... ...... 1 ······ -· ·~ · ·· ·····•-" ····· --.._.__·~ ···· · • o,._• ... · ·· · · o in maniera automatica mediante un apposito
firmware nel quale memorizzare i movimenti da
CARAlTERISTICHE TECNICHE compiere e la loro velocità, la quale non dev'essere
eccessiva per evitare che le giunture (articolazioni)
• Alimentazione: 12V separata da Arduino del braccio siano sollecitate tanto da prendere gioco
• Regolazione tensione Interna: SV a lungo andare. In questo articolo vi forniremo w10
• Uscite di potenza: 2 con LED di segnalazione strumento b asilare di gestione del braccio, che con-
• Corrente uscite di potenza: 1A siste in uno sketch per Arduino capace di eseguire
• Uscite per servocomandi: 6
il movimento sequenziale di tutti gli azionamenti
• Ingressi digitai!: 1
• 2 pulsanti per futuri sviluppi
del braccio ed anche dell'elettrovalvola; in esso
basterà sostituire i parametri predefiniti con quelli
desiderati per far compiere al braccio robotico le

58 Settembre 2018 - ELETTRONICA IN


+12V +SV
s
r: IN+
Ul

OUT+
....
(.)

~
PWR Dl
Cl + C2 C3 + C4
IN-

1 +SV
l l +12V
l l OUTl
l&.I
L&j

r
~

~ 011
VIN
02 E
51 ©

·~
AO
-t::
(..)
~

r,,,
+SV

52
40--
~ 010
Al
+

OUT2

53

r
·~
~ 09
A2

ARDUINO
04
Q2

r
2

~ 06
' +SV

ko~
54

:~
A3

012 S I SENS

r,,,
!°3
013

ss 40--
~ OS
A4
RS

;1'

r,,,
07

56 4 ~8 03
AS
08

GND I< ~
J;,1 J;,2

azioni che vogliamo. Vi spiegheremo come, quando vocomandi, che stavolta hanno quattro pin invece
descriveremo il firmware applicativo. di tre, giacché abbiamo aggiunto quello, opzionale,
per il feedback di rotazione d ell'alberino.
L'ELmRONICA DI CONTROLLO Ciò è possibile perché la scheda Arduinq/Fishino
Il controllo d ei quattrn servocomandi del braccio UNO dispone di sei uscite PWM e permette il pilo-
robotico è affidato ad Arduino UNO, attraverso lo taggio diretto di altrettanti servocomandi, almeno
shield del quale h·ovate lo schema elettrico in que- per quel che riguarda i segnali di posizione; l'elet-
ste pagine; da esso vedete come si tratti d i qualcosa tromagnete della valvola a tre vie viene invece ge-
di semplice, riassumibile nel prolw-lgamento delle stito attraverso una linea di I/O digitale, che nello
linee analogiche (1 PWM e un analog inpu t per cia- shield pilota un transistor utilizzato come interrut-
scuno dei servo) di ATduino sui connettori dei ser- tore statico. Lo shield non si limita a fornire i segna-

ELETTRONICA IN - Settembre 2018 59


li di comando dei servo, ma eroga anche l'alimenta- la resistenza R9 con l'uscita D13); attraverso Dl2,
zione a 5 V con tutta la corrente che i servocomandi invece, è previsto l'interfacciamento con un senso-
da 13 kg/ cm richiedono per funzionare, anche dagli re a uscita digitale, tramite il connettore SENS: si
spunti coincidenti con l'avvio dei servocomandi, h·atta di un sensore presente sulla parte terminale
specie quando il braccio è sotto carico. del braccio, che in questa applicazione non viene
Senza utilizzare lo shield avremmo dovuto cablare utilizzato per rilevare quando, facendo scendere la
a parte massa e +SV dei servo, collegando poi i poli ventosa, questa preme più del dovuto. In pratica il
+e - a un alimentatore esterno, mentre con lo shield sensore è un microswitch che rileva l'arretramento
otteniamo un insieme compatto, dato che tutta l'e- dell'aspiratore a ventosa, il quale è vincolato alla
lettronica necessaria al funzionamento del sistema è testa del braccio mediante un sistema a molla che
compresa fra Arduino UNO e lo shield. ne consente l'arretramento fino a un certo punto,
Diamo dw1que uno sguardo allo schema elettrico per assicurare un contatto morbido con il pezzo da
dello shield, nel quale, per renderne più semplice manipolare.
la comprensione, al cenh·o abbiamo posto Arduino Riscrivendo opportunamente il firmware, il sensore
UNO: come vedete, i connettori di sinistra sono può essere un altro a vostra scelta, digitale, che per
quelli per i servo e su essi viene ripetuta l'aljmen- la comunkazione utilizzi un solo filo (ad esempio
tazione a SV prelevata dall'uscita del regolatore di un dispositivo 1-wire).
tensione, che vedete siglato Ul; Sl è riservato al Soffermiamoci w1 istante sulle uscite OUTI e OUT2,
servocomando 1, 52 al 2 ecc. che sono identiche e quindi descriveremo una sola
Per l'assegnazione dei servo facciamo riferimento di esse, fermo restando che quanto spiegato per l' u-
alla Tabella 1, che espone la corrispondenza h·a essi na vale anche per l'altra; prendiamo in esame OUTl,
e la parte del braccio di cui attuano il movimento. il cui controllo è affidato alla linea D2 di Arduino, la
Quest'assegnazione rispecchia quella fatta nel quane, a livello logico alto (5V) tramite il partitore
firmware e le due connessioni SS ed S6 sono state resistivo Rl/R2 polarizza la base del TI, mandando
implementate per hth1ri sviluppi, ovvero per quest'ultimo in saturazione, condizione nella quale
aggiungere funzioni al braccio o gestire servizi la tensione Vce quasi si annulla, mandando a livello
correlati alla sua attività. basso il gate del MOSFET Ql. Essendo quest'ulti-
Come acce1mato, ogni connessione ha quattro poli mo di tipo enhancement-mode a canale N, rimane
perché, oltre alle due di alimentazione (SV) e all'u- interdetto e l'uscita OUTl non eroga alcuna corren-
scita PWM per il controllo, abbiamo previsto un te. Invece quando Arduino pone a zero logico D2, il
input di feedback di posizione fornito dai servoco- transistor TI rimane in interd izione e il gate del Ql
mandi. Quindi per ciascun servo Arduino riserva viene alimentato attraverso R3, condizione, questa,
un'uscita PWM e un ingresso analogico; prendendo che determina l'entrata del MOSFET in stato di
ad esempio SI, l'uscita di comando del servo è Dll ON: la corrente che ora può fluire tra drain del Ql e
e l'input di feedback è AO. I connettori per i servo massa fa accendere il LED di stato LDl e alimenta
sono ciascuno formato da un pin-strip a 4 poli, la l'eventuale carico connesso tra+ e - di OUTl, che
cui piedinatura rispecchia lo standard adottato dai forniscono una tensione di circa 5V (la caduta di
servocomandi con feedback. tensione tra drain e somce del MOSFET è h·ascura-
Sul lato delle uscite, Arduino UNO pilota due in- bile, almeno a!Je correnti in gioco).
terruttori statici formati da una cascata di transistor Passiamo adesso allo stadio di alimentazione, che
BJT e MOSFET a canale N, per azionare l'elettro- si basa su una breakout board (Ul) basata su'l'inte-
pompa a vuoto e l'elettrovalvola a tre vie, oltre che, grato WP1584 (disponibile su wwwf11tumshop.it con
direttamente, un LED (LD3, alimentato attraverso il codice MP1584ENDCDC): si tratta di un compat-
to regolatore di tensione DC/DC di tipo buck, che
Tabella 1
partendo da una tensione d'ingresso di 12-15V rica-
va SVcc ben stabilizzati, fornendo tma corrente di
Numero Servo Movimento
3A. Il regolatore ha due contatti d'ingresso (IN+ e
S1 rotazione base (spalla)
IN-) collegati rispettivamente al catodo del diodo di
52 flessione prima porzione (spalla)
protezione DI (serve a bloccare la corrente nel caso
53 gomito
S4
lo shield venga alimentato per errore con la polarità
polso
S5 per futuri sviluppi
invertita) e a massa, e due di uscita, che forniscono
la tensione stabilizzata. Lo shield non prende quindj
56 per futuri sviluppi
alimentazione da Ardtùno (infatti nessuno dei pin di

60 Settembre 2018 - ELETTRONICA IN


Il braccio robotico
La base del nostro progetto Il braccio ha tre snodi per il za ampia da sorreggere il cm con ingranaggi in metallo
è un braccio composto da movimento in alto e in <1vanti braccio anche esteso, tuttavia identico ai due precedenti.
una stru ttura meccanica (è composto da un braccio e se questo deve sollevare pesi La base di appoggio dispone
nella quale sono integrati gli un avambraccio cui è intesta- rilevanti va fissata al piano di una ralla in acciaio a un
azionamenti elettrici, oltre che ta una pinza in funzione di d'appoggio; allo scopo abbia- giro di sfere che permette
da un'elettronica che governa mano) e può ruotare sul piano mo previsto quattro fori per all'intero braccio di ruotare
questi ultimi per ottenere i orizzontale grazie a una ralla awitarla , ad esempio, a un attorno al suo asse; l'angolo
movimenti desiderati. in acciaio stampato a un giro tavolo, a un banco di lavoro o di rotazione è determinato
Il braccio ha una struttura di sfere, a sua volta awitata a un macchinario del quale si dall'angolo massimo di escur-
interamente realizzata con alla base d'appoggio dell'in- desidera che il braccio diventi sione del perno del servo
parti in plexiglass da 3 e 5 mm sieme; a questa base è fissata parte. La pinza ha le gana- utilizzato (nel nostro caso
di spessore tagliate a laser e anche la sezione che contiene sce concave lunghe 45 mm 180°). La ralla permette di
assemblate tramite l'utilizzo di l'elettronica. e dentate, così da favorire ottenere una rotazione fluida,
distanziali in ottone/ABS, viti Il braccio può ruotare sulla la presa di oggetti di varia con movimenti precisi e con
e dadi. base d'appoggio di ben 180 natura. Il minimo sforzo del servo
L.'.azionamento del braccio interessato.
awlene mediante due servo La versione base del braccio
da 13 kg/cm con ingranaggi è stata proposta con una
in metallo: uno comanda la pinza montata sul polso e può
rotazione del primo tratto ruotare di 180 gradi mediante
e il secondo alza o abbas- un servo miniatura da 1,2 kg/
sa l'avambraccio cm; lo stesso tipo di servo vie-
sull'articolazione ne montato nell'azionamento
del gomito. In che consente apertura e
corrispondenza chiusura delle ganasce della
di quest'ultima si pinza, fino a stringere oggetti
trova un bilanciere larghi 65 mm.
gradi e la ralla che, grazie a una La parte posteriore del
unisce la base del biella imperniata braccio è predisposta per
braccio alla bàse sulla base rotante e alloggiare schede di controllo
d'appoggio. La lunghezza di ad un'altra imperniata quali Raspberry Pi e Arduino
braccio e avambraccio è 160 sul sostegno della pinza, as- UNO, oltre che dispositivi ido-
mm e il braccio può estendersi sicura che la stessa rimanga nei (pompa a vuoto elettrica
in altezza per un massimo di orizzontale indipendentemen- ed elettrovalvola a tre vie) per
270 mm, che divengono 310 te da quanto si estende o si realizzare un sistema pick
al polso (la giuntura su cui ritrae il braccio. and piace come quello de-
ruota la pinza) e ben 400 La rotazione del braccio è di scritto in queste pagine, dove
mm considerando anche la 180° e viene comandata da al posto della pinza abbiamo
pinza. La base è abbastan- un ulteriore servo da 13 kg/ una ventosa a depressione.

alimentazione di quest' ultima scheda è collegato) ma dalla premessa che abbiate già assemblato il braccio
da un jack DC separato a bordo, che nello schema robotico secondo le istruzioni fornite nell'articolo
eleth·ico è siglato PWR; l'alimentazione d'ingresso ad esso dedicato nel fascicolo n° 227. Dovete quindi
passata attraverso il diodo dj protezione viene filtra- preparare l'elettronica e cablai-e il tutto secondo lo
ta dai condensatori Cl e C2 e quella stabilizzata, a 5 schema di assemblaggio riportato in queste pagine;
volt, dai condensatori C3 e C4. più esattamente, una volta realizzato lo shield oc-
C oncludiamo l'analisi dello schema elettrico con corre applicarlo ad Arduino e poi cablare l'elettroni-
le linee di I/ O 07 e D8 di Arduino, le quali sono ca (servo, alimentazione, elettrovalvola e pompa di
input che acquisiscono lo s tato dei pulsanti Pl e P2, depressione) nonché realizzai-e il circuito pneumati-
d estinati a future applicazioni, ovvero ad avviare co con la pompa a depressione. Lo shield si realizza
e arrestare l'apprendimento d ei movimenti, per partendo dal circuito stampato, quest'ultimo otte-
esempio. nibile per fotoincisione dalle tracce lato rame che
trovate nel nostro sito www.elettronicain.it insieme
REALIZZAZIONE PRATICA agli altri file d el progetto; incisa e forata la basetta,
Bene, passiamo adesso dalla teoiia alla pratica oc- si possono montare i pochi componenti occorrenti,
cupandoci della costruzione del sistema, partendo che richiedono un po' d'attenzione in quanto per

- ELETTRONICA IN - Settembre 2018 61


Elenco Componenti:

C 1: 100 nF ceramico (0805)


C2: 47 µF 16 VL elettrolitico (05mm)
C3. C5: 100 nF ceramico (0805)
C4, C6: 100 µF 6,3 VL elettrolitico (05mm)
R1, R8: 1O kohm (0805)
R2, R3, R6. R7: 4,7 kohm (0805)
R4, R5, R9: 470 ohm (0805)
LD1, LD2: LED rosso (0805)
LD3: LED verde (0805)
Q1, Q2: BUK6215-75C
T1, T2: BC817
P1. P2: Microswitch
01: GF1M
U1: Modulo DC/DC uscita 5V/ 3A
S1 +S6: Strip maschio 4 vie
SENS: Strip maschio 3 vie

Varie:
• Strip femmina 2 vie (4 pz.)
- Strip maschio 2 vie (4 pz.)
- Plug alimentazione
- Morsetto 2 vie passo 5mm (2 pz.)
• Strip 6 vie 15mm
- Strip 8 vie t 5mm (2 pz.)
· Strip 1O vie 15mm
- Circuito stampato S1397 (69 x 55mm)

:......................................................................................................................................................................................................................................................._...............:

buona parte sono in SMD. Quindi servirà un po' di 2 prevedete delle morsettiere da circuito stampato
manualità ed un po' di esperienza sulla saldatura a passo ,5 mm. Notate che i MOSFET devono essere
di componenti a montaggio superficiale, nonché un stagnati abbondantemente nella zona dell'aletta
minimo di ath·ezzatura che consiste sostanzialmen- metallica, allo scopo di distribuire meglio la corren-
te in un saldatore da una ventina di watt di potenza te ma soprattutto il calore prodotto.
a punta molto fine, del filo in lega saldante del dia- Completate lo shield montando, dal lato componen-
metro massimo di 0,5 mm (o pasta saldante) delle ti, gli strip femmina a pin lunghi che costituiscono
pinzette per posizionare i vari elementi, una lente gli header Arduino. Fate attenzione ai LED SMD,
d'ingrandimento per aiutarvi nel posizionamento e che sono delicati e non vanno sw-riscaldati, pena la
della pasta flussante da spalmare sulle piazzole per deformazione della resina che li iicopre.
favorire l'adesione dello stagno ai componenti. Sistemato lo shield applicatelo a una board Ardu-
Procurato il tutto iniziate il montaggio posizionan- ino UNO rev3 e collocate il tutto sulla piastra di
do i componenti più piccoli, ossia dalle resistenze e supporto poste1iore del braccio, fissandolo median-
dal diodo (che va orientato come indicato nel piano te colonnine distanziali in plastica alte 8 mm e viti
di montaggio visibile in queste pagine), proseguen- 3MA; connettete quindi i servocomandi ai pin-sh·ip
do con il regolatore, che va saldato sul PCB tenen- dello shield, tenendone i connettori verso il più vici-
dolo sollevato mediante pin-strip, lunghi anche solo no header. Invece, se avete dei servo con feedback e
1 cm, a passo 2,,54 nun, dal lato componenti. Passate quindi connettore single-in-line a 4 poli, collocateli
poi ai pulsanti, ai condensatori, ai transistor e ai come previsto. I fili dell'elettropompa a vuoto e
MOSFET, rispettando la polarità indicata (per i con- della valvola a tre vie (due per entrambi i disposi-
densatori elettrolitici, i BJT e i MOSFET) dal piano tivi) vanno collegati alle morsettiere OUTl e OUT2,
di montaggio, quindi inserite e saldate i pin-strip rispettando la loro polarità; siccome le predette
per i servo e l'ingresso SENS. Per l'ingresso di ali- uscite erogano una tensione di 5 volt, la pompa e
mentazione saldate la presa jack e per OUTl e OUT l'elettrovalvola devono essere a a 5 V.

62 Settembre 2018 - ELETTRONICA IN


IL MANIPOLATORE PNEUMATICO
Questo è quanto riguarda la parte
supporto mlcroswltch -

dlstan1lnle ABS 3xl9


- _ f

/: dlstllnzlalc ABS 3x3

i,. l ·
elettrica ed elettronica, tuttavia affinché
il braccio robotico esegua la manipola- ..:'
: guida
zione degli oggetti bisogna applicargli
al polso il manipolatore pneumatico
a ventosa, che si realizza assemblan- dfstantlale ABS 3•11

do due piastre in plexiglass da 3 mm


come mostrato nella Fig. 1 (dove vedete dado autoblocointe piastra Inferiore
"13
il corpo con applicata la scheda del
microswitch finecorsa, ma priva della
ventosa e del suo sostegno a molla)
mediante distanziali tubolari da 19
mm in plastica. Alla piastra superiore
in plexiglass va fissata la squadretta a
croce fornita col mini servo, utilizzando
4 viti autofilettanti 2x6 TB a croce. Nel Fig. 1 - Assemblaggio della testa pneumatica.
chiudere le due piastre va incastrato il
supporto per rnicroswitch, al quale va
fissato il circuito (COLLISIONSENS)

Servo
(Cod. SERV0213)

Servo
(Cod. SERV0213)

Servo
(Cod. SERV0213)

COLLISIONSENS
Servo
(Cod. SERV0206)

Cablaggio allo shield dei


servocomandi, della pompa a
depressione, della valvola a tre vie
(di cui in alto vedete le connessioni
pneumatiche: C è il comune, NA
quello comunicante a riposo e NC
quello chuso a r iposo) e dello switch
finecorsa per la ventosa. In questo
caso i servo sono a tre fili, ma lo shield
supporta il feedback di posizione
(contatto FB degli strip) nel caso
utilizziate quelli a quattro fili.

ELETTRONICA IN - Settembre 2018 63


Listato 1.=·
linclude <Braccio . h>
lìnclude <Servo . h>

fdefine pump 2
fdefine valve 4

Se rvo base;
Servo shoulder;
Servo elbow;
Servo wrist rot ;
Servo wrist=ver;
Fig. 2 - Il sensore Servo gripper;
microswitch applicato
allo stelo della Il the setup function runs once when you press reset
ventosa sulla Il or power the board
testa pneumatica. vo i d setup () I
Il initialize digi ta l pin LED_BUI LTI N as an output .
p inMode(pump, OUTPUT) ;
pinMode(valve, OUTPUT) ;

digitalWrite(pump, HIGH);
digitalWrite(valve, BIGH) ; //HIGH ASPIRA LOW RILASCIA
contenente il microswitch che rileva la compressio-
llFor each step motor this set up the initial degree
ne del sistema a ventosa. Nel chiudere il corpo deli-
mitato dalle due piastre ricordate che la forcella del-
la guida in plexiglass per il sistema a ventosa deve Braccio . begin () ;

essere orientata verso la linguetta del microswitch e


centrata rispetto al foro della piastra inferiore. Ora void loop()
//vado in posizione A
posizionate il polso all'estremità dell'avambraccio Braccio.ServoMovemen t(40 , 120 , 110 , 90, 100, 90, 90);
facendo combaciare i fori di entrambe le parti e Braccio . ServoMovement(40 , 120 , 60, 90, 100, 90 , 90);
delay(500) ;
fissarlo ali' avambraccio utilizzando una vite M3x35 Braccio . ServoMovernen t(40 , 120 , 60 , 90, 100, 90, 90 );
TB a croce, 4 rondelle piane 3x6, un distanziale in Braccio . ServoMovement(40 , 120 , 60 , 100 , 100, 90, 90) ;
ABS 3x15 e un dado M3 autobloccante. //mi abbassQ e dico no no
Braccio . ServoMovement(lO, 120 , 60 , 100 , 50, 90, 90);
Applicate il distanziale squadretta servo (in plexi- //no no
glass da 3 mm) sulla squadretta a croce mini servo Biaccio.ServoMovemen t(lO, 120, 60, 100, 150, 90, 90) ;
Braccio . ServoMovement(lO , 120 , 60, 100, 50, 90, 90);
montata sulla testa porta ventosa, posizionate a Biaccio . ServoMovement(lO , 120 , 60 , 100, 90, 90, 90);
metà corsa il perno del mini-servo del polso, quindi delay(l000);
Il vado in posizione Be mi abbasso
innestate su di esso la levetta doppia fissata sulla Braccio . ServoMoverne nt(40 , 120 , 110 , 90 , 100 , 90, 90) ;
testa porta ventosa in modo che quest'tùtima sia Braccio . ServoMovement(40 , 70 , 60 , 90 , 90, 90 , 90) ;
allineata con il polso. Braccio . ServoMovement(40, 70 , 60, 110 , 90, 90, 90);
//faccio partire la pompa
Fissate la testa porta-ventosa al perno del servo con digitalWrite(valve, BIGH);
la vite autofilettante 2x4 in dotazione al servo, quin- digitalWrite(pump, LOW) ;
dE!lay(lOOOl:
di applicate, alJ'estremità inferiore del supporto //mi alzo
ventosa, la ventosa più adatta alle vostre necessità. Braccio . ServoMovement(40, 70 , 60 , 90 , 90, 90, 90) ;
Braccio . ServoMovement (40, 70 , 110, 90 , 90 , 90, 90) ;
Applicate al terminale C dell'elettrovalvola un'e- Braccio . ServoMovement (40, 70 , 110, 90 , 50 , 90, 90) ;
stremità del tubetto in silicone fornito col kit.
Distendete e fissate il tubetto lungo il braccio in //Vado in posizione A
delay (1000) ;
modo che l'estremità libera possa raggiungere Br accio . ServoMovement(40, 120, 110, 90, 100, 90 , 90);
la testa porta-ventosa senza creare impedimento Br accio . ServoMovement(40, 120, 60, 90, 100, 90, 90);
delay (500) ;
ai movimenti. Per completare il lavoro, spingete Il mi abbasso
l'estremità del tubetto sul raccordo del supporto Braccio . ServoMovemen t( 40, 120, 60, 110 , 100, 90 , 90 );
/ / spengo la pompa
ventosa (tenendolo con una mano per evitare di far d igitalWrite(valve , LOW);
forza sulla testa porta-ventosa). Il tubetto in silicone di gitalWrite(pump, HI GH) ;
può essere eventualmente accordato ma prima è delay( 1000) ;
//mi alzo
necessario verificare che sia in grado di raggiungere Braccio.ServoMovemen t(40, 120, 90, 90, 100, 90, 90);
la testa porta-ventosa anche nelle condizioni più Braccio . ServoMoveme nt(40 , 120, 90, 90, 90 , 90, 90) ;
estreme.(massima e minima estensione del braccio, //Vado in posizione 8
ecc.) senza subire strozzature che ridurrebbero la de lay (lOOO J;
Braccio . ServoMoveme nt (40, 70, 60, 80, 90, 90, 90) ;
forza aspirante. Ora il montaggio delle parti mecca-
niche del braccio è terminato. Non resta che disten- (Continua)

64 Settembre 2018 - ELETTRONICA IN


l
-- - ----~
Braccio . ServoMovement (40, 70 , 60 , 100, 90 , 90 , 90 );
//Mi abbasso
de l a y(lOOO) ; eseguire in loop. Lo sketch è riportato nel·Listato 1
//e dico no no e sostanzialmente esegue la sequenza di posizio-
Bracci o . ServoMovement(lO , 70, 60, 100, 50, 90, 90) ; //no no
Braccio . Ser voMovement(lO, 70, 60 , 100 , 150 , 90 , 90 );
namento della testa pneumatica, passando dalla
Braccio . ServoMoveme nt(lO , 70, 60, 100, 50 , 90 , 90) ; posizione di partenza A, portandosi alla B (dove si
Braccio . ServoMovement(lO, 70, 60 , 100 , 90 , 90 , 90) ; trova il pezzo), facendo scendere la testa, azionando
//Wait 1 second
delay(l000) ; la pompa a depressione (l'elettrovalvola è a riposo,
//mi ria l zo e vado in posizione A grazie all'istruzione digitalWrite(valve, HIGH) e
Braccio . ServoMovement(40, 120, 110, 90, 100, 90, 90) ;
Braccio . ServoMovement(40, 120, 60, 90 , 100, 90 , 90 ); quindi risollevando la testa e portandosi di nuovo
delay(500) ; in posizione A, nella quale rilascia il pezzo atfraver-
//mi a bbasso
Braccio . ServoMovement(40, 120, 60, 90 , 100 , 90 , 90 );
so l'interruzione della depressione, operata alimen-
Braccio . ServoMovement (40, 120, 60, 110 , 100, 90, 90); tando l'elettrovalvola (digitalWrite(valve, LOW)
/le faccio partire la pompa e portando in OFF la pompa. Il tutto è ottenuto
digitalWrite(valve, HIGH) ;
digitalWrite (pump , LOW); sfruttando le librerie braccio.h e servo.h che gestisco-
delay(l000) ; no in toto i movimenti.
//mi alzo
Braccio . ServoMovement (40, 120, 90, 90, 100, 90, 90) ; Ogni istruzione ServoMovement determina lo
Braccio . ServoMovementC40, 120 , 90, 90, 90 , 90, 90 ); spostamento dei servocomandi che devono essere
scritti tra parentesi, separati dalla virgola e prece-
//Wait 1 second duti dal tempo impiegato a compierli. Ad esempio
delay(l000) ; (40, 120, 110, 90 ecc.) indica che le posizioni in gradi
//vado in pos B
Braccio . ServoMovement(40, 70, 60, 90 , 90, 90 , 90) ; devono essere raggiunte in un tempo pari a 40.
Braccio . ServoMovement(40, 70, 60, 110, 90 , 90 , 90 );
digitalWrite(valve , LOW) ;
digitalWrite(pump, HIGH) ;
CONCLUSIONI
//dico no no Il progetto qui descritto è un'applicazione scalare,
delay(l000) ;
Braccio . ServoMovement (40, 70, 60, 90 , 90 , 90 , 90) ;
nata come demo delle possibilità di manipolazione
Braccio . ServoMovement(40, 70, 110, 90, 90 , 90 , 90 ); offerte dal nostro braccio robotico, ma estensibile a
Braccio . ServoMovement(40, 70, 110, 90 , 50 , 90 , 90 ); qualsiasi applicazione e a qualsiasi tipo di braccio
//Wait 1 second
:} robotico simile per gradi di libertà e attuazione.
: .........................................................................................
Si tratta solo di mettere mano al firmware e parten-
do da questa base si possono realizzare applicazioni
complesse, che escono dal mondo della didattica,
dere ed eventualmente prolungare (con cavi M/F) per approdare al professionale. •
i cavetti elettrici di ciascun servo in modo da fargli
raggiungere la scheda di controllo senza interferire
con le parti in movimento.
Il sensore di finecorsa va collegato con una prolun- per il MATERIALE
ga M/F da 60 cm.
Il materiale necessario per realizzare questo progetto
IL FIRMWARE è in vendita presso Futura Elettronica. Il kit per il siste-
Ora è il momento di approcciare agli aspetti ma di p resa e rilascio con ventosa (cod. PEPARM) che
firmware descrivendo lo sketch che abbiamo prepa- comprende pompa , elettrovalvola, microswitch, cavi,
rato ad-hoc per far funzionare il braccio robotico e tubi e ventosa è disponibile a Euro 45,00. Lo shield per
spiegandovi come impostarne i parametri allo sco- Arduino per il controllo dei servo (cod. FT1397M) è di-
po di far eseguire al braccio i movimenti desiderati. sponibile a Euro 24,50 e la board Arduino UNO REV3
Il firmware comprende una serie di sezioni che (cod. ARDUINOUNOREV3) a Euro 24,50. Ricordiamo
descrivono il movimento, inteso come rotazione del inoltre che, sempre da Futura Elettronica, è disponibile
servo e tempo impiegato ad ottenerla, una per cia- il kit con tutta la meccanica e i servo per realizzare il
scuno dei servo che lo shield può gestire, quindi 6. braccio robotico (cod. ROBOARM) al prezzo di Euro
Per realizzare una sequenza, basta quindi persona- 89,00- I prezzi si intendono IVA compresa .
lizzare tali parametri e allo scopo ricordate che biso-
gna far compiere i movimenti fino all'angolazione
desiderata per ciascun servo, registrare l'angolazio-
ne, quindi collegare Arduino a PC, editare para-
metri dello sketch, quindi ricaricare lo sketch e far

ELETTRONICA IN - Settembre 2018 65


~- La tè'nsione giusta -.~::.~ . .., ...~ ·-"''"'

per ogni prog·ettC>! . . >, ..;


I
·. ·- ··.-_-...
.
•.# .... ,
,

Scegli il convertitore di tensione DC-DC che meglio si adatta alle tue esigenze. '":'~,
.. : · .'.'.dl~,·_-., - '-.. . e""'
"
CONVERTITORI
STEPDOWN DC-DC
Fishmograph permette di monitorare con precisione i terremoti
che coinvolgono la nostra abitazione utilizzando il sensore 075,
notificandoci tramite email gli eventi rilevati, consentendoci
di mettere in sicurezza persone e cose.

FISHMOGRAPH
IL TUO PRIMO
SISMOGRAFO
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • di ALESSANDRO PASQUALINI

L ,Italia uno dei paesi del Mediterraneo con


è
più alto rischio sismico e questo primato poco
il numero elevatissimo di terremoti che ogni giorno
si verificano nel nostro Paese, che però, fortunata-
invidiabile lo deve alla sua disposizione geogra- mente, per la maggior parte sono di cosl lieve entità
fica, che è a cavallo tra la zolla africana e la zolla da poter essere rilevati solo strumentalmente, men-
euroasiatica (ci riferiamo alla teoria della Tettonica tre una piccolissima percentuale ha un'intensità tale
a zolle); questa "scomoda" posizione è la causa del da causare danni a persone o cose.

ELETTRONICA IN - Settembre 2018 67


Le apparecchiature elettronìche sono molto sensibili IL PROGmo
agli eventi sismici che possono danneggiarle, anche Fishmograph è basato su Fishino 32 e sull'ottimo
in modo irreparabile, quindi in caso di evento sensore lowcost D7S sviluppato dalla Omron.
sismico di intensità rilevante la soluzione ideale Questo sensore, precedentemente presentato e ana-
sarebbe avere un dispositivo capace di rilevare lizzato sulle pagine di questa rivista nel numero 222,
i terremoti di forte intensità e di decidere auto- garantisce un elevato grado di precisione nella rile-
nomamente quando staccare i nostri apparecchi vazione di terremoti e possiede l'utilissima funzio-
dall'alimentazione, prevenendo ulteriori danni. ne di valutazione automatica del livello di pericolo
Si possono facilmente immaginare i problemi e i presentato dal terremoto per le apparecchiature
pericoli causati dalla caduta di un traliccio dell'alta elettronìche, emettendo il segnale di "shutoff" nel
tensione, oppure, entrando nell'ambito domestico, caso in cui l'intensità sia uguale o superiore a 5
dai danni subiti dalla tubatura della fornìtura del nella scala di intensità JMA Gapan Meteorologica!
gas naturale o dall'impianto elettrico; tali proble- Agency) oppure emettendo invece il segnale di "col-
matiche potrebbero essere evitate agendo tempe- lapse" se rilevata una variazione nella sua posizione
stivamente sugli impianti e mettendoli in sicw·ezza fisica (probabile collasso del terreno).
prima che possano trasformarsi in un pericolo. Il nostro progetto è composto anche da una webapp
Nel caso delJa tubazione del gas si può spegnere nella quale è possibile visionare lo storico delle
un'elettrovalvola installata a monte e per l'impianto rilevazioni oppure agire sulla configurazione del
elettrico è possibile agire su un sezionatore co- sensore stesso, inizializzandolo oppure eseguendo
mandato elettricamente. Fishmograph (il progetto la procedura di autodiagnostica capace di rilevare
qui descritto) nasce proprio da questa esigenza e eventuali guasti interni. Un'altra importante fun-
permette di monìtorare con elevata precisione gli zionalità offerta dalla webapp è la registrazione dei
eventi sismici che coinvolgono la nostra abitazione, destinatari delle notifiche email emesse da Fishmo-
notificandoci istantaneamente l'inizio di un terre- graph in presenza di un terremoto.
moto e l'eventuale raggiungimento della soglia di
pericolo, ovvero ricordandoci di spegnere le nostre CONFIGURAZIONE E INSTALLAZIONE
apparecchiature e limitando i possibili danni. Per poter utilizzare Fishmograph è necessario
aggiornare Fishino 32 all'ultima versione dispo-
nibile del firmware e scaricare l'ultima release
delle librerie, in quanto è presente un fix per l'RTC
integrato, utilizzato in questo progetto. È altresì
importante installare nell'IDE di Arduino la libreria
D7S, che consente di pilotare il sensore omonìmo, e
la libreria SMTPClient, che permette l'invio delle
notifiche email.

Fig. 1 - Schema di collegamento


del sensore D 7S su breakout
board alla nostra scheda Fishino 32.

68 Settembre 2018 - ELETTRONICA IN


Il--- 07S ---
l/07S interrupt p i n
#de ttne INTI PIN 3 /lpi n CO which I NTl is attached
ldeline I NT2=PIN 5 llpi n to which INT2 is attached

Il--- Network ---


//AP authenticat ion
tdeline MY SSIO "ssidH I /SSIO
tdefine MY=PASS "password" //password
//IP Addresses
tdeflne IPADOR 192, 168, O, 200 //IP of the server
ldefine GATEWAY 192, 168, O, l //Gateway of the network
tdeline NETMASK 255, 255, 255, O /INetmask of the network

Il--- Webapp ---


llWebapp default password
#doline WEBAPP_OEFAULT_PASSWORO "lishl23";

Il--- Email notHicacions ---


//Uncomment t he line below to enable e mail notifications
ldeline ENABLE EMAIL NOTIFICATION
//SMTP server-infomation
//Remember : if you use a server that require TLS you need a client capable secure connections
tdefine SMTP SERVER "smtp.qmail.com" //SMTP server
tdeline SMTP-PORT 465 //SMTP server port
//SMTP autherntication
tdefine SMTP_LOGIN "your email encoded in base64" //username encoded in base64
fdeCJne SMTP_PASSWO "your password encoded in base64" //password encoded in base64
//Email sender info
#define SMTP FROM Nl'IME "Fishmograph" //Sender narne
ldeline SMTP=FROM=EMAIL "sender@e xa mple . ext" //Sende r email

Il-- - Genera! ---


// Time for which the notilication is valici . &xpired this time the notification will be not sent
fdeflne NOTIFICATION VALIDITY TIME 120000 // t ime in ms (2 minutes)
tdeline EMAIL_NOTIFICATION_l1AIT_TIME 10000 //time to wait in ms before check for email notUications co send

Il collegamento del sensore a Fishino 32 è visibi- caria accedendo alla relativa pagina all'interno della
le nella Fig. 1, dalla quale vedete che dobbiamo stessa webapp.
connettere i pin INTl e INT2 a due pin di Fishino Per impostazione predefinita, le notifiche via e-mail
32 capaci di gestire interrupt e collegare il bus I2C e sono disabilitate e per abilitarle è necessario "de-
l'alimentazione. È consigliabile utilizzare anche una commentare" ENABLE_EMAIL_NOTIFICATION e
batteria LiPo capace di mantenere alimentato Fish- inizializzare le costanti successive con i dati relativi
mograph anche in condizioni di blackout, garan- al server SMTP utilizzato; ricordiamo che decom-
tendo la continuità della procedura di rilevazione; mentare significa rimuovere la doppia barra (//) che
naturalmente le notifiche via e-mail non possono precede l'istruzione, in modo che Fishino la inter-
essere inviate per l'assenza della connessione. preti come un'istruzione e la esegua.
Dopo il collegamento dobbiamo copiare nella Nel nostro esempio abbiamo utilizzato Gmail, ma
root di una scheda di memoria microSD il codice per consentire a Fishino 32 di utilizzare questo ser-
relativo alla webapp ed inserirla nell'apposito slot ver SMTP dobbiamo abilitare le "app meno sicure"
di Fishino 32; la scheda verrà utilizzata anche come nel nostro account Google, collegandoci all'indiriz-
storage per i dati relativi all'applicazione, ovvero zo https://myaccount.google.co111/l.esssecureapps e, nella
lo storico delle rilevazioni e la lista dei destinatari pagina web che si apre nel browser, ponendo lo
delle notifiche e-mail. slider corrispondente in posizione attiva (Fig. 2).
A questo punto possiamo procedere con la confi- Una volta abilitato l'accesso di Fishino al .nostro
gurazione dello sketch; nel Listato 1 è riportata la account Google, dobbiamo codificare in Base64 il
porzione di codice adibita a questo scopo. nostro indirizzo di posta elettronica, ovvero il nome
INTl_FIN e INT2_PIN indicano rispettivamente account completo di @gmail.com (ad esempio,
i pin di Fishino 32 ai quali sono state connesse le pippo@gmail.com), che verrà utilizzato come nome
uscite INTl e INT2 del sensore 075; WEBAPP_DE- utente nella comunicazione con il server SMTP, e la
FAULT_PASSWORD è la password predefinita password di accesso al nostro account. Per fare ciò
della webapp ed è naturalmente possibile modifi- possiamo, eventualmente, usufruire di un servizio

ELETTRONICA IN - Settembre 2018 69


• G Apci meno tlc:'Ure

(- C 0 lii Sicuro https./.'myaccount.google.comilesssecu'l!a,lOtt

Go gle o :..

r,1cuni dls.pos11,v1 e app utìhZZ.lno una tecnolt>g:1a d1 aoc es~o men:> s1c"'r.a, che rende p1u vulnerabile " tuo
;u;i:ount Puoi dis:o:>ttivarc I aG,.esso pet queste app (soltmone col's19ha10) oppure attlv;irc l occcszo se
d1.,'S1dcu u11nua1h nonostàntl! 1r1sc.;-l11 Ul1et100 mCotmilZ•om

Consenti app meno sicure: ON


Fig. 2 - Schermata visualizzata ne//'abifitazione de/le "app meno sicure" ne//'account Goog/e.

on-line molto comodo, accessibile all'indirizzo il cuore di questo progetto, permettendo di gestire
http://www.base64encode.org, che ci permette di codi- completamente sia il sensore D7S sia il sistema di
ficare in Base64 senza dover installare alcunché nel notifiche email, impostando differenti destinatari.
nostro computer. L'output codificato dell'indirizzo Collegandoci all'indirizzo IP impostato nella
e-mail e della password va copiato rispettivamente configurazione di rete di Fishmograph, ci appare la
in SMTP_LOGIN e SMTP_PASSWD. schermata di accesso che protegge l'intero sistema
SMTP_FROM_NAME e SMTP_FROM_EMAIL cor- da accessi non autorizzati; il primo accesso andrà
rispondono al mittente delle e-mail di notifica. Se si effettuato utilizzando la password predefinita nella
utilizza Gmail è obbligatorio inserire esattamente il fase di configurazione.
proprio indirizzo di posta elettronica completo in Dopo aver effettuato il login, la webapp ci rein-
quest'ultimo campo, mentre nel precedente è possi- dirizza automaticamente alla pagina contenente
bile inserire qualsiasi nome ci aggrada, ad esempio lo stolico delle rilevazioni comprendente anche
Fishmograph può essere w1a buona scelta. informazioni sull'evenh1ale raggiungimento delle
Arrivati a questo punto possiamo caricare lo sketch condizioni di "shutoff" e di "collapse", mostrando-
all'inten10 del nostro Fishino 32 e collegandoci ne in caso positivo l'orario e la data dell'emissione
all'indirizzo IP, impostato nei parametri di connes- del segnale da parte del sensore D7S.
sione WiFi, vedremo apparire la webapp (il carica- Cliccando su D7S Readings è possibile visualizzare
mento iniziale della webapp potrebbe riclùedere le rilevazioni prelevate direttamente dal sensore,
qualche secondo, dovuto alla dimensione d ei file suddivise nelle cinque più recenti e nelle cinque di
che il browser deve scaricare prima di iniziare la intensità maggiore.
sua interpretazione). Per verificare se Fislunograph Email Alerts permette di gesti.i-e l'elenco dei desti-
funziona correttamente possiamo configw·are un natari delle notifiche e-mail. Il limite massimo di
destinatario all'interno della webapp e muovere il destinatari che possono essere inseliti è 10, questo
sensore D7S finché non rileva il "finto terremoto" limite garantisce di non sovraccaricare la memoria
da noi causato, se riceviamo una notifica nella no- del Fishino 32, rischiando eventuali comportamenti
stra casella email il sistema ftmziona correttamente. imprevedibili.
Per rendere migliore l'affidabilità del sensore, è Nella pagina Settings è possibile gestire il sensore
opportw1o che l'intero progetto sia rigidamente D7S inizializzandolo, ovvero acquisendo gli offset
ancorato al pavimento, oppure saldamente attacca- deU'accelerometro interno rispetto alla sua posizio-
to al muro attraverso un'asta metallica; da evitare ne, eseguendo un test di autodiagnostica oppure
l'inserzione tramite il pin-strip (perché l'ancoraggio cancellando i terremoti che ha memolizzato. Il tab
meccanico non è rigido abbastanza) e collegare la User consente di modificare la password di accesso
scheda mediante fili. alla webapp, mentre il tab Generai consente di eli-
minare lo storico delle rilevazioni visionabile nella
WEBAPP pagina Earthquakes. Nel caso in cui si verifichi un
La webapp (il cui codice è visibile nel Lis tato 2) è terremoto menh·e siamo connessi alla webapp, ve-

70 Settembre 2018 - ELETTRONICA IN


~~----- ..... .......... ._...,......................................... ................. .-............................. ...-........................ .. -. ............ :
.......-

Listato 2 - La webàl(~1t l

//Va r iable used to handle the web sess i on


l ong s e ssionID = - 1; llident i ficator of t he web sessi on (only positiv e number are valici s e ssion ID)
bool isUserLogged • false ; //if true the user is l ogged in
//Sta rt a web s e s s ion
void startSession(FishinowebServer &web)
//intialize the session cookie value
long cookie Se s sionVa l ue = - 1;
//read the session cookie
c onst char *cookieSession = web . getHeaderValue( "Cookie" ) ;
//if t he req uest has send a cooki e
if (cook ieSession != O) {
cookieSessionValue = atoi(cookieSession +8) ;
I
//check if the value of the cookie is different from the session ID we are currently hand ling
if (cookie Sessi onValue < O 11 cooki eSess i onVa lue != sessionID) {
sessionID • RTC . now(J . getUnixTime() ; //using timestamp for uniqness
l/res e t isUserLogged session variable
is UserLogged = false ;

//Send the web session cook ie


void send SessionCookie(Fishi noWebServer &web) {
//we need to send the "s e t - cooki e" header with the cookie containing t he session ID
char cookie [SOJ ;
sprintf(cookie, "sessi on=%d; Path=/" , sessionlD) ;
sendHTTPHeader(web, F( "Set-Cooki e") , cookie) ;

bool loginHandler(Fi sh i noWebSe rve r &web)


//start the session handling
startSe ss i on(we b) ;
//if the user is already autenticated we do not parse the body of the request
if (isUse r Logged ) (
send HTTPStatuscode(web , 204) ;

Il t he use is not autenticated and we need to handle the body of the reque$t
) else (
FishinoClìen t c l ient = web . getCliènt() ;
/lgetting the body of the r e que s t
char body[ c lient . available(J +l] ;
int i = O;
while (client. available () && i < 300)
body[ i ++J = (cha r) client . read() ;
I
body[i) = O;

/lparsing the request


StaticJ sonBuffer<200> jsonBuffer;
JsonObject& req uest = jsonBuffer . parse Object(bodyJ ;

//the body of the request is incorrect


if ( ! request . success () I I ! r equest . containsKey ("password"))
sendHTTPStatusCode(web, 400) ;

else (
//getting the password from the body
const char *password request[ " password"J;

l/if the password is correct


if (st r cmp (passwo r d , ge t UserPassword()) s= 0 ) {
l/the login is successful
isUserLogged = true ;
//send status code
sendHTTPStatusCode(web, 204);

Il the passwor d is incorre ct


I else {
sendHTTPStatusCode (web, 401) ;

//send the session "set- cooki e " header


sendSessionCookie(web) ;
sendHTTPHe ade r(web, F( "Cont ent-Type"l , c("ap plication/ j son") ) ;
web . endHeaders() ;

return true;

ELETTRONICA IN - Settembre 2018 71


• [) Flthmogr1ph

~ e o CD Non »curo 192.168.0.200 9o

>w+
ftshmograph

e lii*

Fig. 3 - Pagina di login della webapp.

dremo apparire delle notifiche nella paiie superiore nomissioni che posso compromettere il corretto
della pagina indicati l'evento che le ha generate. funzionamento del progetto.
La webapp è stata sviluppata utilizzando HTML, Per garantire al web server, nel nostro caso Fishino
CSS3 e AngularJS, un framework Javascript che 32, questa capacità, dobbiamo introdurre i concetti
permette di realizzare applicazioni single-page di session ID e web session.
asincrone, ovvero di variare il contenuto della pa- Un session ID non è altro che un codice identificati-
gina mostrata dal browser senza che l'utente debba vo univoco che il server genera e associa all'utente
attendere il refresh della stessa. Il caricamento del attualmente connesso e che permette al server di
nuovo contenuto avverrà "dietro le quinte" da par- ricostruire lo stato dell'utente osservando la web
te del browser e AngularJS si occuperà di sostituirlo session collegata a quello specifico ID. L'utente, o
a quello vecchio, popolandolo con i dati necessari, meglio il browser dell'utente, riceve questo codice
eventualmente scaricandoli dal web browser sem- da parte del web server sotto forma di cookie nella
pre asincronicamente. risposta della richiesta HTTP; il browser si occupe-
rà di conservarlo e di allegarlo ad ogni successiva
WEB SESSION CON FISHINO richiesta garantendo il funzionamento delle sessioni
Tutti i servizi on-line impongono la necessità di web.
riconoscere l'utente e mantenere lo stato delle sue Nel Listato 2 abbiamo riportato parte del firmware
azioni, cosa essenziale nel web dinamico, dove i di Fislunograph, concentrandoci sulle porzioni che
contenuti deUe pagine web sono costruiti dinami- gestiscono direttamente la sessione.
camente dal server rispettando le esigenze dello La funzione loginHandler è l'handler passato all'i-
specifico utente. stanza della classe FishinoWebServer (non mosh·ato
Possiamo pensare a tutti i siti che ci richiedono LU"\ in questo spezzone di codice) che gestisce le richie-
login e mosh·ano dei contenuti relativi alla nostra ste che arrivano all'endpoint /log in.
utenza, come i nostri profili social oppure il nostro La prima funzione incontrata è startSession, la
store online preferito. quale ilùzializza la sessione, verificando se nella
Non sarebbe molto gradevole ritrovarci addebitato richiesta è presente un cookie contenente l'identi-
sulla nostra carta di credito l'acquisto effettuato da ficativo di sessione dell'utente; se il cookie non è
un estraneo, solamente perché il web server non è presente l'identificativo viene generato.
stato capace di riconoscere l'utente connesso in quel Per la generazione ci siamo avvalsi del timestamp
momento. Anche Fishmograph necessita di ricono- prelevato dall'RTC integrato per garantire un iden-
scere l'utente connesso perché riclùede un processo tificativo sempre diverso; naturalmente è possibile
di login prima di accedere alla parte di controUo, generarlo in qualsiasi modo, l'importante è man-
proteggendo, di conseguenza, da possibili ma- tenere l'univocità. Solamente se la sessione è stata

72 Settembre 2018 - ELETTRONICA IN


Simple Mail Transfert Protocol (SMTP)
L'SMTP nasce dall'esigenza di creare un protocollo stan- indipendente dall'infrastruttura, è alla base del suo successo
dard per l'invio di e-mail, che prima dipendeva da soluzioni e prevede l'invio di comandi, con una grandissima assonan-
proprietarie che spopolavano tra gli anni '60 e gli anni '80. za ai termini di uso quotidiano, da parte del client al server;
Questo protocollo venne pubblicato nel 1981 (RFC 788) quest'ultimo risponde con dei messaggi di stato indicanti se
e fu subito accolto con grande entusiasmo, tanto che nel l'operazione è andata a buon fine.
giro di pochi anni videro la luce numerosissime sue imple- La sempl icità, cosa che contraddistingue quasi tutti i proto-
mentazioni. Il protocollo è stato s uccessivamente rivisto nel colli sviluppati in quegli anni, è tale da permettere l'invio di
2008 con l'introduzione dell'ESMTP (Extended Simple Mail e-mail utilizzando solamente il nostro terminale o il prompt di
Transfert Protocol). Il suo funzionamento, molto semplice e comandi.

generata, l'unica variabile di sessione (isUserLog- COME FISHINO INVIA LE E·MAIL


ged) viene inizializzata a false. Fishmograph utilizza delle email per notificare gli
Procedendo nel codice si può notare il recupero eventi generati dal sensore D7S avvalendosi di una
delle credenziali dal corpo della richiesta, la verifica libreria chiamata SMTPClient, che semplifica il
della loro correttezza e l'aggiornamento del valore dialogo tra il Fishino 32 e il server SMTP utilizzato.
della variabile isUserLogged. La libreria utilizza il protocollo ESMTP (Exten-
Infine viene chiamata la funzione sendSessionCo- ded Simple Mail Transfert Protocol), ovvero
okie, incaricata di inserire nella risposta un cookie un'estensione del protocollo SMTP, che permette
contenente l'identificativo di sessione. l'autenticazione dell'utente e di conseguenza di
Il codice mostrato consente di gestire, p erò, una poter comunicare con tutti i server che lo rendono
singola sessione, ovvero se un utente è attualmente obbligatorio, come ad esempio Gmail.
connesso e un altro si connette alla webapp, il pri- Nel Listato 3, fornito come esempio all'interno del-
mo viene automaticamente disconnesso. la libreria stessa, vediamo come è possibile com-
Non è stata implementata una gesti,one multi- pilare un messaggio di posta elettronica in tutte
sessione per evitare di appesantire ulteriormente le sue parti ed inviarla. La cosa fondamentale è
lo sketch, giacché occorre prevedere il salvataggio utilizzare il client corretto, perché per collegarci a
degli identificativi, insieme al valore delle variabili server quali Gmail, che obbligano una connessione
di sessione, su memoria microSD. cifrata TLS, è necessario utilizzare un client capace

IJ Fi•hmOOC•Ph

(-- C 0 0 Non sicuro 192.168.0.200 #!1••r:hquakes

1\A' Earthquakes Registered

fishmograph

07S Readlngs 11 Date SI PGA Temperature Shutofl Collapsa

1 //03/2018 13.3801 015ml> &24 mts• 22·c 17/031201813.38-54 No

2 17/03/201813A2.3o 0151 m/s n·c 11/031201813'42.53 No

Serungs 3 17/0312018152450 0042 m/s I nmJs~ 22·c No No

Slgn out

Fig. 4 - Pagina della webapp contenente lo storico delle rilevazioni.

ELETTRONICA IN - Settembre 2018 73


#include <Fishino.h>
#include <SPI.h>
#include <SMTPClient . h>
11 DATI DI CONFIGURAZIONE -- ADATTARE ALLA PROPRIA RETE WiFi ! ! !
#ifndef ~MY_NETWORK_H
11 inserire qui lo ssro· della rete vliFi
#define MY._SSID " "
Il inserire qui la PASSWORD della rete Wi Fi -- Usare "" se la ret:e non 'i;. " protetta
tdefine MY_PASS " "
Il here put required IP address (and maybe gateway and netmask!) of your Fishino
Il comment out this lines if you want AUTO IP (dhcp)
Il NOTE : if you use auto IP you must find it somehow !
Il inserire qui l ' IP desiderato ed eventualmente gateway e netmask per il fishino
Il commentare le linee sotto se si vuole l'IP automatico
Il nota : se si utilizza l ' IP automatico, occorre un metodo per trovarlo !
lldeiine IPADDR 192 , 168, l , 251
fdeflne GATEWAY 192 , 168 , l, 1
fdefine NETMASK 255, 255, 255 , O
#endif
Il--- SMTP server settings ---
/IGMAIL
Il You will need a secure client to use Gmail on port 465 because it requires TLS .
Il You need also to enable less secure apps from https : l/myaccount . google . comllesssecureapps
lldefine SMTP_SERVER "smtp .gmail.com"
l!define SMTP PORT 465
llSMTP2GO -
Il You just need a normal client because the connection to server is not secure
lllldeJine SMTP_AODRESS "mail .smtp2go .com"
ll#define SMTP_PORT 2525
Il --- SMTP AUTH (must be in base64) ---
ltdefine SMTP LOGIN ""
tdefine SMTP-PASSWD
Il FINE CONFIGURAZIONE Il
I I define ip address i f r equ ired
Il NOTE : if your network is not of type 255 . 255 . 255.0 or your gateway is not xx.xx . xx.!
Il you should set also both netmask and gateway
iifdef IPADDR
IPAddress ip (IPADDR) ;
ilifdef GATEWAY
IPAddress gw(GATEWAY);
telse
IPAddress gw(ip[O J , ip[l] , ip[2] , 1);
iendif
Hfdef NETMASK
IPAddress nm(NETMASK);
telse
IPAddress nm(255 , 255, 255, 0);
ltendif
#endif

Il Use FishinoSecureClient class to create TLS connection


FishinoSecureClient client;
Il Use FishinoClient class to create connection
llFishinoClient client;
void prinUlifiStatus () {
Il print the SSIO of the network you ' re attached to :
Il stampa lo SSID della rete:
Serial . print("SSID: ") ;
Serial . println(Fishino . SSID());
Il stampa l ' indirizzo IP della rete :
IPAddress ip = Fishino.locall? ();
Serial.print ("!E' Address: ");
Serfal.println(ip);
Il stampa la potenza del segnale di rete :
long rssi = Fishino . RSSI();
Serial.print ("signal strength (RSSI) :") ;
Serial .print(rssi );
Serial.println( " dBm");

void setup() {
Il Fishino connection stuff
Il Init i alize serial and wait for port to open

(Continua)

74 Settembre 2018 - ELETTRONICA IN


-------------· ·---~----~-----~-··---~·--··-···-········ ·· ·
Listato 3 - Segue '\.
Il In izializza la porta seriale e ne attende l ' apertura
Serial.begin(ll5200) ;
Il necessario solo per la Leonardo
while (!Serial) ;
Il inizializza il modulo SPI
SPI . begin ();
SPI . setClockDivider (S PI_CLOCK_DIV2) ;
Il resetta e testa il modulo WiFi
Serial<< F( " Reset WiFi module ... ") ;
Fishino.reset();
Serial « F("OK\n");
Il imposta la modalita stazione
Fishino.setMode(STATION_MODE);
Il Inizializza la connessione WiFi
Serial<< F("Setting up the Wifi connection\n");

Il t enta la connessione tinche non riesce


while(!Fishino.begin(MY SSID, MY PASS))
Serial « F ("ERROR CONNECTING TO AP, RETRYI)'IG .... \n");
Il imposta l ' IP statico oppure avvia il client DHCP
iifdef IPADDR
Fishino . config(ip, gw , nm );
J!else
Fishino . staStartDHCP();
llendif
Serial << F ("Waiting for IP .. ") ;
while(Fishino . status() != STATION GOT IP)
I - -
delay(500J ;
Serial<< ".";
)
Serial<< F("OK\n");
I l stampa lo stato dell a connessione sulla porta seriale
printWifiStatus(J ;
llSMTPClient stuff
11 Create an St1TP client
SMTPClient smtp(client, SMTP SERVER, SMTP_PORT) ;
Il Connect to the SMTP server
smtp . connect () ;
Il EHLO command
smtp . ehlo("friend");
I l AUTH LOG I N command
smtp . authLogin(SMTP_LOGIN, SMTP_ PASSWD) ;
I l MAIL FROM command
smt:p . mail From("sender@example.com"); Il From
Il RCPT TO command
smtp.rcptTo("someone@example . com"); Il To
smt:p . rcptTo("someoneelse@example.com"); Il To
smtp.rcptTo("another@example. com") ; Il CC
smtp . rcptTo("secret@example .com" ); Il BCC
Il DATA command
smtp. dat:a ();
Il Setting some headers
smtp.header("From" , "Some Sender <sender@example . com>"); I l From
smtp . header("To", "Someone <someone @example . com>, Someone El se <someoneelse@examp le . com>"l;
smtp.header("CC", "Another <another@example.com>"l;
smtp.header ("Subject", "Hello there");
smtp .body ("Email sent from Arduino/ESP8266/Fishino ! " ) ;
smtp .flnishData ();
smtp . quit () ;

void loop() {

di gestire una connessione protetta. tamente arbitrario, anche se il protocollo prevede-


Dopo la connessione al server si procede a invia- rebbe di comunicare l'identità del client.
re il comando EHLO, equivalente di HELO di Dopo aver proceduto all'autenticazione, utilizzan-
SMTP, ma indica al server che vogliamo utilizzare do username e password codificati in Base64 come
ESMTP. Il contenuto di questo comando è compie- mostrato precedentemente, si inserisce la mail del

ELETTRONICA IN - Settembre 2018 75


• • /dev/cu.usbmodem1411
Invia
--- Init Fishino ----
Resetting Fishino ... OK
Connecting AP ... OK
Waiting IP .......... OK
IP address: 192.168.0.200
--- !nit RTC ----
Ini tializing·... OK
--- !nit SO Card ----
Preparing SD ... OK
--- Init Web server ----
Initial izing ... OK
--- !nit 07S ----
Starting D7S ... OK
Initializing the 07S sensor in 2 seconds. Keep it steady!
Initializing D7S ....... OK

Fishmograph readyl
Initializing ... ...... OK
Selftest ...... OK
Earthquake started!
Shutoff!
Earthquoke ended!
Earthquake startedl
Shutoffl
Earthquake ended!

f2 Scorrimento automatico Entrambi (N L& CR) 9600 baud Clear output

Fig. 5 - Output del Monitor Seriale relativo a Fishmograph.

mittente e gli indirizzi dei destinatari, indipenden- potenzialità e.gli eventuali casi di utilizzo a prote-
temente se essi siano CC o CCN (in inglese BCC). zione delle nostre apparecchiature elettroniche.
Il contenuto del messaggio, preceduto dagli hea- Una possibile evoluzione del progetto potrebbe es-
der, è inserito dopo aver invocato il metodo data, sere l'aggiunta di un relé utilizzato per scollegare
che indica al server l'inizio del messaggio. l'alimentazione nel caso in cui il sensore rilevi una
È interessante notare come il destinatario CCN condizione di pericolo e generi, di conseguenza, il
non venga inserito all'interno degli header conte- segnale di "shutoff" o di "collapse".
nuti nel messaggio, ma riceverà comunque il mes- Il progetto è stato anche l'occasione per esporre i
saggio perché incluso nei destinatali. Terminato fondamenti della gestione di una sessione web e
l'inserimento del contenuto del messaggio, attra- l'invio di e-mail da Fishino: tutti concetti che po-
verso il metodo finishData è possibile procedere trete trasferire a vostre applicazioni anche diverse
all'invio del messaggio di posta elettronica. Ogni da Fishmograph. •
comando utilizzato in questo esempio restituisce
un codice di stato che indica se l'operazione è
andata a buon fine oppure se ci sono stati errori per il MATERIALE
permettendoci di interrompere prematuramente
l'invio della e-mail.
La libreria mette a disposizione anche una classe I componenti necessari per realizzare questo . proget-
contenitore per compilare velocemente una e-mail, to sono disponibili presso Futura Elettronica. La bo-
senza doversi preoccupare di gestire manualmente ard Fishino32 a 32 BIT (cod. FISHIN032) è in vendita
tutti i comandi con i relativi codici di stato; all'in- a Euro 59,00 e la Breakout con sensore di terremoti
terno degli esempi contenuti nella libreria è possi- (cod. BREAKOUT019) è disponibile a Euro 48,00. I prez-
bile trovare uno sketch di esempio che ne mostra il zi si intendono IVA compresa.
funzionamento.

CONCLUSIONI
Fishmograph è un esempio di applicazione del
sensore di terremoti D7S capace di mostrarne le

76 Settembre 2018 - ELETTRONICR IN


Fishino
Design With Simplicity
I TUOI PROGETTI
DIVENTANO WIRELESS
~~'!.~~·~
"·. 'I!'
cod. FISHINOUNO cod. FISHINOMEGA

36,oo
" •••• cod.


FISHINO UNO

-
Alimentazione:
da 7 a 12 Vdc (tramite plug)

:
/ FISHINOUNOBOX ...

:· € 4,90 \'&
~

};!!
€ € 49,90
- 5 Vdc (tramite porta USB) ..~
..·~
• Compatibile al 100% con - ..... ·· ~T
Arduino UNO ON\\
• Modulo WiFi
• Interfaccia per scheda MicroSD
• Modulo RTC con batteria di mantenimento
• Sezione di alimentazione a 3,3 V potenziata
• Compatibile con shleld e schede mìllefori
• Peso 25 g
• Dimensioni 76,5 x 53,5 x 14 mm

~~!.~.
~ ... •
~~./!
cod. •• •• ~
j/ FISHINOMEGABOX\ ~
111 : € 5190 \'&
..t_ ~ I
I~
.:fii
•. I ..... , ,

FISHINO MEGA ··.liiii--~~


• Alimentazione:
- 3,6 Vdc (tramite batteria esterna al litio)
- da 3,5 a 20 Vdc (tramite plug)
-~~!.~~~·~
,,,,.~;
ood. ····'~
- 5 Vdc (tramite porta USB)
~/ A SHIN032BOX ••••• ~ • Circuito di ricarica per batteria al litio
I/ € 4,9o \'& • Compatibile al 100% con Arduino MEGA
• Modulo WiFi

~ ..../ /
• Interfaccia per scheda MicroSD
FISHIN032 • Modulo RTC con batteria di
mantenimento
• Controller PIC32 bit ..... ·····:.aç,~~ • Stadio di alimentazione
• Alimentazione: switching (5 Vdc e 3,3 Vdc)
- 3,6 Vdc (tramite batteria esterna al litio) • Compatibile con shleld e schede mìllefori
- da 3,5 a 20 Vdc (tramite plug o sull'ingresso Vin) • Peso 37 g
- 5 Vdc (tramite porta USB) • Dimensioni 101,5 x 53,5 x 15 mm
• Circuito di ricarica per batteria al litio
• Compatibile con Arduino UNO
• Modulo WiFi
• Modulo RTC con batteria di mantenimento
• Clock 120 MHz, riducibile via software FISHINO PIRANHA
• Interfaccia per scheda microSD
• Codec audio stereo
• Peso 29 g
• Dimensioni 76,5 x 53,5 x 14 mm

cod. FISHIN032

€ 59,00
FISHINO GUPPY
• Alimentazione:
- 3,6 Vdc {tramite batteria esterna al litio)
- da 6,5 a 20 Vdc (tramite plug)
- 5 Vdc (tramite porta USB)
• Circuito di ricarica per batteria al litio
• Compatibile al 100% con Arduino NANO
cod. GUPPY • Modulo WiFi

€ 33,90 • Interfaccia per scheda MicroSD


• Peso 10 g
• Dimensioni 75 x 20 x 18,5 mm
cod. PIRANHA

€ 44,90
61mm

T
"aerogeneratore ad asse verticale", che si distingue
E perché il rotore ruota orizzontalmente ed ha l'asse
E
o in verticale. Generatori eolici di questo tipo sono
U'l
molto pratici perché si prestano all'utilizzo nei pic-
coli spazi e quindi all'installazione su balconi, ter-
razzi ecc. e di solito sono di piccola potenza, anche
se in qualche installazione possono essere impiegati
Fig. 1 sistemi di potenza più rilevante di quella che carat-
Il Motore/
Generatore
terizza gli aerogeneratori verticali per uso cittadino
120Vcc / 55W. o domestico e in generale per energy harvesting.
L'unità di conversione dall'energia meccanica del
195mm rotore azionato dal vento a quella elettrica, che è
l'obiettivo finale del nostro progetto, è un moto-
re elettrico in corrente continua a spazzole, dalla
potenza di 55 watt, alimentabile a 120 Vcc e caratte-
zionamento degli aerogeneratori, aree geografiche rizzato da una velocità di rotazione di 2.500 giri al
notoriamente ventose, tuttavia è possibile conside- minuto (Fig. 1).
rarla un problema superabile nelle piccole instaJJa- Resta inteso che, siccome il motore verrà utilizzato
zioni concepite come soluzioni di energy harvesting, per generare corrente, non bisognerà alimentarlo
ossia di recupero di un'energia altrimenti perduta. ma collegarlo con due fili per trarre da esso l'elettri-
In quest'ottica si collocano i piccoli aerogeneratori cità, che produrrà quando il suo albero verrà posto
posti ad esempio nelle campagne e utilizzati per in rotazione dall'energia del vento.
alimentare piccole pompe o altri utilizzatori che La nostra scelta è stata indirizzata verso questo
non è possibile allacciare alla rete di distribuzione motore per la bassissima resistenza che oppone
dell'elettricità ed anche quelli integrati nell'arredo alla rotazione dell'albero, tanto che è possibile farlo
urbano (situati ad esempio sopra i lampioni del- ruotare senza sforzo con le dita di una mano, otte-
le città) e negli edifici. Generatori di questo tipo nendo, anche in questo caso, una discreta tensione
funzionano da caricatori di una o più batterie, nelle di uscita.
quali si accumtùa l'energia in eccesso per il suo Le applicazioni per questo motore possono essere
utilizzo, ad esempio, la sera, allo scopo di accendere moltissime, dato che può funzionare anche come
lampioni sulla strada. una dinamo; in questo caso il semplice movimento
Il progetto che qui vi descriviamo nasce in tale con- di rotazione dell'albero motore permette di produr-
testo ed è stato concepito per produrre una piccola re energia elettrica, così come può generare movi-
quantità di elettricità con cui far funzionare disposi- mento meccanico (rotazione dell'albero motore)
tivi a basso assorbimento, magari anche grazie allo
storage (ossia l'immagazzinaggio) in una batteria
o gruppo di batterie per garantirci continuità di
alimentazione anche nei periodi in cui il vento non
soffia o ha scarsa intensità, ovvero per accumulare
di giorno l'elettricità con cui alimentare, la sera e la
notte, le luci a LED del giardino o di un patio.
A differenza di un impianto fotovoltaico, che per
ottenere il massimo rendimento necessita di molte
ore di luce (quindi rende meglio in primavera ed
estate), un generatore eolico può essere utilizzato
tutto l'anno, in inverno così come di notte, perché il 'IJSmm
vento non ha orari né stagioni.
I
IL PROGETTO f
L'aerogeneratore che vi proponiamo non è il clas- i
... ...
Fig. 2
..
I

sico tipo a turbina, che siamo abituati a vedere sui ..


Il generatore ....
tetti delle case o in versione gigante sulle colline nel complesso.
e nelle vaste pianure, ma tma variante chiamata

80 Settembre 2018 - ELETTRONICA IN


Fig. 4 · Pezzo di canale di
gronda PVC da 300 mm,
se alimentato dall'esterno. Sarà quindi possibile costituente una pala.
realizzare un generatore di corrente azionato a
manovella o a pedali, come nella bicicletta.
Delle moltissime applicazioni possibili abbiamo
scelto di realizzare un piccolo generatore eolico
verticale, visibile nel disegno in Fig. 2: la struttu-
ra poliante (ossia il telaio) è stata realizzata con
barre di alluminio con sezione quadrata di 23,5 x
23,5 mm, tagliate a misura (quattro sono lunghe
43,5 cm, sette lw1ghe 19,5 cm e una lunga 16,5 cm,
che va dal lato del motore) e tenute in posizione Un pignone (che funziona da ruota condotta) con
mediante angolari in plastica specifici per assem- diametro 16 mm e 10 denti è stato fissato all'albe-
blare queste barre. ro del motore e ingranato nella ruota dentata, per
Le barre, il motore elettrico, i cuscinetti e la barra accoppiare motore e rotore del generatore eolico.
filettata sono stati assemblati utilizzando parti La ruota dentata più grande, essendo a contatto con
progettate con Google SketchUp e stampate in i denti del pignone, permette di far ruotare l'albero
ABS con una stampante 30, che nel caso specifico del nostro motore, generando una tensione diretta-
è la nostra stampante 3Drag conunercializzata da mente proporzionale alla velocità del vento.
Futura Group (wwwfuturashop.it). Nel rotore è comunque possibile sostituire le quat-
h·o parti del canale di gronda in PVC con altrettanti
LA CATENA CINEMATICA DEL GENERATORE fogli di alluminio, acciaio, rame, pur mantenendo
Per quanto riguarda il rotore, abbiamo provato le dimensioni di 300 x 220 x 1,5 nun, curvati sul lato
due soluzio1ù: nella prima versione abbiamo uti- più lungo per essere inseriti negli appositi supporti
lizzato un canale di gronda in PVC con diametro inABS.
125 mm (Fig. 3) tagliato in quattro patti lunghe Non contenti della prima versione, abbiamo pro-
300 mm, che costituivano le pale (Fig. 4), oltre a gettato una variante, sempre con Google SketchUp,
una barra filettata M8 alla quale è stata applicata che prevede la realizzazione delle pale eoliche in un
una ruota dentata con diametro 67 mm e 44 denti unico blocco, ovvero un rotore monoblocco; ciò è
(ruota motrice). Le pale sono poi state fissate alla stato ottenuto stampando il rotore in ABS mediante
barra filettata (utilizzata come albero di trasmis- la nuova stampante 304040 (capace di produrre
sione del moto del rotore) mediante supporti stampe tridimensionali delle dimensioni massime
realizzati in ABS con una stampante 30, quindi la di 40 x 40 x 40 cm) realizzata dalla Futura Elet-
barra filettata è stata vincolata alla struttura (tela- tronica. Questa soluzione ha permesso di ridurre
io) tramite quattro cuscinetti 8 x 22 x 7 mm. notevolmente le parti necessarie per costruire il
nostro generatore eolico verticale e di semplificarne
l'assemblaggio, mantenendo l'insieme del rotore
più solido e stabile nel tempo.
Il nostro generatore eolico, come si può notare dalle
foto e dalle quote in Fig. 2 e in Fig. 3, è di piccole
dimensioni, proprio perché pensato per il montag-
gio su un balcone, ma nulla vieta di realizzarne una
versione con rotore di grandi dimensioni e di utiliz-
zare, per generare l'elettricità, un motore con una
potenza maggiore, purché in continua e a spazzole.

IL SISTEMA DI ACCUMULO: ENERGIA S~NZA VENTO


Come è ormai noto, il problema principale delle
fonti di energie alternative non è solo la potenza
Fig. 3 generata, ma soprattutto la possibilità di poterla
A erogeneratore accumulare per utilizzarla in seguito, in assenza di
in versione con vento (nel nostro caso) o in assenza di sole per gli
pale a canale di impianti fotovoltaici.
gronda. Anche il nostro generatore eolico risente di questo
~

8"" ELETTRONICA IN - Settembre 2018 81


Dimensionamento
degli ingranaggi
La ruota dentata che dell'ingranaggio, a
trasmette il moto si patto che l'ordine delle
definisce ruota condut- stesse sia invertito
trice o motrice, mentre (condotta/conduttrice);
quella che riceve il nel caso delle puleg-
movimento si defini- ge, dal rapporto tra i
sce ruota condotta o diametri della super-
mossa. Il rapporto di fici di contatto con la
ingranamento tra esse cinghia. Il rapporto
definisce il rapporto dipende quindi dalla
di trasmissione del forma e dalla configura-
moto e quello tra le zione degli ingranaggi
velocità delle due; esso e in particolare dal
dipende dal numero dei diametro delle ruote e
denti (che si suppone dal rispettivo numero
abbiano uguale passo di denti. Nel nostro
e altezza) secondo la aerogeneratore abbia-
formula: mo una ruota motrice problema, per ovviare al quale abbiamo deciso di
da 67 mm e 44 denti immagazzinare l'energia prodotta utilizzando delle
i =z1/z2 =OJ2/0J1 e una ruota condotta batterie ed un regplatore di carica.
da 16mme10 denti; La scelta della capacità della batteria deve esse-
dove si è indicato con riportando i dati nella re fatta in funzione di quanta energia vogliamo
w1 la velocità angolare formula otteniamo:
accumulare. L'impianto è formato da un regolatore
della ruota motrice
di carica, da uno o più accumulatori e nel caso si
e con OJ2 la velocità i = 44/10 = 4,4
angolare della ruota vogliano alimentare dispositivi a 220 Vca, da un in-
condotta, con z2 il Quindi abbiamo verter in grado di convertire una tensione continua
numero di denti della realizzato un rapporto (12/24 Vcc) in una tensione alternata (220 Vca).
ruota condotta e con z1 moltiplicante.
il numero di dentì della Potremmo calcolare LA COSTRUZIONE
ruota motrice. il rapporto anche Come accennato in precedenza, la struttura che
Il rapporto di trasmis- basandoci sui diametri,
sorregge il motore e le pale è costruita con barre in
sione può essere: ma il valore differirebbe
leggermente a causa
alluminio a sezione quadrata (23,5 x 23,5 mm). Per
- riducente nel caso il
rapporto sia maggiore del fatto che i diametri costruirla utilizzeremo quattro spezzoni di barra
di 1, dove la ruota con- riportati (67 e 16 mm) lunghi 435 mm, sette lunghi 195 mm, uno lw1go 165
dotta è più lenta ma può non sono quelli corri- mm (leggermente più corto degli altri spezzoni per-
generare una coppia spondenti alla radice ché si trova sul lato del motore) e otto angolari in
maggiore; dei denti, ma quelli plastica che si trovano in commercio appositamente
- imparziale, nel caso il esterni e i denti dei due per queste barre di alluminio.
rapporto sia uguale a 1, ingranaggi utìlizzati
Una volta in possesso del tutto, inseriamo gli ango-
dove la ruota condotta hanno altezze differen-
gira alla stessa velocità ti: fossero uguali, i risul-
lari in plastica nelle barre di alluminio, utilizzando
della ruota conduttrice e tati combacerebbero. un martello in gomma e picchiandoli con delicatez-
con ugual coppia; In una trasmissione za, nella sequenza corretta, in modo da incastrarli.
- moltiplicante, nel caso ideale la potenza si Adesso assembliamo le parti in ABS, realizzate con
il rapporto sia minore di trasmette inalterata la stampante 30, inseriamo i cuscinetti, fissiamo
1, dove la ruota condot- (in una reale, gli attriti il componente in A BS a forma di croce nella parte
ta gira più velocemente ne fanno perdere una inferiore della struttura, inseriamo le barre in allu-
della ruota conduttrice, parte...) ma si varino
minio. Inseriamo un dado autobloccante a circa 5
ma producendo una coppia e velocità; sic-
coppia inferiore. come la coppia è inver-
cm su una estremità della barra filettata, inseriamo
samente proporzionale tma rondella piana M8 nella parte superiore del
Nella pratica, per le al diametro della ruota cuscinetto, quindi facciamo passare la barra filettata
ruote dentate il rappor- condotta, nei rapporti attraverso la rondella piana M8 ed il cuscinetto.
to di trasmissione viene riducenti aumenta e Facciamo uscire la barra filettata dalla parte infe-
indicato anche come in quelli moltiplicanti riore del cuscinetto, quanto basta per inserire una
rapporto tra i diametri diminuisce. Le velocità rondella e t.m dado autobloccante, stringiamo i due
nominali o tra i numeri seguono la logica
dadi autobloccanti e inseriamo la metà superiore
di denti delle ruote opposta.
della crociera in ABS, attraverso la barra filettata e,

82 Settembre 2018 - ELETTRONICA IN


una volta appoggiata, la assicuriamo a tutta la strut- di watt. Tuttavia se l'energia non viene utilizzata al
tura inserendo i bulloni negli appositi fori, serrando momento in cui viene prodotta ma immagazzinata,
poi i bulloni stessi. è possibile contare su un'erogazione di potenza
A questo punto inseriamo un dado autobloccante istantanea anche molto consistente e decine di volte
nella barra filettata, facendolo scorrere in basso, a superiore a quella nominale del motore/ generatore;
circa 5 centimetri dalla croce in ABS. l'immagazzinaggio può avvenire in tm gruppo di
Ora introduciamo nella barra filettata la nostra pala batterie, interponendo un opportuno regolatore
eolica, stampata in ABS. di carica del tipo quelli utilizzati negli impianti
Nella parte superiore della pala inseriamo un dado fotovoltaici.
autobloccante, e stringiamo i due dadi in modo da Nella nostra sperimentazione con l'aerogenerato-
bloccare la pala sulla barra filettata. Inseriamo, sem- re abbiamo utilizzato un regolatore di carica per
pre nella barra filettata un altro dado autobloccante, pannelli solari fotovoltaici da 10 A della Futura
in seguito inseriamo l'ingranaggio più grande e un Elettronica (www.futurashop.it), contraddistinto dal
altro dado autobloccante. Stringiamo i due dadi in codice prodotto 2846-SOLAREGlO; si tratta di un
modo da bloccare l'ingranaggio grande sulla barra regolatore di carica per applicazioni fotovoltaiche
filettata. controllato da microcontrollore, dotato di display
Adesso prendiamo il componente in ABS a forma LCD e in grado di funzionare con tensioni d'ingres-
di croce allungata, inseriamolo in modo da avere il so da 12 a 24 V, commutando automaticamente da
ramo più lungo disposto verso la barra di alluminio un valore ali'altro.
più corta. Facciamo passare la barra filettata attra- Questo apparato consente di fornire il giusto valore
verso il cuscinetto. Prendiamo il corpo in ABS con di corrente alle batterie proteggendole da un ecces-
la sede per il motore, dopo aver inserito e fissato il so di scarica o carica con lo scopo di prolungarne il
motore, appoggiamo il tutto sulla parte superiore più possibile la vita utile.
della struttura, facciamo passare i bulloni negli Lo schema di cablaggio dell'insieme costituente il
appositi fori e stringiamo. sistema di accumulo e quindi del regolatore di cari-
Inseriamo l'ingranaggio più piccolo sull'albero del ca, dell''aerogeneratore e della batteria, è sintetizza-
motore e fissiamolo con l'apposito grano. All'estre- to nella Fig. 6.
mità superiore della barra filettata inseriamo una Il regolatore serve per stabilizzare la corrente che
rondella piana M8 ed un altro dado autobloccante, carica le batterie, soprattutto per evitare di superare
stringiamo in modo da anivare a filo del cuscinet-
to. Chiudiamo la parte superiore del motore con il
relativo coperchio in ABS.
A questo punto la shuttura è completa: provate
a far girare le pale a mano e se tutto è assemblato
correttamente, il rotore dovrebbe ruotare senza
eccessivo attrito, trascinando con sè gli ingranaggi e
l'albero del motore.
Per vedere se tutto funziona potete collegare
all'uscita del generatore, vale a dire ai due fili del
motore elettrico, un tester, un voltmetro eleth·onico
(come mostrato nella Fig. 5, dove vedete collegato
il minivoltmetro 2,5-30V codice 1606-MINIVOL-
TROSSO, commercializzato dalla Futura Elettronica,
www.futurashop.it) o una lampadina da 24 volt, SSW,
la quale dovrebbe accendersi facendo ruotare velo-
cemente con la mano il rotore, ovvero soffiando con
la pistola ad aria di un compressore su di esse.

L'IMPIANTO DI ACCUMULO
L'energia prodotta dall'aerogeneratore è limitata
da quella sviluppabile dal motore utilizzato come Fig. 6 · Schema del
dinamo, quindi può soddisfare le esigenze di uti- sistema eolico di accumulo
lizzatori che richiedano non più di una cinquantina dell'elettricità.

ELETTRONICA IN ~ Settembre 2018 83


valori (ma non è il nostro caso, erogabile, la capacità non ha
vista l'esiguità della corrente senso che sia elevata: 40 Ah
erogabile dal motore) che bastano.
potrebber~ pregiudicare l'inte-
grità della stessa; serve inoltre CONCLUSIONI
per stabilizzare la tensione Il mini-generatore eolico ver-
fornita alla batteria compen- ticale è un modello perfetta-
sando le fluttuazioni all'uscita mente funzionante di aeroge-
del generatore, tutt'altro che neratore per molteplici utilizzi,
improbabili sia nei pannelli principalmente in ambito
fotovoltaici che negli aeroge- domestico; in queste pagine
neratori. Notate che malgrado vi abbiamo spiegato con che
il motore utilizzato per il ge- scopi è nato e in che modo è
neratore sia da 120Vcc nomi- stato sviluppato e realizzato,
nali, in realtà nell'utilizzo non gettando le basi per ogni ge-
eroga più di una trentina di nere di evoluzione da parte di
volt, sia perché non raggiunge quelli, tra voi, che volessero
il regime di giri corrisponden- gettarsi nella sperimentazione
te, sia perché ha bassa po- dell'energia eolica.
tenza e sotto carico la tensione ai suoi capi scende Il modello è perfettamente scalabile, con le atten-
sensibilmente quando è posto sotto carico. zioni del caso, fino a raggiungere potenze installate
Il regolatore che abbiamo scelto va automatica- interessanti; natw·almente la meccanica va adegua-
mente in protezione e si blocca quando la corrente ta ai pesi e soprattutto agli sforzi tangenziali cui la
del carico eccede dalla portata del regolatore; inol- struttura e soprattutto il palo o il fissaggio a terra
tre, per evitare la scarica completa della batteria, sarebbero sottoposti dal vento in virtù dell'incre-
il regolatore staccherà automaticamente il carico mentata superficie resistente della pale del rotore.
ad una determinata tensione che non potrà esser A voi la scelta di sfruttare l'aerogeneratore così
meno di 10,7 V per la batteria a 12 V e 21,4 V per le com'è oppure di migliorarlo e modificarlo in base
batterie a 24 V. alle vostre esigenze, abbinandolo o meno a un siste-
TI regolatore di carica che abbiamo scelto ha queste ma elettronico di accumulo dell'elettricità, partendo
caratteristiche: dal progetto di base qui proposto.
• modalità di carica PWM; Dunque, buon lavoro! •
• protezione della batteria dall'inversione acci-
dentale di polarità; -
-

• in caso di cortocircuito entra in protezione; per il MATERIALE


• compensazione della temperatura;
~
• regolazione dei parametri di carica e scarica; La struttura del generatore eolico è stata interamente
• protezione dal sovraccarico; costruita utilizzando barre di alluminio, mentre le pale
• tensione d'ingresso: 12/24V; sono state realizzate in stampa 3D. I componenti prin-
• corrente massima: 60 A;
cipali possono essere acquistati presso Futura Elettro-
• tensione massima di ingresso: <50 V; nica. Il generatore da 55W (cod. WGM55W) è disponi-
• tensione di stacco:
bile a Euro 39,00, il regolatore di carica 12/24V • 1OA
- batteria carica: 13,7 V (a 12 V) - 27,4 V (a 24 V); (cod. SOLAREG 10) è in vendita a Euro 16,00, il mini
- batteria scarica: 10,7 V (a 12 V) - 21,4 V (a 24 V);
voltmetro (cod. MINIVOLTROSSO) costa Euro 3,00,
• tensione di riconnessione: 12,6 V (a 12 V) - 25,2 V le barre in alluminio da 23,5 x 23,5 x 1OOOmm (cod.
(a 24 V);
ALF25170) sono disponibili a Euro 10,50 e il giunto an·
• corrente assorbita in assenza di carico: <40 mA;
golare per unire le barre (cod. ALF28524) è in vendita
• caduta di tensione: <170 m V. a Euro 2,50. I prezzi si intendono IVA compresa.

Il regolatore di carica dev'essere collegato con l'in-


gresso ai due fili provenienti dal motore e l'uscita
alla batteria, la quale dev'essere del tipo a 12 volt;
in considerazione del ridotto valore di corrente

84 Settembre 2018 - ELETTRONICA IN


Sveglia con proiezione dell'ora e del meteo
Tutto sotto controllo grazie alla nuova sveglia con stazione meteo
integrata che proietta l'ora e le previsioni meteorologiche sul soffitto
o sulla parete. li display retroilluminato della sveglia visualizza
inoltre l'ora (nel formato a 12 o 24 ore), il mese, la data, il giorno della
settimana, le previsioni meteo, il grafico della temperatura nell'arco
delle 12 ore, la temperatura e l'umidità interna.

/ Orologio al quarzo. V' Proiezione dell'ora e delle previsioni


V Calendario perpetuo. meteo con 4 icone (solèggiato, poco
V Visualizzazione dell'ora 12 e 24 ore. nuvoloso, nuvoloso, piovoso).
V Allarme con snooze. V Retroilluminazione aLED.
V Temperatura interna in °C/ 0 F.
e36, 00
V Alimentazione: 2batterie da 1,5 Volt
V Registrazione temperatura e umidità tipo AAA (non comprese) oppure
minima e massima. tramite adattatore di rete {incluso).
Cod. TP0033 V Andamento della temperatura. V Dimensioni: 142x116x65 mm.

':~~~.·,1,/ 4
/ I, "''
e49,00
Cod. WH1170

PORTATA
SENSORE

50
METRI

Stazione meteo con orologio DCF


Stazione meteorologica composta da un'unità base e da un sensore
esterno wireless per la rilevazione della temperatura e dell'umidità. Ora
e data radiocontrollati, registrazione della temperatura e dell'umidità
minima e massima, previsioni e tendenza meteo, modalità di
visualizzazione dell'ora 12h/24h, sveglia con snooze, calendario perpetuo
e indicatore di batteria scarica.

Disponibili anche: ···· ··· ·· ··· ··· .-.· ·· ···· ·· ··· ·· ··· ··· ·· ····· ·· ··· ·· ··· ·· ···· ··· ··· ··· ·· ··· · ···· ··..... ·.... ··· ·. ··.......... .
Sveglia digitai~ con campanelli Sveglia radiocontrollata tramite Termometro e igrometro
meccanici e doppio allarme segnale DCF con data e ora
Display retroilluminato. Con ampio display LCD
Consente di impostare
I'-" differenti orari di allarme.
Display retroilluminato,
Visualizza la temperatura
interna, data e giorno
della settimana.
visualizza la temperatura
interna da -10 •e a +so ·e,
l'umidità 10% - 99% RH,
funzione snooze. Formato ora: 12124. la data e l'ora.

e 11, 80
Cod. WT705G
e 13, 00
Cod. TIP020
e5,oo
Cod. TERMOCLOCK

FUTURA Futura Group srl . . . . . .


• W W W• f U IU f 3 S h 0 p • jt Caratt~n~t1ch~ tecniche d1 questi prodotti
ELETTRONICA ® Tel.
03
i.n
Via Adi e 11 • 21013 Gallarate (VA)
99775
e acqu1st1 on-Ime su www.futurashop.it
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. I ricevitori possono essere alimentati a 220VAC o a 12VDC in base al modello.

.................................• Istruzioni \ RICEVITORE


2 CANALI 220VAC0
cod. EMY220RX2 1:i
16 ,
00 .. in italiano! : 1 CANALE 220VAC
: cod. EMY220RX1

2 CANALI 12VDC
cod. EMY12RX2
0
1:i
16 ,
DO
\
i. € 13 ,00
: 1 CANALE 12VDC
4 CANALI 12VDC
cod. EMY12RX4
.: cod. EMY12RX1
6 € 13 ,00

- •


o.
.
·.................
TRASMETTITORE .. ,, ..
2 CANALI
cod. EMYTX2 € 12 ,00 4 CANALI
cod. EMYTX4 €
13 ,00
Ai ricevitori va abbinato esclusivamente il trasmettitore con lo stesso numero di canali.

V rt•R.A
'°'' H
ELETTRONICA®
FuturaGroupsrl
ViaAdige, 11•21013Gallarate(VA}
Tel. 0331P99775
I
PreZZllVAlnck.rso. I Caratterlslichetecnlche
e vendita on·llne su:
www. nut ,
ury~s
I a
h Qln
.,.., . /
1
/T
"'

guida (il controllo del superamento della linea di del settore e un'occasione di sviluppo economico.
margine della ca.rreggiata o della corsia, la verifica Si pensi solo che oggi il giro di denaro che ruota
di ostacoli laterali, l'Adaptive Cruise Contro!, il ri- attorno ai sistemi elettronici per l'automotive si
levatore di stanchezza, il sistema anticollisione) e, attest a su circa 30 miliardi di dollari: questa cifra
negli anni a venire, vetture capaci di muoversi in crescerebbe enormemente con i sistemi di sicurez-
completa autonomia seguendo il percorso dettato za attiva e guida autonoma.
dalla cartografia GPS. Il rapidissimo sviluppo della tecnologia dei semi-
conduttori consentirà di accelerare l'introduzione
PERCHÉ LA GUIDA ASSISTITA di queste nuove funzionalità. Tra i produttori di
Il controllo semiautomatico e autonomo dei vei- semiconduttori, Texas lnsh·uments (TI) è all'avan-
coli è prezioso perché offre vantaggi in termini d i guardia della tecnologia automotive e nell'elabo-
risparmio di carburante, mobilità e convenienza, razione della catena di segnali analogici e nelle
tempi di viaggio e utilizzo efficiente delle sh·ade, soluzioni embedded; anche Intel, con l'acquisizio-
ma anche sicurezza e riduzione dei costi sociali ed ne della Mobileye, ha stretto recentemente forti
economici che gli incidenti implicano. Basti pensa- accordi con BMW e FCA per sviluppare tecnologie
re ai numeri da capogiro che descrivono il feno- au tomotive.
meno: in U.S.A. nel 2016 ci sono stati circa 40.000
morti per incidenti stradali; circa 1,25 milioni nel TECNOLOGIA AVANZATA, SICUREZZA AVANZATA
mondo intero. La sicurezza attiva dipende, tra l'altro, dai sistemi
Chi sostiene l'utilità della guida autonoma av- avanzati di assistenza alla guida, che rientrano nel
valora la propria tesi con il fatto che oltre il 90% concetto di ADAS (Advanced Drive Assistance
degli incidenti è causato da errore umano e che i Systems) e che si concretizzano in una serie di tec-
sistemi elettronici sarebbero in grado di fare molto nologie basate sull'elettronica che sono progettate
meglio: certo siamo lontani dalla precisione asso- per aiutare a garantire un funzionamento sicuro
luta, quindi va lasciata la possibilità di intervento del veicolo. Le innovazioni nell' ADAS aiutano a
manuale (quindi chi già pensa che si possa andare prevenire gli in~identi mantenendo la distanza di
in auto senza patente si dovrà disilludere...) da sicurezza tra le automobili in modo affidabile, av-
parte del conducente. visando i conducenti delle condizioni di pericolo,
La guida autonoma rappresenta non solo una rile- proteggendo gli occupanti e le persone in strada
vante opportunità di ridurre il numero dei sinistri da cattive condotte alla guida e svolgendo altre
e fluidificare il traffico (si sa che molti degli ingor- operazioni legate alla sicurezza. L' ADAS fornisce
ghi cittadini sono dovuti al fatto che automobilisti anche funzioni che serviranno in futuro come ele-
indisciplinati impegnano l'incrocio anche quando menti importanti dell'operazione autonomamente
il semaforo è giallo e non possono sgomberarlo controllata da computer. Se le autovetture promet-
all'arrivo del rosso, quindi poi chi incrocia fa lo tono di liberare i conducenti in modo che possa-
stesso...) ma anche un piatto ricco per le imprese no utilizzare il loro tempo in modo più efficace
durante i viaggi e viaggi più lunghi, le funziona-
lità ADAS contribuiranno a ridurre al minimo il
rischio d i collisione, evitare lesioni e salvare vite.
Le case au tomobilistiche stanno facendo a gara
per introdurre sempre più capacità di assistenza ai
conducenti nelle nuove auto, aggiungendo nuove
funzionalità di anno in anno.
Già oggi l'automobile affida all'elettronica ciò che
un tempo era appannaggio della meccanica e si ar-
ricchisce di sistemi che prima erano irrealizzabili;
vari sottosistemi comunicano, tramite bus dedica-
ti, nelle moderne automobili. La loro estensione
ha portato all'integrazione nell'ADAS, dove un
"cervello" comtmica con i diversi sistemi dell'auto
(ASR/ESP, ABS, ECU, Airbag, SRS ecc.) e fornise
un'elaborazione ad alte prestazioni ed eterogenea
per la visione artificiale, oltre al processo decisio-

88 Settembre 2018 - ELETTRONICA IN


Tabella 1 · Livelli di automazione SAE lnternational per i veicoli stradali.
Causa di
Controllo Modalità
SAE Controllo falllmento
Nome Funzionamento dEsterzo e di guida
level della strada del compiti
acceleratore possibili
di guida
i * • li : •• •. : •
'-e· I'<"- ., .,, '
Pieno e permanente controllo del veicolo da parte dell'uomo,
o nessuna
automazione
sulla guida e la sicurezza, anche quando è assist ito da
sistemi che forniscono awlso o assistenza (ad esempio ABS).
uomo uomo uomo N/ A

l'.uomo guida aiutato da sistemi di assistenza alla guida


assistenza riguardanti sterzata e accelerazione/ decelerazione che si uomo e sistemi Varie
1 alla guida basano su informazioni acquisite da sensori. lasciando al di assistenza
uomo uomo
modalità
conducente i restanti aspetti del cont rollo della sicurezza.

Esecuzione della modalità di guida da parte di uno o più sistemi


di assistenza alla guida, con sterzata e controllo dell'acceleratore
automazione Varie
2 parziale
utilizzando Informazioni sull'ambiente di guida e con l'aspettativa
che Il conducente umano provveda ai restanti aspetti della guida
Sistema uomo uomo
modalità
dinamica e della sicurezza.
Un sistema di guida automatizzata controlla l 'ambiente di guida
Un sistema automatizzato governa t utti gli aspetti della
automazione guida dinamica (sterzo, acceleratore, freni) lasciando al Varie
3 condizionale conducente umano il compito di intervenire e guidare
Sistema Sistema uomo
modalità
(disattivando li sistema) In caso di richiesta di Intervento.
Un sistema automatizzato guida governando l'intero veicolo
elevata ed è capace di reagire anche se il conducente umano non Varie
4 automazione risponde in modo appropriato a una richiesta di Intervento
Sistema Sistema Sistema modalità
(se prendendo il controllo guida "peggio" del sistema).
Il sistema di guida automatizzata espleta tutti i compiti
Tutte le
piena previsti dalla guida dinamica in tutte le condizioni stradali e
5 automaziooe ambientali che potrebbero essere gestite da un conducente
Sistema Sistema Sistema modalità di
guida
umano.

nale necessari per i sistemi ADAS di nuova gene- collisioni modulando la frenata e la trazione (ad
razione e i sistemi di azionamento automatizzati. esempio sistemi come il TCS=Traction Contro!
L' ADAS vede in campo OEM (come Bosch e System) onde evitare il pattinamento delle ruote o
Continental Automotive) oltre che produttori di lo sbandamento del veicolo (ESPI ASR). A volte il
semicondutto1i come Intel e Texas Instruments; sistema controlla attivamente una singola caratte-
quest'ultima conta soluzioni a cui accenneremo ristica dell'automobile, come ad esempio l'adatta-
nelle prossime pagine. mento automatico dei fari anteriori alle curve (per
esempio su Opel Astra J e Citroen CS) ed in futuro
L'AUTOMAZIONE EVOLVE LA S ICUREZZA ad altre condizioni di cambiamento.
DELL'AUTO Il Livello 3 prevede la guida semi-autonoma, vale
La SAE (Society of Automotive Engineers, www. a dire che l'automobile assume la guida in deter-
sae.org) che è l'ente americano che definisce gli minate circostanze, ma il conducente deve essere
standard automotive, h·a cui i protocolli di comu- pronto per riprendere il controllo. Prendiamo ad
nicazione delle prese di diagnosi OBD e la classifi- esempio la guida in autostrada: una funzione di
cazione degli oli lubrificanti (la nota SW40, 10W40 guida semi-autonoma per la guida autostradale è
ecc.) nel documento di riferimento J3016 tratta il controllo di velocità adattivo (ACC, ossia Adap-
tassonomia e definizioni per i termini relativi al tive Cruise Contro!) basato su radar (può essere a
sistema di guida automatizzata dei veicoli. Tale laser o a ultrasuoni) e telecamera, aiuta a mantene-
documento esprime il sistema di classificazione re la distanza di sicurezza dal veicolo che precede,
per fornire una terminologia comune per la guida controllando l'acceleratore e i freni. Se sussiste il
automatizzata. La Tabella 1 elenca i livelli di rischio d i impatto, il sistema attiva la f:renata di
automazione di guida di SAE International per emergenza automaticamente. L' ACC può interagi-
i veicoli sh·adali; da essa vediamo che il livello re con la gestione motore per mantenere la velo-
Onon è un'automazione ed è già considerato cità, ossia accelerare se il veicolo rallenta rispetto
cosa del passato. Nei Livello 1 e Livello 2, questi alla velocità impostata Cruise Contro!, pur subor-
sistemi possono prendere brevemente il controllo dinando tale automatismo al mantenimento della
attivo dell'automobile per assistere nel parcheggio, d istanza di sicurezza. Un altro sistema che già
impedire l' urto di oggetti non visibili ed evitare vediamo (anche sui camion Volvo, per esempio) è

ELETTRONICA IN - Settembre 2018 89


Elaborazione Fusione Processo

..
delle Immagini del dati di decisione
f1\ o
· G:;e'\
®
• Creazione ... • Localizzazione .. • Strategie di guida Controllo
nuvola di punti
• Fusione
• Creazione modello
ambientale
• Controllo
movimento
ECU
..
intermedia
a livello grezzo
.. • Pianificazione
movimento
.. • Gestione
traiettoria
• Pianificazione
della strada

Fig. 1 - Tipica architettura di sistema ADAS dal Livello 3 al Livello 5.

l'assistenza per la corsia, che utilizza una teleca- posto di guida, un po' come avviene nei convogli
mera anteriore o posteriore per mantenere la vet- delle meh·opolitane senza macchinista, sebbene
tura centrata nella sua corsia e ad una distanza si- muoversi sulle strade sia un tantino più comples-
cura dagli altri veicoli (il sistema Volvo si chiama so che viaggiare guidati da binari.
LKS =Lane Keeping Support, Controllo corsia di Ognuna di queste fasi si basa su quelle che pre-
marcia). Un altro sistema è l'LCS (Lane Changing cedono, fondendo i sistemi di sicurezza esistenti
Support, Aiuto al cambio di corsia) che utilizza con nuovi, più complessi. Oggi, la maggior parte
un radar per controllare l'angolo cieco sul lato del delle nuove automobili esce di fabbrica con alctme
passeggero e verificare la presenza di veicoli bassi, funzioni di sicurezza ADAS passive ed altre attive,
così da non investirli nel cambio di corsia. e la disponibilità sta aumentando rapidamente;
Il Park Assist assume il pieno controllo durante il secondo le previsioni della società di ricerche di
parcheggio in parcheggi e garage affollati e può mercato IHS Market, il mercato mondiale ADAS
rilevare quando il conducente ha difficoltà nell'e- supererà 302 milioni di unità ogni anno nel 2022
seguire la manovra, aiutandolo. Un esempio è grazie in parte alle nuove tecnologie come i siste-
l'IPA (Intelligent Parking Assist) della Toyota, che mi di monitoraggio del conducente e le telecamere
una volta inserita la retromarcia inquadra con la a specchio laterale e posteriore. Le caratteristiche
telecamera posteriore lo spazio del parcheggio e per un funzionamento avanzato semi-autonomo
assiste nella manovra: tutto ciò che il conducente oggi stanno cominciando ad apparire nei veicoli di
deve fare è agil:e su acceleratore e freno, perché lo fascia alta, mentre le auto completamente autono-
sterzo viene azionato dal sistema. me, ancora oggi sperimentali, dovrebbero seguire
O DAS (Driver Alert Support, Allerta al condu- nel periodo 2020-2025.
cente) è un sistema intelligente che tiene traccia Come con quasi tutte le innovazioni, l' ADAS
del tuo comportamento di guida. Se si discosta verrà introdotto prima in veicoli di fascia alta, poi
dal consueto e indica stanchezza, avvisa con un approderà alle auto di fascia media e alle utilitarie,
segnale e un messaggio sul display che consiglia quando la tecnologia corrispondente sarà diventa-
di fare una pausa. Andiamo ora a vedere i livelli ta -grazie alle economie di scala- monetariamente
superiori ADAS, che contemplano veicoli che si abbordabile. Per esempio le telecamere d i retro-
spostano in modo completamente autonomo: si marcia, oggi disponibili sulle auto, sono nate con i
tratta dei Livello 4 e Livello 5; qui il conducente camion, per garantire manovre sicure, ma oggi le
è superfluo, ma è utile che resti come controllore troviamo su auto di ogni fascia.
per escludere il controllo e passare alla modalità
"umana". È anche verosimile, in futuro, arrivare al COME FUNZIONA L'ADAS
livello più avanzato, con automobili che si muo- Più elevati devono essere i livelli di funzionalità,
vono senza conducente e che nemmeno avranno il di automazione, di assistenza e i requisiti di affi-

90 Settembre 2018 - ELETTRONICA IN


In origine era la Google Car
Le Firefly (così si chiamano le Google Car), piccole quattroruote
elettriche a guida autonoma sviluppate dalla Waymo (con-
~rollata da Alphabet) vanno in pensione lasciando in eredità
un'esperienza trasferita alla flotta di Chrysler Pacifica. La speri-
mentazione ADAS continua così in versione ibrida e con modelli
più vicini alle esigenze degli automobilisti. Nel 2009 la Waymo
mise a punto le Google cars per sviluppare le tecnologie per
la guida autonoma e l'immensurabile mole di dati passatale
da Google awantaggia l'azienda rispetto alla concorrenza, In
tema di mappatura del territorio, determinante per spostarsi e
prevedere le condizioni di pericolo (intersezioni con altri veicoli,
per esempio). Fino al 2016 i veicoli gestiti da Google prima
e Waymo poi avevano percorso 2 milioni di miglia su strade
pubbliche; comprendendo le monovolume di FCA, ad oggi le
vetture create o modificate dalla Waymo hanno coperto oltre
4,8 milioni di km. Nel frattempo, la Waymo ha annunciato di
voler estendere la sperimentazione ai veicoli industriali, campo
in cui è stata preceduta dalla start-up Otto, che aveva testato
un autoarticolato a guida autonoma (scortato dalla Polizia)
sulla strada pubblica.

<labilità, più diventano necessari sistemi di elabo- immagini. L'elaborazione ad alto livello determi-
razione multi-modali con input da sensori, tra cui na il tipo di elemento con cui si interagisce sulla
ultrasuoni, RADAR, LIDAR e telecamere (a colori, strada, ossia altri veicoli, persone, animali, segna-
monocromatiche, stereo e a infrarossi). li o luci semaforiche, oltre alla velocità con cui
Sono inoltre necessarie comunicaziohi via sa- l'oggetto si muove. Un microcontrollore (MCU)
tellite, così come le comunicazioni radio con le decide se procedere, fermarsi o attendere fino a
automobili vicine (V2V= Veichle to Veichle, ossia quando (ad esempio) il pedone non si muove, la
veicolo-a-veicolo) e le installazioni terrestri (veico- luce non cambia o si allontana una vettura vicina.
lo-infrastruttura); servono per posizionamento, lo- Contemporaneamente, i flussi di dati da altri sen-
calizzazione, acquisizione delle condizioni stradali sori di ingresso come i RADAR vengono esaminati
ed altre informazioni. per ottenere informazioni nel caso si manifestino
La Fig. 1 illustra l'architettura del sistema dal Li- condizioni preponderanti, come la cattiva visibili-
vello 3 al Livello 5 vista da una prospettiva funzio- tà dovuta alla nebbia.
nale. È chiaro che per consentire il funzionamento Siccome qualsiasi sensore può affrontare condi-
a questi sistemi è necessario svolgere un'ampia zioni operative impegnative, la fusione di input
vaTietà di compiti in tempo reale. provenienti da diversi flussi di dati aumenta note-
Dovendo lavorare in tempo reale, l' ADAS e i si- volmente la precisione e l'affidabilità del sistema.
stemi automatizzati dovranno convertire i segnali Da un canto la necessità di supportare sempre più
in input forniti dai sensori in idonei formati di sistemi multirnodali con sensori multipli per siste-
dati ed estrarre tutte le informazioni necessaxie, ma sta spingendo i costruttori di semiconduttori a
in tempo reale. Questi sistemi devono fondere le superare i limiti del "silicio" e dall'altro i produt-
informazioni provenienti da diverse fonti, deci- tori di automobili affrontano la sfida di integrare
dere l'azione di controllo corretta e commùcare in nuovi sensori a bordo del veicolo e le unità di
modo appropriato al dxiver o all'uscita di con- elaborazione corrispondenti senza compromettere
trollo automatico. Oltre a richiedere un'elevata il design del veicolo e il confort degli occupanti.
fedeltà agli stessi ingressi, i sistemi si baseranno Un'altra.sfida è mantenere bassi i costi di tali siste-
su computazioni ad alte prestazioni che possono mi, per portare l' ADAS su tutti gli autoveicoli.
eseguire contemporaneamente una varietà di algo- L'architettura SoC, proposta per esempio da Texas
ritmi. Ad esempio, mentre l'elaborazione a basso Instruments, permette di implementare sistemi
livello forniscè un flusso costante di immagini altamente efficienti capaci di integrare sensori
video pre-filtrate o pre-condizionate di una strada, con varie modalità, ottimizzando consumo, form
l'elaborazione a livello intermedio identifica gli factor e costi. Uno dei punti chiave che consen-
oggetti importanti nelle competenti sezioni delle tono all'architettura TI di dare di più rispetto ai

ELETTRONICA IN - Settembre 2018 91


Tabella 2 · Organizzazione dell'architettura eterogenea.
Low-level raw Hlgh-level contro!
Processlng archltecture Purpose Example blocks
processlng processlng
Low-level processing (pixel, raw lmage signal processor (ISP),
Hardware accelerator (HWA) Hfgh NA
sensor data) RADAR. UDAR
Single instructlon multlple Embedded vlslon engine (EVE).
Low·level processing Low
data (SIMO) deep learning
Multiple instruction multiple EVE, digitai signal processor (DSP),
Low-leveVmid·level processlng
data (MIMO) deep learnlng
Very long lnsttuctlon word
Mld·level processing DSP
(VUW)
Reduced instructlon set
Hlgh-/control-level processlng MCU, ARM® processor Low High
computing (RISC)

concorrenti è l'approccio ad architettura di sistema - per i dati del sensore RADAR prevede ope-
eterogenea. razioni di correlazione per rilevare oggetti e
calcolare vettori di velocità;
COS'È L'ARCHITETIURA ETEREGONEA? • elaborazione di livello medio:
Per comprendere il concetto di architettura - identifica gli oggetti di interesse all'interno
eterogenea esaminiamo brevemente la catena di delle immagini per l'utilizzo nell'elaborazio-
elaborazione del segnale negli autoveicoli dotati ne ad alto livello, allo scopo di riconoscere gli
di ADAS. È possibile suddividere una catena di oggetti e una MCU di sicurezza decide cosa
elaborazione del segnale ad alto livello in questi deve fare il sistema in tal caso;
segmenti: - nei livelli più alti della guida assistita o della
• elaborazione a basso livello: guida automatizzata, l'elaborazione a livello
- concentrata sull'elaborazione di dati grezzi medio sviluppa una comprensione completa
da sensori quali una fotocamera, RADAR, di una determinata scena basata su una o più
LIDAR, ecc.; modalità del sensore;
- per w1a telecamera comporta l'elaborazione • elaborazione ad alto livello:
dei dati dei pixel per ricostruire immagini - spazia dal semplice utilizzo dei risultati
utili per ulteriori elaborazioni; dell'elaborazione a livello medio per eseguire

High-level processing
• Object detectlon and tracking _;_,, Hardware for fully connected end convolutlon layers
• Classifioalfon
• Adaboost, SVM General-purpose processing for sensor fusion
• KNN,ANN '----1./ ARM9, DSP

Mid-level processing
• Optlcal flow
• Stitching 1- • ~ Specialized hardware units for key sensors
• Integrai lmage ," ----V" Distortion correction
• Feature extractlon (HOG, SURF, SIFT. ORB, ...) ISP
• Oisparity =---v Other key functionalities
• Deteclion of corners
\., • Detection of edges ,)
Low-level processing EVE and DSP vector coprocessor
• lmage slgnaJ processlng =---v High bandwidth
• Filtering Pixel operations
• Gradients < - y SIMO parallellsm
• Morphological operations Energy efficiency
,_ -- - .- . - - ~

Functional safety· Key function TDA platform


compliant architecture Security hardware acceleration Legacy of safety, security
and high-performance
-IN!i+i1.:u1;;1,1.1ijf€f''IHHii%tH1- signal-processing IP

Fig. 2 · Mappatura delle funzioni alla corretta architettura di elaborazione.

92 Settembre 2018 - ELETTRONICA IN


Graph-based model Software abstraction
Defined at initialization time for optimal Application works across software platforms
run time and latency from Linux• to TI-ATOS

True heterogeneous compute Open standard


Abstracted access to heterogeneous cores Planned conformance to OpenVX standard

Optimized libraries Hardware abstraction


Fully optimized OpenVX 1.1 kernels Application works across TDA family of SoCs

DMA integration Ease of use


DMA interface for tifed access PC-based development environment

Virtual buffers PyTIOVX tool tor graph description


lntermediate buffers in internal memorìes Generates OpenVX applìcation code

Fig. 3 - Implementazione di OpenVX su un SoC Texas lnstruments.

azioni come la frenata, a funzioni come la


pianificazione di percorsi di guida finalizzati
a contenere il consumo di combustibile. Anatomia dell'ADAS
Nell'elaborazione a basso livello si tende a utiliz- Il sistema di guida autonoma si basa su sensori per per-
zare algoritmi ripetitivi relativamente semplici cepire le condizioni stradali e una centralina (ADCU) con
che funzionano in parallelo (rnulti-thread) per microprocessori per elaborare i dati e comandare attuatori
gestire quantità massicce di dati di input. L'ela- per eseguire le manovre richieste. Della sensoristica fanno
parte:
borazione a livello medio è tra gli estremi sia per
• RADAR a ultrasuoni (rileva la distanza contando il tempo
dimensione dei dati che per complessità dell'algo- di volo degli ultrasuoni); possono essere a corto (mano-
ritmo, e l'elaborazione ad alto livello presenta dati vra) e lungo raggio (distanza veicoli che precedono);
relativamente di piccole dimensioni ma algoritmi • LIDAR (rileva la distanza contando il tempo di volo di un
complessi. Sebbene un processore genera! purpou- impulso di luce prodotta da un LASER) unidirezionali o
se possa codificare ed eseguire questi algoritmi/ 30 (su tutti i lati);
funzioni, in genere non rappresenta l'implementa- • telecamere a colori o monocromatiche, stereoscopiche,
zione più efficiente. Ogni livello viene eseguito in surround, multifunzione (con LIDAR integrato);
modo ottimale da una specifica architettura di ela- • accelerometro e giroscopio del sistema di stabilità (ESP)
del veicolo, con cui la centralina ADCU dialoga;
borazione, ulteriormente analizzata nella Tabella
• scanner LASER per analizzare postura e volto del condu-
1. Il modo più efficace per mappare una funzione cente e rilevarne l'eventuale stanchezza.
ADAS è quello di mappare ogni segmento della ca-
tena di elaborazione dei segnali all'architettura di Altri input provengono da GPS, interfaccia wireless V2V e
elaborazione più efficiente, come mostrato in Fig. 3. infrastruttura stradale, che non sono sensori ma fornisco-
I flussi di dati ADAS richiedono anche l'elabora- no dati utili.
zione in tempo reale. La mappatura dell'elabora- Tra i principali costruttori di componenti per ADAS troviamo
zione a basso livello su acceleratori dedicati o una Continental Automotive (www.continental-automotive.com)
pipeline SIMD riduce il sovraccarico generale del e Bosch (www.bosch.com).
software, mantenendo e soddisfacendo obiettivi di
elaborazione in real-time.

FACILITARE SVILUPPO
E SCALABILITÀ DEL SOFTWARE
Mentre un'architettura eterogenea è super-effi-
ciente nella mappatura della catena del segnale e
quindi consente lo sviluppo di sistemi a costi e po-
tenze efficienti, la programmazione di diversi tipi
di core di elaborazione è a volte un compito più
oneroso, soprattutto quando è accompagnato dalle

ELETTRONICA IN - Settembre 2018 S3


Guida autonoma d'oltralpe
Attualmente impegnato in test su strada con venti veicoli spe- equipaggiati con funzioni di guida autonoma di vario livello
rimentali, il gruppo PSA accelera il proprio programma AVA di ADAS. Sono dotati di quelle di Livello 2, che permettono di
sviluppo della guida autonoma e annuncia che doterà le auto togliere le mani dal votante ma impongono di rimanere con gli
DS di funzioni di guida automatizzata con la supervisione del occhi vigili sulla strada, di quelle Livello 3 che permettono di
conducente. La casa transalpina ha stilato un calendario che distogliere lo sguardo e di quelle più avanzate di Livello 4 che
da oggi a oltre il 2030 vedrà offrire sui veicoli Peugeot, Citroen permettono di girare le poltrone e chiacchierare liberamente
e DS soluzioni per consentire ai conducenti di scegliere se con I passeggeri, disinteressandosi di quello che fa il veicolo.
guidare o delegare la guida al computer. La sigla AVA (Autono- Questi mezzi hanno già percorso oltre 125.000 chilometri in
mous Vehicle for Alt) definisce un'ampia gamma di sistemi di modalità autonoma.
assistenza, alcuni dei quali già esistenti sulle auto in vendita.
Le prime applicazioni prevederanno la guida parziale, poi sarà
disponibile quella totale, attivabile dal conducente. Dal 2020
esordirà l'auto a guida autonoma, liberando in conducente
dall'impegno della guida in caso di guida monotona, ingorghi,
manovre di parcheggio e contribuirà a ridurre gli incidenti.
Si potrà awantaggiare dello sviluppo della rete di comunicazio-
ne tra i veicoli e le infrastrutture (V2V) che renderanno il traffi-
co più scorrevole, contribuirà a ridurre i consumi e te emissioni
dei veicoli, permettendo altresì di localizzare i parcheggi in
città. Impegnato in test su strada già dal 2015, da marzo 2017
PSA è il primo costruttore di auto ad aver effettuato sperimen-
tazioni con persone al volante classificate come "non esperte"
per dimostrare che è possibile delegare la guida. I dimostratori,
in circolazione oggi su strade europee di normale utilizzo, sono

pressanti esigenze di sviluppo di nuovi sistemi in • supporto sistema operativo real-time Texas
forte concorrenza di mercato. In tale scenario il Instruments {TI-RTOS) e Linux OS;
software utilizzato dovrà essere astratto, ottimiz- • emulazione PC (Windows) emulation per proto-
zato e riutilizzato nei sistemi successivi, poiché le tipazione di applicazione e kernel;
funzionalità di sicurezza a ttive si evolvono. • generazione del codice automatizzato per appli-
L'architettura TI SoC integra soluzioni come cazione e kernel-wrapper;
l'inter-processing core (IPC) e la coerenza della • conformità alla specifica OpenVX 1.1.
cache per consentire una struttura efficiente del
software ADAS. Lo scopo del framework software TI E LO SVILUPPO
è consentire il massimo di calcoli aperti, in modo DEL DEEP LEARNING
da alleviare gli sviluppatori dalla complessità di Oltre a semplificare lo sviluppo del software
un'architettura eterogenea, fornendo tutti i van- complessivo utilizzando Open Framework come
taggi correlati. OpenVX, TI sta anche rivoluzionando lo sviluppo
Ad esempio, oltre ai propri framework software, del deep learning per i propri SoC, consentendo
TI è un contributor fondamentale dello standard i flussi d i sviluppo semplificati subito utilizzabili.
Khronos OpenVX per l'accelerazione della visione Il flusso deep learning di TI consente l'apprendi-
artificiale. OpenVX affronta l'astrazione di un'ar- mento e lo sviluppo in ambiente PC o Cloud in
chitethtra eterogenea, pur avendo una flessibilità cui i potenziali e i vincoli di costo possono essere
minima e completa dell'utilizzatore. flessibili per massimizzare le prestazioni e ridur-
I vantaggi di OpenVX sono evidenziati di segui- re il t empo di sviluppo, ma consente una facile
to e la Fig. 4 mostra una visione di alto livello implementazione a bassi consumi sui dispositivi
dell'implementazione di OpenVX su TI SoCs. Il TDA di produzione automobilistica. La tecnolo-
risultato è il pieno diritto di prestazioni su TI SoC gia TDA2xADAS SoC dì TI ha un acceleratore di
tramite l'interfaccia OpenVX portatile: visione programmabile contenente uno o più EVE
• elaborazione visiva portatile e potente; specializzati per gestire grandi quantità di dati di
• calcolo accelerato, distribuito e parallelo su DSP, sistema video, ISP per la pre-elaborazione della
EVEs, HWA e processori ARM. fotocamera, un DSP per elaborazioni di segnali
• scalabilità da TI TDA2x, TDA2Ex, TDA3x e fa- più generali e opzioni RISC che includono diversi
miglia di SoC TDA-Next driver-assistance SoC; microprocessori ARM.

94 Settembre 2018 - ELETTRONICA IN


TI Deep Leamlng
Network

D
Library (TI DL)
translation Translated networlc
Trained tool distribulion +
network fromTI parameters
model
[ PC compute J
Open VX, TI SDK

••••
Optlmal msoun::e partìllonlng

6 C66xOSP
runnlng
TellSOfl 1 11 Caffe2
TI DL Executlon Llbrary
PC/GPU/Cloud compute TI Optlmlzed Network
Layers
Training performance wlth high power
TDA2x SoC compute
Full network performance at a fractfon ot the power

Train on PC/GPU

Fig. 4 - Flusso di apprendimento profondo sui SoC TDA.

Il portafoglio SoC di TI include MCU, DSP mul- requisiti. Il ruolo dell'azienda nella fornitura di
ticore e processori di visualizzazione eterogenei. tecnologia attiva di sicurezza si basa su un'espe-
Nello sviluppo dell' ADAS e delle funzioni di rienza di decenni nel settore degli autocarri, che
guida automatizzate, i produttori di elettronica risale allo sviluppo dei primi freni antibloccaggio.
automotive cercano -in un fornitore di semicon- Inoltre TI offre agli OEM del settore automotive la
duttori- la tecnologia e la forza logistica; Texas conformità con i gli standard di sicurezza auto-
Intruments è diventata fornitore di semicondut- mobilistici come l'Intemational Organization for
tori per i sistemi di sicurezza perché soddisfa tali Standardization (150)/Technical Specification (TS)

ARM/DSP for Controi &


High-ievel vision stages
Object Detect·
Classrnca11on~on and Trackl ng
ARM Cortex Axx:
• Adaboos1 .
Hlgh Leve1 SVM Scalable RISC
Processlng Data Fusion
' CNN
Memory Coherency

• Optical Flow DSP:


Stilching
• lntegrm lrnage ~
Feature~
SURF, SIFT. OR8 <HOG,
• Dlspa,jly • •..)
~Of Cosnara_ EVE Vector Coproc:essor:
High Bandwidth Pixel
Operations
SIMO Parallelism
Energy Efficiency

Hardware Acceleration:
High Bandwidth Pixel
Operations
Configurable HW
Fig. 5 - Architettura eterogenea del SoC TDA2x. Acceleration

ELETTRONICA IN - Settembre 2018 95


16949 per la gestione della qualità e ISO 26262 per nicazione e controllo energetico del sistema.
la sicurezza funzionale. Altro punto a favore è i1
pieno supporto alla progettazione, in grado di ac- CONCLUSIONI
celerare lo sviluppo di sistema e il time to market. Le tecnologie dei semiconduttori messe in campo
Potete teneài aggiornati sull'evoluzione delle dai grandi produttori a beneficio di realtà come
tecnologie di Texas Instruments per la sicurezza la spin-off Vislab di Parma, ormai ceduta agli
alla pagina web www.ti.com/corp/docs/innovation/ americani di Ambarella e nascenti aziende come
innovation-stories/safety/safety-Automotive.html. Waymo, oltre che di colossi dell'auto europei (PSA
e VAG) e della componentistica quali Continental
TECNOLOGIA DI DOMANI, SICUREZZA DA OGGI e Bosch, rendono sempre più vicino il giorno in
Per almeno un decennio non vedremo per le stra- cui le automobili e soprattutto i veicoli commer-
de un numero sigiùficativo di automobili comple- ciali potranno viaggiare autonomamente lasciando
tamente autonome e passerà più tempo prima che al conducente il ruolo di controllore, come avvie-
praticamente tutti i veicoli nuovi siano in grado di ne oggi nei moderni aerei in cui l'autopilota fa da
marciare autonomamente. Ma nel frattempo, un sè e il pilota riprende il controllo solo in limitati
numero sempre crescente di veicoli offrirà livelli momenti del volo. Una rivoluzione che, se da un
crescenti di guida assistita che li renderà più sicuri lato limita sempre più le velleità di automobilisti-
riducendo al contempo il consumo di carburante e piloti, dall'altro promette di ridurre gli incidenti
aggiungendo la convenienza dell'operatore. L'abi- stradali e i consumi andando a correggere o pre-
litazione delle funzioni di sicurezza attive dipende venire comportamenti poco virtuosi di automobi-
dall'elettronica avanzata, compresi i miglioramen- listi scorretti, sbadati o semplicemente stanchi. Per
ti rilevanti per input esterni, elaborazione ad alte il momento possiamo goderci la Tesla con NHTSA
prestazioni per valutare le condizioni di guida e (Fig. 6), che guida da sola ma ci richiede la su-
l'aiuto decisionale, da una varietà di componenti pervisione: se togliemo le mani dal volante scatta
analogici per condizionamento del segnale, comu- l'allarme e dobbiamo riprendere a guidare!

Fig. 6 - La guida autonoma NHTSA di Tesla: funziona solo se il conducente tocca il volante.
Futura Group srl
~FUTURA Via Adige, 11 • 21013 Gallarate (VA)
ELETTRONICA ® Tel. 0331/79977
Caratteristiche tecniche
o vendita on.fine su: www.futurashop.it
MINI LOCALIZZATORE SATELLITARE
GPS/GSM CON FUNZIONE SOS,
CONTROLLABILE DA SMARTPHONE E PC
Con Trackimo MINI, il più piccolo localizzatore della famiglia TRACKIMO, potrai tenere sotto
controllo la posizione di persone, animali ocose, attraverso smartphone, tablet
€ 149,00
Cod. TRACKIMOMINI
(iOS eAndroid) o PC. Trackimo racchiude un sistema di geolocalizzazione GPS/GSM
edispone di Bluetooth, Wi-Fi, antifurto eun pulsante SOS che potrai premere in caso di
necessità, il tutto alimentato da una batteria al litio ricaricabile via USB. Viene fornito con
una SIM da attivare gratuitamente con copertura MONDIALE per 12 mesi senza costi extra
@
con allerte illimitate tramite APP ed e-mail. Trackimo MINI è anche impermeabile (IP65) .

• TUTTI I PRODOTTI TRACKIMO ·


SIM • 12 MESI DI SERVIZIO INCLUSI I •
LOCALIZZATORE SATELLITARE GPS/GSM
CONTROLLABILE DA SMARTPHONE E PC

€ 119,00
Cod. TRACKIM0 1

ll!!'VJi'l l11!11A Futura Group srl e tt . . h . h d' . d .


,._ ri VrtH W W W, f U t U r 3 S h0 p, j t Via Adige, 11 • 21013 Gallarate (VA) ara ~n~tlc ~ tecmc e 1 questi pro .otti
' ELETTRONICA ® Tel. 03311799775 e acqu1st1on-Ime su www.futurashop.1t
programmazione
fisica utilizzando
GNU/Linux e
Raspberry Pi,
ma non solo.
Seconda puntata.

ASCUOLA
di Raspberry Pi
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • di MARCO MAGAGNIN

rima di utilizzare la scheda FT1369, presentata ovvero senza monitor, tastiera e mouse in quanto è
P sullo scorso numero, è necessario predisporre
Raspberry Pi, con il sistema operativo Raspbian ag-
abbastanza probabile che si riesca a raggiungere Ra-
spberry Pi in remoto senza la necessità di conoscere
giornato, sul quale andremo ad installare i pacchetti l'indirizzo IP, in seguito vedremo come.
aggiuntivi necessari al funzionamento della scheda Potete scaricare l'immagine del sistema opera-
e delle sue espansioni. La configurazione consigliata tivo dalla sezione "Downloads" del sito ufficia-
prevede l'utilizzo di un microcomputer Raspber- le della Fondazione Raspberry Pi all'indirizzo
ry Pi 38 o 38+ configurato con un monitor HDMI, llttps://unuw.raspberrypi.org/downloads. Una volta
tastiera, mouse, alimentatore e collegamento alla scaricata l'immagine e scompattata in una cartella
rete locale con cavo Ethemet. In alternativa potete a piacere del vostro PC, è necessario trasferirla su
utilizzare Raspberry Pi in configurazione "headless", una micro SD Card per poter essere utilizzata con

ELETTRONICA IN - Settembre 2018 99


Tabella 1 ·Co/legamenti LCD1602.

f-ac11a·= ~ ~ ll11IBm
01 GND(VSS) GND Pl-06
02 +5V +5V Pl-02 posta da due freccette affiancate, una rivolta verso
03 Contrasto GND Pl-06 l'alto e l'altra verso il basso. Vi apparirà l'indirizzo
04 RS GPI022 Pl-15 IP, che procurerete di annotarvi da qualche par-
05 RW GND Pl-06 te. A questo punto ci colleghiamo a Raspberry Pi
06 E GPI023 P1-16 u til.izzando il dient di accesso remoto "Putty" che
07 Data O ormai dovrebbe essere anch'esso familiare ai lettori
08 Data 1 della rivista . Aperto Putty inserite l'indiri2zo IP
09 Data 2 che avete annotato e cliccate sul pulsante "Open".
10 Data3
In caso abbiate scelto la configurazione "headless"
11 Data 4 GPI025 Pl-22
provate a collegarvi utilizzando il nome "host" al
12 Data 5 GPI012 Pl-32
posto dell'indirizzo IP. Il nome host predefinito per
13 Data6 GPI016 Pl-36
14 Data 7 GPI020 Pl-38
Raspian è "raspberrypi" (senza apici). Se tutto fun-
15 +5V via 560ohm
ziona si apre la "finestra di terminale", che chiede
16 GND P1-06 di inserire utente e password per eseguire l'accesso
alla shell di terminale di Raspbian. Se operate con
monitor, tastiera e mouse, aprite la finesh·a di termi-
Raspberry Pi. Abbiamo descritto questa operazione nale direttamente dal desktop. Una volta ottenuto
più volte sulla rivista e nel libro "Enh·a nel mondo l'accesso, la prima operazione da eseguiTe è l'ag-
di Raspberry Pi 3". Per l'utilizzo con il vostro PC giornamento del sistema operativo, che si ottiene
può essere necessario dotarsi di un adattatore da digitando i classici comandi:
Micro SD ad SD normale, nel caso sia presente l'al-
loggiamento per le SD Card, oppure di un SD Card sudo apt-get update
reader esterno da collegare ad una presa USB libera. sudo apt-get dist-upgrade
Sempre a proposito di SD Card vi consigliamo un
modello con almeno 16 Gb dj capacità e di classe 10. e, per aggiornare anche il kemel
Una volta trasferito il sistema operativo Raspbian su
Micro SD Card, non "smontatela" ancora dal vostro sudo rpi - update
PC. Nella configurazione iniziale il sistema opera-
tivo Raspbian impedisce il collegamento da remoto Ora che il nostro Raspberry Pi è nella sua forma mi-
utilizzando SSH. Per lavorare con Raspberry Pi in gliore possiamo ini2iare a sperimentarne l'utili2zo.
collegamento remoto via SSH (Secure SHell).
È però possibile m odificare Ja configurazione MODULO LCD
agendo direttamente sul contenuto della Micro SD Tra i modub a disposizione proponiamo di utiliz-
Card. Una volta terminata la scrittura della Micro zare per primo il modulo LCD 16x2, w1 modulo a
SD Card, una delle due partizioni che compongono cristalli liqwdi che permette di visualizzare messag-
il file system di Raspbian, è formattata come FAT32 gi su due righe, ciascuna di 16 caratteri. La scelta è
e quindi è visibile anche da un PC con sistema ope- caduta su questo modulo in quanto poco costoso
rativo Windows. Aprite l'unità che corrisponde alla e, tutto sommato, abbastanza semplice da interfac-
Micro SD Card e nella ca1tella che vi appare create ciare a Raspberry Pi. Il modulo è visibile in Fig. 1 e
un file nuovo, anche sen2a contenuto, e salvatelo utilizza il controllore LCD Hitachi HD44780. Quindi
con nome "ssh" (senza apici e sema estensione). le informazioni che vi forniamo sono vabde presso-
Con questa operazione, nel corso del primo "boot", ché per tutti i moduli basati stùlo stesso controllore.
Raspbian si auto configura in modo da permettere Quello che vi proponiamo presenta caratteri bianchi
l'accesso remoto via SSH già dalla prima accensio- su un fondo retroilluminato blu.
ne. Ora smontate la Micro SD Card dal vostro PC Dal punto di vista dell'interfaccia hardware iJ modu-
ed inseritela nell'apposito alloggiamento presente lo LCD presenta un connettore con 16 pin, che sono
su Raspberry Pi. Controllate tutti i collegamenti e collegati ai pin del GPIO ru Raspberry Pi, secondo le
collegate l'a)jmentatore alla rete elethica, Durante corrisponde02e indicate nella T abella 1.
il primo avviamento la partizione di "root" viene Normalmente il display LCD richiede otto linee in
automaticamente espansa fino ad occupare tutto lo parallelo per la ricezione dei dati dal microcontrol-
spazio disponibile sulla Micro SD Card. Se avete la lore o da miO"ocomputer. È però possibile, come
coniigurazione con monitor e mouse avvicinate la nel n ostro caso, impostare il display in modalità "4
"freccia" del mouse all'icona in alto a destra com- bit" ed inviare ciascun carattere in due "frammenti"

100 Settembre 2018 - ELETTRONICA IN


di quattro bit ciascuno. In questo modo è possibile
dimezzare il numero di linee di J/0 necessarie a
comunicare con il display. Cosa molto utile nel caso
della nostra applicazione che utilizza praticamente
tutti i pin del GPIO di Raspberry Pi. Ma vediamo
più in dettaglio la funzione di ciascun pin.
Con riferimento alla Fig. 1, il primo pin da sinistra è
il riferimento di massa (GND o VSS). Il secondo pin
è il positivo dell'alimentazione (VCC). Il terzo pin,
indicato come Vo, sulla scheda, è collegato al poten-
ziometro presente sulla scheda FT1369 che permette
di regolare il contrasto della retroilluminazione. Il
pin RS (Register Select) permette di comurucare al
display se si stanno inviando sequenze di dati o di
Fig. 1 · Pin modulo LCD 1602.
comandi. Per inviare comandi a] display il pin RS
deve essere impostato a livello basso (OV), viceversa
per inviare sequenze di dati deve essere impostato
a livello alto. Esempi di comandi sono il posiziona- re lo schedulatore "cron".
mento del cursore in una data locazione, la "puli- Aprite il file di configurazione di cron digitando:
zia" del display, lo spegnimento ed accensione del
display, ecc. crontab -e
Il pin R/W (read/write) permette di selezionare
se si vuole inviare oppure leggere dati verso o dal andate in fondo a1 file ed inserite la direttiva:
display. Il pin E (enable) permette di scrivere sui
registri comandi o dati per mezzo degli otto pin da @reboot nohup python /home/pi/_Test_LCO .py > I
DO a D7. Per esempio, per inviare il carattere "A" dev/null >2 /dev/null &
si imposteranno gli otto pin alla configurazione
binaria di "A" che corrisponde ai valori "0100 0001". Salvate con CTRL+X e confermate.
Nel nostro caso utilizzeremo solo gli ultimi quattro Per eseguire il programma nella finestra di termina-
(04-07), quindi il carattere "A" verrà trasmesso con le digitate:
una sequenza di due stringhe da quattro bit.
Gli ultimi due pin A e K corrispondono rispettiva- python /home/pi/_Test_LCD . py
mente all'anodo ed al catodo del LED cli retroillumi-
nazione del display. Nella nostra scheda di speri- PULSANTI E LED
mentazione il pin RW è collegato a massa in quanto Come secondo esercizio vi proponiamo l'utilizzo
useremo urucamente la modalità di scrittura verso dei pulsanti e dei cliodi LED direttamente presenti
il display. sulla scheda Ff1369. Questo esercizio à permette
Per sperimentare con il modulo LCD utilizziamo il di approfondire un minimo di programmazione
programma in Python visibile nel Listato 1. ad eventi e di specificare una delle tante differenze
Volutamente, per quanto possibile, abbiamo deciso tra la programmazione dei microprocessori e dei
di non utilizzare librerie preconfezionate in modo microcomputer con sistema operativo. Nel caso di
da poter verificare ogru aspetto della gestione dei un microcontrollore, per intercettare la pressione
singol i moduli. Nella prima parte del programma di un pulsante, avremmo utilizzato un interrupt, in
è visibile la definizione di una classe per la gestio- modo da non sovraccaricare la cpu con l'elaborazio-
ne del display LCD. Per modificare la logica del ne di un àclo continuo di istruzioni che interroga in
programma potete personalizzare la funzione loop() continuazione lo stato dei pin ai quali sono collegati
inserendo la logica che preferite, eventualmente i pulsanti. Un ciclo di interrogazioni continue, o
integrandola con gli esempi che presenteremo in polling, che dir si voglia, impegna molto la CPU,
seguito. mentre l'utilizzo degli eventi lascia la CPU libera
Nel nostro esempio abbiamo scelto cli esporre di eseguire le istruzioni principali del programma.
l'indirizzo IP di Raspberry Pi, in modo da facilitare Solo nel caso che il pulsante venga premuto, la va-
il collegamento da remoto. Se volete eseguire il pro- riazione di stato del pin collegato al pulsante viene
gramma automaticamente al boot dovete configura- rilevata e viene innescato il richiamo del blocco

ELETTRONICA IN - Settembre 2018 101


#!/usr/bin/python

import RPi .GPIO as GPIO


from time import sleep
import subprocess

class HD4080 :

def ~ini~~<self , p1n_rs•22, pin_e=23, pins_db•(25, 12 , 16, 20]) :

sel~ . pin_rs pin_rs


self.pin_e • pin_e
self .pins_db • pins_db

GPIO . setmode (GPIO . BCM)


GPIO . setup(self . pin_e, GPIO . OOT)
GPIO . setup(self . pin_rs , GPIO . OUT )
for pin in eelf . pins_db :
GPIO . setup(pin 1 GPIO .OUT)

selE . clear ()

def clear(selfl :
•"" Blank I Reset LCD •NN

self . cmd(Ox33) $33 8-bit mode


self. Cllld ( Ox32) $32 8-b:t mode
self . cmd (0x28)
self . cmd(OxOC)
' $28 8- bit mode
soc 8-bic mode
self . cmd (0x06) $06 8-bit mode
self . cmd (OxOl) SOl 8-bit mode

def cmd(self, bits , char_modesralse) :


""" Send com:nand to LCD " ""

sleep(0 . 001)
bits=b1n(bits) (2 : ) .zfill(8J

GPIO. output<sel!.pin_rs, char_mode)

for pin in self . p.ns_db :


GPIO. output(p•n, ralse)

for i in ran9e (4) :


i f bits[iJ •• " l" :
GPIO . output(self .pins_db[ : : -1) [i) , True)

GPIO .output(self . pln_e , True)


GPIO . output(self . pin_e , ralse)

for pln in self.pins_db :


GP:O.output(p1n. False)

for i in ran9e(4,8):
i f bit.sii -- "l" :
GPIO . output(self . pins_db( : :-1] (i-4) , True)

(Contin 11a)

dì istruzioni preposte al trattamento dell'evento. operativo (spazio kernel) e le applicazioni degli


Ovviamente, in questo tipo di architettura software, utilizzatori (spazio utente). Quindi, se è necessario
bisogna prestare attenzione a non creare interferen- gestire situazioni che richiedono tempi di risposta
ze tra il processo principale e le funzioni dì elabora- " immediati" o, come si dice, in real time, è indis pen-
zione degli eventi. Abbiamo parlato dì eventi e non sabile utilizzare soluzioni basate su microcontrollori,
di interrupt, anche se nella letteratura viene utiliz- CPLD (Complex Programmable Logie Device) o
zato spesso quest'ultimo termine, in quanto, nel FPGA (Field Programmable Gate Array). Nel caso
caso dei microcomputer con sistema operativo, alla siano sufficienti soluzioni più blande, che si pos-
categoria dei quali fa parte Raspberry Pi, la gestione sono inserire nella categoria degli eventi, allora si
degli interrupt è di esclusiva pertinenza del kernel possono utilizzare le soluzioni che vi presentia mo
del sistema op erativo. Inoltre è garantita una forte di seguito. La programmazione "ad eventi" permet-
separazione tra ciò che è sotto controllo del sistema te di mantenere separate le porzioni dì codice che

102 Settembre 2018 - ELETTRONICA IN


11mm1.1MQl.fufl••iufli~~
GPIO. output(self . pin_e, True)
GPIO.output(self .pin_e , False)

def message(self, text):


"""" Send strin9 to LCD . Newline wraps to second line"" "
self . cmd(OxOC)
self . cmd(Ox02l
tor char in text :
if char •• ' \n ':
self . cmd(OxCO) f next line
else :
self . cmd(ord(char) , Truel

def destroy(self) :
self . clear ()
GPIO . cleanup (self . pin_e)
GPIO . cleanup (self .pin_rs)
GPIO . cleanup (self . pins_db )

def loop() :
global led
led • LCD()
led • HD44780 ()
sleep(2)
led. elear ()
sleep(2)
led . message(" TEST LCD \n WATT IP")
sleep(S)

giro • 1

while (giro •• 1) :

led. clear ()
cmd • ~hostname -I I cut -d\ ' \' -fl"
IP subprocess.check_output(cmd, shell • True)
lcd . message("IP ADDRESS : \n" + str(!Pll
sleep(2)

i! (len (IP) > 8) :


i f (IP[0 : 3) "192") :
giro • O

sleep(30 )
destroy ( l

def destroy ():


led . dest roy ()

if ~name~ •• ' ~main~ ' :


try :
loop()
e xcept Keyboardlnterrupt :
deseroy ()

devono essere eseguite in continuazione, da quelle Per questo esempio abbiamo utilizzato la libreria
che devono essere "risvegliate" unicamente all'acca- pigpio, inserita negli ultimi rilasci del sistema opera-
dere di quaJche evento, di solito un pin che cambia tivo Raspbian.
di stato. Anche in questo caso è assolutamente da I vantaggi principali de11a libreria pigpio sono:
evitare l'inserimento del controllo della variazione • Non richiedere i privilegi di root o sudo da parte
di stato di uno o più pin di ingresso all'interno del dei programmi utente per accedere al GPIO di
ciclo principale del programma, pena il sovraccarico Raspberry Pi;
della CPU e il degrado generale delle prestazioni del • La gestione del GPIO mediante funzionalità
sistema. veicolate via socket TCP /IP. In questo modo è
Prendiamo l'esempio del programma del Listato 2 possibile gestire il GPIO di Raspberry Pi in moda-
che permette di associare alla pressione di ciascun lità multi processing ed anche remotizzame la ge-
pulsante l'accensione di uno specifico LED. stione sulla rete TCP /IP. Per esempio uno o più

ELETTRONICA IN - Settembre 2018 103


~!/usr/bin/env python

import os alla pressione dei pulsanti. Nella funzione callback


import time
import. pigpio sono specificati il pin al quale è associato l'evento, la
funzione da attivare nel caso di innesco dell'evento
pi • pigpio . pi( ' localhost' )
pi . set_mode(24 , pìgpio . OUTPUT) ed il !tipo di variazione di stato del pin che si vuo-
pi . set_mode(l7, pigpio . OUTPUT) le intercettare: fronte di salita, fronte di discesa o
pi.set_mode(27, pigpio .OUTPUTl entrambi.
pi . set_mode(lB, pigpi o .OUTPUT)
Potete divertirvi a integrare le funzionalità descritte
sin qui, per esempio modificando i programmi pre-
pi . set_mode(5 , pigpio . INPUT)
pi . set mode(l3 , pigpio . INPUT) sentati per fare in modo di modificare i messaggi sul
pi . set:mode(l9, pigpio . I NPUT) display LCD a seconda dei pulsanti premuti.
pi . set_mode(6, pigpio . INPUT)
Prima di eseguire il programma dovete lanciare il
pi . set._pull_up_down(5, pigpio . PUD_UP) server pigpio con il comando:
pi . set_pull_up_down(l3, pigpio . PUD_ UP)
pi . set_pull_up_down(l9, pigpio . PUD_UP)
pi . set_pull_up_down(6, pigpio . PUD_UP) sudo pigpiod

def ps_5(gpio, leve!, tick) :


print (gpio , level) Questo comando basta eseguirlo una volta al reboot.
if (pi . read(24) -- 1): È anche possibile renderlo eseguibile in automatico
pi.wrice(24 , 0)
else : alla partenza del sistema operativo.
pi.wrice(24 , l) Per eseguire il programma nella finestra di termina-
le digitate:
def ps 13(gpio, level , cick) :
prlnt(gpio, level)
if (pi.read(l7) ~ 1) : python _Test_Pul santi . py
pì.wnte (17 , 0)
else :
pi. write (l 7 1 1) Per terminare il programma digitate CTRL+C.
def ps l9(gpio, level , tick) : Potete notare che premendo uno dei pulsanti si
prlnc(gpio, levelJ accende il LED ·corrispondente. Quando lo rilasciate
if (pi.read(27) -- 1): il LED si spegne. Se premete contemporaneamente
pi.writ.e (27 , 0)
else: più di un pulsante si accenderanno contemporane-
pi.wrue(27 , 1J amente tutti i LED corrispondenti. A questo punto,
def ps_ 6(gpio, level , tick) : modificando il programma, (fatene una copia), pote-
print(gpio, level) te divertirvi a sperimentare diversi comportamenti.
if (pi . read(l8) =• lJ :
pi. write(l8 , 0) Se volete aggiungere a questa configurazione la
else : possibilità di comandare delle utenze esterne, la
pi.write(l8 , 1) soluzione più semplice è di utilizzare una scheda
cbl = pi . callback(5, pigpio . EITH ER EDGE , ps_5 ) relè. Nel nostro caso abbiamo utilizzato la scheda
cb2 • pi.callback(6 , pigpio . EITHER-EDGE, ps 6) con codice 2846-RELAY4CH, che ha a bordo quattro
cb3 • pi.callback(l3, pigpio . EITHER EDGE, p; 13)
cb4 = pi . callback(l9, pigpio . EITHER=EDGE, ps=l9) relè. N e esistono versioni ad uno, due, quattro ed
otto relè. Collegate la scheda con dei cavetti. A que-
pi. write (24 , 0)
pi . write (17 , OJ sto punto lo stesso programma, oltre ad accendere i
pi. write (27 , OJ LED, fa scattare anche i relè corrispondenti.
pi.writ.e(l8,0)

while True : MODULO MIX BOARD


t:ime.sleep(O . ll Il modulo MIX Board è stato appositamente proget-
tato per sperimentare agevolmente la gestione di un
buzzer, di un Joystick e di un integrato per la misu-
Raspberry Pi possono gestire il GPIO in modo ra della temperatura collegato in modalità 1-Wire.
remoto da un ulteriore Raspberry Pi coUegato in
rete. / oystick
Il minuscolo joystick presente sulla MIX board
Nel programma di esempio visibile nel Listato 2 condivide i pin di ingresso collegati ai pulsanti stilla
possiamo notare l'inclusione della libreria pigpio, la scheda FT1369, in particolare la posizione A è colle-
connessione al server "pigpio", la funzione "call- gata al pin GPI05, la posizione B è collegata al pin
back" che permette di gestire gli eventi associati GPI013, la posizione C è collegata al pin GPI019,

104 Settembre 2018 - ELETTRONICA IN


#!/usr/bin/python
# - · - coding : utf-8 -•-
la posizione O è colJegata al pin GPI06 mentre il
import os
pulsante centrale è collegato al pin GPI026 che non import glob
trova corrispondenza coi i pulsanti presenti sulla import time
scheda Ff1369. os . syst.em( ' modprobe wl-gplo ' )
Per sperimentare l'uso del Joystick potete utilizzare os . syst.em ( ' mociprobe wl-thenn ' I
lo stesso programma di esempio del Listato 2. Dopo base dir • ' /sys/bus/wl/dev1ces/'
averne fatto una copia, provate ad aggiungere le device folder • glob . glob(base dir+ '28• ' ) (0)
istruzione per la gestione del pulsante centrale, per device=:f1le • device_tolder • ' 'wl slave'
def read_rom() :
esempio facendo in modo che alla sua p ressione si name_file=device_!older•' /name'
accendano tutti i LED. f = open(name_file,' r')
recurn f . readline()

Sensore di temperatura DS18820 def read temp raw();


L'utilizzo di un sensore, in questo caso il sensore di -f • open (device !ile, ' r ' I
lines • f . readlfnes()
temperatura DS18B20, che comunica in modalità f.close ()
1-wire con il device master ci dà l'occasione di intro- recurn lines
durre un tema importante nella progettazione di si- def read_temp() :
stemi che utilizzano un microcomputer con sistema lines = read_temp_raw()
while lines(O) . strip() [-3 : ) !• 'YES':
GNU/Linux. In questo caso il processore prevede time . sleep(0.2)
un solo pin per comunicare in modalità 1-wire, ed in lines • read temp raw()
particolare il pin GPI04. equals_pos a lines[l]-:rind(' t•')
if equals_pos !• -1:
Pertanto, nel caso si vogliano progettare sistemi che temp_string • lines[lJ [equals_pos+2 : J
comprendono sensori 1-wire è necessario colle- cemp_c • lloat(cemp_string) I 1000 . 0
temp f • temp e • 9 . 0 I 5 . 0 + 32 . 0
garli al pin GPI04 (piri fisico 07) e caricare i driver rcturn temp e , temp_f
di interfaccia in modo da permettere al kemel di
print ( ' rom : '- read_rom())
colloquiare con i dispositivi stessi e creare i file vir- while True :
tuali nel file system per interfacciarsi ai programmi pr1nt( ' C=\3.lf F•\3.3f'\ read_temp()l
utente. t1me . sleep(JI

Il bus ed il relativo protocollo 1-wire è stato svilup-


pato dalla Dallas Semiconductor per permettere l'in-
terazione tra molti dispositivi prodotti dalla Maxim/
Dallas Semiconductors, come conh·ollori di batteria Boards, rispettando il verso indicato stùla serigrafia.
e termici, memorie e tutti quei dispositivi che imple- In caso di inserimento invertito è molto probabile la
mentano questo protocollo ( iButtons®, etc). Si tratta "bruciatura" del sensore.
di un sistema di comunicazione di tipo hall-duplex, Ora è necessario far caricare i driver per la gestione
bi-direzionale e la comunicazione avviene tra un di- del bus 1-wire.
spositivo detto "master" (nel nostro caso Raspberry In modalità terminale possiamo utilizzare lo stru-
Pi) che controlJa uno o piu' dispositivi detti "slave" mento raspi-config con il comando:
che condividono con esso il bus.
L'integrato DS18B20 si presenta esternamente come sudo raspì-config
un transistor ma in realtà è un integrato che imple-
menta il sensore di temperatura propriamente detto, Selezionate la voce "lnterfacing Options" ed abili-
l'interfaccia di comunicazione 1-wire, la logica di tate la funzionalità "1-wire". ln questo modo verrà
controllo per la lettura del sensore e l'impostazione creata nel file system virtuale un'entrata associata al
della risoluzione. sensore di temperatura dove troveremo gli elementi
Come tutti i dispositivi 1-wire anche gli integrati indicativi ed i valori risultanti dalle letture. I file
DS18B20 sono caratterizzati da un identificativo si intercambio per il nostro sensore li trovate nelJa
uruvoco che ne permette l'identificazione sul bus, cartella /sys/devices/ wl_bus_masterl. All'interno
in questo modo possono essere collegati allo stesso di questa cartella troverete un'ulteriore cartella col
bus molteplici dispositivi, sia di tipo eterogeneo che nome che inizia con "28-" seguito da un numero
dello stesso tipo, come diversi sensori di temperatu- identificativo in esadecimale. Il numero "28-" iden-
ra 0518620. tifica la tipologia di sensore 1-wire, nel nostro caso il
Fate attenzione al verso di inserimento del sensore sensore di temperatura DS18B20, mentre il numero
DS18B20 nel suo alloggiamento sulla scheda MIX successivo è un numero di identificazione univo-

ELETTRONICA IN - Settembre 2018 105


#1/usr/bin/python
# -•- coding : utf-8 -•-
import RPi.GPIO as GPIO niamò un file di due righe come visibile di seguito:
import time
buzzer • 21
GPIO . setmode(GPIO. BCM) Sd 01 4b 46 7f ff Oc 10 94 : crc=94 YES
GPIO . setup(buzzer, GPIO .OUT)
Sd 01 4b 46 7f ff Oc 10 94 t=21812
p = GPIO.PWM(buzzer , 50)
p . start(O) dove "YES" sta a significare che il valore fornito
try :
while True : dal sensore è un valore valido mentre il valore di
for dc in range(0 , 101,5) : temperatura lo si trova alla fine delle seconda riga
p . ChangeDutyCycle(dc)
time . sleep(O.l) dopo "t=". Il valore va diviso per mille. Nel nostro
time . sleep (3) caso abbiamo una temperatura di 21,812 gradi.
for dc in range(l00 ,-1,-5) :
p . ChangeDutyCycle(dc)
Nel Listato 3 proponiamo un esempio di come ese-
time . sleep(O . l) guire la lettura del sensore di temperatura con un
time.sleep(3) programma in python. Per eseguirlo digitate:
except Keyboardimterrupt:
pass
p . stop() python _Test_dsl8b20 . py
GPIO . cleanup ()

Il programma elenca nella finestra di terminale le


letture di temperatura, una ogni tre secondi, mo-
co assegnato in fabbrica al sensore stesso; questo strando il risultato sia in gradi Celsius che in gradi
significa che non troveremo in commercio due Farenhait.
sensori con lo stesso numero identificativo. Questo
ci permette, come già anticipato, di collegare diversi Buzzer
sensori allo stesso e di leggerne uno alla volta secon- Sempre sulla scheda di espansione MIX Board è
do necessità. La lettura del valore di temperatura si montato un Buzzer che fa capo al pin GPI021.
ottiene leggendo il contenuto del file virtuale Per attivare il buzzer si imposta uno dei pin del
GPIO di Raspberry Pi come uscita PWM, in questo
/sys/devices/wl_bus_masterl/28-xxxxxxxx/wl_slave modo potremo configurare la frequenza del segnale
di uscita ed il livello di tensione da fornire al buzzer.
dove xxxxxxxx è il numero identificativo univoco Il livello di tensione lo otteniamo impostando il
del sensore che vogjjamo leggere. In risposta otte- duty-cycle del segnale PWM, ovvero la percentuale
di tempo, nell'ambito del periodo di oscillazione,
durante iJ quale l'uscita sta a livello alto. Per gestire
\:6 85T4
\"CC !j"J
il pin GPI021 come uscita PWM, sempre in Hnguag-
A.O \ 1)() 16 gio python, utilizziamo la libreria Rpi.GPIO.
Al SDA 11 s:>A_KfS~74 Il Lis,tato 4 di esempio contiene un loop che varia il
AJ sa. 14 sct_PCFS5'4 volume del buzzer in continuazione, prima a salire e
PO NT' 13 poi a scendere, modificando il valore del duty cycle
PI P7 l~ a piccoli passi tra Oe 255. La frequenza è fissata a 50
p~ P6 11 Hz con la funzione:
Pl !'$ 10

p ~ GPIO . PWM(buzzer , 50)

d ove la variabile "buzzer" contiene il pin al quale


è collegato il buzzer ed il valore 50 è la frequenza
impostata.
Eseguite il programma con il comando:

python _Test_Buzzer . py

ESPANSIONE INGRESSI USCITE SU BUS 12C


PCF8574 PCF8574
Il modulo di espansione PCF8574, permette di
Fig. 2 - Schema elettrico modulo PCF8574. aumentare il numero di ingressi/ uscite digitali. Il

106 Settembre 2018 - ELETTRONICA IN


#!/usr/bin/python

import time
import pigpio

pi • pigpio . pi( ' localhost ' )

h = pi . i2c_open(l , Ox20) i open device at address Ox53 on bus 1

PO= str( " 0 " )


Pl = SU( " 0 " )
P2 = str( " O" )
P3 = sr.r( " O" )
P4 = str( " l " )
PS = str( " l " )
P6 = str( " l " )
P7 = st:r( " l " )

Px = ( P7 + P6 + PS + P4 + P3 + P2 + Pl + PO)

print Px

Phex = hex(int(Px , 2))

prìnt Phex
pi . i2c_write_byte(h, int(Px, 2)) Il send byt:e

t:ime . sleep(l)

Pdec = pi . i2c_read_byte(h) # read byi:e

princ: Pdec

1Pdec = ini:(Rhex, 16)

print bin(Pdec)

Pbit = bin (Pdec) [2 : J . rjust (8 , ' O')


Ptab = lisi:(Pbit)

prìnt Ptab

RO = Ptab[7)
Rl = Pcab[6]
R2 = Ptab [5]
R3 = Ptab [4]
R4 • Ptab[3]
RS • Ptab[2]
R6 • Ptab[l]
R7 = Ptab[O]
print RO
print Rl
print R2
princ. R3
princ. R4
print RS
print R6
princ. R7

pi . i2c_ close (h)

modulo utilizza il bus I2C per la comunicazione giuntivi. La selezione degli indirizzi avviene
con Raspberry Pi. Infatti, lo scopo della scelta di posizionando opportunamente i ponticelli AO, Al
questo modulo è di sperimentare come comunica- e A2. Gh indirizzi selezionabili vanno dal valore
re sul BUS I2C. Come è noto sul BUS I2C possono 32 al 37 decimali (in esadecimale dal 20 al 27), in
essere collegati diversi dispositivi, purché cia- quanto il registro di indirizzamento prevede 7
scuno riconoscibile con un indirizzo univoco. Per bit di indirizzo con i primi quattro impostati in
esempio, assegnando indirizzi diversi, è possibiJe modo predefinito aJ valore binario "Ox0100" e
indirizzare fino a otto diversi moduli PCF8574, gli ulteriori tre bit sono impostati con i ponticelli
ottenendo così 64 canali di ingesso/ uscita ag- AO, Al e A2. I connettori che "portano" il bus I2C

ELETTRONICA IN - Settembre 2018 107


finestrçi di terminale potete utilizzare il comando:

sudo raspi- config

Selezionate la voce "Interfacing Options" ed


abilitate il BUS I2C. Dal desktop selezionate
"Preferenze>>Raspberry Pi Configuration" e, nella
pagina "Interfaces", abilitate il BUS I2C.
Fig. 3 - Rilevazione dispositivi /2C. Per verificare che il sistema abbia riconosciuto cor-
rettamente il modulo PCF8574 digitate il comando:

sono passanti, su ogni modulo è presente un con- i2cdetect -y 1


nettore maschio di ingresso ed un connettore fem-
mina si uscita collegati in parallelo in modo da Dovrete ottenere il risultato visibile nella Fig. 3.
permettere di collegare più moduli in cascata. Sul Nel nostro caso il "20" rappresenta l'indirizzo I2C
connettore maschio laterale sono presenti gli otto del nostro modulo.
pin che fanno capo agli otto ingressi/uscite ed un Se misuriamo con un tester le tensioni rispetto a
pin di interrupt che permette di "avvisare" il con- massa presenti sui pin di 1/0 del modulo PCF8574
trollore quando uno o più pin di ingresso cam- troveremo la stessa configurazione stampata nella
biano di stato. Il pin di interrupt è normalmente finestra di terminale.
impostato a valore alto e viene portato a valore Eseguite il programma con il comando:
basso dal cambiamento di stato di qualw1que pin
di ingesso, intercettando sia il fronte di salita che python _Test_ PCF8574.py
il fronte di discesa. Il protocollo di comwlicazio-
ne I2C, per il modulo PCF8574, contrariamente al Per ora ci ferrrtiamo qui. Se volete provare ad eser-
modo comune di utilizzare il bus 12C che prevede citarvi in una vostra realizzazione potete provare
nel messaggio un byte di indirizzo, un secondo a realizzare un termostato che utilizzi il sensore
byte che specifica il registro che si vuole leggere di temperatura, ed a seconda dei valori rilevati
e, in caso di comando di scrittura, uno o più byte attivi uno o più LED e di conseguenza uno o più
di dati, nel caso dell'integrato PCF8574, è suHi- relè. Con i pulsanti od il joystick potete impostare
ciente inviare un messaggio che contiene il byte i valori di innesco del termostato, presentandoli
di indirizzo e, nel caso dj scrittura, un solo byte i sullo schermo LCD.
cui otto bit rappresentano lo stato delle uscite che
si vogliono impostare ("O" per livello basso e "l"
per livello alto).
Buon divertimento e buono studio.

Una particolarità. Per impostare un pin come
ingresso, in modo che possa essere modificato "'1i per il MATERIALE
dall'esterno, è necessario impostarlo al valore alto
("1"). Se un dispositivo esterno lo porta al valore
basso ("O"), l'evento viene intercettato per mezzo Il materiale elencato di seguito può essere acquista-
del pin di interrupt ed il nuovo valore potrà esse- to presso Futura Elettronica. Lo shield didattico per
re rilevato con un comando di lettura di un byte Raspberry Pi (cod. FT1369) è disponibile a Euro 15,00,
dal bus I2C. Ovviamente i pin di uscita possono il display LCD 16x2 retroilluminato (cod. LCD1602A)
essere impostati sia al valore alto che al valore costa Euro 5,00, la scheda mix board multifunzionì
basso. La conseguenza che deriva dalla logica di per test (cod. MIXBOARD) è in vendita a Euro 6,60,
funzionamento del modulo è che se impostiamo la scheda di espansione IN-OUT (Cod. PCF857410)
un pin al valore alto, lo trasformiamo automatica- si può acquistare a Euro 4,80 e il modulo 4 relè
mente anche in un pin di ingresso. 5VDC/1 OA (cod. RELAY4CH) costa Euro 13,00.
Nel Listato 5 presentiamo un esempio di come
interfacciare il modulo utilizzando il linguaggio
python. Prima di eseguire il programma ricorda-
tevi di abilitare il BUS I2C utilizzando uno degli
strumenti di configurazione di Raspbian. Dalla

108 Settembre 2018 - ELETTRONICA IN


Al via il 56: il Consorzio 31iPP rilascia lo standard definitivo
Dopo anni di confronti, valutazioni porta anche ad una nuova architettura (Samsung, m ), e di servizi ( Keysight,
e test, la riunione plenaria del 3GPP di rete end-to-end, rendendo il SG uno Rohde-Schwarz), solo per citarne alcu-
(Third Generation Partnership Project), strumento fondamentale per la digitai ni. Sul sito 3GPP saranno disponibili a
l'organo che si occupa dello studio e transformation globale. Nuovi modelli breve tutti I documenti tecnici appro-
del rilascio degli standard nel campo di business saranno attivati e una nuo- vati (CT, RAN e SA).
delle telecomunìcazonl, ha approvato va era in cui tutto sarà Interconnesso
le specifiche contenute nella Release 15 aprirà nuovi orizzonti agli operatori www.3gpp.org
SG NR standalone (SA). Dopo il rilascio mobili ed al partner Industriali.
delle specifiche SG NR non standalone Le prime reti e i primi dispositivi com-
(NSA) nel dicembre 2017, è stato com- merciali dovrebbero essere disponibili
pletato un passaggio fondamentale per la fine di quest'anno, con un gra-
nella standardizzazione del SG. duale avanzamento della copertura a
L'intero settore ha ora tutti gli strumen- partire dal 2019.
ti necessari per lo sprint finale verso la Alla riunione plenaria del 3GPP hanno
commercializzazione SG. Il completa- preso parte oltre 600 delegati in rap-
mento delle specifiche SA che integra presentanza di operatori di rete (per
le specifiche NSA, non solo conferisce l'Italia TIM), produttori di Infrastrut-
allo standard SG NR la possibilità di ture (Ericsson, Huawei), di semicon-
Implementazione indipendente, ma duttori (lntel, Qualcomm), di terminali

ELETTROMICA IM - Settembre 2018 109


Il grafene apre
all'elettronica
Intelligente e
indo••ablle
Un'antenna a base di grafene flesslbl·
le e più ecologica di quelle In metallo
disponibili oggi sul mercato. ~ quanto
ha progettato e realizzato un team di
ricercatori dell'Istituto per la Sintesi
Organica e la Fotoreattlvltà del Consi-
glio Nazionale delle Ricerche (lsof-Cnr)
e Chalmers Unlverslty oflechnology In
collaborazione con STMlcroelectronlcs
di Catania e Nokla Technologles. La so-
luzione sperimentata dagli scienziati è
un altro passo verso l'utilizzo su larga
scala del materiale delle meraviglie, e
potrebbe facilitare la diffusione dell'e-
lettronica basata sulla •comunicazione
in prossimità• Near Fleld Communlca-
tion (NFQ, la tecnologia che consente a
due dispositivi di connettersi In moda-
lità wireless a breve raggio, e scambia-
re dati In modo sicuro e veloce.
La sostituzione del metalli con mate-
riali più leggeri, economici e a minore
Impatto ambientale è un obiettivo
della tecnologia moderna e interes-
sa anche l'elettronica di consumo. In
quest'ottica, per realizzare le antenne,
I ricercatori hanno utilizzato un mate-
riale laminato di grafene (noto come G-
paper), fabbricato comprimendo strati
di scaglie di grafene. La ricerca è stata
pubblicata su Materlals Today.
Le antenne In G-paper potranno essere
Integrate facilmente In supporti come
tessere, chiavi elettroniche, carte di
sicurezza e anche dispositivi elettroni-
ci Indossabili come braccialetti. Dopo
centinala di migliaia di dcli di piegatu-
ra ripetuti, le antenne hanno mostrato
un calo trascurabile delle prestazioni
poiché le singole placche di grafene
scorrono facilmente una sull'altra sen-
za perdere la forte connessione elettri·
ca tra loro. Sono inoltre perfettamente
compatibili con le tecnologie standard,
e non richiedono particolari hardware
e software per comunicare con altri
dispositivi elettronici. Lo studio è stato
condotto nell'ambito dell'Iniziativa eu-
ropea Flagshlp Graphene.
Inaugurato CRE§C06, il più potente supercomputer
del !iud Italia
Presso il Centro ricerche ENEA di Portici, fermarsi tra i maggiori attori transizione energetica verso
vicino Napoli, è stato inaugurato il super- nazionali dell'High Perfor- un'economia low carbon in
computer CRESC06, l'infrastruttura di mance Computing (HPQ. settori strategici, quali nuovi
calcolo più potente del Mezzogiorno e di "L'obiettivo è anche quello materiali, cambiamenti cli-
assoluta rilevanza nell'intero panorama di garantire la nostra parte- matici, ricerca sulla fusione
scientifico italiano grazie ad una capacità cipazione a centri di eccel- nucleare, gestione dell'acqua
computazionale di 700mila miliardi di ope- lenza a livello internazionale, e sviluppo di nuovi modelli nu-
razioni matematiche al secondo (700Tera- come l'Energy oriented Centre of merici. Oltre a clima e qualità dell'a-
Flops). Frutto della partnership tra ENEA Excellence for computing appllcations ria, sono molti i settori di applicazione
e CINECA, il maggiore centro di calcolo in (EoCoE), di cui ENEA è partner", afferma del supercomputer ENEA: dallo studio di
Italia, CRESC06 andrà ad affiancarsi ad altri Massimo Celino, esperto ENEA in scienza nuovi materiali per la produzione di ener-
due supercomputer dell'Agenzia (da circa dei materiali computazionale. gia pulita alle simulazioni per la gestione
125 TeraFLOPS complessivi) già istallati e EoCoE è uno degli otto centri di eccellenza delle infrastrutture critiche, dalle biotec-
operativi nel Centro ricerche ENEA di Porti- europei per le applicazioni del supercalco- nologie alla chimica computazionale, alla
ci. Il nuovo sistema di supercalcolo rientra lo finanziati dal programma UE Horizon fluidodinamica per il settore aerospaziale.
tra le azioni strategiche previste dal piano 2020 con l'obiettivo di garantire il posizio-
di sviluppo 2018-2020 dell'ENEA per con- namento europeo nell'HPC e accelerare la www.enea.it
MIT
APPINVENTOR
di FRANCESCO FICILI

Continuiamo il nostro viaggio


alla scoperta del tool di sviluppo
per applicazioni Android
l\T abbiamo
eUa precedente puntata di questo nostro corso
portato avanti l'analisi dei compo-
nenti di App Inventar (ricordiamo che i componenti
basato su un linguaggio di sono gli elementi che permettono di aggiungere
programmazione completamente funzionalità all'app in fase di sviluppo con App
grafico. In questa puntata Inventor) descrivendo le famiglie di componenti
media e social e proponendo i consueti esempi
analizzeremo la gestione delle applicativi propedeutici al consolidamen~o delle
liste e delle procedure, nonché nozioni teoriche acquisite.
delle animazioni, tramite la In questa puntata continueremo la nostra analisi
famiglia di componenti drawing concentrandoci sulla gestione delle stringhe e delle
and animation. liste, descrivendo come possono essere create le

ELETTRONICA IN - Settembre 2018 113


procedure e, infine, analizzando una nuova fami- piuttosto ampia e diversificata di operazioni sulle
glia di componenti: drawing e animations. stringhe, tra cui:
• creazione di costanti di tipo stringa;
Gestire le Stringhe in AI • unione di due o più stringhe;
App Inventar (AI, come lo spesso lo abbreviamo in • calcolo della lunghezza di una stringa;
questo corso) mette a disposizione una serie di be- • verifica che una stringa sia o meno vuota;
haviours specializzati per la gestione delle stringhe, • confronto tra due stringhe;
che prendono il nome di "Text Block", che nella • eliminazione di spazi (trim);
block palette sono localizzati tra i blocchi built-in. I • conversione Maiuscolo/ Minuscolo;
blocchi principali di questo gruppo sono riportati
nella Fig. 1, mentre nella Tabella 1 riportiamo i più ed altro ancora. Come abbiamo visto in precedenza,
significativi, ciascuno correlato con l'operazione App Inventar identifica i blocchi di gestione strin-
corrispondente e con la relativa descrizione. ghe con il colore violetto.
App Inventar permette di compiere una serie Vediamo di seguito quali sono le operazioni più

- --
SIMBOLO OPERAZIONE DESCRIZIONE
Costante stringa Questo blocco crea una costante di tipo
stringa. È possibile digitare il contenuto
della stringa direttamente dentro il box tra
le virgolette.
•19.1.111: Unione stringhe Tramite questo blocco è possibile unire
due o più stringhe.
400,,!&t

1· .t!.jii§i: I CI
1 < •
+ig.1.111: Lungheua stringhe Questo blocco restituisce la lunghezza
di una stringa in numero di caratteri. Un
alt ro blocco simìle denominato "is empty•
verifica se una determinata stringa è
4!11,,1! Confronto tra stringhe
vuota.
Questo blocco permette dl eseguire li

.C uecase . e q ..11a1+ l< ·CI


confronto tra due stringhe, determinan-
do se sono uguali. È possibile Inoltre
verificare se una data stringa è maggiore
o minore dl un'altra (dal punto di vista
logico-alfabetico).
starts at text
Inizia o contiene Questi due blocchi consentono di verifi-
piece starts at text care se una stringa inizia per o contiene
piece una data sottostringa. li blocco •starts•
restituisce Ose la sottostringa non·è
contains text contains text
presente, oppure la posizione del primo
Fig.1 carattere·della sottostringa nella stringa. li
piece Principali piece blocco "contains" invece restituisce sem-
plicemente true o false a seconda che la
blocchi del sottostrlnga sia presente o meno.
mJill text gruppo Text. Dividere stringhe Tramite Il blocco split è possibile effettua-
re la divisione di una stringa in funzione di
at un determinato separatore (at). Il blocco
split at spaces divide la stringa in funzio-
ne del separatore spazio. ln entrambi I
splrt at spaces splrt al spaces casi viene restituita una lista di elementi.

Tagliare stringhe Tramite questo blocco è possibile ricavare


segment text segment text una sottostrlnga da una stringa partendo
start da un determinato offset (start) e per una
start determinata lunghezza (lenght).
length
length
Sostituire in una stringa Tramite questo blocco è possibile
replace all text sostituire un elemento (segment) in una
replace ali text segment data stringa con una stringa sostitutiva
(replacement). La sostituzione vfene fatta
segment replacement con tutte le occorrenze di •segment•.

replacement
Tabella 1 - Operazioni più comuni sulle stringhe con Al.

114 Settembre 2018 - ELETTRONICA IN


comuni che è possibile effettuare sulle stringhe di della lista; il primo elemento di una lista ha indice
App Inventor, aiutandoci con la Tabella 1, dove 1, a differenza della stragrande maggioranza dei
abbiamo spiegato quelle più rilevanti. linguaggi di programmazione, che identifica questo
elemento con l'indice O.
Gestire le Liste in AI Le più importanti operazioni che è possibile esegui-
Uno degli elementi più utilizzati nei vari linguaggi re sulle liste in App Inventor sono:
di programmazione moderni sono le liste; in realtà • creazione di una lista;
la maggior parte dei linguaggi utilizza degli ele- • manipolazione degli elementi di una lista;
menti più semplici che sono gli array e le matrici (si • selezione degli elementi di una lista;
tratta di vettori mono e bi-dimensionali), e le liste • verifica dello stato di una lista (vuota, numero di
vengono generate tramite strutture più complesse. elementi contenuti);
In App Inventor le liste sono definite come un insie- • verifica che un dato elemento sia contenuto in
me di elementi contraddistinti da un indice nume- una lista;
rico che identifica univocamente il dato all'interno • determinazione dell'indice di un elemento in una
lista.

ed altro ancora. Nella Fig. 2 sono riportati alcuni


Fig.2 dei blocchi di gestione liste di App Inventor; come
Blocchi abbiamo spiegato in precedenza e come si vede in
gestione liste figura, App Inventor identifica i blocchi di gestione
in Al. liste con il colore celeste.
Analizziamo adesso i più importanti blocchi di App
Inventor per la gestione delle liste, aiutandoci con
Tabella 2.

OPERAZIONE DESCRIZIONE
is in list? thing
list Questi blocchi consentono di creare una
Creazione Uste lista vuota o una lista con una serie di
elementi.
length of list list
Questo blocco consente di aggiungere
~is list empiy? ilist Aggiunta di elementi In
nuovi elementi alla lista (è possibile
aggiungere etemenU cliccando sull'icona
coda ad una lista
a forma di Ingranaggio). I nuovi elementi
saranno aggiunti In coda alla lista.
pick .a random item list
inselt kst item hst
index
.7°lnde1dn11ist thln9 item Tramite questi blocchi è possibile inserire
I nsertmento e rimozione
e rimuovere elementi da una lista tramite
fist di elementi da una lista
il loro indice.

1
select list item list
index
Tramite questo blocco è possibile sosti·
Sostituzione di un ele-
tuire un elemento In una lista utilizzando
mento di una lista
1ri~Q*rtri~ti1te1Jì·~1lsi~.. l'indice per Individuarlo.
""'ot..~~ - , ..
- index
item Individuazione di un
Questi blocchi consentono di verificare se
un dato elemento è presente in una lista
elemento in lista
oppure se una Usta è ·vuota.
-- -- -
r~place. list item list
Indice di un elemento Questo blocco consente di ottenere !'indi·
index in lista ce di un dato elemento tn una lista.

replacement
Tabella 2 - Principali blocclti di gestione liste in AI.

ELETTRONICA IN - Settembre 2018 115


ocedure without ret ~r.gomenti
Fig. 5 - Procedura con della
argomenti.
~r.ocedura

rocedure with ret .-=~---~-


-K

Fig. 3 - Tipi di procedure supportate in AI.

Esistono vari altri blocchi che consentono di esegui- lore di ritorno e senza valore di ritorno, come illu-
re ulteriori operazioni sulle liste, ma in questa sede strato in Fig. 3. In entrambi i casi è sempre possibile,
non ce ne occuperemo; lasciamo a voi l'approfondi- se necessario, passare degli argomenti alla procedu-
mento cti questo argomento. ra; questo può essere fatto semplicemente premen-
do sul pulsante a forma di ingranaggio presente su
Le procedure in App Inventor uno dei blocchi procedure visto in precedenza ed
Come la maggior parte dei linguaggi di program- effettuando il drag&drop dei blocchi input; l'opera-
mazione, anche in AI è possibile creare delle zione è schematizzata nella Fig. 4. Invece nella Fig.
sub-routine, ossia delle funzioni che prendono 5 è riportata una procedura che ha due argomenti:
in ingresso un set di parametri, eseguono una xey.
determinata elaborazione ed infine possono, even- Le procedure devono avere nomi univoci all'inter-
tualmente, ritornare un determinato valore come no di ogni Screen e una volta definite comparirà
risultato dell'elaborazione stessa. Una volta definita, tra i blocchi "Procedures" l'apposito blocco per la
la funzione (o sub-routine) ha la caratteristica di relativa invocazione (Cali Procedure), come illu-
poter essere richiamata in qualsiasi altra sezione strato in Fig. 6; tale blocco può essere utilizzato per
della nostra applicazione, permettendo di realizzare invocare una procedura da un punto qualsiasi della
alcuni principi base della programmazione, come la nostra app.
modularità e il riutilizzo del codice.
In App Inventor queste sub-routine prendono il Es~mpio pratico di procedure
nome di procedure e sono rappresentate con bloc- Vedi~mo adesso come creare una semplice proce-
chi di colore violetto. dura fhe esegua la moltiplicazione tra due valori,
AI definisce due tipi principali cti procedure, con va- passati come argomenti alla procedura stessa. Per

Sei eet

arag and ar.op


Fig. 4 -Aggiunta degli argomenti ad una procedura. Fig. 6 - Blocco per l'invocazione di 1111a procedura.

116 Settembre 2018 - ELETTRONICA IN


o: :~a:i~: to ~. _ Q__ fl _
g resul1 CO~! ; ; getEll , X ( get ra
~------ [ ___ ~

zw
Fig. 7 - Procedura con ritomo ed argomenti x e y. Fig. 9 - Procedura completa.
>-
z
- La famiglia Drawing and An.imation
Passiamo adesso ali'analisi della famiglia di com-
ponenti Drawing and Animation; questa famiglia
comprende elementi, come sprite e canvas, che per-
mettono di realizzare animazioni o anche semplici
giochi. 1n Fig. 11 è riportato uno screenshot della
famiglia Drawing and Animation.Passiamo, come
di consueto, all'analisi dei vari componenti, specifi-
cando nel dettaglio anche eventi, metodi e proprietà.
Fig. 8 - Inserimento del blocco moltiplicazione e dei blocchi Ball
get degli argomenti della procedure.
Una semplice sprite di forma rotonda, che può es-
sere posizionata su di un Canvas, dove può reagire
prima cosa trasciniamo all'interno del workspace a tocchi, swipe e drag, interagire con altre sprites
un blocco di tipo procedure con valore di ritorno (come altre balls o image sprite) e con gli edge della
ed assegniamogli due argomenti, x e y, che sono i Canvas nella quale si trova posizionato. Lo sprite
nostri due valori da moltiplicare, come illustrato in ha una serie di proprietà, come velocità e direzione,
Figura 7. e si muove in accordo ad esse. Velocità e direzione
A questo punto inseriamo all'interno.un blocco sono indicate, rispettivamente, in pixel al secondo e
moltiplicazione (dal gruppo dei blocchi matematici), in gradi (partendo dal lato destro dello schermo).
collegato al connettore "result" e inseriamo come Ad esempio, per avere una ball che si muova di 8
operatori del blocco matematico le get per i para- pixel al secondo, con un intervallo di movimento di
metri x e y, çhe possiamo ottenere semplicemente 500ms, verso la parte alta dello schermo, si dovrà
facendo mouse aver (portandoci sopra il puntatore settare:
del mouse...) sugli argomenti della procedure, come • la proprietà speed della ball a 4 pixel;
illustrato in Fig. 8. Il risultato finale è illustrato in • la proprietà interval della ball a SOOms;
Fig. 9. • la proprietà heading della ball a 90 (O è il lato
Un esempio, puramente didattico, di utilizzo della destro dello schermo, 90 la parte alta);
procedura appena realizzata, è riportato in Fig. 10. • la proprietà enabled a true.

~
Drawing and Animation
- . . . •e 1 1 1111
•1==r • i• /• Bali 7

Fig. 10 - Esempio di utilizzo della procedura. Canvas 1

lmageSprite

Fig. 11 - Famiglia di componenti


Drawing and Animation.

ELETTRONICA IN - Settembre 2018 117


PROPRIEl'l
SINTASSI DESCRIZIONE
Enabled Controlla se lo sprlte può o meno muoversi (se la sua velocità è maggiore di 0)
Headlng Controlla l'orientamento dello sprite In gradi. zero gradi corrisponde al lato destro dello schermo.
lnterval t:lntervallo di tempo, In ms, al quale la poswone dello sprite è aggiornata.
Speed La velocità alla quale lo sprite si muove (In pixel per interval).
X Coordinata orizzontale dello sprite (si considera l'estremità sinistra come rifenmento).
y Coordinata verticale dello spnte (St considera l'estremità alta come nferimento).
IVllm
SINTASSI DESCRIZIONE
CollidedWrth(component other) Event handlel' lrMx:ato quando due spnteS collldooo tra di loro. Viene passato lo spnte con il quale la ball è andata a collldele.
Event handler invocato quando uno sprlte raggiunge l'estremità di un canvas. Se m questa circostanza è 1nvo·
EdgeReached(number edge)
cato Il metono Bounce passando l'edge come parametro, allora lo sprlte rimbalzerà contro l'edge.
Event handler invocato quando viene nlavato un swipe veloce sullo schermo. Vengono passati una serie di
parametri, tra cui:
Flung (number x, number y, number speed, • Posizione (X,y) di partenza dello sw1pe,
number headlng. number xvel, number yvel) • Speed dello SWlpe,
- Heading dello sw1pe,
• Componenti x e y del vettore velocità dello swipe.
TouchDown(number x. number y) Evento invocato quando l'utente tocca lo sprite e matiene il tocco. Vengono fomite le coordinate x e y del tocco.
Evento Invocato quando l'utente interrompe una azione d11ouch down su uno spnte. Vengono fomite le
TouchUp(number x, number y)
coordinate x e y del tocco.
Touched(number x, number y) Evento invocato quando l'utente esegue un tocco veloce su uno spnte. Vengono fomite le coordinate x e y del tocco.
llllODI
SINTASSI DESCRIZIONE
Fa rimbalzare uno sprite contro un edge di un canvas. Per ottenere un rimbalZo corretto l'argomento passato
Bounce(number edge)
deve essere l'edge ritornato dall'evento EdgeReached.
boolean CollidingWith(compooent otherl Indica se lo spnte si è scontrato con un altro spnte (passato con 11 parametro otheò.
MoveTo(number x. number y) Muove lo sprite alle coordinate x, y.
PomtlnDirecbon(number x, number y) Gira lo sprite In modo da farlo puntare verso le coordinate x,y.
PointTowards(component tergei) Muove lo sprite in modo da farto puntare verso Il componente passato come argomento.

Tabella 3 - Eventi, metodi e proprietà del componente Bali.

Analizziamo in dettaglio i più importanti eventi, wdth


metodi e proprietà di questo componente, aiutan-
doci con la Tabella 3. :.. ~tnm:atic _

Image Sprite lnterval


L'Image Sprite è identico al Bali sprite, con l'unica
differenza che prende in input un'immagine, che 1C<O
poi diventerà l'immagine che rappresenta lo sprite
sul canvas.
Eventi, metodi e proprietà sono del tutto simili a
Pie ure
quelli del ball sprite, con qualche differenza, come
la possibilità di importare l'immagine dello sprite,
operazione che può essere eseguita dalla compo-
nent view, come indicato in Fig. 12. Rotat es

Canvas
Il Canvas (Tela) è un pannello rettangolare sensibile Fig. 12
al tocco all'interno del quale possono muoversi gli Inserimento
sprites ed è possibile disegnare oggetti All'interno dell'immagine di
di un canvas ogni posizione può essere identificata uno l111age Sprite.

118 Settembre 2018 - ELETTRONICA IN


PROPRIEl'A
SINTASSI DESCRIZIONE
BackgroundColor Colore di Background del canvas

Backgroundlmage Immagine di background del canvas


FontSize Dimensione del font del testo scritto sul canvas
UneWldth Ampiezza delle linee disegnate sul canvas
PaintColor Colore con cui sono disegnate le linee sul canvas
TextAllgnment Allineamento del testo sul canvas
EVENT1
SINTASSI DESCRIZIONE
Aung(number x, number y, Event handler che intercetta un flung effettuato sul canvas. Vengono passati gJI argomenti tipici del flung oltre ad un
number speed, numbefheading, booleano che indica se la parte iniziale del flung gesture è stata fatta vicino ad uno sprite.
number xvel, number yvel, boole·
an flungSprite)
TouchDown(number x, number y} Evento Invocato quando l'utente tocca il canvas e matlene il tocco. Vengono fomite le coordinate x e y del tocco.
TouchUp(number x, number y) Evento invocato quando l'utente Interrompe una azìone di touch down sul canvas. Vengono fomite le coordinate x e y
del tocco.
Touched(number x, number y, Evento invocato quando l'utente esegue un tocco veloce sul canvas. Vengono fornite le coordinate x e y del tocco.
boolean touchedSprite}
METODI
SINTASSI DESCRIZIONE
Clear() Cancella tuno quello che è stato disegnato sul canvas, ma mantiene il colore di background ed eventuali immagini di
background.
DrawCircle(number x, number y, Disegna un cerchio alle coordinate x e y, di raggio r (in pixels).
number r)
DrawUne(number xl, number y1, Disegna una linea passante per le coordinate fomite come argomenti.
number x2, number y2)
DraWText(text text, number x, Scrive un testo alle coordinate x e y.
numberyJ
text SaveO Salva !'immagine del canvas su memoria non volatile.
text SaveAs(text fileName) Salva l'Immagine del canvas su memoria non volatile, nel file chiamato fileName.

Tabella 4 - Eventi, metodi e proprietà per il componente canvas.

per mezzo di due coordinate cartesiane x e y, con le gioco". Il campo sarà un canvas e la palla e la buca
seguenti regole: due ball sprite, che "tireremo" con uno swipe sullo
• X è il numero di pixel dall'estremità sinistra del canvas; schermo touch, avvalendoci dell'evento slung.
• Y è il numero di pixel dall'estremità superiore Prevediamo, inoltre, di inserire una label per tenere
delcanvas. traccia del punteggio, un componente notifier per la
notifica dei punti ed un pulsante per ricominciare
Analizziamo anche per questo componente gli eventi, il gioco. Inoltre consentiremo alla palla di rimbal-
i metodi e le proprietà, aiutandoci con la Tabella 4. zare su tutte le pareti del canvas ed utilizzeremo
un componente dock per invalidare un tiro non a
Esempio Pratico con i componenti segno dopo un timeout di 5 secondi, in modo da
Drawing and Animation evitare rimbalzi indefinti.
Passiamo adesso, come di consueto al nostro esem- Cominciamo la realizzazione della nostra app
pio pratico. Avendo trattato i componenti della d'esempio posizionando gli elementi che ci servono
famiglia Drawing and Animation, in questa puntata sulla designer view:
abbiamo deciso di presentare come esempio pratico • un canvas Cvs_GameArea;
la realizzazione di una semplice app di gaming. • due Ball Sprite chiamate rispettivamente Spt_Ball
Nello specifico decidiamo di realizzare una sorta di ed Spt_Hole;
semplice gioco di minigolf, dove bisogna centrare • un button Btn_Restart;
con una pallina una buca posizionata in maniera • due labels chiamate rispettivamente Lbl_Sco-
randomica sulla parte superiore del "campo da reLbl ed Lbl_Score;

ELETTRONICA IN - Settembre 2018 119


Display ludden componeors In Vaewer irnliakze global mill.!o_,·, 'm
Clledt to Stt P1tv1ew 011 TablN ~·.u
ifl :

-
, SC!el!fll

• ~

.,,
)>.
".:'O

-z
~
m
z
~
Fig.14 - Variabile globflle e procedure ScoreMessage. o
ResianGame
::o
Currant Score: Spt_Hole:
o • Pafat Color: Black;
• Radius: 12;
• X: 145;
Fig.13 • Y: 20.
Non·visible componente Layout
dell'app Clock:
Ntf.Nessages Cli<:..Timeout d'esempio.
• Timer Always Pire: false;
• Timer Enabled: false;
• un componente Notifier Ntf_Message; • Timer Interval: 5000.
• un componente Clock Clk_Timeout.
Una volta completato, il layout della nostra app do- Una volta impostate le proprietà, passiamo sul-
vrebbe apparire come quello proposto nella Fig. 13. la block view, dove per prima cosa creiamo una
Impostiamo anche le seguenti proprietà statiche: variabile globale Score (inizializzata a zero) e due
procedure senza valore di ritorno e senza argomen-
Canvas: ti, chiamate rispettivamente NewRound e Score-
• Background color: green; Message, le cui implementazioni sono riportate in
• Height: 70%; Fig. 14 e in Fig. 15.
• Width: fili parent. La procedure NewRound ci serve a riposizionare
la pallina nella parte centrale bassa del campo e la
Spt_Ball: buca in una nuova posizione random (casuale) sulla
• Interval: 20; parte alta dello schermo.
• Paint Color: White; La procedure ScoreMessage invece ci serve a
• Radius: 8; determinare il messaggio da presentare all'utente
• X: 150; (segnatura di un punto o vittoria) tramite il compo-
• Y: 300. nente notifier. Inoltre, in caso di vittoria (raggiunta
se il numero di punti è superiore a 20), viene anche
! • • , resettata la variabile globale score.
,.--, t •, A questo punto non ci resta che gestire i vari eventi
.5J; o NewRound '
di gioco, che sono i seguenti:
do set ~.l§'mll to ::m • Spt_Ball.Flung per effettuare i tiri;
.set ~-ED to ('H • Spt_Ball.EdgeReached per i rimbalzi contro i
bordi del canvas;
set ~ . . . to 1 . ~
~r.. I j-·
set E.I~ · ir.11111m to ' 1 random integer from I 1 O ; to (~
"--- ' .___,

120 Settembre 2018 - ELETTRONICA IN


Backpack
Uno degli inconvenienti tipici degli ambien- ecc. App Inventor tenta di risolvere questo
ti grafici è la scarsa portabilità del codice inconveniente tipico degli ambienti gra-
tra progetti differenti. Se con gli ambienti fici tramite il cosiddetto "Backpack". Il
testuali, spesso un copia ed incolla è più Backpack, ossia lo "zainetto", non è altro
che sufficiente e abbiamo una grossa varie- che ciò che il suo nome suggerisce: una
tà di editor che ci aiutano a compiere le più sorta di zaino virtuale che possiamo stipa-
svariate operazioni, con gli ambienti grafici re con i nostri "snippet" di codice grafico,
ciò è molto più complesso; spesso l'Unico che può poi essere recuperato successiva-
editor valido per elaborare 11 codice grafico mente nella stessa o in altre app.
è quello dell'ambiente di sviluppo ed effet- Il backpack si presenta come un'icona a
tuare 11 copia ed incolla non è sempre age- forma di zaino posizionata in àlto a destra
vole, non si può utilizzare il find&replace, nella block view. Trascinando del codice
•• grafico al suo interno, l'icona cambia e
mostra uno zainetto pieno, come illustrato
in Fig. A .
Cliccando sul backpack pieno si apre un
popup con la Usta dei blocchi e degli snip-
pet immagazzinati al suo interno, come
illustrato in Fig. B . Da questo popup è
possibile trascinare i blocchi ali'interno del
workspace.
Se il backpack è troppo pieno può essere
svuotato selezionando l'opzione "empty the
backapck" accessibile dal menù contestuale
che compare premendo il tasto destro del
Fig. A - Le possibili icone del backpack. mouse sul workspace.

mrntRIL: .,pyl!·~·
·

initialize global ~ to ( : m
I inrtialize global ~ to ( : m
Fig. B - Esempio di blocchi
disponibili nel backpack.

• Spt_Ball.CollidedWith per determinare se è stato Gli snippet di codice grafico che implementano gli
segnato un punto; eventi elencati sono riportati in Fig. 16.
• Btn_Restart.Click per ricominciare un gioco; In sostanza, al verificarsi dell'evento di flung viene
• Clk_Timeout.Timer per iniziare un nuovo round settata la proprietà speed della pallina al valore
allo scadere del timeout (tiro fallito). dell'argomento speed del flung più una costante

ELETTRONICA IN - Settembre 2018 121


I~

Fig. 16 - Gestione dei vari euent handler.

di valore 5 (per rendere il gioco più veloce) e la del componente Spt_Ball e passando l'edge indi-
proprietà heading al valore dell'argomento heading viduato dall' event handler stesso. Al verificarsi
dell'evento. Questo orienta la pallina nella direzio- dell'evento CollidedWith (pallina in buca) viene
ne dello swipe. Inoltre viene attivato il timer: da chiamata la procedura NewRound, in modo da po-
questo momento trascorrono 5 secondi prima che sizionare gli elementi per un nuovo round di gioco,
venga triggerato l'evento di timeout. aggiornato il punteggio e chiamata la procedura
L'evento EdgeReached viene gestito in maniera da ScoreMessage per presentare il messaggio all'uten-
generare i rimbalzi, chiamando il metodo Bounce te. Inoltre viene stoppato il timer. Infine con i due
eventi BtnRestart.Click e Clk_Timeout.Timer viene
iniziato un nuovo round e nel caso della pressione
~ : .'-' ~> :t :è •A • · · i'
del pulsante azzerato il punteggio (in quanto si
tratta di iniziare un nuovo gioco da O).

• Potete testare il gioco utilizzando un qualsiasi


smartphone android (l'uso dell'emulatore è scon-
sigliato in questo caso, in quanto non si riuscirebbe
ad avere la corretta interazione con l'applicazione,
che prevede l'uso fine del touch).
Nella Fig. 17 è riportata un'immagine di una fase di
gioco, come appare sullo schermo cli un dispositivo
portatile reale.

Conclusioni
In questa quinta puntata abbiamo analizzato alcuni
aspetti nuovi di Appinventor, come la gestione del-
le stringhe e delle liste, oltre ad aver spiegato come
realizzare le procedure. Inoltre abbiamo descritto
una nuova famiglia di componenti, la famiglia
Drawing and Animation, che risulta fondamentale
nello sviluppo di app di gaming.
Restart Game Nella prossima (e conclusiva) puntata del corso ve-
dremo ulteriori aspetti legati alla programmazione
Current Score:
ed analizzeremo le ultime famiglie di componenti
12
rimaste, oltre a spiegare come si pubblicano le app
realizzate con App Inventar sullo store Google Play
Fig. 17 - Immagine di una fase di gioco. per renderle disponibili al pubblico.

122 Settembre 2018 - ELETTRONICA IN


DICITAL TRANSFORMATION OF THINCS
Ispirandosi al nome del- ciando quindi le esigenze
la fortezza dove sono
conservate al sicuro le
Samsung Knox sia delle piccole, sia del-
le grandi aziende. Con
riserve auree degli Stati Samsung Knox, il colosso
Uniti, ossia Fort Knox,
Samsung ha ideato e ri-
blinda dati coreano continua a sup-
portare la trasformazio-
lasciato la sua piattafor- ne digitale delle aziende,
ma Knox che si propone spostandosi sull'ambito
di rendere sicuro e invul- mobile.
nerabile lo smartphone. Nata qualche anno fa ne-
Samsung Knox nasce gli Stati Uniti per creare
per soddisfare le esigen- e garantire un'area dati
ze di sicurezza nell'era sicura riservata sui dispo-
del GDPR. ma anche per sitivi mobile, Samsung
la gestione dei device e
la personalizzazione del-
le funzionalità di tablet e
smartphone. Sui disposi-
-- Knox si è trasformata in
un'offerta di soluzioni per
lo staging e l'enrollment
dell'agent dei software
tivi mobile di Samsung, di device management
Samsung Knox offre una (Knox KME), ma anche
serie di soluzioni di sicu- nella possibilità di fare
rezza volta ad assicurare che I dati contenuti nel dispo- una customizzazione dei device, di avere funzionalità
sitivi siano protetti e che i device siano facilmente con- MDM con Knox Manage, per arrivare a WorkSpace e
trollabili e gestibili. Questo perché la piattaforma Knox alll'E-Fota, che permette di gestire in modo autonomo il
offre funzionalità che vanno dalla gestione e della pro- rilascio degli aggiornamenti dei firmware.
tezione dei dati personali, separata da quelli aziendali,
alla gestione da remoto della flotta aziendale, abbrac- www.samsung.com/it/

ELETTRONICA IN - Settembre 2018 123


DIGITAL TRANSFORMATION OF THINGS

> Milano: la Digitai Transformation nella sosta


Il capoluogo lombardo si prepara a rivoluzionare il comunicare i dati sulla sosta a un server centrale
sistema di pagamento della sosta sulle strisce blu: tramite la Rete. Quindi è stato sufficiente scrivere
invece di apporre il tagliando in carta basterà digi- e caricare uno specifico software nelle colonnine
tare lettere e cifre della propria targa sulle tastiere del centro storico e sui palmari degli addetti della
dei parchimetri, che saranno opportunamente at- sosta e agenti della polizia locale, che così potran-
trezzati e connessi in rete. Mettere in piedi questo no verificare se per una certa auto parcheggiata
sistema non è stato particolarmente complesso sulle strisce blu è stata o meno pagata la sosta.
perché la parte hardware c'era già, in quanto sono Sul lato dei parchimetri l'aggiornamento software
state mantenute le colonnine esistenti che rilascia- ha riguardato l'acquisizione da tastiera del numero
vano i tagliandini da mettere sul cruscotto; ciò che di targa. della cifra pagata e l'invio in rete di questi
mancava era il software che rendesse possibile dati. Il nuovo sistema consiste dunque in un paga-

>La palestra per l'innovazione di TIM


lmmersive Summer Camp è l'i- to del programma di Alternanza nell'ambito della scuola;
niziativa lanciata a Roma da TIM Scuola-Lavoro che TIM ha pro- • lo Storytelling e Digitai Tran-
in collaborazione con Fondazione mosso in 24 scuole di 1O città ita- sformation per raccontare i
Mondo Digitale per orientare gli liane e che ha portato alla forma- cambiamenti.
studenti verso i nuovi scenari la - zione di oltre 600 studenti delle
vorativi. Una palestra dell'innova- IV classi sui temi delle digitai skill. Seguiti da esperti TIM e dai for-
zione, dove 20 studenti sono stati I 18 migliori studenti provengono matori della Fondazione Mondo
selezionati per partecipare a una da sei scuole romane, tra istituti Digitale, i 20 studenti hanno lavo-
settimana intensiva per essere Tecnici e Licei. rato sui temi chiave della Digitai
accompagnati allo scoperta delle Il futuro della trasformazione digi- Transformation: dalla realtà vir-
professioni chiave della trasfor- tale si costruisce con la formazio- tuale per aumentare l'esperien-
mazione digitale, attraverso la ne e TIM ha proposto due temati- za del cliente, agli strumenti per
formazione. che su cui confrontarsi: connettere in rete oggetti, am-
l.'.iniziativa si inserisce nell'ambi- • la Digitai Transformation bienti e persone. Durante la set-
timana i ragazzi avranno anche
la possibilità di allenare le soft
skills più richieste dai modelli la-
vorativi del futuro: impareranno a
costruire efficaci team di lavoro,
scenari condivisi e a migliorare le
loro capacità critiche e di problem
solving.
Alla fine del percorso hanno mes-
so in pratica le competenze e gli
strumenti acquisiti per ideare e
prototipare il loro primo progetto
di innovazione e trasformazione
digitale.

www.telecomitalia.com

124 Settembre 2018 - ELETTRONICA IN


~ rintelligenza artificiale &oogle aiuta i medici
di Google stessa, avvertire nel seconda delle condizioni del ma-
caso sia rilevato un imminente lato, molto più velocemente e in
pericolo di morte del paziente. modo più accurato di quanto fa-
Cervello medico si propone di rebbe un medico, quindi potreb-
fornire un parere da specialista • be fornire valutazioni cliniche più
• seppure dematerializzato. tempestive, fermo restando che

••• Google
::::: Al Il sistema si basa su un algoritmo
che si avvale di una rete neurale,
ossia una forma di intelligenza
l'intento del progetto non è de-
cidere al posto dei dottori, ma
semplicemente fornire un "con-
artificiale in grado di prevedere, sulto" digitale.
quasi con certezza, la morte o Lo scopo è quindi accorciare i
meno di una persona nel giorno tempi delle diagnosi, lasciando
successivo all'analisi eseguita su più tempo ai medici per seguire
di essa. più pazienti, se non altro perché
l..'.algoritmo prende in considera- formalità come la compilazione di
Google non smette di sorprende- zione età. sesso, genere, condi- diarie ospedaliere e cartelle clini-
re e dopo i sistemi di riconosci- zioni cliniche del paziente e segni che portano via tempo e averle
mento vocale e l'annuncio della vitali e forn isce una diagnosi con precompilate da un computer ne
candidatura della sua Al al ser- il 95% di accuratezza, soprattut - farebbe risparmiare.
vizio del Pentagono, ogg i vuole to su l richio di morte entro le 24 Il programma è stato testato su
stupire il mondo della medicina ore. 216.221 adulti, con la raccolta di
con un progetto chiamato "cer- Il sistema può anche predire 46 miliardi di punti di rilevamen-
vello medico" che si propone di quanto tempo il paziente rimarrà to, anche se per ora non ha avuto
analizzare le condizioni del pa- in ospedale e se la malattia potrà una sperimentazione ufficiale da
ziente, prima di tutto mediante avere delle ricadute in futuro. parte delle Autorità Sanitarie.
il riconoscimento d'immagine e, La rete neurale di Google, ag-
grazie all'intelligenza artificiale giorna col tempo le previsioni, a https://ai.google/research/

ELETTRONICA IN - Settembre 2018 125


Capacità di
tra&mi&&ione fino
a 3 ,i! liW per i cavi
&uperconduttivi di
A!i6 !iuperconductor&
Durante un convegno a la Spezia alcuni
tra i più importanti produttori di cavi e fili
elettrici, tra questi Nexans e Columbus Su-
perconductors, società del Gruppo ASG
Superconductors, hanno comunicato i ri-
sultati di un innovativo progetto di ricerca
relativo a un sistema di cavi supercondut-
tivi. Le tecnologie utilizzate hanno stabilito
nuovi, importanti, record di trasmissione.
Questi innovativi cavi consentono infatti di
trasportare un quantitativo di energia 500
volte maggiore rispetto ai normali cavi in
rame e di trasportare fino a 3,2 GW di po-
tenza elettrica. Gli esperti di 1Odiversi stati
europei hanno collaborato per progettare
un sistema completo di cavo che compren-
de anche gli isolamenti ad alto voltaggio e
le terminazioni.
I risultati del progetto sono stati presentati
nel corso di un convegno internazionale te-
nutosi a la Spezia nello stabilimento di ASG

'~eletbb.fn bassa tensione.


-~ iiguarda I sistemi antincendio
l'~sono stati installati più di
14 mlii rllevatort Incendio di tecnologia
diversa (ottico, multi ottico, tennko, ecc)
ed oltre 800 telecamere (TVCQ per la vl-
deosorvegllanza. Infine sono oltre 700 I
rilevatori gas.
I singoli ambienti sono perfettamente
Integrati grazie ad una soluzione (Desi-
go Room Automatlon) con cui è possi-
bile controllare contemporaneamente
temperatura, umidità, qualità dell'aria,
Illuminazione e sistema frangisole. La re-
golazione del frangisole è regolata da un
algoritmo all'interno del controllore che
tiene conto della posizione del sole evi-
tando abbagliamento diretto e sfruttan-
do contemporaneamente la luce naturale
per massimizzare il risparmio energetico.

www.siemens.it

..
Superconductors, convegno organizzato in-
sieme a Nexans e lo IASS di Postdam. Inuovi
record sono stati raggiungi nell'ambito del
progetto dimostrativo n.S di Best Path, nel
suo complesso il più grande progetto di
ricerca finanziato dall'Unione Europea nel
settore energia negli ultimi dieci anni.
L'altra innovazione nella tecnologia super-
conduttiva presentata a La Spezia è relativa
al cavo che è progettato e prodotto usando
il Diboruro di Magnesio - MgB2 come su-
perconduttore, e che presenta caratteristi-
che di economicità molto interessanti.
Il prossimo passo per la diffusione di que-
sta tecnologia dovrebbe essere lo sviluppo
di linee guida per cavi superconduttivi ad
alto voltaggio con corrente diretta con un
consorzio di produttori che assicuri gli stan-
dard di sicurezza e qualità.

www.asgsupérconductors.com

ELETTRONICA IN - Settembre 2018 127


Monitoraggio dell'aria e
&icurezza negli ambienti
di lavoro: un brevetto
del Politecnico di Milano
Un dispositivo elettronico indossabi- posti organici volatilì (VOC) e gli ossidi
le, discreto e leggero, che monitora in di carbonio, in particolare anidride car-
modo continuo la qualità dell'aria in bonica. Il sensore VOC è impostato per
ambienti di lavoro poco salubri, come rilevare le sostanze dal pur11to in cui il
ad esempio gli impianti di verniciatura: valore dei composti organici volatili ini-
è questo Electronic Nose Device, uno zia a superare il livello accettabile per la
degli ultimi brevetti del Politecnico di salute umana. I valori rilevati vengono
Milano. In caso di aumento di conta- quindi trasformati in tempo reale in un
minanti nell'aria, il dispositivo invia segnale feedback che attiva un sensore
segnali di allerta all'operatore, sugge- LED e una vibrazione, secondo una sca-
rendo, a seconda del rischio rilevato, di la di tre livelli.
indossare adeguati sistemi di protezio- I componenti elettronici all'interno del
ne o di allontanarsi dal luogo in caso di dispositivo comprendono: un sensore
pericolo per la salute umana. VOC, un LED, un motore a vibrazione,
Grazie al Bluetooth integrato, inoltre, forniti di una batteria agli 1ioni di litio
il dispositivo trasmette ad un'applica- che è possibile caricare con un con-
zione mobile i dati rilevati, rappresen- nettore mlcro USB. Il sensore, il LED e
tando graficamente come la concen- il motore a vibrazione sono, supportati
trazione di inquinanti varia durante il con una scheda con Bluetooth integra-
giorno e dando la possibilità, anche a to (BLE Technology) in modo che i dati
posteriori, di verificare se gli oppor- possano essere trasmessi all'applicazio-
tuni dispositivi di protezione ne mobile.
erano indossati. Electronic L'elettronica applicata per la realiz-
Nose Device è basato zazione di Electronic Nose Device è a
su un sensore che basso consumo energetico in modo da
rileva i com- rimanere in funzione durante l'intera
giornata lavorativa.

www.polimi.it
CODICE TENSIONE D'INGRESSO TENSIONE D'USCITA CORRENTE D'USCITA POTENZA RIPPLE DIMENSIONI PREZZO

MWOSOOS 170 • 264 VAC SVDC 10A SOW 75mV 159X97 X38mm 15,00 €
MW05012 170 • 264 VAC 12VDC 4,2A sow 100mV 159X97 X38mm 15,00 €
MW05024 170 -264 VAC 24VDC 2,1 A sow 100mV 159X97 X38mm 15,00 €
MW10005 SVDC 2DA 100W 100mV 199 X 98 X 38 mm 20,00 €
MW10012 170 • 264 VAC 12VDC 8,SA 100W 100mV 199 X 98 X 38 mm
-
20,00 €
MW10024 170 - 264 VAC 24VDC 4,SA 100W 100mV 199 X 98 X 38 mm 20,00 €
MW14505 176 • 264 VAC 5VDC 25 A (30 A max.) 125W 100mV 199 X 98 X 38 mm 24,00 €
MW14512 88· 132 VAC / 176- 264 VAC (selez.) 12VDC 12 A 144 w 120mV 199 X 98 X 38 mm 24,00 €
MW14524 88· 132VAC/176· 264 VAC (selez.) 24VDC 6A 144W 150mV 199 X 98 X 38 mm 24,00 €
MW35005 90-132 VAC /180·264 VAC (selez.) SVDC SOA 250W 150mV 215X115X50mm 39,00 €
MW35012 90·132 VAC /180·264 VAC (selcz.) 12VDC 29A 350W 150mV 215 X 115 X 50 mm 39,00 €
MW35024 90·132 VAC /180-264 VAC (selez.) 24VDC 14,6A 350W 150mV 215 X 115 X SO mm 39,00 €
MW35036 90-132 VAC /180·264 VAC (selez.) 36VDC 9,7 A 350W 150mV 215 X 115 X 50 mm 39,00 €
MW35048 90·132 VAC /180-264 VAC (selez.) 48VDC 7,3A 350W 240mV 215X115X50mm 39,00 €

Futura Group srl


FUTURA www.futurashop.it Via Adige, 11 • 21013 Gallarate (VA)
Caratteristiche tecniche di questi prodotti
e acquisti on·llne su www.futurashop.it
ELETTRONICA ® Tel. 03311799775
. .- .. .
· Alimentazione 94-32 Vdc/1 A

Dlsponiblll
anche
moduli con
funzione di:

MADE IN
ITALY
·~~~~~~~~__J

Potrebbero piacerti anche