Sei sulla pagina 1di 132

90231

9 771124 854008


KIT SOLARE E IDRAULICO 12 IN 1
Permette di realizzare fino a12 differenti modelli di
robot con movimento idraulico ealimentati tramite
energia solare. li kit viene fornito completo di un
manuale ricchissimo di illustrazioni.

cod.KSR17
€ 2J·Ba
IL ROBOT TOBBIE
Tobbie èun robot in kit a6
gambe. Può funzionare in due
differenti modalità: "Seguimi"
ed "Esplora': Nella modalità
"Seguimi"Tobbie èin grado
BRACCIO ROBOTICO IDRAULICO
di seguire qualsiasi cosa gli si
avvicini. In modalità "Esplora': Facile edivertente. Il movimento sui sei assi viene
azionato tramite il sistema idraulico ad
grazie al rilevamento automatico
acqua, agendo sui controller a leva.
tramite sensori infrarossi, è in
grado di evitare gli ostacoli che
trova davanti asé trovando .....

sempre un nuovo percorso.


cod. KSR18
-
(.)
c
cod. KSR12 ~
·-N

SOLAR ROVER KIT


€ 49·50 N
Q)
'-
c...

Rover solare con 6 ruote


(4 ruotemotrici). Particolarmente
indicato come gioco didattico INTERFACCIA USB PER
per bambini. BRACCIO ROBOTICO

cod. KSR1 4
€ 16·50 . ' l : •
• : ft-: .: . Jr.l=
!l - •
. t =-- ... .. .

Permette di controllare, tramite apposito


software, il braccio robotico KSR1 O.
ROBOT CINGOLATO Cod. KSR10/USB € 47,00
FILOGUIDATO 3 IN rJ
Robot cing.olate .realizzabile in 3
BRACCIO ROBOTI(O configurazioni; carretì(relevatore,
'
Dotato di cinque motori ecinque rovere pinza meccanlca.
articolazioni; ècontrollabile
,.
tramite unità via cavo. cod. KSR1 O
€ 54·00
cod. KSR11
€ 48·00
'
----~

~
i . .

Un altro anno da recOrd


,
__..__ . "~ ,j , ·. ·~,

www.elet tronicaln .lt


Rivista mensile, anno XXIV n. 231
per i chipmaker

DICEMBRE 2018/ GENNAIO 2019

Direttore responsabile :
Arsenio Spadoni
(Arse nio.Spadon i@elettron ica i n. i t)
Redazione:
Dopo un 2017 caratterizzato • smartphone, in parte dovuto
Stefano Garavaglia, Paolo Gaspari, da una forte crescita, anche all'attesa dell'arrivo della nuova
Boris Landoni, Davide Scullino,
Gabriele Daghetta, Alessandro Sottocornola
l'anno che sta per finire sarà p~r tecnologia 5G. Per questo motivo
(redazione@elettronicain. i t) l'industria dei semiconduttori Produttori di apparati e Operatori
Grafica: un altro anno da record, con
Alessia Sfulcini
-di Rete stanno spingendo con
(Aiessia.Sfulcini@elettronicain.it) incrementi percentuali a due forza su questo fronte.
Ufficio Pubblicità: cifre, di utili e fatturato. Piccoli Un quadro, quello dell'industria
Monica Premoli (0331-752668 )
(Monica. Premoli@elettron ica in. i t) e grandi, americani ed europei, dei semiconduttori, sicuramente
Ufficio Abbonament i: tutti hanno messo a segno molto positivo e con poche nubi
Elisa Guarniero (0331-752668 )
(Eiisa.Guarniero@elettronicain.it)
risultati importanti. Alcuni, all'orizzonte. Anzi. Con due
DIREZIONE, REDAZIONE, PUBBLICITÀ: come i produttori di mercati come quello
FUTURA GROUP srl - Divisione Editoriale
via Adige 11- 21013 Gallarate (VA)
memorie, fanno dell'automotive e
Telefono 0331-752668 registrare dell'IoT che non
Abbonament i: addirittura utili hanno ancora
Annuo 10 numeri Euro 45,00
Estero 10 numeri Euro 45,00 (digitale) netti pari al 50°/o espresso tutte
Le richieste di abbonamento vanno inviate a: del fatturato. le loro enormi
FUTURA GROUP srl
via Adige 11, 21013 Gallarate (VA)
Non sono da pate nz ialità.
tel. 0331-752668 . meno i big del Per tutti questi
Distribuzione per l'Italia: settore, Samsung e
SO.DI.P. Angelo Patuzzi S.p.A.
motivi risulta
via Bettola 18 - 20092 Cinisello Balsamo (MI) .In te l, che metteranno inspiegabile il
Telefono 02-660301 Fax 02-66030320
in cascina un 2018 da calo generalizzato, a
Stampa:
ROT03 Spa - Via Turbigo, 11/ b record, sia per fatturato che per partire dall'estate, di tutte le •

1
20022 CASTANO PRIMO (MI) utili. quotazioni di borsa delle società
r---.. ,_. . . -' ,_.,. _.,.___ ·- -..-.. . . . . . . .....-.-
\ ... ,... . ...- .... . . . . . . . . . . .
_,_.~-·--··--··<"-1
l

Elettronica In: i
La richiesta di semiconduttori è del settore. Forse gli oper_ atori
Rivista mensile registrata presso il Tribunale di : stata forte un po' in tutti i settori sono a conoscenza di qualcosa
Milano con il n. 245 il 03/ 05/ 1995.
Prezzo di copertina Euro 6,00. Gli arretrati nei e in tutte le aree geografiche, con che noi non sappiamo? Oppure,
· formati cartaceo e digitale (pdf) sono acquistabili sul l
pochissime eccezioni. più semplicemente, stanno
1 sito della rivista al prezzo di Euro 6,00. ;
t Poste Italiane Spa - Spedizione in abbonamento ( Per quanto riguarda l'unica monetizzando i guadagni degli
!
t
Postale - D.L. 353/ 2003 (conv. in L. 27/ 02/ 2004) ~ azienda italiana del settore, ultimi mesi/anni in attesa di
( art. 1 comma 1- DCB Milano.
FUTURA GROUP srl è iscritta al Registro Operatori STMicroelectronics, dopo un 2017 nuovi record di vendite e di
della Comunicazione n. 23650 del 02/ 07/ 2013.
Impaginazione ed immagini sono realizzati in .
caratterizzato da un incremento profitti?
1 DeskTop Publishing con programmi Adobe In Design ( del fatturato del19,7°/o a quota Alla l uce di tu t t i i dat i e di
) e Adobe Photoshop per Windows. 1
l Tutti i contenuti della Rivista sono protetti da i
8,35 miliardi di dollari e un tutte le previsioni, questa è la
Copyright. Ne è vietata la riproduzione, anche : aumento dell'utile netto da risposta più probabile, ed anche
parziale, la traduzione e più in generale la diffusione ·
con qualsiasi mezzo senza l'autorizzazion e scritta da , 165 a 802 milioni di dollari, le a nostro avviso il 2019 sarà per
parte dell'Editore. l circuiti, il firmware ed il software
·. descritti sulla Rivista possono essere realizzati solo
t
previsioni per il 2018 ind_icano un i semiconduttori un altro anno
l
'
~ per uso personale, ne è proibito lo sfruttamento a
1
( altro fa rte balzo all'i nsù. sicuramente positivo.
1 carattere commerciale e industriale. Tutti possono ;
collaborare con Elettronica In. t:invio di articoli, t
Anche le previsioni per i prossimi
i

materiale redazional e, programmi, traduzioni, ecc. \ mesi sono tutte positive,


implica da parte del Collaboratore l'accettazione '
dei compensi e delle condizioni stabilite dall'Editore : pur con le dovute cautele
.r·ì _,..--,
(www.elettronicain.it;ase.pdf). Manoscritti, disegni l che caratterizzano sempre i l .·· :
l e foto non richiesti non verranno in alcun caso ; t'
l restituiti. t:utilizzo dei progetti e dei programmi \ le previsioni per il futuro.
{
l
l,.,/
. ,..- .·
:'J
'

; ; ;·

..:-
/
;utv
"..
pubblicati non comporta alcuna responsabilità da : In particolare preoccupa il
parte della Società Editrice.
Futura rallentamento delle vendite di
Arie'11.w'BP~doni
Group (Arsenio. Spadoni@elettronicain. i t)
© 2018 FUTURA GROUP srl
Edizioni ~:::!.

- - - - - - - - -- - -- --·--- ----- -- --·-


ELETTRONIC A IN - Dicembre 2018/ Gennaio 2019 1


Dicembre 2018 l
Gennaiò 2019
n. 231

RASPBERRY Pl
OSIO, UPLICATORE DI SD CARD
PER RASPBERRY Pl :-----
...............
.......___
:::::- ... --..
-
... ----

--..
....._.

La "ciliegina" sulla torta per quando è necessario --


-~

"fotocopiare" numerose SD Card per Raspberry Pl, per


laboratori di scuola, applicazioni di produzione, backup, ecc...


GADGET
LA CORNAMUSA ELETTRONICA
Costruiamo un piccolo strumento musicale che farà
la gioia dei bambini e che permetterà loro di suonare
8 note e di traslare la loro frequenza a piaci mento
mediante un potenziometro.
IN COPERTINA~ ·
Nel fasoicolo di fine anno non poteva
' "

'
,_ • ::J
.., ..: •· •
.. ,.
.. '".

DIDATTICA
•+' "'' ,,
RETI NEURALI
E lOGICA uzzv -
Scopriamo un particolare ed efficiente approccio
allo sviluppo di reti neurali, basato su una logica
,
.:: ~~§~"'-~-=- - che prescinde dal concetto di statfJogici,l e O.
;:: "

",,m
,l

::t lil

·''·''"'

ROBOTICA
c
Composto esclusivamente da mattoncini LEGO
, del set EV3, simula fedelmente il un arto umano.
,,

GADGET
ARDUINO
EC OaARPA GSM SHIELD
A LASER UNIVERSALE
Ricostruiamo l'antichissimo
Mettiamo alla prova il nostro
strumento musicale in
hardware con alcuni sketch
versione ultra-tecnologica,
propedeutici all'impiego sul campo
dove al posto delle corde
dei moduli GSM/GPRS su pportati.
abbiamo messo dei raggi
Terza ed ultima puntata.
laser, interrompendo i quali
con il passaggio delle dita
si producono le note. •

TECNOLOGIA
La tiratura di questo numero è stata di 18.500 copie.
,
EV E, "CARICABATTERIE"

PER AUTO ELETTRICHE
Mensile associato aii'USPI,
Unione Stampa Periodica Italiana Conosciamo da vicino i caricabatteria
per le auto elettriche fornite dai costruttori.

01 EDITORIAl~~ TCP/IP
ETHERNET

05 ELETTRONICA - ~ ~

INSIEME :- -=- - ""'""'" ~ ~ _Vi presentiamo una soluzione d~ alit_ò~azione


cne fornisce la possibilità di contr~ll~r~
• una serie di relè, utilizzando la retEf:l · le
13 APPU ~\\ì\~}~' cablata ethemet. Il tutto p IUOLLII

&EV ~~;.:';:'!ii":oor~ one della scheda Ardui no


·t:-.

... . "

co,,M,
.
!·"i::"::
;1 • tn•> "' .

17
& Sl...d~ "~c!
105 SCIE
&TE
Entriamo nel vivo dell'a
cune periferiche CIP i '"",...
ntrollori MicrochiP;.
ttronica •

Richieste/ suggerimenti e segna/azioni dei lettori


~

Queste pagine sono dedicat~~~plle richieste, ai sugg enti ed alle


segnalazioni dei lettori. Rac.t:" ~mandiamo, per quan
• • ''' ·,. ,., .;!\
ssibile, di proporre
argorrienti di interesse geneli~le. Contattateci nume all'i ndi rizzo:
redazione@elettronicain.it

802.llay, il Wi-Fi
da 200 Gbps
Ho letto che stanno arrivando dei dispositivi
Wi-Fi ancora più veloci delle nuove reti
SG: addirittura 30, 100 e 200 Gbps! Come
è possibile tutto ciò? E su quali frequenze
lavoreranno questi sistemi?
Marco Leotta - Roma

Se delle nuove reti 5G sappiamo tutto


in quanto l'evoluzione è stata seguita
passo-passo anche dai media generali-
sti, dell'evoluzione del Wi-Fi sappiamo
molto meno. Questo non significa che
evoluzione non ci sia stata. Tutt'altro!
Ci riferiamo in particolare allo standard ciato la famiglia di chipset Wi-Fi da 60 book hanno annunciato di collaborare
IEEE 802.11 ay la cui versione draft 1.2 è GHz QCA64x8 e QCA64x1, in grado di per fornire connettività Internet ad alta
stata rilasciata nell'aprile di quest'anno offrire una velocità di oltre 1OGbps velocità con Terragraph di Facebook .
e che è servita come base per realizza- (giga bit al secondo), latenza simile a attraverso lo sviluppo di un sistema
re i primissimi chipset. quella dei cavi, e un bassissimo consu- wireless multi-nodo basato sui chipset
Questa tecnologia funziona sulla mo in grado di prolungare l'autonomia QCA6438 e QCA6428. Molto lontano
banda non licenziata, owero libera, nel caso di alimentazione a batteria. dalle bande 2,4 e 5 GHz comunemente
dei 60 GHz ed è in grado di offrire L'awento della nuova era della con- utilizzate nelle reti Wi-Fi in tutto il mon-
• connessioni a 30 Gbps su una distanza nettività porta lo sfruttamento dello do, il Wi-Fi da 60 GHz basato su mmWa-
di 30 metri. Tuttavia, con una gestione spettro mmWave con connessioni a ve è soggetto a poche interferenze,
ottima le dei canali e delle antenne, lo banda larga, con nuove ed entusia- offre una notevole larghezza di banda
standard 802.11 ay potrebbe garantire smanti esperienze wireless. Qua leo mm che consente di migliorare la qualità
connessioni sino a 200 Gbps ad una di- è stata la prima ad introdurre sul mer- della connessione, garantisce velocità
stanza di 300 metri. Questi perlomeno cato una soluzione Wi-Fi a 60 GHz con multi-gigabit e bassissima latenza.
sono gli obiettivi finali dichiarati. Non ottimizzazioni basate sulle specifiche Queste caratteristiche rendono il Wi-Fi
è escluso che hot-spot con questa tec- 802.11 ay, che consentono velocità in a 60 GHz ideale per un'ampia gamma di
nologia possano integrarsi facilmente ambito Wi-Fi ai vertici della categoria ecosistemi e infrastrutture wireless.
in una rete eterogenea comprendente con prestazioni di copertura impareg-
le nascenti reti cellulari 5G. giabili. Da segnalare che proprio con
Recentemente Qualcomm ha annun- questa tecnologia Qualcomm e Face-
Utografia
ultravioletta estrema
Anche Samsung nel suo nuovo stabilimento
produttivo di semiconduttori sta utilizzando
per i chip più avanzati a 7 nm la tecnologia
EUV. In cosa consiste esattamente questa
tecnologia?
Mario Labruna- Milano

La litografia ultravioletta estr~ma (o


EUV, Extreme ultraviolet lithography) è
una tecnica di incisione litografica dei
,.,, wafer di silicio che utilizza una lunghezza
Wi~Jg· d'onda molto più bassa. La tecnologia
CERTIFIED EUV utilizza una lunghezza d'onda di
by Wi-Fi Alliance 13,5 nm per esporre i wafer di silicio, di
gran lunga inferiore rispetto alle con-

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 5


l

Elettr ·ca lnsie e •

comunicazione per l'automazione indu-


striale. Prodotto dalla fondazione OPC, è
adatto a molteplici piattaforme, aperto
e sicuro e permette ai controllori logici
programmabili (PLC), sia nuovi sia di ge-
nerazione precedente, di comunicare.
L'OPC, pur essendo ampiamente adottato
nell'ambito dell'automazione industria-
le per consentire la comunicazione tra
dispositivi industriali di produttori diversi,
ha alcuni limiti funzionali. L'OPC UA ne è
l'evoluzione: mantiene le stesse specifiche
in un'architettura orientata ai servizi e
indipendente dalla piattaforma.
L'OPC Unified Architecture porta due
novità elementari nel mondo OPC. Da un
venzionali tecnologie ad immersione con nel nuovo sistema di fissaggio dei wafer e lato, il legame DCOM Windows specific è
argon fluoruro (ArF) che sono in grado di nella differente composizione della pellico- sostituito da protocolli aperti e indipen-
raggiungere lunghezze d'onda di 193 nm la fotosensibile. Tutti problemi che hanno denti dalla piattaforma, con meccanismi
e richiedono costosi set di maschere multi- richiesto molti anni per essere risolti. di sicurezza integrata. In aggiunta, gli ele-
pattern. Il processo EUV consente l'uso menti OPC, Data Access, Alarm & Events
di una singola maschera per creare uno e Historical Data Access, sono riassunti
strato di wafer di silicio, laddove ArF può OPC UA, Unified in un modello 'object-oriented' e sono
richiedere fino a 4 maschere per creare lo completati da nuove funzionalità potenti,
stesso livello, con un significativo risparmio Archite cture quali metodi e tipi di dati. Come risultato
di tempo e costi. l miglioramenti della lito- si ottiene che OPC UA può essere diretta-
grafia EUV consentono maggiori prestazio- Sento sempre più spesso parlare di protocollo mente integrata in sistemi o piattaforme
ni in termini di minore potenza impiegata di comunicazione OPC UA: quali sono le arbitrarie con diversi linguaggi di pro-
e spazio occupato sul wafer, migliorando differenze con la versione tradizionale, ovvero grammazione. Le regole 'object-oriented',
al tempo stesso la produttività e riducendo con l'OPC? secondo cui lo spazio di indirizzo di un

la complessità del processo multi-pattern. Matteo Bianchi - Torino server OPC UA è strutturato e l'interfaccia
Rispetto ai predecessori FinFET da 1Onm, comune per l'accesso è generale, rendono
la tecnologia 7LPP di Samsung non solo L'Open Platform Communications Unified I'OPC UA un linguaggio di programma-
riduce notevolmente la complessità del Architecture (OPC UA) è un protocoHo di zione adatto alla rete. Solo I'OPC UA si
processo produttivo introducendo meno
strati e garantendo rendimenti migliori,
ma offre anche una riduzione del40o/o • PC Olent. Hislotbn. SAP, ~!.ES. Oood' l~ I!IC..
dell'area, prestazioni del 20% superiori e
una riduzione dei consumi del 50%.
La difficoltà di questo processo non sta ~CUA
nella maggior precisione del raggio laser NETWORK __.________ _~
quanto nella necessità di aumentare la
precisione dimensionale di tutte le parti
meccaniche che compongono lo scanner, ~ St;" P~n
SMnkW•"PJ
Unscr.lmbltng

- .
TS
...--~~
l
Logistfcs Machine l H~ndllng Machlne Il Logistics

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

••
l' ..

8 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


specializza per tecnologia di automazione In maniera simile a quanto succede
attraverso modelli di informazioni spe- nell'ambito dell'efficienza energetica
cifici ('lnformation Models') quali Data dove un simbolino ci consente di capire
Access, Alarm & Events, Historical Data immediatamente l'efficienza di quel
Accesse Programs. Per questi modelli di frigorifero o di quella lavatrice, così
informazioni, non vi è più alcuna necessi- anche per quanto riguarda il Wi-Fi sono
tà di estendere la base ed i protocolli o le stati introdotti dei loghi molto semplici,
interfacce di programmazione. Wi-Fi 4, Wi-Fi 5 e Wi-Fi 6: più è alto il
numero, maggiori sono le prestazioni
del dispositivo. da 1 mm2 prodotta da AMS: è possibile sapere

Nella fattispecie, questa la corrispon- quanto costa?
Nuove sigle per denza tra le vecchie classi Wi-Fi e le Michele Guerra - Venezia
nuove indicazioni commerciali:
i dispositivi Wi-Fi • Wi-Fi 4: 802.11 n- fino a 600 Mb/s Se sei rimasto impressionato dalla micro-
(2,4 GHz e 5 GHz) camera da 1 mm 2, sappi che pochi giorni
• Wi-Fi 5: 802.11 ac -fino a 3 Gb/s (5 dopo AMS ha annunciato un modello
GHz) ancora più piccolo, la versione NanEyeXS
• Wi-Fi 6: 802.11 ax - fino a 1OGb/s con footprint di soli 0,46 mm 2•
(2,4 GHz e 5 GHz) Telecamere così piccole nascono per
impieghi in ambito medico, tipicamente
Per rendere ancora più semplice per endoscopia, anche se nessuno vieta
l'identificazione del Wi-Fi utilizzato, di usarle per altri scopi. In questo ambito
le nuove icon·e compariranno an- vengono utilizzate per realizzare sistemi
che nelle schermate di sistema dei di visione usa e getta, con costi che di-
d i spositivi. pendono dai quantitativi utilizzati. In ogni
Ho letto dell'iniziativa della Wi-Fi Alliance l nuovi loghi dovrebbero fare la loro caso, per quanto riguarda le campionatu-
relativa alla nuova suddivisione delle Classi comparsa verso la fine di quest'anno, in re, il prezzo si aggira sui 500 Euro.
dei dispositivi Wi-Fi. Ulteriore elemento di corrispondenza del lancio dei primi pro- La nuova NanEyeXS è una delle teleca-
confusione? dotti della Classe Wi-Fi 6, ovvero dello mere più piccole al mondo. Dispone di
Mario Righetti - Roma standard 802.11 ax in grado di garantire un'uscita digitale con una risoluzione di
velocità fino a 1OGb/s, oltre ad altri 40kpixel ad una velocità massima di 55
Tutt'altro! L'iniziativa nasce proprio dal vantaggi. frame/s a 28MHz. Le dimensioni ridotte
fatto che fino a ora per identificare le Ovviamente, come per le indicazioni del senso re offrono vantaggi significativi
varie classi dei dispositivi Wi-Fi venivano attuali, le nuove sigle potranno essere nello sviluppo di strumenti estremamen-
utilizzate le specifiche definite dalla IEEE, utilizzate solamente sui dispositivi certi- te piccoli per procedure minimamente
• •
quindi 82.11 n, 802.11 ac, ecc., sigle di dif- ficati dalla Wi-Fi Alliance a garanzia invasive in ambito sanitario, consentendo
ficile interpretazione per l'utente medio dell'interoperabilità tra dispositivi di la progettazione di dispositivi chirurgici
che non riusciva a èomprendere con im- differenti produttori. con un diametro molto piccolo o libe-
mediatezza le prestazioni del dispositivo rando più spazio per i canali di lavoro in
che stava acquistando. Per questo motivo, dispositivi più grandi. Come il NanEyeM,
la Wi-Fi Alliance ha deciso di apportare si- il NanEyeXS viene fornito come MCM;
gnificative modifiche alle denominazioni
Una telecamera NanEyeM è anche disponibile in forma di
commerciali dei dispositivi Wi-Fi, che da
ora saranno riconoscibili a colpo d'occhio
davvero minuscola chip con montaggio superficiale. L'intro-
duzione dei nuovi sensori di immagine
anche dai meno avvezzi al mondo della NanEye consente un nuovo approccio
tecnologia. Ho visto la notizia della nuova microcamera alla fornitura e all'uso di molti tipi di en-

·..~· ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 7


Elettronica In

AC input vello del liquido- su un corpo cilindrico


al cui interno è presente un contatto
reed. Quando il liquido raggiunge

UpPer le':el level ~ itch il livello prefissato, il contatto reed
cambia stato permettendo l'invio di
un segnale alla centralina di controllo.
Quest'ultima utilizza -essenzialmente
- un microcontrollore appositamente
programmato e un rei è di potenza (1 O
ampere) per il pilotaggio della pompa.
La chiusura del contatto del senso re
di liv~llo inferiore (acqua sotto il livello
Vvater fevé switch minimo) determina l'attivazione della
Pump powered
pompa che si inibisce quando l'acqua
raggiunge il livello massimo.
Il dispositivo va alimentato a 12 VDC

Outlet per cui ti servirà anche un piccolo adat-
tatore di rete in grado di fornire almeno
0,5 ampere a 12 VDC, come il mod.
8260-PSSE121 O(Euro 7,00).

La tensione dei
sensori di spettro

A
Vorrei realizzare la breakout spettrometro pub-
blicata nelfascicolo n o 230 e collegarla al PC
come indicato nell'articolo, però mi è venuto
8 un dubbio: i sensori di spettro AMS possono

• effettivamente funzioruzre con i SV erogati
posizione A: contatto reed chlus
dall'F1782M o è meglio che stia un po' sotto?
posizione 8 : contatto reed aperte Davide Marangoni - Novara

La breakout board funziona con


tensioni comprese fra 3 e 5Vcc, tuttavia
per stare al riparo da fluttuazioni
dell'alimentazione conviene restare
doscopi per applicazioni quali: entro i 4,5V, quindi se utilizzi I'FT782M
• Artroscopia Sisten1a di controllo poni in serie alla linea +5V un diodo
• Broncoscopia 1N4004. Se vuoi mantenere lo schema
• Ureteroscopia per cisterna proposto, meglio l'utilizzo del conver-
• Cistoscopia titore TIL/ seriale 1686-USBTOUART
• Laringoscopia Devo realizzare un sistema automatico della Futura Elettronica, che è simile
• lsteroscopia per controllare il livello d'acqua di un ser- aii'FT782M ma fornisce un'alimentazio-
• Neuroscopia batoio: quando il livello è al minimo deve ne a 3,3V.
attivare una pompa che si deve spegnere al
Per acquisti in volumi, gli endoscopi raggiungimento del massimo livello. Avete
basati sui nuovi sensori NanEye avran- qualcosa da consigliarmi?
no un costo unitario sufficientemente Paolo Caneva- Torino
basso per supporta re il mercato WebFormn
emergente monouso. Gli endoscopi Sul mercato esistono numerose soluzio- e supporhl teenieo
chip-on-tip basati su NanEyeM o ni; tra queste, una delle più economiche
NanEyeXS offrono una qualità dell'im- è quella proposta da Futura Elettronica
magine molto più elevata rispetto a che dispone sia della centralina (Cod. Hai un problema con uno dei
quella disponibile negli endoscopi 8300-CTRLIVELLO, Euro 6,50) che circuiti pubblicati? Vorresti
convenzionali basati su fibre ottiche dei sensori di livello (Cod. 8220-FLO- effettuare una modifica?
che sono ampiamente utilizzati nelle ODSW1, Euro 6,00 cad.). Accedi al nostro Web Forum
sale operatorie. l sensori di immagini Il circuito è molto semplice, come puoi dove i nostri tecnici (ma anche
NanEye producono immagini più niti- vedere nel disegno: all'interno del gli altri lettori) ti aiuteranno a
de, un contrasto migliore e un'uscita serbatoio andranno fissati i due sensori chiarire qualsiasi dubbio
video più uniforme per consentire ai di livello, il primo in corrispondenza di natura tecnica.
professionisti di guidare in modo più del livello minimo, il secondo di quello Collegati a:
accurato e preciso le apparecchiature massimo. Ciascun sensore è composto
chirurgiche all'interno del corpo del da un galleggiante in polipropilene www.elettronicain.it/webforum
paziente. espanso che si sposta -al variare del li-

8 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


www.microchip.com/SmartConnectedSecure

Il nome e logo Microchip ed illogo Microchip sono marchi industriali registrati di Microchip Technology lncorporated negli U.S.A. ed altri Stati.
Tutti gli altri marchi industriali menzionati appartengono ai rispettivi titolari.
© 2018 Mlcrochip Technology lnc. Tutti i diritti riservati. DS00002758A. MEC2220lta08/18


Mese dopo mese


realizza i progetti
descritti sulla rivista,
rimani aggiornato
con i nostri Corsi,
approfondisci
la conoscenza delle
tecniche e dei
component i più
avanzati con i nostri
· tutorial e le nostre
news.

COME ABBONARSI

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.

3
compilando il modulo di abbonamento
riportato a lato e inviandolo al seguente
indirizzo:
FUTURA GROUP srl
Via Adige 11
21013 Gallarate (VA)

/4"1
\.. .,}
.

telefonando a ,,
+39-0331·752668

PER l RINNOVI ATTENDERE NOSTRO AWISO


desidero abbonarmi per un
anno alla rivista Elettronica In.
Riceverò i seguenti omaggi:
11
CARD futura Elettronica"
ASCELTA, TRA QUESTI VO
della collana "L'Elettronica per tutti".

Entra nel mondo dt Raspberry Pi 3


Fishino - Arduino e Jflnternet delle
Cose in un'unica innovatwa scheda
RandA - Raspberry + Arduino
' -
Impara l'elettromca spenmentando
Pnmi passi in elettronica
Arduino e le tecniche
di progFammazione
dei microcontrollori ATMEl
Raspberry Pi - 11 mio primo
Linux Embedded
Alla scoperta dì Arduino YllN
Programmiamo con i PIC
••• l'®C
Stampiamo in 30

Resto in attesa del primo numero.

Nome:
-
Via:

No: CAP:
..... ______.....
Città:-------------~

Telefono:

IN OMAGGIO PER TE: Data: Firma:·

effettuati con la DISCOUNT CARD


SUl TUOI presso il punto vendita Resto In attesa di vostre disposizioni per il pagamento.
Ai sensi dell'art. 13 del D.Lgs. 196/2003, in tema dì protezione dei
ACQUISTI di Gallarate ~A) o nel nostro
store on-line www.futurashop.it
dati personali, FUTURA GROUP srl informa che i dati liberamente
forniti attraverso la compilazione del presente modulo saranno
trattati e conservati ìn conformità a tutte le normativa vigenti. l
dati suddetti saranno trattati su supporto cartaceo e informatico,
mediante sistemi di protezione atti alla tutela della riservatezza, per
finalità connesse all'esecuzione dei rapporti contrattuali instaurati.
Inviare in busta chiusa a: Futuri!Y f
+ FUTURA GROUP srl
VIa Adige 11 • 21013 Gallarate (VA)
Grou'!.J

1 VOLUME ASCELTA della collana "L'Elettronica per tutti". Tel. +39·0331·752668


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

..... .. ....................................... . .... '-·-' .... ·•· ........... -·· ......... -· -·-' .. . .. ... .... .... .... . ....... ... . . .. . .. . .
' ' ' ' ' ' ··········-············ ·· ···-···-············-
SET 1000 PEZZI DI LED SET CONDENSATORI ElffiROLITICI SET 100 CONDENSATORI KIT FUSIBILI82 PEZZI6X30
3MM- VARI COLORI 12 VALORI POLI ESTERE- VARIE CAPACITÀ VALORI ASSORTITI
.. , .......................................... . ....... . .... .. . .. . ... .. .. . . .. .- ' . ' . ' ..... ' . .. ' . . . .... . ... ... ... .. . .. .. . ... . . . ... . .
' ' ' ' ' ' ' '' ' ······' .... , ····· ..................... ...... , '

cod . YM406 cod. YM374 YM398 cod. YM379

- ·

···················-·························· ········-···•·-·········· ··· ··· -·- ············ .. ' ... ' .......... ... ·-. -.-·-. -· -...... ' ... ' .. .
SET 300 PEZZI LED 3-5 MM SET 50 TRIMMER DI PRECISIONE SET 500 PEZZI LED 5MM SET COMPONENTI ElffiRONICI
VARI COLORI MULTIGIRI- MONTAGGIO VERTICALE VARI COLORI ASSORTITI
..... . .. ' .. . ' . . . ' . ' -.. ' . .......... .' ..... .. .. . ......................... .............. ....... ..... ' ... .. ' . .. .. ' ..-. . .. . .. ... . ' . . ... .. ' . .. ' .

cod . YM377 cod . SETELEC cod. SET241NDU cod. SM DRES3K610M

....··''
..........
..... ~ .. w.
.
....uw•..,.. .•• ''"".....
....
•••••• ....f" f'
.
-.
."
..... .
... .,..
- ......Jo
:~<\- "·~

··'''···'

.................................. ' ......... .. . ' ... ' ' ... ' ' .. ' -- ......... ' ....... '. ·-'.' .... . ....... ' ..... ...... ·•·. -·-'. , ....... , ...
' ' .. ' . .. ' ' .. ' ............ ' .. ' ' .... , ...... ......... '.
SET 300 TRANSISTOR ASSORTITI SET COMPONENTI ELffiRONICI SET INDUTTANZE 24 VALORI SET RESISTENZE SMD 0805
T0-92 VARI CON PIASTRA EALIMENTATORE 1OPEZZI PER VALORE DA 3,6 KOHM A1D MOHM
' ...' ' .. . ' . .. ' . .- .... .... ' -.. ' . .- ' . .. ' . .-.. .. . .............. ····-·· .... ····· ............... . ........................... , ... , ... , ... , ... .. . -- .. -- ..... ... ' ............... ' .... ' .. '. , ... .
'

cod . SETZENER cod. SM DRES03K6 cod. SETCERAMICI cod. SETDIODI


,. • .,,m,,,,.,,,
. . . . . ~ jl
-
- nn

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


lll
.
l

..... •''
·anu ,v •
- -.... ....'!!l,... ,
i'

-• •
••
. ... .

• ••••
, .- . 1
11 •rwrtf • • • , ,
r j •
l.'

__ l a ft~a
. .. ' . .. .. . .. . . .... ... ... -. . .-.. .-...-. . .-. ...
' . ........................................... .. .., .......................................... . .. ' ........ ' ............ .............. ...... ..
SET DIODI ZENER SET RESISTENZE SMD 0805 PSET CONDENSATORI CERAMICI SET DIODI RADDRIZZATORI
10 PEZZI PER VALORE DA OA3,6 KOHM 22 VALORI-lO PEZZI PER VALORE 100 PEZZI
, .................................... ....... .. . ..................... ... ...... ........... ... . ········-·······-·····---· --··---·---·- --·--··

cod . SETTRIMMERMO cod . SETMULTIST cod. SETTRIMMERMV

......... ..... ......... ............. .......... . ............................................ . .... ' ... ' ............ ............. ........... . . ........ ... ... ......... ....... ... .. .. ....... .

SET TRIMMER MONTAGGIO SET CONDENSATORI MULTISTRATO SET TRIMMER MONTAGGIO SET 70 PZ ZOCCOLI ALAMELLA'
ORIZZONTALE- ASSORTITI VARI VALORI-lO PEZZI PER VALORE VERTICALE- ASSORTITI ASSORTITI
······· ··· ··-·····-······--····----····--·--·· .............................................. .. .... ....................................... . ........................................ ......

Forum Software Industriale •

Forum Software Industriale è la pri- 6 Febbraio 2019. zazione convergente sul paradigma
ma mostra-convegno organizzata l nuovi modelli di business del digi- di Industria 4.0 saranno al centro del
da Messe Frankfurt Italia e promossa tai e i benefici derivanti dagli inve- dibattito.
da ANI E Automazione, dedicata alle stimenti in un percorso di digitaliz- L'evento sarà strutturato in sessioni
soluzioni software per l'industria, verticali dedicate alle tecnologie del
tecnologie abilitanti per il passaggio software industriale nelle varie aree
all'Industria 4.0. r applicative.
La prima edizione del Forum Sof-
tware Industriale dal titolo "L'evo-
• Un focus particolare sarà su alcuni
importanti temi trasversali come la
luzione delle tecnologie software
nell'Industria 4.0" si terrà a Milano il
••• cybersecurity e l'efficienza.triale.it/
https://forumsoftwareindustriale.it!

ELETTRONICA IN - Dicembre 2018 l Gennaio 2019 13


l . .

13-15 FEBBRAIO 2019 nazionale. rivolge a tutti i diversi attori della filiera e
l risultati incoraggianti dell'edizione nella quale ciascuno di essi può trovare
A&T- Automation 2018 hanno spinto gli organizzatori del-
la fiera ad allargare l'offerta espositiva
prodotti, servizi e competenze utili a fi-
delizzare i clienti, raggiungere un buon
& Testing e contenutistica, creando uno spazio
dedicato alle soluzioni di logistica in-
grado di efficienza e migliorare il livello
competitivo della propria azienda.
Torino • Italia tegrata, a completamento ideale della La parte espositiva della fiera è suddi-
"filiera produttiva" di cui fanno parte visa in quattro aree, ognuna dedicata a
Dal 13 al 15 febbraio 2019 a Torino tutti i prodotti e le soluzioni che si pos- una diversa fase della filiera produttiva:
si svolgerà una nuova edizione della sono trovare presso gli stand delle so- • Progettazione e sviluppo prodotti e

fiera A&T- Automation & Testing, cietà espositrici. Ora la fiera può vantare process1; ·
l'esposizione specialistica di soluzio- un'offerta espositiva completa, che si • Produzione;
ni metrologiche e tecnologie per il • Affidabilità;
mondo manifatturiero che raggiun- • Logistica integrata.
ge quest'anno la 13" edizione. Il L'offerta espositiva di A&T è comple-
luogo che ospiterà la manifestazione tata dal Percorso formativo 4.0: un
è I'Oyal Lingotto Fiere, un unico pa- programma di convegni, seminari e
diglione di 20.000 mq che accoglierà presentazioni aziendali con l'obiettivo
espositori (422 nella scorsa edizione) di offrire le giuste competenze a figure
e visitatori (14.432 nel 2018) prove- aziendali di ogni livello.
nienti dal territorio nazionale e inter- AUTOMATION & TESTING www.aetevent.com

14 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


~:

LANCIANO (CH) S. LUCIA DI PIAVE (TV)


RADIANT EXPO
M ILLENNIUMADRIA ELETTRONICA FIERA DELL'ELETTRONICA
Parco Esposizioni di Novegro (MI)
E AUTO-MOTO D'EPOCA DI SANTA LUCIA
Organizzazione: Comis Srl
Quartiere fieristico - Loc. lconicella Area Espositiva Santa Lucia
T el: 027562711
Organizzazione: Millennium Eventi Organizzazione: Eccofatto
Fax: 027020835
Tel: 0696840758 - Fax: 0696840758 T el: 3498632614
radiant@parcoesposizioninovegro.it -
info@millenniumeventi. it silvia@eccofatto.info
www.parcoesposizioninovegro.it
www. millenniumeventi.it http://eccofatto.eu/
26 e 27 Gennaio 2019
05 e 06 Gennaio 2019 16 e 17 Febbraio 2019

CEREA (VR) RAVENNA CENTOBUCHI (AP)


FIERA DELL'ELETTR0NICA MONDO EL:.ETTRONICA FIERA MERCATO DELL'ELETTRONICA
DI CEREA Pala De Andrè Centro Logistico Orlando Marconi
AreaExpo - Cerea (VR) Organizzazione: Expo Fiere Srl Organizzazione: Federvol
Organizzazione: Fierelettronica.it Tel: 054527548 Tel: 3477433924
T el: 0308376078 - Fax: 0308376078 Fax: 0545291179 Fax: 0734841316
info@fierelettronica.it info@mondoelettronica.net federvo/@gmail.com
www.fierelettronica.it www.mondoelettronica.net www.federvol.it
05 e 06 Gennaio 2019 26 e 27 Gennaio 2019 16 e 17 Febbraio 2019

MODENA FIRENZE SCANDIANO (RE)


EXPO ELETTRONICA FIERA ELETTRONICA • MAKERS FIERA REGIONALE
Modena Fiere OBIHALL DELL'ELETTRONICA DI SCANDIANO
Organizzazione: Blu Nautilus Srl Via Fabrizio De Andrè - Firenze Centro Fieristico di Scandiano (RE)
Tel: 0541439573 Organizzazione: Prometeo Organizzazione: Comune di Scandiano
Fax: 0541439584 T el: 057122266 - Fax: 05710831142 T el: 0522764302 - Fax: 0522857592
info@expoelettronica.it info@prometeo.tv entefiere@comune.scandiano.re.it
www.expoelettronica.it www.prometeo.tv www.fierascandiano.it
12 e 13 Gennaio 2019 02 e 03 Febbraio 2019 16 e 17 Febbraio 2019

BASSANO DEL GRAPPA (VI) FERRARA ROVIGO


FIERA DELL'ELETTRONICA FIERA ELETTRONICA • MILITARIA F.I.E.RA- F.IERA INFORMATI€A,
BassanoExpo Quartiere Fieristico - Ferrara ELETTRONICA E RADIANTISMO

via Capitelvecchio 88 - Cassola (VI) Organizzazione: Expo Fiere Srl Centro Servizi Rovigo Fiere
Organizzazione: Eboot Srl Tel: 054527548 Viale Porta Adige 45
T el: 3776777342 Fax:0545291179 Organizzazione: Area Rebus
ebootsr/@gmail.com info@mondoelettronica.net Tel: 042527402 - Fax: 042527065
www.eboot.it www.mondoelettronica.net fiera@arearebus.com - www.arearebus.com
12 e 13 Gennaio 2019 02 e 03 Febbraio 2019 23 e 24 Febbraio 2019

MONTESILVANO (PE)
- Cesena (FC) LA SPEZIA
FIERA DELL'ELETTRONICA EXPO ELETTRONICA EIERA DELL'ELETiTRONI€~
Palacongressi d'Abruzzo Cesena Fiera - Pievesestina DI LA SPEZIA
Montesilvano (PE) Organizzazione: Blu Nautilus srl Spezia Expo - La Spezia
Organizzazione: CM Eventi Tel: 0541439573 Organizzazione: Prometeo
T el: 3208322538 Fax: 0541439584 T el: 057122266 - Fax: 05710831142
info@cm-eventi.it info@expoelettronica.it info@prometeo. tv
www.cm-eventi.it www.expoelettronica.it www.prometeo.tv
19 e 20 Gennaio 2019 09 e 10 Febbraio 2019 23 e 24 Febbraio 2019
...

BUSTO ARSIZIO (VA) FERMO


EXPO ELETTRONICA FIERA ELETTRONICA E TEMP0 LIBERO
Malpensafiere - Busto Arsizio VA Quartiere Fieristico L'elenco aggiornato di tutte le Mostre
Organizzazione: Blu Nautilus Srl C. da Girola - Fermo Mercato del 2018/2019 è disponibile sul
Tel: 0541439573 Organizzazione: Electro Fiere sito www.elettronicain.it
Fax: 0541439584 Tel: 3356287997 sul quale è anche possibile scrivere
info@expoelettronica.it info@e/ectrofiere.it un commento sulle fiere visitate.
www.expoelettronica.i t www.electrofiere.it l
19 e 20 Gennaio 2019 16 e 17 Febbraio 2019

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 15


• • •

•• ••

MCP1811, LDO Ultra-low lqper au re la durata della batteria


Microchip Technology ha introdotto ficile e i requisiti di durata operativa
recentemente un regolatore lineare sono elevati. Disponibile in package
Low Dropout (LDO) che prolunga da l x l millimetro (mm), I'MCP1811
la durata della batteria in dispositivi utilizza uno spazio minimo sulla sche-
portatili fino a quattro volte rispetto da per soddisfare le esigenze di in-
ai tradizionali LDO a bassissimo con- gombro dei moderni prodotti elettro-
sumo (lq). Con un lq estremamente J nici. A seconda dell'applicazione e del
basso di 250 nanoamp (nA) rispetto numero di LDO, i progettisti possono
al funzionamento approssimativo di sfruttare lo spazio risparmiato per
1 ~A dei dispositivi tradizionali, I'LDO sabili, i telecomandi e gli apparecchi fare posto ad una batteria più gran-
MCP1811 riduce al minimo la corren- acustici, la corrente di quiescenza a de, aumentando così ulteriormente
te di riposo per risparmiare la durata 250 nA riduce il consumo energetico l'autonomia del dispositivo.
della batteria, consentendo agli uten- ai minimi termini in standby o in OFF.
La riduzione del consumo energetico
L'MCP1811 è già disponibile in volu-
mi con una quotazione- per il packa-
J .=...-; -.

.. '"""' ' .
.. .,._...,_.._
.

ti finali di ricaricare o sostituire le bat-


terie con minore frequenza. in standby è fondamentale nei nodi di ge DFN l x l mm che parte da USD
Ideale per l'loT e per le applicazioni sensori remoti alimentati a batteria, in 0,28 ca d. per l 0.000 pezzi.
• a batteria come i dispositivi indos- cui la sostituzione della batteria è dif- www.microchip.com

AD4111 e AD4112, COMSDL lancia la versione 5.4


convertitori di precisione A/D di Comsol Multiphysics
ne calibrate per il sense di La versione 5.4 di COMSOL 8 processori. L' AC/
corrente e partitori resistivi. Multiphysics porta molti DC Module offre una
L'alto livello di matching tra i miglioramenti dal punto nuova part library
canali che riduce le esigenze di vista della produttività: con avvolgimenti e nuclei
di calibrazione e la disponi- per esempio, la possibilità magnetici completamente
bilità fino a otto ingressi di di utilizzare set multipli parametrici e pronti all'u-
tensione e quattro di cor- di parametri in un model- so.
rente rendono questo nuovo lo, aggiungendo anche Il CFD Module comprende
prodotto la scelta ideale per lo sweep parametrico su ora large eddy simulation
Analog Devices (ADI) pre- l'impiego in soluzioni a piat- di essi. Inoltre, gli utenti (LES) e strumenti di simu-
• •
senta due convertitori ND taforma riconfigurabile, ridu- possono ora orgamzzare 1 lazione notevolmente ag-
multicanale di precisione cendo dimensioni, comples- nodi del Model Builder in giornati per i flussi multi-

da +/-1 OV e 0-20mA che fa- sità e costi nei moduli PLC e gruppi e assegnare tabelle fase.
cilitano l'implementazione DCS. Secondo le specifiche, di colori personalizzate ai www.comsol.it
di moduli di controllori a i convertitori ND AD4111 modelli geometrici.
logica programmabile (PLC) e AD4112 ND possono ac-
cettare tensioni d'ingresso
Tra i diversi miglioramenti
alla performance c'è uno
-- ----=-- --

e sistemi di controllo distri-
. .-- . . .. •
···~
buito (DCS). Sfruttando la di +/-1O V e permettono un schema aggiornato di al- - c:--=.-·-"-

tecnologia dei componenti intervallo funzionale di +/-20 locazione di memoria che --


---·
-- -·
passivi di precisione integrati V, aggiungendo un margine offre tempi di calcolo mol- ------
-- •
- •

iPassives di ADI, i convertitori supplementare ai +/-1 O V to più veloci con i sistemi -


ND AD4111 e AD4112 inte- nominali. operativi Windows 7 e 1O ---
--- - ..... - = =--
-- -
--·-
grano resistenze di precisio- www.analog.com sui computer con più di ---

Trusted ule per la sicurezza informatica delle auto


lnfineon Technologies è il pri- rezza basata sull'hardware gnare i diritti di accesso, l'au- le, nell'unirà-telematica o nel
mo produttore al mondo di che ha già dimostrato il suo tenticazione e la crittografia sistema di infotainment del
semiconduttori a introdurre valore in ambito sicurezza IT. dei dati in auto in modo pro- veicolo.
sul mercato automobilistico Usandolo, le Case Automobi- tetto. Il TPM può anche esse- Lo SU 9670 è costituito da
un Trusted Platform Module listiche possono incorporare re aggiornato in modo che il un chip di sicurezza resisten-
(TPM), il nuovo OPTIGA TPM chiavi di sicurezza per asse- livello di sicurezza possa es- te agli attacchi e un firmware
2.0 che protegge la comu- sere mantenuto al massimo ad alte prestazioni sviluppa-
nicazione tra il costruttore livello possibile per tutta la to in conformità ·con gli ul-
dell'auto e l'auto che diventa vita del veicolo. timi standard di sicurezza. Il
sempre più un computer su Il nuovo OPTIGA TPM 2.0 SU firmware consente l'uso im-
ruote. Alcune Case Automo- 9670 di lnfineon è una solu- mediato delle funzionalità di
bilistiche hanno già adottato zione plug & play per appli- sicurezza, quali crittografia,
la soluzione OPTIGA TPM di cazioni automobilistiche. È decrittografia, firma e veri-
lnfineon. particolarmente adatto per fica.
TPM è una soluzione di sicu- l'uso in un gateway centra- www.infineon.com

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 17


l

Da NXP la glia i.MX RTG con tecnologia Arm Cortex-M33/DSP


---
Conuol Prottnor Cort DSPPlocuwCoft

...
"'
ON r....:-·
NXP annuncia i.MX RT600, processori crossover multi- stazioni con SRAM on-chip
Shartd lnlri'AII
una famiglia rivoluzionaria core con tecnologia Arm a bassa perdita da 4,5 MB,
..
Digitai Pfllphehls """""
~ ., ""......., 9.lM

tJt,..W TCM
MOWC..WO
di processori crossover per
applicazioni edge Machine
Cortex-M33 fino a 300 MHz e
un processare DSP Cadence
configurate con zero-wait
state access simultaneo -
'"' l~tC~Cnt

H-.l~"'lf lntelligence (ML) l Artificial Tensilica HiFi 4 a 600 MHz ideale per l'esecuzione in
,_, lntelligence (Al) a bassissima con quattro MACS e con ori- tempo reale di applicazioni
- potenza, tra cui input vocale
intensivo ad alte prestazio-
ginali funzioni hardware di
attivazione.
audio/vocali, di machine
learning nonché di appli-
"' Sfruttando la tecnologia cazioni basate su reti neu-
ni e riproduzione audio 3D
coinvolgente. FD-SOI a 28 nm, i.MX RT600 rali.
IITCO.. 'Sto- ; ' •
I.MX RT600 è una famiglia di supporta i core ad alte pre- www.nxp.com

uSLIC Himalaya: la più ampia adi Rohm mette in auto la tecnologia •

Quick Buck Booster


tensi eeil minimo in ro del settore
ROHM ha recentemente an- stadio successivo. Il risultato è
Gli ingegneri che progettano ap- nunciato la disponibilità di un il miglior consumo di corrente
plicazioni nei vari mercati dell'au- chipset per alimentatori con senza carico del settore, pari a
tomazione industriale, della configurazione buck-boost 8 11A. e una fluttuazione del-
medicina, delle comunicazioni e che vanta il consumo di cor- la tensione di uscita di + 100
consumer, possono ora attingere rente più basso del settore, mV, utilizzando una capacità di
a quattro nuovi moduli IC micro- unitamente a prestazioni sta- uscita di 4411F (grazie al consu-
system level (uSLIC) di Maxim lnte- bili (caratteristiche di risposta mo di corrente minore del70%
grated. l moduli di alimentazione transitoria) nelle ECU (Unità di e alla capacità

di uscita minore
DC/DC step-down MAXM17552, Controllo Elettroniche) del set- del 50% rispetto ai prodotti
MAXM 15064, MAXM 17900 e dulo semplifica l'aspetto più difficile tore automotive per quadri di convenzionali), per cui contri- •
MAXM 17903 si uniscono all'ampio della progettazione di alimentatori, bordo e gateway impiegati nei buisce al miglioramento della
portafoglio di soluzioni di alimen- consentendo ai progettisti, anche a sistemi start-stop per veicoli. stabilità e dei risparmi ener-
tazione Himalaya di Maxim, for- quelli con poca esperienza in mate- Il chipset integra un converti- getici in applicazioni in cui si
nendo una gamma di tensione di ria di alimentazione, di crearne uno tore buck DC/DC con funzio- verificano significativi cali della
ingresso più ampia (da 4 a 60 V) e robusto e affidabile in meno di un nalità boost (BD8P250MUF-C) tensione di ingresso in un bre-
dimensioni più piccole. •
g1orno. e un circuito integrato boost ve periodo di tempo.
l nuovissimi moduli di alimenta- l moduli uSLIC possono esse- dedicato (BD90302NUF-C). www.rohm.com/eu
zione uSLIC Himalaya ampliano il re acquistati con le seguen- Il chip primario (BD8P250MUF-
range d'ingresso fino a 60 V rispet- ti quotazioni: MAXM 17552 C) utilizza l'innovativa tecnolo-
to al precedente di 42 V e sono per 2,53 $, MAXM15064 per gia di controllo buck-boost di
disponibili in una dimensione (2,6 2,78 $, MAXM17900 per 1,39 ROHM, nota come Quick Buck
mm x 3,0 mm x 1,5 mm) inferiore $ e MAXM17903 per 1,48 $ Booster, che consente la con-
alla metà della soluzione concor- (1 000-up, FOB USA); i kit di va- figurazione buck-boost di un
rente più simile. l moduli integra- lutazione MAXM17552EVKIT#, alimentatore senza degradare
no un regolatore buck sincrono MAXM15064E VKIT#, le caratteristiche dell'alimenta-
Himalaya con ampia gamma d'in- MAXM17900EVKIT# e tore con configurazione buck,
gresso, compensazione, altre fun- MAXM17903EVKIT# sono disponi- semplicemente aggiungendo
zioni e un induttore schermato. bili ad un costo di 29,73 Sciascuno. il circuito integrato boost de-
L'integrazione dell'induttore nel mo- www.maximintegrated.com dicato BD90302NUF-C nello

Da lntel il nuovo processare lntel Core i9-9900K


lntel ha annunciato il processare gamma di esigenze dei consu- workstation ideato per i carichi
lntel Core i9-9900K di nona ge- matori, dal gaming alla creazio- di lavoro e le applicazioni ad uso
nerazione, il migliore processare ne di contenuti. Sono stati inol- intensivo di elaborazione, che
• desktop lntel per il gaming, e tre svelati i dettagli completi dei sarà disponibile a dicembre.
intel' ha comunicato che i preordini nuovi processori lntel Core serie Il processare lntel Core i9-9900K
del nuovo processare sono già Xprogettati per piattaforme pre- di nona generazione offre un
C0RE"'i9 iniziati. L'annuncio è awenuto mium di creazione di contenuti, livello eccezionale di prestazioni
X-series insieme all'introduzione di una con disponibilità a novembre. alla linea di prodotti per PC de-
serie di nuovi processori per PC lntel ha anche fornito aggiorna- sktop, rappresentata dal primo
desktop che consentiranno stra- menti sul nuovo processare lntel marchio lntel Core i9 nel segmen-
ordinarie prestazioni e funziona- Xeon W-3175X, un concentra- to dei PC desktop mainstream.
lità atte a soddisfare una vasta to di potenza da 28 core per le www.intel.com

18 Dicembre 2018 /Gennaio 2019- ELETTRONICA IN



Soluzione di connettività aie LPWAN Certificazione CE per la soluzione SiP


Sigfox per loT Sigfox di DN Semiconductor
STMicroelectronics lancia dosi automaticamente alle Si fa più semplice il lavoro
una soluzione di connettivi- caratteristiche della rete lo- dei progettisti impegnati
tà globale LPWAN Sigfox per
loT. t il primo design di rife-
cale.
La soluzione di ST consente
nella realizzazione di di-
spositivi wireless per loT
·e
rimento certificato hardware agli utenti di creare oggetti con tecnologia Sigfox: ON
e software del settore per il intelligenti che si connettono Semiconductor ha annun-
servizio globale automaticamen- ciato di aver ottenuto la
Sigfox Monarch te alla locale rete certificazione CE per la sua . ..
basato sul chip Sigfox in qualsiasi nonché il rilevamento di
.... .
. - .~

soluzione AX-SIP-SFEU Sy- •• •



• •• r ' ;;•

radio sub-1 GHz parte del mondo, stem in Package (SiP). Ciò sensori e asset. Semplifi-
ST 52-LP con consentendo la significa che il dispositivo cando notevolmente la
MCU STM32 o mobilità interre- è conforme agli standard supply chain e miglioran-
SoC BlueNRG. gionale, la geo- riguardanti sicurezza, pro- do la qualità complessiva
Una soluzione localizzazione e tezione ambientale e pro- del dispositivo attraverso
pronta per il monitoraggio il monitoraggio degli asset tezione per la salute per i l'integrazione, il micro
remoto e il tracciamento senza fare affidamento sui prodotti venduti all'interno modulo SiP include un IC
di dispositivi, ovunque nel più costosi dispositivi di posi- dello Spazio economico radio Sigfox, una sezione
mondo. zionamento GNSS. europeo. RF a componenti discreti,
STMicroelectronics è il pri- La soluzione certificata Mo- AX-SIP-SFEU offre connet- tutti i componenti passivi
mo produttore di chip a svi- narch Sigfox è basata sul tività Sigfox pronta per e il firmware necessari. Il
luppare e commercializzare chip radio 52-LP sub-1 GHz a l'uso (uplink e downlink) ricetrasmettitore RF è già
una soluzione certificata per bassissimo consumo e lungo per applicazioni loT indu- verificato da Sigfox per il
connettività loT globale, a raggio, che si sintonizza auto- striali, compresa l'automa- protocollo RC l.

bassissima potenza e a lungo maticamente sulle frequenze zione di edifici e demotica, www.onsemi.Com
raggio, con localizzazione e locali di Sigfox, in tutte le zone
tracciamento, basato sul ser- del mondo (da RCl a RC6) e
vizio Monarch di Sigfox. che consente la connettività
Questo servizio consente ai senza soluzione di continuità
dispositivi di funzionare in
modo trasparente in ogni
con la rete Global Sigfox e con
i servizi di geolocalizzazione.
Renesas a ncia RXv3, il CPU Core RX
parte del mondo, adeguan- www.st.com a32 bit di terza ner

Renesas ha annunciato lo svilup-
po del suo CPU core RX a 32 bit di
Nuova LMG341 x di stadi terza generazione, I'RXv3. Il CPU
core RXv3 verrà utilizzato nelle
di potenza GaN da TI nuove famiglie di microcontrollori
(MCU) RX di Renesas, i quali inizie-
Texas lnstruments (TI) ha an- semplificano la progettazio- ranno la propria fase di sviluppo
nunciato una nuova gamma ne, consentono una maggiore alla fine del 2018. l nuovi MCU sce la portabilità delle applicazioni
di stadi di potenza al nitruro affidabilità del sistema ed ot- sono progettati per soddisfare le scritte per RXv2 e RXvl di prece-
di gallio (GaN) da 600 V, RDS timizzano le prestazioni degli prestazioni e la stabilità avanzata dente generazione. l progettisti
ON di 50 mO e 70 mO, con alimentatori ad alta tensione. in tempo reale richieste dai con- che lavorano con gli MCU basati
supporto per applicazioni fino Grazie al rapido rilevamento trolli motore e dalle applicazioni su RXv3 possono anche trarre van-
a 1OkW. La gamma LMG341 x integrato della limitazione industriali in fabbrica intelligenti taggio dal robusto ecosistema di
consente ai progettisti di cre- della corrente e della sovra- di nuova generazione, dalle ap- sviluppo Renesas RX per sviluppa-
are dispositivi più piccoli, più temperatura (inferiore a l 00 plicazioni nella demotica e dalle re i propri sistemi embedded.
efficienti e dalle prestazioni ns), i dispositivi sono in grado attrezzature smart per infrastrut- L'esclusivo CPU core RX combina
più elevate rispetto alle solu- di prevenire sia eventi indesi- ture. un design ottimizzato per l'effi-
zioni con transistor a effetto derati che l'instabilità termica, L'innovativo core RXv3 potenzia cienza energetica e un processo di
di campo in silicio, nel settore con l'interfaccia di sistema la comprovata architettura delle fabbricazione che produce presta-
degli alimentatori AC/ DC. del- che garantisce funzionalità di CPU Renesas RX arrivando fino a zioni eccellenti. Il nuovo CPU core
la robotica, delle energie rin- auto-monitoraggio. 5.8 CoreMark!MHz, come indicato RXv3 è prevalentemente un'archi-
novabili, delle infrastrutture di www.ti.com dalle misurazioni dei benchmark tettura CISC (Complex lnstruction
rete, delle telecomunicazioni EEMBC, per fornire le migliori pre- Set Computer), che offre vantaggi
e dell'elettronica personale. Ready-to-use portfolio of 600-V GaN FET stazioni del settore, alta efficienza significativi rispetto all'architettu-
La gamma dei circuiti integra- power stages for applications up to 1okW ra RISC (Reduced lnstruction Set
energetica e reattività.ll core RXv3
ti FET al GaN di TI costituisce è retrocompatibile con i CPU core Computer) in termini di densità
un'alternativa intelligente ai RXv2 e RXvl utilimti nelle attua- del codice. RXv3 utilizza una pipe-
tradizionali FET GaN stand- li famiglie di MCU RX a 32 bit di line per fornire elevate prestazioni
alone e cascade, integrando Renesas. La compatibilità a livello in termini di lnstructions per Cycle
funzionalità di protezione e binario, utilizzando lo stesso set di (l PC), paragonabilì a quelle RISC.
caratter.istiche uniche che istruzioni per tutti i core, garanti- www.renesas.com

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 19



Dai vita alle tue idee digitali con Micro:bit!
Micro:bit è una piccola scheda di sviluppo che integra un microcomputer
a 32 bit; può essere utilizzata per imparare le basi della programmazione
ed è adatta a tutte le età. Dispone di sensori di movimento, una bussola
elettronica, un buon numero di 1/0, alcuni pulsanti e numerosi LED
disposti a matrice per lo sviluppo di interfacce grafiche. Grazie al
bluetooth integrato è possibile programmarla facilmente dal web, da PC,
tablet e smartphone.

Impara ad utilizzarla con il kit Smart Robot Ca r...


Il kit permette di realizzare un piccolo
micro:bit robot con ruote controllato tramite
'f~ ... ...
,._ &1:1 .... ,1
Smart Car telecomando IR. Una volta programmato
-· ~
può inseguire una linea, evitare gli
ostacoli, seguire un oggetto, accendere

i LED RGB e tanto altro. La confezione
comprende la scheda micro:bit, una
breakout per micro:bit, due micro •
motoriduttori con ingranaggi in metallo,
due ruote e due staffe di supporto, un
· bali caster, un sensore ad ultrasuoni con
base di supporto e staffe di fissaggio, un
cavo USB-micro USB, un telecomando a
infrarossi, un piccolo cacciavite, quattro
distanziali femmina-femmina M3x40
e due maschio-femmina M2x1 O, una
Cod: batteria allitio da 3,7 volt, due adesivi in
velcro, viti e dadi per il montaggio.
-
§ MICROBITROBOT
l l

e con il prototipi ng kit!


Il kit comprende: la scheda
Micro:bit, una scheda con
connettore per Micro:bit,
un cavo USB-microUSB, un NIICROBITKii
porta batterie per 2 batterie
l ·
-o
mioo:bit
da 1,5 volt tipo AA, due
batterie da 1,5 volt tipo
AA, una breadboard a 400
contatti, 1 LED RGB, un
Buzzer da 5 volt, jumper, •
mini pulsante, 3 LED (1 rosso, '
1verde, 1giallo), resistenze Cod: MICROBITKIT Incluso nel kit
IL NUOVO MANUALE
di diversi valori e una
fotoresistenza.
o
~~
9ID:D a colori che spiega nel dettaglio
come utilizzare e programmare mlcro:blt
d produzione,
backup, ecc.
Open Soun:elmage Otipll<:a<or- P)1hon Vl .U


Select an inage:
Choose deVices.to Write
. 201-27-- IO:
· · to devices:
Start Wntmg
- -/mg (4.5G)
Se!ectA.I Demes (4) WR/Tf: '"ACòf: TO D
=-"""laiav(!!.JG) EVI CES

a.~~eoiSda (465.76GJ
o~~e •..., (14.48(;)
.Ileo~ (14.48(;)
.llevJsdd (14.48(;)

-
-

•••••••••••••• •••••••••••••• •••••••••••••• •••••••••••••• ••••••• di MARCO MAGAGNIN


uando la Fondazione Raspberry Pi ha iniziato Non solo, i rnicrocomputer Raspberry Pi sono adot-
lo sviluppo di Raspberry Pi, l'obiettivo princi- tati in gran numero anche in numerose applicazioni
pale era quello di fornire un ambiente di sviluppo professionali nei più svariati settori.
orientato alla didattica, nel dominio dell'informati- Prendiamo il caso di un laboratorio che adotta
ca, dei sistemi operativi e del"physical computing", Raspberry Pi come strumento di formazione. Molti
ovvero la capacità di interagire, da parte di un'ap- avranno realizzato che l'operazione più ... noiosa
plicazione informatica, con sensori ed attuatori che è la duplicazione delle SD Card per tutti i posti di
'
si interfacciano al mondo esterno. lavoro del laboratorio o per tutte le installazioni in
Questi anni hanno dimostrato che lo scopo è stato caso di applicazioni professionali.
ampiamente raggiunto, al di là di ogni aspettativa. Per risolvere questo problema il "programmatore"


ELETTRONICA IN - Dicembre 2018 - Gennaio 2019 21


Alimentazione 5V

Solect M lmoge: Choose deviees to write S~tt writìng to dcviees:


IO:
201~27~~~ WRITIIIU~I fO OIVICU
MIC.hJmg (4,11Ci) Set«< Ali Oev!cH (4)
• cono_Fuua,mg(8.3G) ~(~ 76G)

, A'klll$db(1U 8G)
'~(l44&G)

, A:levtsdd UU3G) Fig. 1 - Schema di


insieme dell'applicazione

californiano Aaron Nguyen ha realizzato, e messo a che come partizione root, è necessario installare al-
disposizione sulla piattaforma GitHub, un'applica- cuni pacchetti prerequisiti. Aggiornate il repository
zione per la duplicazione multipla di SD Card. dei pacchetti e la distribuzione con il solito metodo:
Il nome dell'applicazione è OSID ovvero Open
Source Image Duplicator. E' realizzata in Python3 .•
4 • • • • • • • • • • • ~ • • • i • • • • • ~ • • • • • • • • • • 4 • • • • l • • • • • • • • • • ' • • l • • l • • • • • • • • • • • • • • • • • • • • •



: sudo apt - get update •

e presenta un'interfaccia grafica che ne semplifica : sudo apt - get dist - upgrade •



l'utilizzo. La piattaforma di utilizzo è il nostro Ra- . :


sudo rpi-update •'

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • l • • • • • l • • • •

spberry Pi. In Fig. 1 è visibile lo schema d'insieme


• • • • • • • • • • l • • • • • • • • • • • • • • • • • • • • •

dell'applicazione. Nel nostro caso abbiamo utilizza-


to Raspberry Pi con il display Pi, tastiera e mouse. Ora installate i pacchetti dcfldd, pip3, e CherryPy,
Data la necessità di spazio per ospitare le immagini con i comandi:
del sistema operativo che si vuole duplicare è neces- • • • • • • • • • l • l • • l • • • • • • • • • • • • • l • • l • • • l • • • • • • • • • • • • • • • • • l • • • • • • • • • • • l l • • • • • • • • • • •

.
• •
sario utilizzare una SD Card da almeno 32Gb. Noi : s udo apt - get install python3




: sudo apt-get install python3-pi p
abbiamo preferito la soluzione con disco fisso, che :• sudo apt-get install dcfldd




abbiamo descritto nel numero 222 di Elettronica In :

sudo apt-get instal l g i t




(Febbraio 2018). Per ospitare le SD Card sulle quali : sudo pip3 install che r rypy •

• •
• •
• •
copiare l'immagine di sistema operativo abbiamo •
• • • l • • • • • • • • • • • • • • • • • • • • • • • • • • • l l l ~ • • ~ • • • • • • • ~ • • • • • • • • • • • • • • • • • • ~ • • • • • • • • • • • •

utilizzato un Hub USB alimentato con i lettori di


SD Card USB, tanti quante sono le SD Card che si Alcuni pacchetti saranno già presenti ad aggiornati.
vogliono duplicare contemporaneamen te. Niente di male, proseguite ad installare i successivi.
li pacchetto pip3 (Pip Installs Python) permette di
,
PREPARAZIONE RASPBERRY Pl aggiornare il linguaggio Python con componenti
Partendo da una installazione di Raspbian conven- aggiuntivi già pacchettizati ed ottimizzati per esse-
zionale, nel nostro caso con le modifiche necessarie re integrati all'ambiente di sviluppo Python.
ad utilizzare un disco fisso sia come disco di boot Il pacchetto dcfldd è un derivato del comando "dd",

22 Dicembre 2018- Gennaio 2019 - ELETTRONICA IN



..

Fig. 2 - Copia
applicazione OSID
da GitHub

comunemente utiHzzato p er copiare immagini di ".sample", con i comandi:


memorie di massa. Nella fattispecie permette di ..........
• ········~·~,f· · ~·········· . ······························,. .···•••1••••
indirizzare l'output della copia su diverse destina- : cd

/home/pi/osi d- python3/system •


: cp serv er . i n i. sampl e serv er . i ni •
zioni contemporaneamen te. Il pacchetto git permet- •
: cp ru n_app . sh . sampl e r un_app . s h




te di clonare applicazioni disponibili nel repository ; cp osid . de sktop . sample osid . des ktop •


.•• .•

GitHub. • ' • • • • t • • • • • • • t • • • • • ~ t ~ • • f • • • • • t • • t • t • t • • t t • • • • • t t • t • • t • t t t • • • • • ~ • t c • • • • t • 4 t • t

CherryPy, che ha come simbolo una bella ciliegia


rossa, è un framework minimale che permette di In dettaglio il contenuto dei file di configurazione.
scrivere applicazioni web in python con il mini-
• •
mo sforzo e la minima quantità di codice. Questo server.1n1
perché, come visibile nello schema di Fig. 1, OSID • ImagePath è la cartella che contiene le immagini
offre, per l'utilizzo, un'interfaccia grafica via web. di sistema operativo che si vogliono duplicare.
In questo modo è possibile utilizzare OSID sia in Possono essere più di una, ma se ne dovrà sele-
locale che da remoto. Preparato l'ambiente, clo- zionare una sola per ogni sessione di duplicazio-
nate l'applicazione OSID all'interno della cartella ne;
/home/pi con il comando (Fig. 2): • Host è il nome o l'indirizzo host al quale punta-
• re, dal browser esterno. Se si utilizza "localhost"
git clone https://github.com/aaronnguyen/osid-python3.git si potrà usare l'applicazione solo in locale. Per
• utilizzare l'applicazione da remoto è necessario
configurare un indirizzo IP od il nome host di
CONFIGURAZIONE OSID Raspberry Pi. Nel caso dell'indirizzo IP è oppor-
Ora è necessario configurare l'applicazione OSID. tuno configurare un IP fisso per Raspberry Pi;
Nella cartella "system" sono presenti dei file di • SocketPort è la porta sulla quale si vuole, rag-
configurazione di esempio, che utilizzeremo come giungere l'applicazione dal browser. E prede-
traccia per la creazione dei nostri. I file di esempio finita la porta 80 ma può essere cambiata, per
hanno l'estensione ".sample". In dettaglio ci interes- esempio in caso abbiate più di un server web su
sano i file: Raspberry Pi;
• •
• server .rm • Logs è la cartella dove si vuole vengano scritti i
• run_app.sh log dell'applicazione. Nel nostro caso / var/ log/
• osid.desktop • osid. Attenzione, la cartella deve essere creata
prima del primo utilizzo dell'applicazione;
Li copiamo nella stessa cartella senza l'estensione • SkeletonLocation è la cartella dove si trova il file

H ~ ~ ~ Codifica • C Colore • ® ~8 '


I[Dup l ì cat or setti ngs]
I magePat:h = / home7pi / osi d- python3/ i mg
HOSt = 1 92 .168 . 178 . 106 •
socketPor t = BO .
Logs = / var j os id
s kel etonLocat ion = / home/ pi / osi d- python3/ www/ s kel et on. mi n.css •

Fig. 3 - Configurazione
Riga: 1/6 Carattere: 91 (OxSB) Codifica: 1252 (ANSI -Latino
file server.ini

ELETTRONICA IN - Dicembre 2018 - Gennaio 2019 23


*;;l Codifica .., D Colore .., >>

# ! .l s r . bi n. e n\t bas h
cd / ho e. (pi . 'osi d- p)ft ho n 3.! S)'St e n
SL do ,..'t s r / bi n/ pyt ~1 o n 3 s er \ter . py

# A 11 O''' cher r' )'P~l t o boot Lp


sleep 5 ·
ct1ro i Lr - bro •tser --app:=bttp : //192. 168. 1 78. 106 :80
l
Fig. 4 - Configurazione
Riga: 8/ 7 Codifica: 1252 ~ANSI - Latino
file run_app.sh

"Skeleton CSS Framework". Nel nostro caso un file browser --app=http : //<IP_Raspberry_ Pi> : 80 ll1mO O
Il • d
Skeleton CSS è già presente nella cartella www. da non aprire un browser con l'applicazione in
locale (Fig. 4):
Per configurare il file server.ini apritelo con Win-
• a ~ ~ • • 1 ~ ~ a a • • • • • ~ a • • • • 1 * • • • • • • • • • • • • ~ • • ~ • « ~ 1 ~ •

SCP e digitate (Fig. 3):


• • • • f • 1 • • • • 1 • • 4 • • • • 1 • • • • • • • • • • • •

" •
• •
: #-! /usr / b i n/ env bash •

• •
l


1 • a. a 1 lf "' 1 -. a 1 a l • a ~ • 1 1 .. 1 1 ' l 1 a 11 il • 1 • 1 a a 1 .- ,.. 1 a 1 a a 1 • a • a • a • • ._ a 1 4 a a • a 1 1 • a 1 1 a 1 a f a " 1 1 a a ~ a

: cd /horne/pi/osid- python3/systern •

• • •
: [ Dupl i catorSetti ngs] : : sudo /usr/b in/python3 server . py •

• •
: I rnagePath = / horne/pi/osid- python3/irng :

:• # Allow Cherrypy to boot up •

• •
·• Host = 192 . 168 . 178 . 106 . ·

: sleep 5 •

• •

·• SocketPo r t = 8 O

·• : chrorniurn-browser - - app=http : //<IP_Raspberry_Pi> : 80 •

:. Logs = /var l osi d :.


'
••••••••••••..,•••••c,.e-ar••• • •••••• •••••~•~••• .. ~•• •••<~•••••••~••••••••• .. •••••
.

:• Ske let onLocation - / horne/ pi/osid-python 3/www/ ske - :• •


:• l e ton . min . css :•

~ • l ~ • l • a ~ • 1f • a 1 • l • p l l • • • • • • • • ~ • c r 6 • e • • • r • • e • • e • • • a • ~ • • ~ • a • a r a • a e • 1 • a l e • • a e p • • a e

osid.desktop •

I file con estensione ".desktop" servono a creare le


run_app.sh icone per il lancio delle applicazioni direttamente dal
• La prima direttiva di run_app.sh porta nella desktop grafico di Raspberry Pi. Se utilizzate l'applica-
cartella corrente dell'applicazione; zione OSID esclusivamente da remoto, questa ope-
• Successivamente esegue il server dell' applicazio- razione è inutile. Per configurare il file osid.desktop
ne OSID gestito dal framework CherryPy; apritelo con WinSCP e digitate il contenuto (Fig. 5):
• Delay di cinque secondi;
. . . .. . . . . . . . . . . . . . " . . . . . . . . . . . . . . . . . . . . . .
~ ~ . .. . . . ..... . . . . . . .. . . . . . . . . . . . .. .•
~ "

• L'ultima direttiva apre, in locale, il browser •


• •

: [Desktop Ent ry ] •
Chrornium passando come parametro l'URL del- •
: Narne=r Pi SO Card Dupl icator



• •
la pagina principle dell'applicazione. : Cornrnent=Des kt op ent ry open browser as app . •


: Icon=/usr/sha r e /pi xmaps/openbox . xprn •


: Exec=bash / horne/pi/osid- python3/systern/run_app . sh •

Per configurare il file run_app.sh apritelo con Win- :

Type=Application •


SCP. Se volete usare l'applicazione da remoto fate : Encoding=UTF- 8 •

• •
·' Terrninal =false •
attenzione a commentare la direttiva"# chromium- . •

: Categories=None ; •

all;t••••••••••••••••• .. ••s••••••••••••••••••••••••·•••*•••••••••••••••••••••••••

[ Deskto p Ent r y] •

Nar ~rP i s o card Dt pl i cat or


Colnn~ e nt==Des kto p ent r y open br O\'iSer as app.
_con=./Ls r /s har e/ pi x1 aps / openbox. xp1·
Exec=bash . 'ho e/ pi 1 osi d- pyt hon3. 'sy sten / r L n_ app. sh
ype=Applicati on
Encodi rlg=U F-8 ·
-erni nal• =fal se
cat egor 1es=None ;

Fig. 5 - Configurazione
Riga: 1/9 Carattere: 91 ~Ox SB) Coclifìe_a: 1252 ANSI .. Latino
file osid.desktop

24 Dicembre 2018- Gennaio 2019- ELETTRONICA IN


)

2:03

Fig. 6 - Icona OSIO sul desktop di Ra~pberry Pi

Per far apparire l'icona sul desktop copiate il file Create la cartella dove trasferirete le immagini delle
,
nella cartella /home/pi/Desktop: SD Card da duplicare:
........................


l ••••••••••••••••• , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . il •••••


.• ............ , ....... ... ............ ............. , .................................... .•
• • • •
: cp /home/pi/osid-python3/system/osid.desktop / hame/pi/Desktop :• : mkdir / home/pi /osid- python3/img :•

.... ............ ......

..• ········ .. ........ ......... .. ............... .• •

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


Open Source lmage Ouplicator • Python v1 .1.1 Open Source lmage Oupficator - Python v1 .1.1

Select an image: Choose devices to write Start writing to devices: Select an image: Choose devices to write Start writing to devices:
to: to:
O 2018-06.27 -raspbian. 0 2018-06.27 -raspbian- WRITE IMAGE TO OEVl CES
WRfH IMAGE TO OEVJCf S

stretch.img (4,5G) D Select Ali Devices (4) stretch.img (4,5G) O Select Ali Dev~ces (4)

0/dev/sda (465.76G) 0/dev/sda (465 76G)

0 /dev/sdb (14.48G) ' 0/dev/sdb (14.48G)

0/dev/sdc (14.48G) 0/dev/sdc (14.48G)

0 /dev/sdd (14.48G) 0/dev/sdd (14.48G)

Released by vr.k & Sctssor Enteamses ltmrt ~, and heavily modrfied by ron Nquve under the
Released by Oock & Scissor Enterpnses L1mtted and heavily modified by uon Nguyl-?! 1 under lhe
""'"L "', ,. . .
...•• ...
Fig. 7 - Pagina iniziale OSIO Fig. 8 -Selezione origine e destinazioni della duplicazione.

ELETTRONICA IN - Dicembre 2018 - Gennaio 2019 25


l

.f rPI~

(+)<D L~2.~68~m:.~~~.----~---el ~~-ca-_·_--.~] .J 1t


----- ·---
-cr ~ ~ 4 4J =
Open Source lmage Oupficator . Python v1 .1.1 Open Source lmage Oupficator - Python v1_1_1

Progress •
Progress
48°/o 1000/o
Time Remaining: 00:05:38 Duplication Complete: 2018-06-27-raspbian-stretch.img
• Retum to Start

Released by Rock & Sctssor Enterpnses limrted and heavily mocfrfied by Aaron Nguven under the Reteased by Rock & Setssor Enterpnses lirrutec and heavily modified by Aaron Nguv under the
GNUGPlv3.
.,
.Jr.U 3Plv3.

Fig. 9 - Stato avanzamento della duplicazione. Fig. 1 O - Duplicazione completata.

Create la cartella per i log dell'applicazione OSID: Card od il disco fisso di sistema, come visibile in
• • * • • s ' • • ~ • a ~ • • • • • • • • • • • • • s • s • ~ ~ a • • • • • • a • e e • • • • • • s * ~ ~ * • • a • a a • • • a • , • • a • • a • ~ * • - a Fig. 8. In caso contrario il sistema operativo di Ra-

. .•
:• sudo rnkdir /var/log/osid ·• spberry Pi verrà irrimediabilmente distrutto.
• •
•• • • • • • • ~ • • • ~ • • • • • • • • • • • • • • 4 • • - • • • • • • • • • ~ • • • • • • • ~ • • c • • ~ ~ • • • • • • • • • • • • • ~ • • • • • • • •


Una volta selezionata l'immagine di origine ed i di-
spositivi di destinazione cliccate sul pulsante "WRI-
. UTILIZZO APPLICAZIONE OSID TE IMAGE TO DEVICES". In questo modo inizia

A questo punto è possibile utilizzare l'applicazione la duplicazione con l'indicazione dell'avanzamento
OSID. Come prima operazione dovete trasferire della copia e del tempo rimanente alla conclusione,
l'immagine da duplicare nella cartella "img". Per come visibile in Fig. 9.
questa operazione utilizzate WinSCP. Al termine apparirà la pagina di completamento
Poi collegate un Hub USB ad uno dei connettori dell'operazione e la richiesta, se lo si desidera, di
USB di Raspberry Pi. una nuova duplicazione (Fig. 10).
Inserite uno o più lettori/ scrittori di SD Card USB A questo punto potete recuperare le vostre SD Card
nelle porte dell'Hub USB, ciascuno con inserita una dai lettori/ scrittori USB. Buon lavoro.
SD Card. ·
In locale cliccate sull'icona di OSID sul desktop
(Fig. 6). Con un po' di pazienza si aprirà una
finestra browser con l'interfaccia grafica visibile in
Fig. 7.
Per eseguire l'operazione da remoto, aprite una
finestra di terminale, anche via SSH e, dalla cartel-
la" /home/pi/osid-python3/system" digitate il
comando: Il materiale utilizzato nel progetto può essere acquista-
• • • • • , ~ • • • • • • • • • • • • • • • • • • • • • • • • + • • • • • • • • • • • • • • • • • • • • to presso Futura Elettronica. La board Raspberry Pi3
.
4 • • • • • • • • • • • • • • • • • • • • • • • • •

..•
• •

.:• sudo bash run- app . sh . Tipo B+ (cod. RPI3BPLUS) è disponibile a Euro 44,00,
. • . l'alimentatore switching 5 VDC l 3 A con uscita mi-

• ~ • • • =• • ~ • • • • • • • • • • • • • • • • • • • ~ + • ~ • • • • • • • • • • • • • • • • • • ~ • ~ ~ • • • • • • • • • • • • • • • • • • • • • • • ~

ero USB (cod. AL05-3USB) è in vendita a Euro 10,50,


Sempre se vi collegate da remoto, aprite un browser I'HUB USB 2.0 a 7 porte (cod. PCUSB34) costa Euro
e nella finestra URL digitate l'indirizzo lP di Ra- 15,50 e l'adattatore USB l micro USB, con slot SO-
spberry Pi. Apparirà la stessa interfaccia grafica. card e funzione OTG (cod. PCUSBG01) è in vendita
L'applicazione ricerca in automatico le immagini a Euro 6,80. Tutti i prezzi si intendono IVA compresa.
disponibili nella cartella img ed i dispositivi di me-
noria di massa collegati a Raspberry Pi.
Selezionate l'immagine che volete utilizzare ed i
device sui quali volete duplicarla.
Fate estrema attenzione a NON selezionare la SD

26 Dicembre 2018 - Gennaio 2019- ELETTRONICA IN


Il ,,
- •

- ICe
• elettronica e componentis tica • informatica e networking
• smartphone e accessori • droni e modellismo dinamico
• videosorvegli anza • mobilità elettrica
• editoria tecnica • mercatino dell'usato •

segreteria organizzativa :
studio fulcro
via ausonia, lOOr - genova

tel. 010 5908809 l

berti®studiof ulcro.it
'
inserisci qui i tuoi dati e ottieni il tuo biglietto ridotto!
(informativa sul trattamento dei dati personali sul sito www. studi fui o.it)

e ma i 1 .1 •• 111111111111111111111111111111111 111111111111111111111111111111111 1111111111111111111111

C.A.P. ~··~··~·~··~·~~~·~~·~·~~·~·~··~
8 ,5o •

Cod.
24LR6AA

-c
CJ
·-
-~

BATTERIE BATTERIA
BATTERIE ALCALINA
ALCALINE ALCALINE
LR3 AAA • 1,SV 6LR61-9V
LR6AA 1,SV
Blister Blister
Blister da 1 pezzo
da 4 pezzi da 4 pezzi

e 1,5o AAA LAOuuu.sv cE • 'il f'.. e


e 1,5o e 1,ao
Cod. LR6·AA·4 Cod. LR03·AAA·4 Cod. 6LR61·9Y·1

BATTERIE •
ALCALINE BATTERIE BATTERIE
23A-12V ALCALINE ALCALINE
LR14 C-1,SV LR20 D-1,SV
Blister
da 5 pezzi Blister Blister
da 2 pezzi da 2 pezzi

e2,5°
Cod. 12V·23A·S
e2,3o
Cod. LR14·C·2
e3,2o
Cod. LR20·D·2
l

KEYBOARD
BATTERY /
+
R2 R3 R4 RS R6 R7 R8

R12 PIEZO Rll Rl

R9
LLg 1111

STYLUS
Cl C2
\0
E
Q}
RlO

..r.:
(_)
-
(l) TRl
L.,,,.....,.....'

l l l l

di un semplice strumento musicale che possiamo in alternativa all'altro, facendo in modo che TRl e
considerare un remake elettronico di una cornamu- TR2 presentino sempre livelli opposti.
sa, giacché come il popolare e antichissimo stru- Questo fenomeno inizia quando si alimenta il
mento, peraltro saldamente ancorato alla tradizione circuito, allorché, pur essendo scarichi entrambi i
natalizia, permette di far slittare a tonalità delle condensatori, il transistor che ha tensione di soglia
note mentre lo si sta suonando. più bassa entra per primo in conduzione e blocca
Questo piccolo circuito, alla portata di chiunque l'altro, almen o fin quando il condensatore collegato
perché essenziale, economico e di facile realizzazio- alla base di quest'ultimo non si carica.

ne, può diventare il primo strumento musicale per Per comprendere il funzionamento del circuito
un bambino o un ameno gadget per accompagnare studiamo innanzitutto quello del multivibratore
con delle musichette le feste di fine d'anno. astabile che ne è il cuore, partendo dalla considera-
zione che può funzionare, sebbene sia teoricamente
SCHEMA ELETrRICO composto da due stadi a transistor simmetrici, per
Andiamo subito a vedere di cosa si tratta, analizzan- il fatto che due BJT, per quanto di uguale modello,
do il circuito che realizza lo strumento musicale, il hanno caratteristiche leggermente differenti e tali
quale sostanzialmente è un multivibratore astabile a che, nell'istante in cui il circuito riceve l'alimenta-
BJT di tipo NPN, cui abbiamo aggiunto un cicali- zione, uno dei due entri in conduzione per primo
no piezo (senza elettronica, perché verrà pilotato condizionando l'altro. Infatti nell'astabile le condi-
dal segnale variabile prodotto dall'astabile stesso) zioni dei due transistor che lo compongono sono
e un trimmer in modo da alterare la frequenza intrecciate e una influenza l'altra.
spostandola anche di un'ottava. Grazie a una scala Per il nostro studio supponiamo che il contatto
di resistenze e ad un filo che facciamo toccare su STYLUS sia collegato a una delle resistenze R2, R3,
otto piazzole corrispondenti ai nodi di unione delle R4, R5, R6, R7, R8 e che nell'istante in cui applichia-
resistenze della suddetta scala, possiamo impo- mo tensione al circuito tramite i punti+ e - BATTE-
stare il multivibratore astabile per fargli generare RY, entri in conduzione per primo TRl; per effetto
altrettante note, semplicemente toccando con un
filo collegato al punto STYLUS le piazzole che nello
schema elettrico sono raggruppate sotto la dicitura
KEYBOARD.
Chi volesse, potrà rendere più pratico da suonare il
.•
piccolo strumento realizzando una vera e propria •

tastiera, che potrebbe essere composta semplice- : • Tension--=.... ~


~

mente da otto pulsanti normalmente aperti, uniti :• • Corrente


: • Minima frequenza riprodotta: 580 Hz
per un'estremità e con i contatti liberi connessi •
:• • Massima frequenza riprodotta: 2.400 Hz
ciascuno ad una delle piazzole KEYBOARD. :• • Numero di note eseguibili: 8
Il circuito è un generatore di segnale rettangolare, : • Estensione: circa 2 ottave

dato che non riesce a mantenere uno stato stabile e :• • Possibilità di utilizzo Pitch Bend

i suoi transistor commutano in continuazione e uno ............................................................................ •

. 30 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


' di ciò, il collettore di quest'ultimo si porta a circa o
piano di MONTAGGIO •••••••••o
o

o
o
o o
o o
o

zero volt (ponendo a massa l'armatura ad esso


o
o o

•o •o
•o •o
•o o

collegata del condensatore Cl) e comunque e un •o


o
o
o
o

o •
o

potenziale tale da non permettere la polarizzazione o


o
o
•• o
o
o
o
o o
o

della base del TR2, giacché la corrente di collettore o


o
o
o
o
o
o
o
o
o o

del TRl causa nella resistenza R11 una caduta di va- o o


•o o
o
o •o
o
•o o

lore tale da mantenere la Vbe al disotto di quella di


o
• •o o
o
o
•o o
o o

o
soglia. Ciò avviene perché C2 è inizialmente scarico o
•o
o
o
o
o
o
o
o
•o o

e fa passare corrente. o
o
••
o
o
o
o
o •
In questa condizione TR2 resta interdetto e tramite •o o
o

o
•o
o
o
•o

Rll inizia a caricarsi il condensatore C2, fin quando
o

•••
o
o

•o •o
la base del T2 non si trova ad un potenziale tale . o o
o

o ••
o
• o
o o
•o
da far saturare tale transistor, quindi pian-piano la o
o
o
o
o
o

••• o

tensione di base del TR2 si abbassa al disotto della


o
o o
o
•o o
o o
o
• o

tensione di soglia e lo stesso TR2 si interdice. •


•• •o

•••
o
o
o

Adesso è il collettore del TR2 ad andare a zero


o
• o
• o
o
• o
o
•o o

logico e scaricare Cl, fornendo alla base del TRl un o o


o
• o
o
• o
• •o
•••
impulso a livello basso che porta lo stesso transistor
o
o
• •o
•o
o

•••
o
•o
in interdizione, il che comporta che il collettore o

•'
•o
o

••
o

di tale BJT si porta a livello alto. Ora Cl inizia a


o
o
••• •o
• •o

••
caricarsi e a un certo punto porta la base del TRl a
o
o
o o
o
• o
o
•o •o
un potenziale tale da provocarne nuovamente la o
o
o
o
o
o

•• •
••o
conduzione di tale BJT, il cui collettore torna a zero •o
•• o
o
o o
o

volte fa scaricare immediatamente C2,il quale dà •o


o

o
••o
o
o

un impulso a livello basso sulla base del TR2, facen-
o
• o
•• o
o
o
• •o
•o
do interdire quest'ultimo.
o
o
• •o

• •o
•• TR2 o

Il ciclo descritto si ripete fin quando il circuito resta ••





PIEZO o
•o
•o
• Cl
o
Rl2 o

alimentato e porta alla produzione di due onde •o


•o C2
•o
••

•o

rettangolari opposte di fase su TRl e TR2, quindi •o
•• •••
••
o
•• TRI •o
connettendo il cicalino PIEZO tra i due collettori ••
• o
o

••o
~
• -~
otteniamo un segnale variab~le, anzi, alternato, di . o•

••

"
~
R9 0 !;': o
o

•o --CJ- --CJ- o o:
~
~
m
o

forma d'onda rettangolare e di ampiezza teorica o RIO R11



•o
o

o
o
•o
pari al doppio di quella degli impulsi presenti tra +
o

collettore ed emettitore dei transistor. Un'ampiezza


o smus
o

•o

o
••
o
•o
o o
•o
o

di valore sufficiente a pilotare la pastiglia piezoe-


o
o •
o ••

lettrica che si trova all'interno del cicalino e da farle


•••

•o
o o Rl R2 R3 R4 RS R6 R7 RB •o
o
o
o
o
o
o
• •
emettere una vibrazione acustica abbastanza in-
o
• •
o• KEYBOARO o

• •
o ••
o

tensa da essere udita al giusto livello nell'ambiente o
o
••
o
•o

•o
••
circostante e comunque quanto basta a soddisfare le o
o

o
o
o
o
•o o

esigenze di una persona che sta suonando il piccolo


o

Elenco Componenti=
o
•o •o
o


o
o
o

strumento. •
••

o
•o
o
o

R.;-R91: 1 kohm
o
•o •
La durata dei cicli di carica e scarica dei condensa- ••
•o
••
o
o

tori dell'astabile determina la frequenza della nota


•o R10, R11: 47 kohm •o•
••
o

C1, C2: 4,7 nF ceramico
o
o • o
o o

riprodotta, nel senso che quest'ultima vale: ••


•••
o
o
o

o
•o
TR1, TR2: BC547 o
o
•o
o


•• PITCH: Trimmer 47 K MO o
•o

f = l / (tl + t2) •o
o
o
•o PIEZO: Buzzer senza elettronica
••o
o
o
o
o
••
•o •o
o
• o
•• ••
dove chiamiamo tlla durata della permanenza del •o
•o
Varie: o
•o
o

livello alto sul collettore del transistor TRl e quindi
o

••

- Alberino per trimmer o

••o
• o

- Clipo batteria 9V
o

della carica del condensatore Cl, mentre con t2


o
• o
• o
• o
• o

- Spezzone filo 1O cm
o

intendiamo la durata del livello alto sul collettore
o

o
o
o

••
o
o

dell'altro transistor (TR2) e della carica del C2. A



••

- Circuito stampato 81421 · o
o

••


o
• ••o
loro volta i cicli dipendono dai valori di resistenza e •

••••••••••••••••••••••••

• ••• • • • •••••••••••• • • • ••••• • ••••••••• • •••••••••••••••••• • • • ••••• •• ••••••••••••••• ••• ••• • • • •••••••• •• •• • ••••••

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 31


vremmo comprendere anche l'effetto delle correnti
• di base di TRl e TR2.
Comunque il calcolo di massima è quello proposto
dalla formula, dal quale vediamo che, essendo t2
condizionato dai valori delle resistenze inserite,
possiamo ottenere dal cicalino tante frequenze
quante sono le note più una, quindi 8: tante sono
le note musicali componenti un'ottava, ovvero DO,
RE, MI, FA, SOL, LA, SI, DO.
Resta inteso che le frequenze esatte si ottengono
accordando lo strumento con qualcosa simile a
quegli strumentini per accordare le chitarre; non va
bene il classico diapason, perché emette tipicamen-
te la nota LA superiore al DO centrale (per centrale
si intende quello dell'ottava centrale della tastiera
del pianoforte, che ha 88 tasti suddivisi in tre tasti
a sinistra, 7 ottave e un ulteriore DO a destra) che
per convenzione suona a 440 Hz ma si può usare
un fischietto accordatore. Nel nostro caso, siccome
la minima frequenza riproducibile è dell'ordine dei
580 Hz serve qualcosa che suoni a una frequenza
maggiore o uguale. ·
L'accordo si può eseguire con il trimmer VRl, il •
e realizzate da quale essendo montato come reostato permette di
variare la resistenza che pone in serie al circuito di
carica del condensatore Cl e, più esattamente, di
aumentarla portando il cursore verso la base del
TRl (all'aumento corrisponde l'allungamento del
tempo t1 e quindi l'abbassamento della tonalità
delle note) o di diminuirla se il cursore si porta nel-
la direzione opposta (la frequenza riprodotta sale
perché t1 si accorcia).
In ultimo, notate (e lo potrete verificare suonando
lo strumento) che la nota riprodotta dal nostro pic-
colo strumento musicale è tanto più acuta quanto
più STYLUS viene collegato vicino al positivo di
alimentazione, ovvero la nota diviene più grave
passando dal nodo Rl-R2 a quello R2-R3, fino ad
arrivare all'estremo libero della R8, condizione alla
quale corrisponde la nota più grave.
Visto che siamo in tema di frequenze, la minima
riproducibile (collegando STYLUS all'estremo
libero della resistenza R8 e con il trimmer RVl tutto
inserito) è di circa 580HZ, come appena esposto,
mentre la massima è dell'ordine dei 2.400 Hz: in
condensatore interessati, quindi Rll per C2 (t2) e la questo caso ci troviamo nella condizione di RVl
somma di R9, VRl e quella, tra R2-;-R8 collegata dal cortocircuitato e STYLUS collegato al positivo di
filo che parte da STYLUS (ci riferiamo alla carica di alimentazione.
Cl e quindi al tempo tl). In vero nella determina- Riepilogando, la gamma più bassa delle note spazia
zione dell'intervallo t1 rientra anche il rapporto tra tra 580 (nota relativa al pad più a sinistra del PCB) e
la resistenza inserita R2-;-R8 ed RlO, ma prendiamo 1.680 Hz (nota relativa al pad più a destra) portan-
per buono che questa sia poco rilevante, altrimenti i do STYLUS dal positivo di alimentazione all' estre-
calcoli si complicherebbero, anche perché allora do- mo libero di R8 e corrisponde ad RVl tutto inserito;

32 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN •


LA CORNAMUSA Una volta inciso e forato il circuito stampato, di-
sponetevi i componenti a partire dalle resistenze e
ELETTRONICA dai condensatori, per poi passare ai transistor (da
orientare come mostrato nel piano di montaggio
che vedete in queste pagine) e al cicalino piezo, che
deve essere del tipo senza elettronica di controllo,
in quanto riceverà un segnale variabile dal bistabi-
le; essendo senza elettronica, il cicalino può essere
montato senza riguardo per la polarità.
#

Il trimmer dev'essere dotato di un perno per poter-


lo azionare tramite una manopola; volendo potete
sostituirlo con un potenziometro, che il perno già
ce lo ha. Per completare il montaggio, inserite e
saldate nelle piazzole+ e- BATTERY i due fili
(rispettivamente rosso e nero) di una presa volante
a strappo per pile da 9V o portapile.
L'intero circuito va alimentato con una pila da 9
volt (o un alimentatore che fornisca tale tensione ma
stabilizzata, nonché una corrente continua di alme-
no 60 milliampere) e racchiuso in un contenitore in
la più acuta, invece, va da circa 990 Hz (pad più a plastica basso che lasci esposta la fila di pad corri-
sinistra) a 2.400 Hz (pad più a destra) e corrisponde spondenti alle note, da toccare con uno spezzone di
ad RVl cortocircuitato. Nelle posizioni intermedie filo in rame flessibile isolato ~a scoprire alle estre-
del trimmer si ottengono frequenze intermedie, il mità e saldare, da un lato, alla pia~zola STYLUS del
che ci permette, volendolo fare, di slittare la nota circuito stampato. Se volete potete realizzare una
(funzione Pitch Bend) mentre la suoniamo, un po' tastiera composta da otto pulsanti unipolari nor-
come si fa con il distorsore della chitarra. malmente aperti uniti per un capo (da collegare al

~ontatto STYLUS del PCB) e gli estremi liberi, uno
REALIZZAZIONE PRATICA per ciascun pad; i pulsanti devono possibilmente
Bene, spiegato come funziona il circuito, passiamo essere rettangolari, meglio ancora se trovate una
alla costruzione di questo ameno strumento musi- piccola tastiera da riciclare di un vecchio organino
cale, che è alla portata di tutti, sia perché utilizza elettrico o un giocattolo musicale guasto.
esclusivamente componenti elettronici tradizionali I pulsanti andranno posizionati sul pannello su-
e di facile saldatura (senza le complessità e la neces- periore del contenitore, dal quale dovrà spuntare
sità di particolari attrezzature che gli SMD impli- anche la manopola del trimmer; magari aggiungete
cherebbero), sia per l'essenzialità e il basso costo di anche un interruttore di accensione, che colleghe-
realizzazione. rete in serie al filo del polo positivo del portapile in
Per la cornamusa abbiamo pensato a un circuito modo da risparmiare la pila.
stampato, fermo restando che, data la notevole sem-
plicità del circuito, potete tra~quillamente realiz-
zarlo su un pezzo di basetta millefori. In ogni caso,
anche ricorrendo al circuito .stampato, il montaggio
è semplicissimo, perché monofaccia.
.. Comunque se optate per il PCB, potete autoco-
struirlo a partire dalla traccia lato rame che potete Il kit didattico per realizzare la cornamusa elettronica
scaricare dal nostro sito www.elettronicain.it e (cod. MLP1 041T) è disponibile presso Futura Elettro-
stampare su carta da lucido o acetato per attenerne nica al prezzo di Euro 9,00. Il prezzo s·i intende com-
la pellicola utile alla fotoincisione; notate la partico- prensivo di IVA.
lare sagoma della basetta, che richiama quella della
cornamusa, con le sue molteplici canne che escono
dall'otre, tuttavia chi lo desidera può tranquilla-
me~te mantenere la traccia lato rame e applicarla a
una basetta di forma tradizionale, a quadrilatero.

~ ELETTRONICA IN- Dicembre 2018/ Gennaio 2019 33



X: Molto vicino al 30o/o , Vicino al 70% , Lontano allo O%

Verità ~~lto •
VICinO Vicino Lontano •
1 ll
n funzionamento del sistema così descritto è il
l
ll
seguente:
l
l • in base al valore di input si determina il grado
ll
ll
di appartenenza di quel valore alla classe corri-
ll spondente;
o. ~~-----h.
l
l
l • viene esaminata ogni regola e valutato il suo
l
l
l
l grado di verità, il quale diventa un "peso" da
o l
l
l attribuire al valore di output collegato a quella
Ocm Scm ~ 1Scm 3bcm regola; .
• alla fine della valutazione di tutte le regole,
Fig. 1 - Esempio di Fuzzy set. viene calcolata la media pesata dei valori di ou-
tput assegnati ad ogni regola e questo risultato
rappresenta l' output analogico.
la loro presentazione: almeno qualche migliaio di
ripetizioni. In sostanza il sistema Fuzzy divide il complesso
Nell'articolo che abbiamo dedicato ai sensori di in sottoinsiemi che valuta singolarmente in base
distanza (pubblicato nel fascicolo di ottobre 2018), all'associazione fornita dalle regole e poi ne rias-
ma soprattutto in un precedente articolo (Rivista sume il risultato. L'insieme delle classi in cui viene
numero 169), è stato accennato ad un diverso partizionato ogni output si chiama Fuzzy set. In
approccio alla gestione delle grandezze analogi- Fig. l vedete come viene rappresentato, di conse-
che, basato su una logica differente utilizzabile dai guenza, ogni valore di input; ovvero come insieme
computer: la Logica Fuzzy. di appartenenze ad ogni classe. In Fig. Z è invece
Rimandiamo agli articoli succitati chi volesse ap- rappresentato il processo di inferenza delle regole

profondire l'argomento Fuzzy, e riassumiamo qui per la costituzione dei valori di output.
le caratteristiche salienti di questo approccio. Gli inviluppi che determinano le classi si chia-
• L'input analogico viene partizionato in classi: mano funzioni 4i membership e possono avere
per esempio grande distanza, media distanza, diverse forme analitiche, ma in genere sono
piccola distanza. Ogni classe risulta centrata su formati da tratti lineari e si sovrappongono par-
un valore caratteristico con le bande laterali zialmente (come in Figura 1). In questo modo il
decrescenti. sistema Fuzzy finisce per scomporre la funzione
• Le classi dell' output analogico sono rappresen- input->output in combinazioni di tratti lineari.
tate solo da valori caratteristici senza le bande Un sistema Fuzzy, quindi, non va addestrato ma
laterali (Fuzzy Systems in modalità Sugeno, rientra nella programmazione anche se di tipo non
chiamato così grazie studioso che lo ha propo- tradizionale. I sistemi Fuzzy sono utilizzati anche
sto) . nei processori di ridottissimo hardware per fornire
• Un insieme di regole collega classi di input a una risposta più uniforme e "morbida" (Fuzzy) in
conseguenti valori di output (per esempio if varie apparecchiature, sia civili che sia industriali.
sensore 1 = Molto vicino and sensore 2 = Vicino Per utilizzarlo in un hardware limitato, il sistema
then classe-output-C). software deve poter essere configurato in modo
efficiente per eseguire velocemente il processo
di inferenza delle regole. Ne consegue una certa
macchinosità di programmazione, a meno di non
Esempio di esecuzione di regole: in base ai valori di input usare IDE predisposti. Ma in queste pagine vi pro-
Regola 1: if ....................then aut= O. 3 risulta vera al 1O%
Regola 2: if ....................then aut= · 0.1 risulta vera al 50% poniamo un'alternativa che utilizza una variante
Regola 3; if..... then aut= -0~ 3 risulta vara a/30%
r • • • . , . " ' ,•• q .... delle Neural Network classiche e che permette una
Regola 4; if.....................then out= o.·7 risulta vera allo O% rapida descrizione e soprattutto una rapida elabo-
Risultato per l'output effettivo:
razione di un sistema Fuzzy.

/)..
v11~u;
t 2: val*veritù =--------------------
0.3•0.1 - 0. 1*0.5 - 0.3*0.3 +0.7*0
...
UNA RETE NEURALE CHE E UN SISTEMA FUZZV
2: verirà 0..1 +0.5 +03 +0 Le Reti Neurali sono un universo vasto ed in
evoluzione; tra le topologie di reti proposte ce
Fig. 2 - Esempio di inferenza delle regole n'è una che utilizza un tipo di nodi dello strato
e determinazione del/'output hidden diverso da quello classico che effettua la

38 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


o. .Nodo
. . . . . . -...c1assico
. . ~~ Nodo RBF
i . . ~ ~
~~ / ~
~~
j ·'
\ \
· - - - - -...... f y
o.Jw1.=x y=f{x) · - •
~-~-----~~ ~ Fig. 3 · Differenti tipi
\\ Att" .
. tvaZtone di nodi delle Neural

Network.

somma pesata degli input. Questo nodo si chiama tri corrispondono alle classi dei fuzzy set. Ma per
Radiai Basis Function (in gergo RBF). In questo caso rendere completa l'analogia occorre definire an-
l'attivazione di ogni nodo è dovuta alla distanza cora due parametri per ogni dimensione di input.
dell'input dal centro del nodo (Fig. 3). Questi due parametri corrispondono alle bande
La funzione di attivazione più utilizzata per i nodi laterali delle funzioni di membership (vedi Fig. 4).
RBF è senza dubbio la Gaussiana: Poiché in ambito Fuzzy l' AND è generalmente as-
sociato alla funzione MIN, l'attivazione è sempli-
-x2
2 cemente il valore minimo fra tutti i valori di verità
J(x )=e s dell'array di input. Più precisamente:

In questa formula s2 è l'ulteriore parametro della


devianza. Lo strato successivo (strato di output) è
invece di tipo classico. In queste condizioni è stato
dimostrato che questo tipo di rete risulta essere il dove:
• migliore approssimatore universale. In genere lo
strato RBF viene addestrato con metodi statistici
sulla base qelle distribuzioni dei valori di input,
a
lasciando la EBP per l'ultimo strato . .Ma ci sono fi=MAX( I- ai*( ci-oJ) if (oi<cJ
situazioni in cui si assegnano i centri dei nodi RBF oc
b
d'autorità e si addestrano solo i pesi di uscita.

La struttura che proponiamo è un'elaborazione fi =MAX (1-bi* (oi-cJ) if(o;>cJ c o
delle reti RBF. Invece di determinare la distanza
totale dell'input dal centro di ogni nodo, consi- Lo strato successivo a questo punto realizzerà la
deriamo ogni nodo come una regola di un siste- somma pesata delle attivazioni. Dove i pesi non
ma Fuzzy. L'attivazione sarà allora l'AND delle saranno altro che i valori delle classi di output:
distanze dalle componenti del centro. In parole
povere:

Attivazione = f 1 (c 1 , o 1) AND f 2( c 2 , o2) AND ...


Benché dalla descrizione, l'utilizzo di questo siste-
ma possa sembrare un po' complicato, in realtà si
dove le f sono le funzioni di membership ed i cen- tratta di utilizzare praticamente la stessa libreria

z
... ,..--· ---
. ...-
-r-
------~ -·
--
._.:.•

Fig.. 4 · Rete che realizza


un Fuzzy system. Strato hìdden strato di uscita

- ELETTRONICA IN - Dicembre 2018 / Gennaio 2019 37


l

--
..... , l.-:':"
..

1
' -~

Listato
-
~ . --~ ;,--
' r '"·
,, lt•· :.... • '
.
.. ( l ''l
' ·!'-·.''.
,,, ;~,.!!
,, •H" o. 1.. .110.:.:.6,,....,.'

• •
• •
• •

: input 2 Il numero degli input (sensori ) .

: output 2 Il numero degli output (moto ri) •




:• l * insieme delle classi per il sensore O ed l *l •


:• inpfuzzys et O L=O . OOO V=0 . 400 VV=0 . 800 Il L: l ontano , V: vic i no , VV : molto vicino •


· inpfuzzyse t l 1=0 . 000 V=0 . 400 VV=0 . 800

Il L: lonta no , V: vicino , VV : molto vicino •

: l* classi per i conseguent i delle regole *l •
.•

:• outclass BO - 0 . 200 - 0 . 800 Il indietro(ba ck) ruotando a de st ra •

:• outclass RD• 0 . 400 - 0 . 400 Il ruota a destra •


:• outclass RS - 0 . 400 0 . 400 Il ruota a sinistra •


:• outclass AM O. 600 O. 600 Il avanti con media ve locità •


· outclass AS l . 000 O. 600 Il avant i piegando a s inistra •

: outclass AD O. 600 l . 000 Il avanti piegando a destra •


:• outclass AV l . 000 l . 000 Il avanti veloce •


:• l* Regole *l •



: if O=VV and l=VV then BO •

• •
: if O=VV and l=V then RD •


: if O=V and l=VV then RS •
.•• •


if O=V an d l=V then AM •

• •
• if O=V an d l =L then AS •

• •
• if O=L an d l =V then AD
• •
• •

.• if O=L an d l=L then AV




• •
• •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ~ • • • • • • • • • • • • • • • • • • • • p • • • • • • • • • • • • • •

• • • • • • • • • • • • • • • • • • • • • • • • •

Listato 1 • Descrizion e del modello Fuzzy per Ardusumo.

delle reti neurali descritta nel preceden te articolo, transcodi fica per produrre una descrizion e com-
con qualche piccolo cambiam ento nelle descrizion i pleta della rete neurale fuzzy da inserire nello
delle reti. Infatti ora ci sono più parametr i per i sketch per Arduino. Si tenga presente che il valore
nodi hidden. del sensore è inversam ente proporzio nale alla •
Questa volta la rete va inizializz ata completa men- distanza.

te perché non sarà più addestrat a. Il compito di Come si vede dal Listato l, vengono utilizzate
trasforma re degli assunti in logica Fuzzy nella poche parole chiave: "input" e "output" per de-
struttura della rete, potrebbe rivelarsi un po' mac- finire le dimensio ni degli ingressi e delle uscite;
chinoso; per questo abbiamo pensato di fornire "inpfuzzy set" per elencare le classi in cui si voglio-
un programm ino C++ che legge una descrizion e no partizion are gli input (in questo caso sono le
Fuzzy del sistema da implemen tare e scrive su un stesse); "outclass " per definire gli insiemi dei va-
file la descrizion e completa della rete. lori di uscita consegue nti ad una regola (in questo
• caso corrispon dono ai valori PWM normalizz ati da
PILOTARE ARDUSUM O CON LA LOGICA FUZZV applicare ai due motori); infine le regole descritte
Nell'artic olo presentat o in novembre scorso abbia- dalla parola chiave "if" seguita dalle classi in cui
mo usato una Rete Neurale addestrat a per pilotare gli input si devono collocare collegate dalla parola
il rover Ardusum o, distribuit o dalla Futura Elet- chiave "and" e conclusa dalla parola chiave "then"
tronica, il quale dispone, fra le altre cose, di due seguita dalla consegue nte classe di output. Tene-
sensori di distanza posti ad un angolo di circa 30° te presente che carattere minuscol o e maiuscolo
rispetto alla direttrice di marcia e di due motori contano (case-sensitive), e tutto ciò che è preceduto
pilotati in PWM. Il roverè gestito da un Arduino da "l" viene considera to comment o e non è preso
Uno. I sensori danno una risposta analogica inver- in considera zione.
samente proporzio nale alla distanza dell'ostac olo. Dando un file con questa descrizion e al program-
La risposta dei sensori è normaliz zata tra l (con- ma "FuzzyDe fine.exe", quest'ulti mo produce
tatto) e O (campo libero> di 40cm), dal software di un file contenen te la descrizion e operativa della
gestione. Mentre il pilotaggio dei motori è nor- Neural Network Fuzzy, che può essere riportata in
malizzato tra -l (indietro tutta) e +l (avanti tutta). uno sketch Arduino.
L'addestr amento è stato realizzato off-line (su PC),
fornendo un set di esempi prototipa li di risposte LIBRERIA FUZZV NEURAL NETWORK
motorie ad impulsi sensoriali. Nel repositor y https://github.com/open-electronics/
Ve diamo ora come programm are il pilotaggio di NNetFuzz y è presente la versione Fuzzy della Neu-
Ardusum o usando il sistema Fuzzy implemen tato ral Network illustrata nel fascicolo di novembre
mediante la rete Neural Network modificat a. Per scorso; la trovate nel Listato 2 e per distingue rla le
prima cosa descrivia mo la logica Fuzzy utilizzan- abbiamo dato un nome differente: "NNetFu zzy".
do una terminolo gia gestita dal programm ino di Ma in realtà è praticame nte identica (solo nell'uso)

38 Dicembre 2018 / Gennaio 2019 - ELETTRONICA IN



------

all'altra, tuttavia i nodi dello strato hidden devono sole sette regole ha un comportamento un p o' p iù
obbligatoriamente chiamarsi "NodeFuzzy" men- "schematico".
tre quelli dello strato di uscita devono chiamarsi In Fig. 5 è rappresentato il comportamento dei due
"NodeDeFuzz" oppure "NodeDFTnh" se si vuole motori per i vari valori dei sensori del sistema con
costringere l'uscita tra i valori -l e +l, o infine rete neurale, mentre in Fig. 6 l'analoga rappresen-
"NodeDFSig" se si vogliono uscite comprese tra O tazione è relativa al sistema in logica fuzzy.
ed l (a patto che la logica implementata lo consen- La spiegazione del diverso comportamento sta
ta). proprio nella natura dei due processi: il primo,
Nello stesso sito è presente il programma quello relativo al funzionamento con la rete neura-
"FuzzyDefine" nella forma eseguibile (per Win- le, produce una sintesi interpolata degli esempi e
dows) o come sorgente. . quindi presenta una maggiore continuità, mentre
il secondo applica delle regole che, se benché in
CONFRONTO DEl DUE APPROCCI SU ARDSUMO logica sfumata (Fuzzy), sono più definite e quindi
Nel Listato 3 è proposto lo sketch che utilizza la producono una variazione meno uniforme. Uti-
Neural Network Fuzzy, mentre nel Listato 4 è mo- lizzando un maggior numero di regole, il sistema
strato lo sketch presentato nel precedente articolo programmato può diventare più "morbido".
e che usa una normale Neural Network addestra- Questo sistema proposto per implementare un o

ta su un set di 16 esempi per alcune migliaia di sistema a logica Fuzzy è abbastanza efficiente in
ripetizioni. Come si vede, gli sketch sono quasi esecuzione e permette di usare la stessa modalità
identici, ma se andiamo a vedere il loro funziona- operativa del sistema con Neural Network classi-
mento possiamo verificare che la Rete Neurale pro- co presenta, inoltre, delle sue caratteristiche ben
duce un comportamento un po' più "equilibrato", determinate:
mentre quella programmata con logica fuzzy e con • Adotta il paradigma Sugeno e non il più clas-

• .
• o

• • •
• •
: char* netde-f= •


:• "LO 2 " •


:• "11 7 NodeFuzzy " •


: "FCTO 0 . 8 0 . 8" //regola O •



: " FCTl 0 . 8 0 . 4 " //regola l •
• •

• " FCT2 0 . 4 0 . 8 " //regola 2 •

• •


"FCT3 0 . 4 0 . 4 " //regola 3 •

• •


" FCT4 0 . 4 0 . 0 " //regola 4 •




"FCT5 0 . 0 0 . 4 " //regola 5 •


• " FCT6 0 . 0 0 . 0 " //regola 6 '•
• •
: //pendenze sinistre per le c l assi uti l izzate nelle regole •
•'
:• "FWAO 2 . 5 2 . 5 " •

:• "FWAl 2 . 5 2 . 5 " .•


:

"FWA2 2 . 5 2 . 5 " .•

: " FWA 3 2 . 5 2 . 5 " •




: " FWA4 2 . 5 O. l " •


:• " FWA 5 O. l 2 . 5 " •


:• " FWA6 0 . 1 0 . 1 " •


: //pe ndenz e destre per le classi utili zzate nelle regol e •



: " FWB O O. l O. l " •


· " FWB l O. l 2 . 5 " •

• •
·• " FWB2 2 . 5 O. l " •



· " FWB 3 2 . 5 2 . 5 " •


.• " FWB 4 2 . 5 2 . 5 " •


: "FWB5 2 . 5 2 . 5 " •
• •
: " FWB 6 2 . 5 2 . 5 " •


:

"12 2 NodeDFTnh " •


; Il valori del motore O ed l per le 6 regole •


:• "OLWO - 0 . 2 0 . 4 - 0 . 4 0 . 6 1 . 0 0 . 6 1 . 0 " •


: "OLWl -0 . 8 - 0 . 4 0 . 4 0 . 6 0 . 6 1 . 0 1 . 0 " •


• • • •
• l •

; /* da istanziare come al solito */ • •

:• NNfuzzy net (netdef) ;

Il net instance •

• •

. . . . . . . . . ............... . ............... ~ .... . . . . . . . . . . . . . . . . . . . . . . . . , , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + .. •• •••············•· "t ••·•····· . . ······· ·'" ··"'·······,...,.•
.. l
Listato 2 - Definizione della Fuzzy Neural Network.

• ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 39


.
listato 3 - Sketch con Logica Fuzzy Listato 4 - Sketch con Neural Network

#indude ur JNetfuzzy.h J !/libreria Fuzzy Neural r Jet't'.rork .uin€lude urJFJet.h • Il libreria r eural Network
indude 'ArdsumoLib.h" l/libreria d1 gestione Ardusumo .1Lin€lud e ..Aro su moLi b.h· Il fibre ria d i gestione Ardusum o

float inp[2): l. buffer dei se nsori fio a~ inp[2]: f: buffer dei sensori
ffoat out[2]: Il buffer dei motori floai out[2]; !! buffer dei n1otori

c ar' net def= cha~ netdef=


2 ..
~' LO "L O2 ''
"L17NodeFuzzy · 'L 1 3 rJodeTanh u
··FeTO 0.8 0.8 ' .'HLVvO -1.7421 1.8831 '
'FCT 1 0.8 0.4 ' "H~f\11 -1.2655 -1.2739 l

"FCT 2 0.4 0.8 l 'HL\AJ2 5.57 44 5.5538 '


1
FCT3 0.4 0.4 ' 'L2 2 r~ ode Tanr "
UFCT 4 0.4 0.0 , HOLVVO -1.0792 2.8989 2.8752 l

'FCT 5 0.0 0.4 ' 'OLVV11.0836 3.2336 2.9449 '


'FCT6 0.0 0.0 " •

~· P. ·rAo 2.5 2.5 "


'P/VA1 2.5 2.5 " r\INfuzzynet{netdeO : Il istanza
"AIVA2 2.5 2.5 '
'FWA3 2.5 2.5 .. void setup() {

·'FVVA4 2.5 0.·1 .. Seria . teg in(9·60 O};
I'FVVA5 0.1 2.5 ' setu pPins(};
11
P~/A6 0.1 0.1
1
de a. (2000):
'PllBO 0.1 O.1 " }
'F'f!81 0.1 2.5 Il
\
'FV\l82 2.5 O.1 ' void loopO{
'A/'JB3 2.5 2.5 ' delaJ (50) ; l/ inter t aIlo operativo
HFV\184 2.5 2.5 ., u se net(); •
''FV\/85 2.5 2.5 ' }
.'FW86 2. 5 2 .5 ' •
.. L2 2 NodeDFTnh "
'O LVIO -0.2 0.4 -0.4 O.6 1.0 0.6 1.0 ' oid usenetQ
'OL'/J 1 -0.8 -0.4 0.4 O.6 0.6 1.0 1.0 '' {

in p[O]=ReadlrL(): /l legge il sensore IR sinistro
inp[1]=ReadJ' rR(): Il tegge il senso re IR destro
NNfuzzy net(netdef): l! istanza net fo rw(inp .2 out 2) : Il esecuzione de Ila rete
r'i1oto rL (out[O]): Il applica l uscita al moto re sinistro
oid setup() { fv1otorR(out{1]); Il applica ruscita al motore destro
Seria ~gin ( 96 00): }
setupPin s( ):
deta (200 O);
J

void lo op() {
delaJ(50) : il intetvalfo operativo
usenet()·
1 sori adotta questo modello.
l
• Le funzioni di membership sono lineari e trian-
void usen et() golari (al massimo trapezoidali ma solo agli
{ estremi).
inp[O]==Readlrl(): // legge il sensore IR sinistro • Le funzioni di membership si sovrappongono
inp[1]=R ead l rR(): 1/legg e il se nsore IR de stra
net.forvvQnp 2 out2): l! esecuzione della rete parzialmente (sul centro di ognuna termina la
MotorL (out[O]); !l applica l'uscita al motore sinistro precedente e inizia la successiva).
MotorR(out[1]); il applica l'uscita al moto re destro • Le regole hanno sempre lo stesso numero di
} antecedenti e di conseguenti (input e output).

Fig. 5 - Versione dello scketch per Ardusumo Nel caso di due variabili di input possiamo dare
con NN e con NNfuzzy. una rappresentazione tridimensionale della com-
• binazione delle funzioni di membership in ogni
regola (ovvero la sua attivazione) che risulta così
sico Mamdani (lo studioso che lo ha proposto). rappresentata da una piramide nel grafico.
Ma ciò a poca importanza perché la maggior Vediamo ora cosa ci può entrare in un Arduino
parte delle implementazioni con microproces- Uno. La libreria occupa meno di lO chilobyte

40 Dicembre 2018/ Gennaio 2019 - ELETTRONICA IN



• •


- -

MotDre Sinistro -
MotDredestro - Motore sinistro -
Motore destro

l
0.8 0.8
0.6 0.6
0.4 0.4
0.2
0.2
o
.0.2
o
·0.4 ·0.2
-o.6 ·0.4
-o.8 -o.6
·0.8

o
0.2 O.l o
0.3
0.5 M
6
0.7 0. Sensore sinistro
Sensore destro 0.8 Sensore sinistro
0.9
l Sensore destro
l

Fig. 6 - Pilotaggio di Ardusumo con Neural Netwo rk Fig. 7 - Pilotaggio di Ardusumo con NNfuzz y programmata.
addestrata.

di memo ria di progra mma, quindi molto poco


(circa il25%). Ma lo spazio di lavoro (variabili) è
veram ente limitato su Ardui no Uno. In ogni caso
è possibile creare reti Fuzzy da circa 300 param e-
tri totali (nodi + link). In pratica si può creare al l
0.9
massimo una rete da 4 input 20 regole e 4 output ; 0.8
0.7
oppur e da 2 input, 30 regole e 2 output ; oppur e 0.6
0.5 o
0.4
da 5 input, 14 regole e 5 output ; oppur e ogni altra 0.3
0.2 0.2
combinazione intermedia. E' chiaro ·che con queste 0.1
o •
0.4
dimensioni rimane pochissimo spàzio alle altre

eventu ali variabili del progra mma .
Riguardo ai tempi di esecuzione, si ha una elabo- 0.8
razione della rete (funzione forward) in un tempo l

che va da un minim o inferiore a 2 millisecondi
(per la rete per Ardus umo) ad un massimo di circa Fig. 8 - Attivazione delle regole in base ai valori dei due sensori.
7 millisecondi, secondo le dimensioni della rete.
In conclusione sul sito https://github.com/open-elec-
tronics sono scaricabili due alternative che perme t-
tono di elaborare gli input e gli outpu t analogici di
Arduin o in modo da fargli generare una risposta
anche complessa ma di bassissimo impatt o com-
putazi onale e abbast anza veloce in un hardw are
limitato. Sono sistemi che si possono applicare
ad un'infi nità di applicazioni che spaziano dalla
robotica ai veicoli terrestri o ai velivoli, dai sistemi Il materiale utilizzato in questo proget to è disponibi-
di allarme all'aut omazi one casalinga o industriale. le presso Futura Elettronica. Il robot Ardusumo (cod.
Infatti si tenga presen te che i sistemi Fuzzy pos- ARDU SUMO ) è in vendita al prezzo di Euro 149,00, la
sono essere usati anche come sistemi di controllo board Arduino Uno REV3 (cod. ARDU INOUN OREV 3)
dinamici al posto dei PID (controller Propo rtiona l costa Euro 24,50 e il blister con 4 batteri e alcaline
Integrative Derivative), perché le variabili di in- LR6 AA (cod. LR6-AA-4) è disponibile a Euro 1,50. l
gresso posson o anche rappre sentar e le deriva te (o prezzi si intendono IVA compresa.
più precisamente la velocità di variazione ad ogni
step temporale) delle funzioni da controllare.
Ciò detto, abbiamo concluso e vi rimand iamo al
Futura 21013 Gallarate
prossi mo articolo dedicato all'Intelligenza Artifi-
V.'WW.fUtU rastiop l t
ciale, che esporr à nuovi concetti.

ELETTRONICA IN- Dicembre 2018/ Gennaio 2019 41

l
.,
con .l.


BOARD Utvo
COMPRESA
(PER IL MODELLO ALPHABOT
, LE BOARO RASPBERRY Pl
EARDUI NO NON SONO COMPRESE)
Cod. ALPHABOT Cod. ALPHABOT2

Al habot e Alphabot2 piattaforme robotiche - in kit


AlphaBot eAlphaBot2 sono piattaforme di sviluppo robotiche controllate da Raspberry Pi e Arduino
(ALPHABOT) eArduino (ALPHABOT2). l robot possono essere comandati tramite telecomando (incluso)
o smartphone (iOS o Android). Sono in grado di evitare ostacoli ed inseguire una linea, ma grazie agli
accessori opzionali è possibile aumentarne le funzioni e le prestazioni.

r
\"astaCO\

Futura Group srl


Via Adige, 11 • 21013 Gallarate (VA)
ELETTRONICA ® Tel. 0331/799775

Caratteris~iche tecniche
e vendita on·lme su:
www fu tu ra s h o p it
• •
• •


IL SET LEGO UTILIZZATO


Il progetto che vi proponiamo
è basato sul set LEGO EV3 che
comprende due motori grandi, un
motore medio, un sensore di tocco,
un sensore a infrarossi, un sensore di
colore, un telecomando wireless e un
mattoncino intelligente, un cavo USB,
• sette cavi RJ12 di diverse lunghezze e

oltre 500 pezzi della serie Technic della
LEGO, ossia quelli utilizzati per costruzio-
ni tecniche come veicoli, robot, dproduzio-
ni di macchine ecc.
Esiste anche un'espansione del set base appe-
na descritto, che comprende altri pezzi come
un altro motore (ma grande e quindi più potente)
e altri due sensori. .
La parte più affascinante di questo set LEGO è
veri e propri componenti robotici. rientranti nel con- proprio il mattoncino intelligente (Fig. 1), il quale
cetto RIS (Robotic Invention System), ancor più dal è basato su un processare ARM9 sul quale gira un
2006, quando nacque il mattoncino programmabile sistema operativo con kemel Linux, quindi open
NXT, contenente un microcontrollore in grado di source; possiede una porta USB e uno slot SD; è in
realizzare robot indipendenti attraverso il controllo grado di connettersi via Bluetooth a uno smartpho- •

di sensori e attuatori realizzati dalla stessa LEGO. ne (o tablet) oppure a un Personal Computer; inol-
Le più recenti evoluzioni sono state la Mindstorms tre è dotato anche la connessione WiFi. n micropro-
EV3 (nata nel2013 e protagonista di questo artico- cessore del mattoncino LEGO NXT ha una memoria
lo) e la BOOST (2017), particolarmente dedicata ai Flash EPROM da ben 16 MB e conta su 64 MB di
più piccoli, ossia ad avvicinare i bambini al mondo memoria RAM, espandibile grazie alla possibilità
della robotica. di inserire una SD-Card nell'apposito slot.
Con l'avanzare degli anni possiamo notare quanto
l'azienda danese abbia evoluto il concetto alla base -
COME PUO ESSERE UTILIZZATO?
dei propri mattoncini e di quanto le persone si La caratteristica principale che da sempre con-
siano appassionate a questo nuovo tipo di model- traddistingue i LEGO è che possono essere usati in
lismo, che partendo dal concetto di meccanismi e modi diversi per impieghi differenti. Nel set base,
macchine già realizzabili alcuni decenni fa con la
serie LEGO convenzionale (che potremmo definire
passiva) è approdato all'attualissimo mondo della Fig. 1 - Il mattoncino
robotica educativa. intelligente è il cuore di
ogni realizzazione LEGO
Nei giornali o sui social si sente sempre più parlare
Mindstorms.
di artisti emergenti che creano opere straordinarie
impiegando anche fino a 80.000 mattoncini.
'
L'ultimo grande progetto scaturito dalla mente
degli ingegneri Technic è stato addirittura quello
che ha permesso di realizzare una Bugatti Chiron •

in scala 1:1, propulsa da 2.304 motori elettrici per


costruzioni LEGO, che raggiunge la velocità di 20
km/h! Fantascientifico!
Quindi ci è sembrato più che azzeccato proporvi
un'applicazione di un kit robotico che ci ha permes-
so di mettere in funzione una mano robotica, che
applicata all'avambraccio rileva il movimento delle •

dita e lo replica con le proprie dite meccaniche.

44 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


BRACCIO ROBOTICO
Fig. 2 BASATO SU LEGO

X Off Blocco
{) On verde. •
{9 On for Seconds

e On for Degrees

\!) On for Rotations

Mindstorms fornisce cinque personaggi principali


con istruzioni e relativo programma:
• TRACK3R, una macchina dotata di tutti i sensori
e motori che può seguire una linea, evitare di
toccare un muro e grazie alla pinza frontale può
eliminare gli ostacoli;
• SPIK3R, ragno dotato dei tre motori e del sensore
infrarossi, è in grado di camminare su sei zam-
pe e di sparare tre palline al telecomando usato
come bersaglio;
• EV3RSTORM, umanoide dotato di tutti i sensori
e motori, in grado di camminare, parlare e lancia-
re palline; tre motori, è dotato di una pinza posta frontal-
• • R3PTAR, serpente di 30 cm, in grado di riprodur- mente per afferrare gli oggetti .
re fedelmente l'animale, utilizza i tre motori e il
sensore ad infrarossi, quindi se mentre striscia Oltre questi cinque progetti, LEGO ne mette a
trova un ostacolo, apre la bocca per morderlo disposizione sul proprio sito web altri dodici
e torna indietro, poi cambia strada; può essere ufficiali, sempre fornendo istruzioni e programmi,
comandato anche con il telecomando; ma ciò non vieta di costruire un proprio progetto
• GRIPP3R, è la versione più piccola di EV3R- liberamente; dopotutto i LEGO sono fatti per questo,
STORM, possiede solo il sensore a infrarossi e i ossia per dare spazio alla creatività di ognuno.

Pro>drrity

Fig. 3 O'J Bea con Heading Fig. 4


Blocco Blocco

aranctone. o o
Remote giallo.

ELETTRONICA IN- Dicembre 2018 /Gennaio 2019 45


l

Fig. 5
Blocco rosso.


Fig. 6
Blocco blu.

In questo articolo vedrete il set LEGO utilizzato per robotica: come avrete notato, tutte le creazioni con
realizzare un avambraccio esoscheletro, vale a dire Mindstorms EV3 posseggono nel nome un "3" che
una protesi da applicare all'avambraccio per repli- viene letto come "e", quindi per mantenere la tradi-
care i movimenti della mano: il progetto che ne è zione, il nome Cyborgr3 deriva dall'unione tra l'u-
r:tato è stato battezzato Cyborgr3 e tramite i sensori sanza LEGO e il nome del supereroe Cyborg, perchè
di cui è dotato rileva i movimenti della mano e li dopotutto, chi non si sentirebbe come un supereroe
replica con i propri attuatori. indossando un'armatura, anche se per ora si tratta
solo di un arto? L'esoscheletro può infatti

essere
QUANDO NASCE CYBORGR3? cosiderato un amplificatore di forza: qualcosa che
Cyborgr3 è la realizzazione di un sogno dell'autrice amplifica i nostri movimenti e, costruito opportu- •

di questo articolo, che nasce quando la passione namente, può applicare forze notevoli a elementi
per i LEGO incontra il desiderio di voler aiutare il più duri di qu.ello che le mani umane potrebbero
prossimo; la caratteristica di essere una macchina sopportare.
che replica fedelmente i movimenti di una mano
equivale al fatto che, in futuro, possa essere presa in -
DA COSA E COMPOSTA?
considerazione per le protesi vere e proprie di chi Cyborgr3 è formata da 239 pezzi, incastrati tra di
ha perso il movimento dell'avambraccio o ha subito loro nel miglior modo possibile per permettere una
una grave menomazione in quella zona del corpo. buona stabilità quando viene utilizzata. n matton-
Questo concetto è alla base dell'esoscheletro, che è cino centrale è il cervello di questo progetto. Ad
un ausilio applicabile agli arti, capace di rilevare un esso sono collegati, tramite cavi RJ12, un sensore di
movimento abbozzato o solo pensato (esistono pro- tocco e quattro motori e attorno a questi ultimi sono
tesi in grado di rilevare i segnali nei nervi e coman- costruite le dita.
dare con essi il movimento) e realizzarlo tramite L'alimentazione è fornita al braccio da sei pile AA
una serie di attuatori che azionano la protesi. posizionate in serie oppure da una batteria ricarica-
Soluzioni del genere permettono alle persone bile presente solo però, in un set speciale di LEGO
motolese di camminare o anche a chi ha perso Mindstorms.
parzialmente un arto di sostituirlo con una prote-
si robotica; aiuteranno anche gli anziani o chi ha
perso le forze alle gambe (per esempio a causa di
gravi polineuropatie) a camminare, semplicemente
rilevando l'intento e generando il movimento corri-
spondente.
LEGO Mindstorms può costituire la base per la
realizzazione di ottimi ausili, giacché, avendo una
programmazione semplice ed essendo di facile rea-
lizzazione, chiunque può essere in grado di costrui-
re ed avere in casa una protesi robotica.
Prima di procedere vogliamo sciogliere un enigma Fig. 7 · Pulsanti virtuali per la gestione del programma
riguardante l'etimologia del nome dato alla mano dell'applicazione.

46 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


SI PROGRAMMA? • Giallo (Fig. 4) : è lo spazio dove è possibile


Il mattoncino intelligente si può connettere all' ap- trovare i blocchi dedicati ai sensori; essi possono
posito programma (tramite computer o tramite l'ap- essere programmati in base a una misura o a un
plicazione dal cellulare) grazie a un cavo miniUSB confronto, e le impostazioni di lontananza, vici-
tipo A oppure tramite Bluetooth; una volta connes- nanza o di stato cambiano da sensore a sensore.
so, il programma rileverà automaticamente quali • Rosso (Fig. 5): è lo spazio dove si trovano i
motori e sensori sono connessi e attraverso quali blocchi per le operazioni o la casualità; vengono
porte di ingresso. Il programma è diviso in sei spazi utilizzati nel caso in cui fosse necessario tiiare a
descritti qui di seguito e distinti per colore. sorte o fare dei calcoli matematici, per esempio si
può richiedere al mattoncino di fare testa o croce
• Verde (Fig. 2): dove si prendono i blocchi dei per decidere chi inizia in un gioco.
motori; ogni motore può funzionare in modo • Blu (Fig. 6): è quello dove si trovano i blocchi

infinito, finito in base ai gradi, ai secondi o alle avanzati; essi comprendono impostazioni di
rotazioni effettuate o può non funzionare (per bluetooth, WiFi, fine del programma, inversione
esempio, una semplice auto, dotata di un motore dei motori o commenti.
A e un motore B, posti rispettivamente a destra e • Azzurro: è lo spazio personale dove si creano i
a sinistra, se dovesse girare a destra il motore B propri blocchi.
dovrebbe funzionare mentre il motore A sareb-
be spento e viceversa), il secondo tasto decide La combinazione di più blocchi permette la
la velocità, mentre il terzo pulsante fornisce le composizione del programma, il quale può essere
rotazioni o i secondi da fare e l'ultimo tasto è per testata sulla costruzione premendo il pulsan-
attivare o disattivare un motore. Inoltre in questi te play in basso a destra nella Fig. 7; una volta
blocchi si possono aggiungere suoni o disegni constatato il funzionamento, il programma deve
emessi dal mattoncino principale. essere scaricato nel mattoncino con l'apposito
• Arancione (Fig. 3): è lo spazio dove si trovano i pulsante a freccia in basso tratteggiata che si trova
blocchi di controllo (inizio, loop, attesa); come in sopra il play (triangolino), così si potrà scollegare
qualsiasi programmazione esiste il ciclo infinito il mattoncino e renderlo operativo autonomamen-
• o finito, in questo caso in base a determinate te, ovvero applicarlo al braccio robotico .
posizioni dei sensori, infatti il blocco con la cles-
sidra serve per ritardare un'azione o eseguire un FUNZIONA
algoritmo solo dopo che un sensore ha compiuto In questo tipo di progetto, la programmazione (nel-
un determinato movimento, come nel caso di la Fig. 8 trovate il programma nell'ambiente grafico
Cyborgr3. di sviluppo basato su Lab VIEW) prevede un loop

LtW MINDSTORMS EV3 Home Edition o x


Edit Tools
hand 2_3.ev3 x
-.f hond 2_3 x +

Fig. 8 · Il programma grafico completo di Cyborgr3.

ELETTRONICA IN - Dicembre 2018/ Gennaio 2019 47


,
.- Stt~ttch 3.0 GUI x + (] x

mAw
c
~ Googt~
a httpsi/beta.scratch.mit.edu
futura eh:ltiOili~• a YouTui.H: .. CMvnloJ:J (Oilvt''lO.ÌO • (011Yt' )(, ISISS Geymonal • argo D MindCI.ib3:-Ed·vlp l Ll MindCub3r for EV3 sabli h~i)~ ~ c++ »
*• :
J\lln Pcefe1iti

ti L<tscl~ un fHdbJck

•e
O'ea un 81òcco

Movitntnto LEGO EV3

h petto


Suono

Slunlonl

Fig. 9 · Pagina del servizio


on-line di Scratch .


'la!Mbi)

Stage
l ... x o t y o
Bl«.'thl


mieto blt
l
O'

Valtgetta

Q Scrivi qui per eseguire la ricerca ~ · . -.. m m ;; w-


\ffJ • o
--
(2j i'- _,., .-, .. r: ,~~~~~~-;)1U ~

generale dentro al quale sono compresi due cicli in senso antiorario, determinando così l'apertura e •

minori, i quali, in base al valore del sensore di tocco la chiusura della mano.
(O se rilasciato, l se premuto), eseguono la rotazione .
dei quattro motori rispettivamente in senso orario e QUALCHE CONSIGLIO
L'arto si può riprodurre seguendo le istruzioni for-
nite. Le misure della parte principale sono standard
mentre la parte dove si trova il sensore di tocco e
quella dove la costruzione si aggancia all' avambrac-
cio hanno una misura personale. Nelle istruzioni,
per esempio, la grandezza è fatta sulla misura di
15 cm per la circonferenza del polso e 19 cm per la
circonferenza del palmo.
La caratteristica più interessante del LEGOEV3 è
che può essere programmato, oltre che con il pro-
gramma apposito, anche grazie a un'estensione di
Scratch online creata appositamente per questo tipo
di programmazione.
Il servizio web di Scratch che realizza tutto ciò è
visualizzato nella Fig. 9, dove vedete la pagina di
accesso.
Fig. 10
CONCLUSIONI
L'app per il
controllo da Ricordiamo che per la gestione del braccio robotico
dispositivo la LEGO ha previsto una specifica app (Fig. 9) da
mobile installare ad esempio su uno smartphone; questa
tramite app permette di colloquiare con il mattoncino intel-
Bluetooth. ligente attraverso la connessione wireless Bluetooth
di cui esso è fornito e di comandare il movimento
del braccio robotico mediante i pulsanti, il joystick e
il cursore virtuali.

48 Dicembre 2018/ Gennaio 2019- ELETTRONICA IN



..- Stldlch 3.0 GUI x + (] x


c a httpsJ/beta.scratch.mit.edu
*• :
mApp G Googt~ futura eh:l\toni~• a YouTuut • [ÀlWIIIOJ:J D COflvt''lO.ÌO ~ (011'/t' ~ ISlSS Geymonat • argo D MmdCvb3:-Ed-vip l Cl MindCub3r for EV3 :!òatni h~a)e ~ c..... » Allu Pcef~riti

~ Codice ., Cos' ffll .Co Suont


Movitntnto LEGO EV3


"'pcmo


Suono

Slunlool
• ••

Conttollo
Fig. 9 · Pagina del servizio
Sensorl
on-line di Scratch.


'laò.\bii

.... x o t y o

•"'

mieto blt


Valtgetta

O Scrivi qui per eseguire 1..1 ricerCil ~

generale dentro al quale sono compresi due cicli in senso antiorario, determinando così l'apertura e •

minori, i quali, in base al valore del sensore di tocco · la chiusura della mano.
(O se rilasciato, l se premuto), eseguono la rotazione .
dei quattro motori rispettivamente in senso orario e QUALCHE CONSIGLIO
L'arto si può riprodurre seguendo le istruzioni for-
nite. Le misure della parte principale sono standard
mentre la parte dove si trova il sensore di tocco e
quella dove la costruzione si aggancia all' avambrac-
cio hanno una misura personale. Nelle istruzioni,
per esempio, la grandezza è fatta sulla misura di
15 cm per la circonferenza del polso e 19 cm per la
circonferenza del palmo.
La caratteristica più interessante del LEGOEV3 è
che può essere programmato, oltre che con il pro-
gramma apposito, anche grazie a un'estensione di
Scratch online creata appositamente per questo tipo
di programmazione.
Il servizio web di Scratch che realizza tutto ciò è
visualizzato nella Fig. 9, dove vedete la pagina di
accesso.
Fig. 10
CONCLUSIONI
L'app per il
controllo da Ricordiamo che per la gestione del braccio robotico
dispositivo la LEGO ha previsto una specifica app (Fig. 9) da
mobile installare ad esempio su uno smartphone; questa
tramite app permette di colloquiare con il mattoncino intel-
Bluetooth. ligente attraverso la connessione wireless Bluetooth
di cui esso è fornito e di comandare il movimento
del braccio robotico mediante i pulsanti, il joystick e
il cursore virtuali.

48 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN



cod. SET3ASSI

... ....... ...... ... "

o
€ 7s,oo
cod. ELEMANDERll
... ...... ... ... ...............
€ ss,oo

cod. STEPMOT03
...... . . .. .... .. ... ... .. . .. . .. cod. MW14524
... ... ..... .. ... .. .. ... .. ..
€ 18,oo € 24,00

(sono necessari 3 pezzi)

MECCANICA CNC IN KIT


cod. CNC2018
... ... .. ..... ... .. .... .... ...... ... ...
...... ............. ~ ..1. 79,00 .o ••
o
N.B.la confezione non comprende l tre
motori passo-passo (cod. STEPMOT03),
la scheda di controllo (cod. SET3ASSI),
l'elettromandrino (cod. ELEMANOER11 )
e l'alimentatore (cod. MW14524).

-- .

"' ,, -
.- .

- •
• 'r


- ..
-.: ~
- -: :;
- •

- --
• •

• •
.. . -
•••
...... r
c
\. Il.
·"'
~
o

• •
Schema di cablaggio o

FA# SOl SOL# lA lA# SI DO DD# RE RE#

'
l

@
' • o

-- • < "

--
J::llli~

_
o
~~
ti
""'
[~

il
...• - un :a
!

- H l
'
1OX SENSORilASER
(cod. 2850-lASERSENSORJ

•.

'


SCHEDA A RElÉ TTl
(cod. 2846·RElAY1 CHI

ARDUINO UNO REV. 3


+ MI DI SHIElD

l contatti C
o

ed NO del
relé vanno
collegati in
-•
parallelo al
pulsante della
o

macchina del

fumo . -
o


ossia di trigger; (www.futurashop.it) con il codice P AM8403POT.
• lo shield MIDI genera i suoni richiesti quando Ma partiamo spiegando in cosa consistono le corde
riceve il trigger. virtuali, implementate da 10 sensori di passaggio a
laser, ognuno dei quali è un dispositivo LASERSEN-
,.
In mezzo c'è Arduino, il cui compito è triplice: SOR della Futura Elettronica.
• acquisisce gli eventi di trigger dai dispositivi di •

input, vale a dire i sensori laser; IL SENSO RE A LASER •

• sulla base di questi indirizza e comanda lo shield n dispositivo, già descritto nel fascicolo n° 209 (il
MIDI affinché produca i suoni richiesti; progetto era la Barriera a laser), ci permette di rile-
• attiva la macchina del fumo (opzionale). vare il passaggi delle dita perché funziona rilevando •


la presenza e l'attraversamento di un oggetto grazie
Lo shield MIDI produce i suoni disponibili su un alla combinazione di un diodo laser che emette un
connettore jack (per un eventuale amplificatore raggio di luce e di un fototransistor che rileva quella
esterno) e in altoparlante, perché, come spieghere- riflessa (Fig. 1). .
mo tra breve analizzandone lo schema elettrico, a Si tratta di una barriera a laser, ma non di tipo a
bordo abbiamo messo un amplificatore audio stereo interruzione, dove l'oggetto da rilevare non deve •

2x3 watt commercializzato dalla Futura Elettronica passare tra un emettitore e un fotorivelatore, bensì

52 Dicembre 2018 / Gennaio 2019 - ELETTRONICA IN

\
a riflessione: nel nostro circuito, un laser proietta un munizzare nei confronti dei disturbi e della luce
raggio di luce concentrata e collimata all'infinito e nell'ambiente il funzionamento del sensore: infatti
un oggetto che vi passa davanti ne riflette una por- se il laser fosse acceso costantemente, DOUT presen-
zione, che ritornando viene intercettata da una lente terebbe (in caso di luce che arriva sul fototransistor
convergente e concentrata sulla superficie sensibile dopo essere stata riflessa) una tensione influenzabile
di un componente fotosensibile. dalla luce ambiente, dato che il fototransistor potreb-
Questo genere di dispositivo presenta il vantaggio be andare in conduzione costantemente se venisse
di non richiedere il posizionamento a distanza di un illuminato a sufficienza o colpito da altre radiazioni
sensore, con l'inevitabile cablaggio richiesto, ma di luminose comprese nel suo spettro di sensibilità.
concentrare tutta in un punto l'elettronica richiesta, Invece emettendo degli impulsi luminosi a una certa
risultando così l'ideale per sistemi mobili come i frequenza possiamo, adottando un modulo ricevi-
robot su ruote o cingoli, ma anche per simulare la tore dotato di filtro, fare in modo che rilevi solo essi,
corda di uno strumento musicale, che non vibra ma scartando componenti luminose continue.
semplicemente rivela il contatto. Così è nella nostra n circuito del sensore laser si alimenta con una
tecno-arpa. tensione che può essere compresa fra 2,5 e 12 Vcc,
La distanza di rilevamento tipica è di 80 cm ma si grazie alla presenza di un regolatore switching inte-
può arrivare a un massimo di 1,5 metri ed anche grato basato sull'integrato PT1301.
questo fattore ha giocato a favore della realizzazione
dell'arpa, perché ci ha permesso di realizzare un LO SHIELD MIDI
telaio abbastanza grande da somigliare a un'arpa Passiamo adesso al cuore dello strumento musica-
vera; la distanza di rilevamento dipende comunque le, che è uno shield basato sull'integrato VS1053B
da quanta luce riflette la superficie del corpo da rile- della VLSI, già utilizzato in altri progetti in passa-
vare, ossia da quello che passiamo tra le corde. to e capace di generare un certo numero di note
Il circuito elettronico impiega un laser come tra- musicali sintetizzando i suoni di una gran quantità
smettitore e un modulo optoelettronico basato su di strumenti musicali sia melodici (tra cui l'arpa e
fototransistor come ricevitore. n fascio emesso dal l'organo) sia a percussione, dietro comandi impartiti
trasmettitore si riflette sulla superficie posta di fron- da un canale dati; i comandi accettati possono essere
• te e colpisce la lente (che serve a concentrare la luce di vari formati, compreso il popolare MIDI, che è lo
riflessa sul fototransistor) del ricevitore, mandando standard utilizzato da decenni per interfacciare al
in conduzione il fototransistor. Il ricevitore rileva PC sintetizzatori musicali e tastiere elettroniche.
solo la luce rossa riflessa ed emessa dal diodo laser, Partiamo analizzando lo schema elettrico del circui-
aggirando i disturbi da altre fonti luminose. to, che trovate in queste pagine.
n diodo laser è un piccolo puntatore (cioè un ll tutto ruota intorno all'integrato U1, che è il nostro
componente che integra un diodo laser raffreddato VS1053B; quest'ultimo è insieme un CODEC/ deco-
dall'apposito involucro in alluminio, un regolatore der multistandard (contiene codici e memoria dati
di corrente e una lente collimatrice); il laser viene per i coclee Ogg Vorbis, MP3, AAC, WMA e W AV
alimentato attraverso un transistor pilotato da un
segnale rettangolare a 180 kHz.
Gli impulsi di luce vengono inviati frontalmente e
quando colpiscono un oggetto la cui superficie ne
riflette almeno una parte, tornano al circuito, dove
parte di essi investe la lente del fototransistor, che li
fa convergere sulla giunzione esposta.
Quando il fototransistor viene colpito dalla luce
l'uscita DOUT (pin 3) della scheda commuta da Oa
1logico, mentre lo stesso contatto, in assenza di luce,
assume lo Ologico. Tale linea viene letta da Arduino
per rilevare la presenza del dito o della mano sulla
n
corda virtuale. LED rosso presente sulla scheda
ripete, invertito, lo stato dell'uscita omonima. Fig. 1
Notate adesso che la scelta di pilotare il diodo laser Il sensore laser utilizzato:
con una forma d'onda rettangolare invece che con ce n'è uno per ciascuna
nota suonata.
un segnale continuo, nasce dalla necessità di im-

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 53


+SV +3V3 +3V3 +1VB +1VB +SV


ARDUINO
sv IN OUT IN OUT
U3 U2
C3 C4 Cl + C13 C2 + C6
GND • GND GND 4
vcc
U4
l l l 7
OL +-------< +
RST 3 6 OUTL
. - - - - - - - - 1 1 IL OL- -------< -
1 8
r - - - - - - - 1 IR OR+-------< +
+3V3 +1V8 +1V8 2 9 OUTR
..---41 IG OR- -
5,7,24,31 i

GND
CVDO
38 6 5
AVDDl IOVl ~
43 14 l l
AVD02 IOV2
45 19
R5 R2 R10 AVDD3 IOV3 __,
32 42 AUDIO
TEST
JRX ..__ _ _34_ GPIOl 39
03 ~
R13 26 R 46
o---o >---' -~ ~-------1 RX
L9
JRST GPI02------.
D'+ r"\
R14 3 10
o---o )---1\ \ r - - - e - - - - - - - - - RST GPI03 ~
JTX 11 R7 R6 R9
GPI06~
02 ~
R8 27 12
o---o J--1 - - - - - - - - - - - - 1 TX GPI07 ~ C11 C10

U1 R3
R12
GPI04-
\
GPIOS l

~ GPIOO

C9 44
- RCAP
• •
4
• ~----- DGN01
16
~----- DGND2 18 C7

Rl
~----- OGNOS
35 17
~----- OGN06 X2 ~ ~-~ ~

AGNO
37,40,41,47
l , l

PCM+ADPCM audio decoding) ed un completo ming di dati a un altro dispositivo esterno o da esso.
sintetizzatore MIDI standard. Grazie a plug-in Delle due, quella configurabile per funzionare in
software, il chip può anche realizzare la decodifica modalità seriale TTL o SPI è la SCI, cioè l'interfaccia
lossless FLAC bene come quella di una registrazione di controllo.
high-quality in formato Ogg Vorbis. nsintetizzatore di suoni integrato è basato su un
Il tutto si avvale, per la comunicazione con il DSP (Digitai Signal Processar) proprietario VLSI,
dispositivo host (il microcontrollore che governa il chiamato il VS_DSP. I suoni sintetizzati vengono
sintetizzatore) di un'interfaccia seriale, configurabile convertiti da un DAC stereo multi-rate, alla cui usci-
anche in modalità SPI-bus. In realtà il VS1053B inte- ta si trova uno stadio preamplificatore audio e filtro
gra un complesso di interfaccia seriale che conta due d'uscita stereo.
interfacce: una di controllo (SCI=Serial Command L'integrato supporta anche la codifica audio PCM/
Interface) che serve per comandare il funzionamen- ADPCM, utilizzando come stadio d'ingresso un
to del chip e che nel nostro caso è quella attraverso amplificatore microfonico (per chi desidera utiliz-
la quale Arduino (ma potrebbe farlo qualsiasi micro- zare un microfono) o prelevando il segnale da un
controllore ... ) impartisce i propri comandi ed una di ingresso di linea e inviandolo a un A/D converter
trasferimento dati (SDI=Serial Data Interface) grazie stereo. Nello schema vediamo che Arduino gestisce
alla quale il VS1053B può trasferire o acquisire strea- il VS1053B attraverso la porta seriale utilizzata come

54 Dicembre 2018/ Gennaio 2019- ELETTRONICA IN


'

UART, che nell'Ul fa capo ai pin 26 (RX) e 27 (TX) modulo amplificatore P AM8043, mentre al resto
connessi rispettivamente ai pin digitali D3 e D2 di provvedono i regolatori lineari LDO U2 (MIC5504-
Arduino; quest'ultima gestisce anche il reset dell'Ul, 1.8YM5-TR) ed U3: quest'ultimo (è un MIC5504-
tramite D4, così da predisporlo a ricevere i comandi. 3.3YM5-TR) ricava, partendo dai 5 volt prelevati da
Le tre linee in questione sono dotate di pull-up sul Arduino, una tensione di 3,3 volt con cui alimentare
lato del VS1053 e vengono comandate dai pin di Ar- i piedini dell'alimentazione analogica del VS1053
duino tramite resistori in serie; tre jumper GRX, JTX (AVDDl, A VDD2 e A VDD3) e U2, il quale dai 3,3V
e JRST) sul circuito stampato dello shield consento- ricava gli 1,8V che occorrono al funzionamento del
no di sconnetterle all'occorrenza, per esempio se si core dell'Ul, sui piedini CVDD (core VDD) e IOVl,
opta per una differente forma di controllo, come ad IOV2, IOV3. I condensatori sulle linee di alimen-
esempio la SPI. tazione filtrano le relative tensioni da disturbi ed
In ogni caso le linee sono tre anche per consentire eventuale ripple.
l'interfacciamento su SPI, giacché una fa da canale L'integrato VS1053B dispone di un'uscita audio
dati, una da reset e l'altra da clock; basta scrivere stereo localizzata sui pin 39 (canale R) e 46 (canale L)
opportunamente il firmware. riferiti al comune pin 42 (GBUF) che non è collega-
Lo shield prende alimentazione da Arduino attra- to alla massa analogica, ma anch'esso accoppiato,
verso il pin 5V e la GND; con i 5 volt funziona il come le linee di segnale, tramite reti R/C.

[piano di m ntaggio







••




Elenco Componenti:
•.
••


U4


• R1: 1 M ohm (0603)
•• JRST JTX
••
••
.•
••
R2 + R5: 100 kohm (0603)
R6, R7: 22 oh m (0603)
ODO JRX



• •• R8: 1 kohm (0603)
C
O


••
••

R9: 22 oh m (0603) l
••



•• R1 O+ R12: 100 kohm (0603) 1 oo •
••

• 3 oo ••
••


R13, R14:1 kohm (0603) 5o o •
••
••
• c ••
••
••

C1 +C5: 100 nF ceramico (0603) a: g ••
••
•• <

.•• C6: 100 JlF 6,3 VL elettrolitico (0 4mm) c
l


••
c •
••
C7, CB: 22 pF ceramico (0603) -i ••
• r ••
•• •

.• + ••


C9: 1 JlF ceramico (0603) •••
•• + •

•• C1 O, C11: 1O nF ceramico (0603) c
c
••
••

• -i


••


C12:47 nF ceramico (0603) :::0
••
••
.

• C13: 100 JlF 6,3 VL elettrolitico (0 4mm)

••
.•
•• ••
••


• RST: M icroswitch •



•• ••
.



U1:VS1053B •
••
•• ••

• U2: MIC5504-1.8YM5-TR .

••
•• •
••
••

U3: MIC5504-3.3YM5-TR ••
••
• ••
••
•• U4: Modulo amplificatore PAM8403 ••

•• ••
••
••
SPK:Presa Jack 3.5mm .•


• ••

••

• Q1: Quarzo 12.288 MHz •
••

• •

• •
• ••
••
• .
••
•• Varie: •



•• ••

•• - Morsetto 2 vie passo 5mm (2 pz.) ••

••
•••
••
• Pin Strip Ardui no 6 vie •••
••
• .• Pin Strip Ardui no 8 vie (2 pz.) •
.••
..•• •


•.
• Pin Strip Ardui no 1O vie •

••
• •
•.


Pin Strip Arduino 2x3 vie ••
.
••



.•
• Circu ito stampato 81414 (69x55 mm) •
••


• •
•• •


•• ••
• •

• •
• ••

• •
~· ········ ····· · · ······ ·· ··· · ··· · ·· · ···················· · ··· ·· ················· ··· · ··· ······ ····· ··· · · ··~·· ··· ················ ············· ········· · ·· ·············· ··· · · ··············· ······ ····· ···· ····· · ········ ···· ···················· ·

ELETTRONICA IN- Dicembre 2018 /Gennaio 2019 55


l

Tabella 1
Le note generate dal sintetizzatore integrato nel VS1053B.

Fig. 2
Il re/è a
comando ITL.

Le uscite dell'Ul audio raggiungono una presa jack


stereo da circuito stampato cui è possibile collegare
una cuffia, giacché le stesse fanno capo a un am-
plificatore BF di piccola potenza con uscite a bassa
impedenza. analogici, li abbiamo assegnati come digitali, es-
. Le stesse linee R ed L raggiungono gli input del mo- sendoci questa possibilità e non avendo, altrimenti,
dulo amplificatore U4, che eleva il livello del segnale abbastanza pin digit~li.

quanto basta a pilotare una coppia di altoparlanti n pin smoke (pin 7 di Arduino) è l'unico impostato
da 3 watt e 4 ohm d'impedenza ciascuno; il modulo come uscita, dovendo attivare il relè della macchina
U4 è il P AM8403, basato sull'omonimo integrato già del fumo. La prima nota in ordine di frequenza e
dotato di tutti i componenti esterni di cui necessita e quindi, se ci trovassimo sulla tastiera di un piano- •

del potenziometro per il controllo del volume. forte, partendo da sinistra, è quella correlata con il
L'integrato VS1053B funziona sincronizzato dal pin digitale 6 e la più acuta è quella relativa all'input
proprio oscillatore interno, che per la temporizza- analogico 4. Quindi la sequenza delle note eseguibili
zione si basa sul quarzo da 12,88 MHz collegato tra i è Fa#, Sol, Sol#, La, La#, Si, Do, Do#, Re e Re# dell' ot-
piedini 17 (Xl) e 18 (X2). tava superiore; se volete conoscere la corrispon-
Nello schema, notate il pulsante RST, collegato alla denza con tutte le note eseguibili dal sintetizzatore
linea di reset degli header è utile a replicare quello di integrato nel VS1053B consultate la Tabella l.
Arduino quando la board viene coperta dallo shield. Ogni volta che Arduino rileva il livello logico alto
su una delle predette linee, costruisce la stringa di
COME FUNZIONA comando seriale del sintetizzatore contenuto nel
Vediamo adesso come funziona l'insieme, premet- VS1053B e la invia all'integrato, il quale produce la
tendo che ad ogni sensore laser corrisponde una nota desiderata, con il registro (strumento) impo-
nota suonata e che i sensori vengono letti ciascuno stato nel comando stesso; nel nostro caso il registro
da una linea di Arduino, secondo queste imposta- è fissato nello sketch ed è lo stesso per tutte e lO le
• • •
ZlOru: note. Lo strumento riprodotto è il 9 del banco GMl
(Celesta) come si evince dalla Tabella 2.
pinMode (smoke , OUTPUT) ; Per quanto riguarda la macchina del fumo, ne
pinMode(6 , INPUT) ; abbiamo modificata una di quelle reperibili dalla
pinMode(S , INPUT) ; Futura Elettronica (cod. HQSMlOOOl) collegando in
pinMode(8 , INPUT) ; parallelo al pulsante di comando del getto di fumo
pinMode(9 , INPUT) ; lo scambio di un relè su breakout board, pilotato ~al
pinMode(lO , INPUT) ; pin 7 digitale di Arduino. L'uscita si attiva (porta a
pinMode(ll , INPUT) ; livello logico alto) per 400 ms e poi viene inibita per
pinMode(12 , INPUT) ; 10 secondi, in modo da evitare di saturare l' ambien-
p inMode(13 , INPUT) ; te nel caso si suonino note continuativamente .
pinMode(AS , INPUT) ; I tempi possono essere cambiati a piacimento dallo
pi nMode (A4 , IN PUT); sketch. Il modulo relé è del tipo ad l canale con
comando TTL ed è il RELAYlCH della Futura Elet-
I pin A4 e AS di Arduino, pur essendo nativamente tronica.

58 Dicembre 2018 / Gennaio 2019 - ELETTRONICA IN



• Ox62,0x63,0x64,0x65: NRPN and RPN selects


• Ox78: ali sound off
• Ox79: reset ali controllers
• Ox7b, Ox7c, Ox7d: ali notes off

I parametri permettono di stabilire il funzionamento


del sintetizzatore, vale a dire lo strumento (registro)
da suonare e di quale banco, l'eventuale applicazio-
ne di effetti come il sustain, il range del pitch bend
se utilizzato, ecc.
Infine vale la pena di evidenziare una particolarità
del VS1053B, riguardante lo stadio di uscita per la
cuffia, nel quale è implementata una parametriz-
zazione dell'elaborazione audio in quattro moda-
lità selezionabili; il tutto allo scopo di restituire la
spazialità che nell'ascolto in cuffia tipicamente non
Dettaglio si ottiene.
di una delle spalle del Le quattro modalità applicabili sono:
telaio, con all'interno le
• Off: nessuna correzione della spazialità, utile se
"mensole" cui fissare i
sensori a laser.
si ascolta l'audio in altoparlante, giacché il suono
Le dimensioni del telaio nello spazio circostante acquisisce spazialità di
sono: 127x82x8,5 cm suo; tale modalità si applica anche nell'ascolto in
(LxHxP). cuffia se l'audio che deve essere riprodotto deriva '

non dal sintetizzatore ma dal decoder e contiene



già una preprocessing binaurale;
• minima[: pensato per l'ascolto in cuffia di brani
Lo schema di cablaggio mostrato in queste pagine caratterizzati da pochi strumenti e da una minima
' spiega bene come si devono interconnettere gli ele- correzione spaziale;
menti del circuito .

• norma[: adatta all'ascolto di brani in cuffia spo-
Per quanto riguarda il formato dei comandi diretti stando la sorgente audio percepita in maniera
da Arduino al VS1053B,la stringa di impostazione minima da un padiglione all'altro; •

del sintetizzatore è di questo tipo: • extreme: adatta alla riproduzione di registrazioni


vecchie o asciutte, oppure quando l'audio ripro-
• Ox51: set tempo dotto è quello generato dal sintetizzatore MIDI.
• Ox01: master volume
• Ox80: note off
• Ox90: note on
• OxcO: program
• OxeO: pitch wheel
• OxbO: parameter channel message
• OxOO: bank select (O is default, Ox78 and Ox7f is
drums, Ox79 melodie)
• Ox06: RPN MSB: O= bend range,
2 = coarse tune
• Ox07: channel volume
• OxOa: pan contro[
• OxOb: expression (changes volume)
• OxOc: effect contro[ l (sets global reverb •

decay)
• Ox26: RPN LSB: O= bend range
In primo piano la camera nella quale
• Ox40: holdl il tubo corrugato porta il fumo.
• Ox42: sustenuto
• Ox5b effects level (channel reverb level)

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 57


. •

Tabella 2
l registri del banco di strumenti GM1 (strumenti melodici).
VS10S3b Melodie lnstruments (GM1) il rischio di unione di pin adiacenti ad opera dello
1 Acoustlc Grand Piano 33 Acoustlc Bass 65 Soprano Sax 97 Rain (FX 1)
2 Bright Acoustie Piano 34 Electric Bass (finger) 66 Alto Sax 98 Sound Track (FX 2) stagno.
3 Electric Grand Piano 35 Electrlc Bass (pick) 67 Tener Sax 99 Crystal (FX 3)
4 Honky-tonk Piano 36 FreUess Bass 68 Baritone Sax 100 Atmosphere (FX 4) Procedete con i componenti passivi, rispettando la
5 Electric Piano 1 37 Slap Bass 1 69 Oboe 101 Brightness (FX 5)
6 Electric Plano 2 38 Slap Bass 2 70 Engllsh Horn 102 Gobllns FX6) polarità indicata per gli elettrolitici, poi con i due
7 Harpslchord 39 Synth Bass 1 71 Bassoon 103 Echoes :Fx 7)
8 Clavi 40 Synth Bass 2 72 Clarlnet 104 Scl-fi (FX 8) regolatori integrati ed il pulsante di reset; sistemate
9 Celesta 41 Violln 73 Piccolo 105 Sitar
1oGlockensplel 42 Viola 74 Fiuta 106 Banjo
poi la presa jack 3,5 mm stereo da circuito stampato,
11 Muslc Box
12 Vìbraphone
43 Celio
44 Contrabass
75 Recorder
76 Pan Flute
107 Shamisen
108 Koto
i pin strip degli header Arduino, le due morsettiere
13 Marlmba
14 Xylophone
45 Tremolo Strings
46 Pizzicato Strlngs
77 Blown Bottle
78 Shakuhachl
109 Kalimba
110 Bag Pipe
per connettere gli altoparlanti e, infine, il modulo
15 Tubular Bells 47 Orchestrai Harp 79 Whistle 111 Fiddle PAM8403, che collegherete al PCB mediante tanti
16 Dulcimer 48 Timpani 80 Ocarina 112 Shanai
17 Drawbar Organ 49 String Ensembles 1 81 Square Lead (Lead 1) 113 Tinkle Beli spezzoni di filo quante sono le piazzole corrispon-
18 Pircusslve Organ 50 Strrng Ensembles 2 82 Saw Lead (Lead) 114 Agogo
19 Rock Organ 51 Synth Strings 1 83 Calliope Lead (Lead 3) 115 Pltched Percussion denti.
20 Church Organ 52 Synth Strings 2 84 Chltf Lead (lead 4} 116 Woodblock
21 Reed Organ 53 Choir Aahs 85 Charang Lead (Lead 5) 117 Talko Drum Per l'esattezza, inserite e saldate dei corti spezzoni
22 Accordlon 54 Volce Oohs 86 Volce Lead (Lead 6) 118 Melodie Tom
23 Harmonica 55 Synth Volce 87 Afths Lead (Lead 7) 119 Synth Drum di filo in rame da l mm circa di diametro nelle piaz-
24 Tango Accordion 56 Orchestra Hit 88 Bass + Lead (Lead 8) 120 Reverse Cymbal
25 Acoustto Gultar (nyton} 57 Trumpet 89 New Age Pad 1) 121 Guitar Fret Nolse
zole dello shield riservate al modulo P AM8403 e poi,
26 Acoustlc Guitar (steel)
27 Electrlc Gultar (jazz)
56 Trombone 90 Warm Pac (Pad 2) 122 Breath Nolse tenendoli ben dritti, infilateli nei fori delle piazzo-
59 Tuba 91 Polysynth (Pad 3) 123 Seashore
28 Electrlc Guttar (clean) 60 Muted Trumpet 92 Choir (Pad 4) 124 Blrd Tweet le corrispondenti sul modulo, facendo scendere
29 Electric Gultar (muted) 61 French Horn 93 Bowed (Pad 5) 125 Telephone Rlng
30 OVerdriven Gultar 62 Brass Section 94 Metalllc (Pad 6) 126 Helioopter quest'ultimo fino ad appoggiarsi al circuito stam- .
31 Dlstortlon Guitar 63 Synth Brass 1 95 Halo (Pad 7} 127 Apptause
32 Gultar Harmonics 64 Synth Brass 2 96 Sweep (Pad 8) 128 Gunshot pato e stagnando poi le piazzole, tagliando infine
l'eccedenza dei fili. Preparato lo shield e verificato
(con l'aiuto della lente d'ingrandimento) che non vi
REALIZZAZIONE PRATICA siano cortocircuiti causati da "baffi" di stagno né
Bene, passiamo adesso alle note costruttive, ini- componenti fuori posto, potete innestarlo su Ardui-
• ziando dalla preparazione dello shield, del quale in no e iniziare il cablaggio dell'elettronica seguendo il
,
queste pagine trovate il piano di montaggio; il circu- disegno di queste pagine.
ito stampato da realizzare è a doppia ramatura e la Per quanto riguarda la parte meccanica, siete liberi
componentistica richiesta è quasi tutta SMD, ragion di realizzarla carpe vi pare, rammentando però che
per cui occorre disporre di un minimo di attrezza- i sensori laser devono essere disposti in verticale (in
tura per poter compiere le saldature del caso, vale a alto o in basso) e chiaramente puntati verso l'interno
dire un saldatore con punta molto fine, una pinzetta del telaio; l'intento è realizzare delle corde virtuali
per posizionare gli elementi, della pasta flussante e perfettamente verticali. Come telaio potete utilizzare
del filo di lega saldante da 0,5 mm di diametro, una quello da noi proposto ma nulla vi vieta di costruire
lente d'ingrandimento e della trecciola dissaldante un telaio in compensato opportunamente ritaglia-
per rimuovere eventuali eccedenze di stagno. to. In ogni caso conviene realizzare una struttura
.. Partite con il circuito stampato, ottenibile per fo- che sul perimetro interno sia scavata o cava così da
toincisione utilizzando allo scopo le tracce lato rame poterei collocare i lO sensori laser che realizzeranno
scaricabili dal nostro sito www.elettronicain.it; inciso le corde virtuali; per questo il nostro telaio è fatto da
e forato il PCB, posizionate e saldate i componenti due fianchi in plexiglass uniti da traverse anch'esse
partendo dal VS1053B, che dovrete porre ben cen- in plexiglass.
trato sulle rispettive piazzole, stagnandone poi un Come già spiegato, la generazione del fumo è
contatto per lato in modo da fissarlo e procedendo opzionale, ma se la desiderate, il nostro consiglio è
alla saldatura di un pin alla volta per ciascun inserire sul lato dritto del telaio un tubo forato i cui
lato, allo scopo di non surriscaldare il compo- fori siano affacciati all'interno, poi chiuso in alto e
nente. Consigliamo di spalmare con della aperto in basso per connetterlo con un tubo flessibi-
pasta flussante le piazzole, allo scopo di le all'ugello di uscita della macchina del
facilitare la saldatura e minimizzare fumo. Nel prototipo abbiamo usato
una guaina per cavi elettrici
che si introduce in una ca-
mera ricavata nella spalla
dell'arpa.

IL FIRMWARE
Bene, completiamo la de-
scrizione dell'arpa laser

58 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN

,

• •
• •

:• voi d readTouchinputs () •

• { •
• •
• •
• •
• •
• •

• touchStates[1]= !digita1Read(6 ); •

• •


touchStates[2]= !digita1Read(5) ; •


• touchStates[3]= !digita1Read(8) ; •





touchStates[4]= !digita1Read(9) ; •



• touchStates[5]= !digita1Read(10) ; •

• •


touchStates[6]= !digita1Read(11) ; •

• •


touchStates[7]= !digita1Read(12) ; •




touchStates[8]= !digita1Read(13) ; •



• touchStates[9]= !digita1Read(A5) ; •

• •

• touchStates[10]=!dig italRead(A4) ; •
••

• •
• •
• ••
.
• •

• •
• •

• for (int i=1 ; i<1 Q; i++) •

• •


{ •

• •


Serial . print (touchStates[i]) ; •

• •
) •
• •



Serial . println() ; •


• ) •
• •
• •
• •
• •

: voi d Play ()



• •
• { •
• •

• int note=30 ; •

• •
• •
• •
• •


for (int i=1 ; i<10 ; i++) •

• •
• { •
• •
• •


if ((touchStates[i]==1) && (touchPres[i]==false )) •

• { •
• •
• •

• noteOn(O , note , 127) ; •

con l'analisi del firmware, scaricabile dal nostro sito •




touchPres[i]=true ;



www.elettronicain.it; di esso, nel Listato l riportiamo •




//ho premuto una corda •




• if (fumoinib==O) { •
la parte di sketch che associa le note alle "corde" •

•• timefumoon=millis() ;




toccate. •


fumoinib=1 ; •


} •
Dopo l'assegnazione dei pin di l/O, si imposta lo •





• •
strumento desiderato con l'istruzione: •


) •


• •
• if ( (touchStates[i]==O) && (touchPres[i]==true) ) •

• •


{ •

const int STRUMENT01=9 ; •
• noteOff(O , note , 127) ;


• •
• •


touchPres[ i ]=false ; •

• ) •
•• •
Chi volesse potrà modificare lq_ strumento inter- •
• note++ ;




venendo in questa area del codice. Abbiamo poi la •



} •


delay(100 ); •
porzione di sketch che riguarda l'impostazione della •

:• }


comunicazione seriale per il controllo da parte di •









Arduino dove potete notare che la velocità di comu- •• • ••• • •• •••• ••• •••• • •• • • • • • • • • •• •• •• • • • • •••• • •• • •• • • • •••• • • • • • • •• • • • • • •• • • • • • ••• • ••

nicazione è impostata in 31.250 bps:

#if USE- SERIAL- MIDI sendMIDI (cmd) ;



midiSerial . begin(31250) ; //Some commands only have one data byte .
#endif if ( (cmd & OxFO) <= OxBO l l (cmd & OxFO) >= OxEO) {
sendMIDI (da t a1 );
E veniamo alla parte dello sketch riguardante il sendMIDI(data2) ;
comando finalizzato alla generazione delle note, che l else {
è la seguente: sendMIDI(data1) ;
}

void talkMIDI(byte cmd , byte data1 , byte data2) {



#if USE - SPI - MIDI
#if USE - SPI MIDI
-
digitalWrite(VS XDCS , HIGH) ;
Il Wait for chip to be ready #endif
while ( !digitalRead(VS DREQ)) )


' •
digitalWrite(VS_XDCS , LOW) ; //Send aMIDI note - on message .
#endif //Like pressing a piano key

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 59

l

-
Disposizione dei sensori laser a riflessione nella parte cava del telaio dell'arpa:
sono distanziati quanto devono essere distanti l'una dall'altra le corde virtuali luminose.
l sensori vanno collegati in modo che quello su/lato più lungo del telaio corrisponda alla
nota più grave (1/06 di Arduino) e quello su/lato corto al pin A4.

//channel ranges frorn 0- 15 quindi se a commutare è touchStates[S] il parametro


void noteOn(byte channel , byte note , note vale 30+4, quindi viene eseguita la nota 34. Insie-
byte attack_velocity) { me all'esecuzione della nota parte l'attivazione della
talkMIDI( (0x90 l channel) , note , attack_velocity) ; macchina del fumo. Naturalmente chi se la sente può
} modificare i vari parametri in modo da disattivare il
comando della macchina del fumo (basta mettere a
//Send aMIDI note- off rnessage . zero int timespruzzo) personalizzare le note e, volendo,
//Like releasing a piano key modificare il suono dello strumento.
,
void noteOff(byte channel , byte note , Bene, ciò detto abbiamo concluso: non ci resta che au-

byte release_velocity) { gurarvi buon lavoro e soprattutto buon divertimento
talkMIDI( (Ox80 l channel) , note , release_velocity) ; con la vostra arpa digitale con la quale stupirete chi
} vedrà suonarla.

I comandi, come vedete, impostano la nota, il registro,


il tempo, le modalità di attack e decay (progressione
del suono e decadimento) e via di seguito, inviando
poi al MIDI la stringa di comando corrispondente.
Per quanto riguarda il comando della macchina del
fumo, i parametri sono i seguenti: l componenti utilizzati per realizzare que-
sto progetto sono disponibili presso Futura
unsigned long tirnefurnoon=O ; Elettronica. La board Arduino UNO REV3
int tirnespruzzo=400 ;
(cod. ARDUINOUNOREV3) è in vendita a Euro
int tirnefurnoinib=lOOOO ;
24,50, lo shield musicale (cod. FT1414) è dispo-
l

boolean furnoinib=O ;
nibile a Euro 19,00, il micro amplificatore 3+3 W
unsigned l ong tirnestartinib=O ;
(cod. PAM8403POT) costa Euro 6,50, la scheda
con sensore laser (cod. LASERSENSOR) è di-
Qui vediamo che il comando al relé che chiuderà in sponibile a Euro14,80. Il modulo a 1 relè 5 VDC l
cortocircuito il pulsante di comando della macchina 1O A (cod. RELAY1 CH) costa Euro 5,00, l'alto-
dura 0,4 secondi, cui seguirà un tempo di inibizione di parlante 4 Ohm l 3 W 0 52 mm (cod. AP5243W)
lO secondi (tutti i tempi sono espressi in millisecondi). è disponibile a Euro 2,90. Le parti in plexyglass
La parte di codice contenuta nel Listato 1 vede la fun- (cod. PLEXYARPA) tagliate al laser necessa-
zione void readTouchlnputs() con le variabili associa- rie per realizzare l'arpa sono disponibili a Euro
te ai lO sensori: quando una touchStates passa da Oa l 420,00. l prezzi si intendono IVA compresa.
si avvia un ciclo forche produce la stampa su seriale
della nota suonata, ai fini di debug. Segue la funzione
void Play() in cui un ciclo for esegue la nota associata
a touchStates, a partire dalla 30, che è la più grave; per
ogni touchStates che cambia di stato si somma l nota,

80 Dicembre 2018/ Gennaio 2019 - ELETTRONICA IN


VIA CAVO
Fi

Caratteristiche tecniche e vendita on-llne su:

www. futura shop. it


o'
(.)
03

02 +5V
PWR
01 • D2, che riceve i dati dal modulo MP3 attraverso
Cl + C2 C3 + C4
il suo contatto TX (pin 3) attraverso la resistenza
5V
Rl·
Lu •
'
D3, che invia i comandi al modulo MP3 sul suo
iiJ pin RX (2) mediante la resistenza R2;
eu • D6, che controlla la linea BUSY (pin 16) del
E
(l) OUTl
+5V moduloM P3.
5V sv
..t:: 2 D2 e D3 costituisc ono l'interfacc ia seriale che per-
(.)
,Cl)
1 05 mette a Fishino Guppy di controllar e il modulo
~ 3 MP3 a 9.600 baud e le resistenze sono state inserite
U2
per "adattare " i livelli logici della Guppy a quelli
del lettore.
OUT2 Le strip NeoPixel vengono gestite in parallelo con
5V una sola linea del rnicrocon trollore della nostra Fi-
03----,
.-- 06 02--, shino, impostato nello sketch; la comunica zione è
GNO unidirezi onale.
Rl R2 NeoPixel è una particolar e soluzione a LED RGB
+5V
"intellige nti" dove ogni LED NeoPixel dispone di
controller a bordo, comanda to da Fishino attraverso
- OUT3
5V l'apposita libreria FastLed (https://github.com/Fa-
2 vcc
DI 16
BUSY TX
3 stLED/FastLED) .
1
3 RX
2 SPK Ogni LED RGB può essere gestito individua lmente
6 tramite un apposito comando inserito nella stringa
SPKl +
8
SPK2 - seriale e può produrre fino a 256 tonalità del pro-
Ul prio colore, determin ando un totale di 16.777.216
OUT4
4 AMP combinaz ioni di colore.
OACR
• 2 5 Una particolar ità dei LED NeoPixel è che possono
1
OACL

essere collegati in cascata in modo che la linea dati
3 GNO
7
da uno passi al successivo.
Per ogni strip di LED è possibile impostar e a piaci-
mento la frequenza di refresh, in modo da rendere
impercett ibili determin ati giochi di luce, fermo
restando il limite dettato dalla quantità di strip col-
Il tutto viene alimentat o da un comune alimentat o- legate. Nel nostro caso utilizziam o 3 strip da 12led
re AC/DC con uscita a tensione stabilizza ta 5V 2A. ciascuna e una strip da 13 led. La striscia più lunga
Il tutto va collegato secondo lo schema di cablaggio utilizza l'ultimo sul led per illuminar e la stella po-
che trovate in queste pagine. sizionata in cima all'albero . Le strisce sono ricavate
partendo da una strip da 150 led su 5m disponibi le
SCHEMA co da www.futurashop.it con il codice STRIP150LED
Diamo dunque uno sguardo allo schema, nel (ovviame nte la porzione di striscia avanzata può es-
quale distingui amo la Fishino Guppy, siglata U2 sere utilizzata per altri progetti o per altri alberi).
(cod. GUPPY) e il riprodutt ore MP3 con rnicroSD, L'intero circuito viene alimentat o attraverso un jack
chiamato Ul (cod. DFR0299); della Guppy DC dal quale la tensione continua applicata dall'a-
utilizziam o solament e quattro pin di IlO digitale, limentato re raggiung e la linea 5V attraverso i diodi

OSSia: di protezion e Dl, D2 e D3, collegati in parallelo per
• D5 per inviare le stringhe di comando alle strip ripartirsi la corrente e presentar e così la minima ca-
Neopixel , che saranno collegati in parallelo duta di tensione possibile.
attraverso i connettor i OUTl, OUT2, OUT3 e Sul catodo dei diodi abbiamo posto una batteria
OUT4, sui quali è multiplat a la linea dati da di condensa tori di filtro (Cl, C2, C3 e C4) utili a
collegare al contatto DI (Data Input) delle strip livellare ulteriorm ente la tensione continua prima
(l'aliment azione è riportata in parallelo sui di mandarla alla Fishino Guppy e al modulo MP3:
quattro connettor i); Cl e C3 filtrano eventuali disturbi impulsiv i (sono

84 Dicembre 2018 /Gennaio 2019- ELETTRONICA IN


• • • • • • • • • • • • • • • • • • • • • • • • • • • o • •

.,

CARATTERISTICHE TECNICHE
molto utili se alimentiamo il circuito con un ali- •~

• Tensione di alimentazione: 5 Vcc •'

mentatore switching) e C2-C4 fungono da ulteriore •'


• '•


• • Assorbimento: 1 A •
livellamento e soppressione del ripple di un even- •

• • lnterfaccia di controllo: WiFI



• •
tuale alimentatore da rete con trasformatore e filtro •

• • Illuminazione a LED Neopixel



• •
capacitivo. •


• Riproduttore MP3 integrato con microSD •



• •
La Fishino Guppy viene alimentata attraverso il pin •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • o • • • • • • • • o • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • o

+5V e quelli di GND.


Quanto al modulo MP3, nello schema rende dispo-
nibili entrambe le uscite audio di cui dispone, ovve- DFR0299 (Ul nello schema) è un completo decoder
ro quella per altoparlante (in questo caso è MONO) che attinge a un supporto SD-Card (microSD, per
che va collegato tra i contatti SPKl ed SPK2, oltre a l'esattezza), decifra l'audio e poi lo amplifica on-
quella a basso livello, da amplificare con un dispo- board pronto per inviarlo a un altoparlante (da 8
sitivo esterno o da inviare all'ingresso di un mixer, ohm di impedenza) con quasi 3 watt di potenza,
un registratore o altro di simile, stereo e localizzata erogati da un piccolo finale BF interno mono, con
ai piedini 4 e 5 (riferiti a massa) . stadio d'uscita a ponte. Siccome il decoder MP3
del modulo è stereo, in realtà le uscite audio
IL RIPRODUnORE MP3 disponibili sono due, ossia una per canale, però
Il componente che utilizziamo per la riproduzione sono accessibili dall'esterno solo a basso livello e
dell'audio permette di far riprodurre dalla base impedenza relativamente alta, fatte per pilotare
dell'albero brani musicali MP3 senza dover amplificatori, ingressi di mixer, cuffie a 300 ohm
utilizzare hardware costoso e impegnativo: infatti il ecc. Sono accessibili dai pin 4 (DACR, canale destro)

piano di MONTAGGIO ••••••••••• •••• ••• ••••• •••••••• •••••••••• •••••••••• •••••••• •••• •••••••••••••••••••••••••••• ••• ••• ••••• ••••••••••• ••••••• • •••••• • ••••••
•••
••


• •
•• •
• •




S1422 - U2 U1 •

••
• - '

••

.••• •
••

• •
••


Elenco ComponenJi: •
••
•••

••

••
••
• -- •

••

••

. •

R1:1kohm ·~ ~, ~- •
••
• •
••


• R2: 1 kohm •u,.., ,_. J ••
•• ••

•• C1: 100 nF ceramico \
-c=J- ~: i1
••


;!. /+ C2 ~ Jr+ -rr:=J-
R2 1
••
••

'l -c=J-


C2: 470 J.lF 16 VL elettrolitico EO ••

FI
• R1




C3: 100 nF ceramico -rr:=J- za •

••

••






C4: 470 J.lF 16 VL elettrolitico
- ~ ~

'- -rr:=J- '" AMP






••

••
• ••
••


U1: Modulo MP3 OFR0299 •




OUT1 OUT2 OUT3 OUT4 + SPK •
. U2: Guppy •

~

•••




••


01: 1N4007 o 000 000 000 000
01 5V GN>
- 1661
+ -
o •






. DI SV Gfl) DI 5V Glll





02. 1N4007 DI SV GN>
""" •



••

.•

03: 1N4007 •

••
• •
.
.


• AMP: Connettore jack 3.5mm da CS •
••
••
.


••


• ••
• •
••
•• Varie: ••
••
• •
.•
• - Plug alimentazione •
••
• •

• ••




- Presa filo-scheda 2 vie volante •
••

• •

••

- Presa filo-scheda 3 vie volante •
••

• •

.




(4 pz.) •

••
• •




• - Connettore filo-scheda 2 vie da PCB •
••

• •
••
•• - Connettore filo-scheda 3 vie da PCB •



• •





(4 pz.) ••



• ••


.
• - Strip maschio 8 vie (2 pz.) ••

• ••




- Strip maschio 15 vie (2 pz.) •


• ••





- Circuito stampato S 1422 •
••


••
••


(1 02x53 mm) •

••

• •
• ••

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

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 85


ALTOPARLANTE ALIMENTATORE 220V / 5V · 2A 3 STRIPNEOPIXEL 12 LEO STRIP NEOPIXEL 13 LEO

Se
di cablaggio

e 5 (DACL, canale sinistro) . L'amplificatore di Le principali caratteristiche del modulo sono:


potenza incorporato è, invece, mono e amplifica la • decodifica MP311172-3 e IS013813-3layer3
miscelazione dei canali destro e sinistro. audio decoding;
Il modulo nasce per essere gestito da Arduino, • possibilità di equalizzazione Pop,
il quale di fatto si limita a inviargli comandi Rock, Jazz, Classica;
in formato seriale (9.600 baud) per gestire la • frequenze di campionamento in
riproduzione; nel nostro caso, a gestirlo è la scheda riproduzione (kHz): 8/11,025/12/1 Le connessioni
Fishino Guppy; il resto viene fatto dal chip decoder 6/22,05/24/32/44 ,1/48 alle strip Neopixel:
interno al modulo. • DAC a 24 -bit, che supporta una si utilizzano tre
Il riproduttore DFR0299 può essere utilizzato in gamma dinamica di 90 dB e un fili da saldare
stand-alone, alimentandolo a 5 volt (la corrente rapporto segnale/rumore di 85dB; nelle piazzole
dell'estremità bassa
richiesta per erogare 3 watt su 8 ohin, che si • supporto file system FAT16 e
degli spezzoni.
ottengono a 5 volt, è 0,45 ampere), collegandogli un FAT32;
altoparlante e dei pulsanti, oppure può essere usato • massima capacità di
in combinazione con un microcontrollore dotato di memoria indirizzabile
porta seriale TTL. pari a 32 GB, 32G di
I brani musicali MP3 da riprodurre devono essere USB disk, blocchi
contenuti in una microSD e il decoder supporta fino di 64 MB Flash
a 100 cartelle, ciascuna delle quali può contenere N OR.
fino a 255 brani MP3. Nel nostro caso abbiamo
creato una cartella MP3 dove abbiamo copiato fino Per la gestione
a 9 brani chiamati 0001.mp3, 0002.mp3, ecc. del modulo è •

La regolazione del volume prevede 30 livelli. chiaramente stata


L'alimentazione prevista è da 3,2V a 5V in continua sviluppata una
(la corrente assorbita in standby è di soli 20 mA). libreria specifica

SS Dicembre 2018/ Gennaio 2019 - ELETTRONICA IN


(scaricabile anche dal nostro sito www.elettronicain.it


insieme agli altri file del progetto) che il nostro
sketch include, la quale permette di decidere quale
file riprodurr e, regolare il volume ecc.
Da Telegram potete ordinare al modulo di suonare
un brano specifico, con il comando playx nel quale
al posto di x va il numero del file MP3 memoriz zato
nella card (da l a 9); potete anche impostar e il vo-
lume d'ascolto, alzandolo con il comando volup o
abbassan dolo con voldown .
Tutti i comandi, al pari di quelli per gli effetti lumi-
nosi, sono testi da inviare tramite Telegram.

IL COMANDO REMOTO
Come accennato, Fishino Guppy si connette in WiFi
al router che lo affaccia su Internet e da qui dialoga
con i server di Telegram attraverso un bot creato ad
arte; il bot si crea con servizi web come BotFather e
risiede in Fishino.
Ma facciamo un passo indietro e spieghiam o, a chi
non lo sapesse, che cosa è un bot di Telegram: si
tratta di un utente virtuale, non associato (o non
necessariamente associato) a un numero di telefo-
no, come invece è necessario se si vuol creare un
account Whatsap p. La particolarità è che si tratta di
un robot software (da qui il nome bot, che ne è l'ab- •

breviazione) che interloquisce con altri utenti quasi utilizzato un'appos ita libreria chiamata Fishgram,
fosse un utente vero e che ci permette di realizzare la quale permette la gestione tramite un semplice
alcune automazioni. Nel nostro caso il bot manda a messaggio di Telegram. Per poter realizzare il
Fishino Guppy i comandi che noi, tramite il nostro nostro progetto, innanzitu tto dobbiam o scaricare
account utente di Telegram, trasmetti amo dallo Telegram sul nostro dispositivo portatile, sia
smartpho ne sotto forma di messaggi di testo e rice- esso basato su sistema operativo Android, iOS,
ve risposte di stato (sull'esecuzione dei comandi) e Windows Mobile, collegandoci allo store oppure
richieste da inoltrarci, sempre attraverso messaggi sul web, alla pagina https://telegram.org/. Una
testuali di Telegram. Insomma , il bot è come una volta installata la app, utilizzan do lo strument o
persona cui scriviamo cosa deve fare il nostro al- di ricerca, dobbiam o cercare Botfather, avviarlo e
berello luminoso WiFi e che si occupa di interagire creare il nostro bot che utilizzere mo per la gestione
con Fishino Guppy, informan doci anche sull' at-
tività dell'alberello stesso. Quando accendiamo .
l'albero la prima volta, Fishino cerca la connessione
WiFi (nello sketch dobbiam o inserire l'SSID e la
password della nostra rete) e se non la trova lancia
l'illumina zione in dissolvenza, che è l'animazi one
RICERCA Gt,QBALE
predefinita; quando si connette in WiFi, invece, ese-
gue quella che gli inviamo da smartpho ne. Ad ogni . . . BotFather
•Q• .'

successiva accensione esegue l'ultima animazio ne @Botfather
luminosa che gli è stata impostat a da remoto per
ultima. Oltre alle luci, se glielo ordiniam o da Te-
legram fa accendere anche il riprodutt ore MP3 ed
eseguire il brano corrispon dente alla richiesta.

La libreria Fishgram
Per gestire Fishino Guppy da Telegram abbiamo Fig. 1 - Ecco come si presenta la chat con BotFather


ELETTRONICA IN- Dicembre 2018 /Gennaio 2019 B7


Cosa può fare questo bot?

Bot:F-a.t her is the.one botto rule t:hem ali, BotFather, oppure conoscerne l'access token. Inoltre
Use. it: t:o create ne.w bot accounts and
ma.l"'a.ge your e:.cist ing bot s. ogni messaggio inviato al Bot viene contrassegnato
About Telegrarn bots:
https://corr,.t.efurym ,çri/bots
da un id utente al quale abbiamo accesso, perciò
Bot API manual:
https!//c.ore.ttleara.m.orslbotsltpi
è possibile inserire un controllo nel codice per
Contad:_@&tSu.pport if you have questions
eseguire solo le istruzioni dell'id autorizzato. I
>Owt t he Bot N'I,
restanti messaggi verranno letti, ma ignorati.

/start l .,
IL FIRMWARE
1 can help )IOu creat e and rnanag.e Tele.gram
bots. If you're new to t he Bot API. please
Addentriamoci quindi nei meandri del codice; dopo
see the roaruJ)I, aver incluso le librerie necessarie e dopo aver impo-
You c.an contro! rne _by sending these stato SSID, password con i comandi:
comrnands:

/newho~ - create a new bot


/111ybots - edlt your bots [beta) #define MY SSID ''********''
/.,yga1110s - edlt your jèmeS [beta)

Edk Bots
/setname - change a bot's-name. #define MY PASS ''********''
. . . .. . . ..
/se.tdescription - chanae bot desGript ion
. .. -
troviamo l'istruzione che ci permette di inserire il
Token di Telegram:
Fig. 2 - Chat in corso con BothFather:
ci vengono mostrate le funzioni disponibili.
#define MY TELEGRAM TOKEN ''****** •• ******************** ''

dell'alberello a LED (Fig. 1). Una volta avviato Dopo e solo dopo aver inserito quest'ultime due
BotFather ci troviamo di fronte alla schermata linee di codice inseriamo:
proposta nella Fig. 2. Nella Fig. 3 vedete un
esempio di interazione tramite messaggi con FishGram . begin(F(MY_TELEGRAM_TOKEN)) ;
BotFather, il quale ci parla come se fosse un utente
in carne ed ossa e possiamo interloquire con Questa istruzione inizializza Fishgram con il Token
• lui. Nel caso specifico, inviandogli il messaggio l del nostro bot.
start impartiamo•
il comando che ci restituisce le
funzionalità e la rispettiva sintassi. L'istruzione:
Da qui, il procedimento da seguire per creare il no-
stro bot è molto semplice: FishGram . messageEvent(FishGra mHandler) ;

l. inviare il testo di comando /newbot;
2. scegliere un nome; permette di richiamare la routine FishGramHandler
3. scegliere un soprannome terminante in "bot". ogni volta che arriva un messaggio. In questa
routine andremo a verificare il messaggio ricevuto
Annotiamoci l' access token perché ci servirà in (salvato nella variabile message) e se è tra quelli '
seguito. Dovrà essere qualcosa del tipo: previsti eseguiremo la relativa funzione. Ad
276340267:AAHselgOVrYae5r]edXgsSBIGid01XgO- esempio per alzare il volume il comando è /volup e •
PHc il codice che gestisce questo comando è il seguente:
Adesso dobbiamo permettere al bot di comunicare
con noi attivandolo. Sempre nella casella di ricerca if (!strcmp(message , "/volup"))
dobbiamo rintracciare il nostro bot cercandolo tra- {if (vol<MAX- VOL-STEP VOL) {
- •
mite il soprannome che abbiamo scelto per esso. vol=vol+STEP VOL ;
Una volta aperta la chat, dobbiamo premere Avvia ) else {
come abbiamo fatto per BotFather. Così facendo sa- vol=MAX VOL ;
remo in grado di comunicare con il bot e lui sarà in )

grado di comunicare con noi. setvolume(vol) ;


Ai più attenti tra voi non sarà sfuggito un String ans = F(.Alzo il volume . Livello volume •J ;
importante dettaglio: se per attivare il nostro bot è ans += val ;
stato sufficiente cercarlo e premere avvia, questo FishGram . sendMessage(id , ans . c str()) ;
significa che chiunque può farlo, tuttavia solo chi return true ;
ha creato il bot può modificarne le proprietà tramite )

88 Dicembre 2018 /Gennaio 2019- ELETTRONICA IN


Come vedete in ans viene salvata la risposta che


il bot dovrà restituire e con l'istruzio ne FishGram. Alrijht, a new bot, liow are ""'going to cali
it? Please. c.hoose. a narne for your bot. 1 ~
sendMessage(id, ans.c_str()); viene inviata al mittente.
Good. Now let's choose a u.SernZNne .for yoy.r
REALIZZA ZIONE PRATICA bot, tt mu.5t end in 'bot', Llke t his, fo~
e1ta.mple: TetrisSot-or i:etris_bot.
Passiamo dunque alla costruzio ne dell'alber ello,
soprannome_bot l ~.,
partendo dall'elettr onica e in particolar e dall'unico
Done! Consratulations on your new bot. You
circuito da autocostr uire seguendo la traccia lato will find it at !:elgFM'o!!!!!lsoJ>?nnomc bot,
Ycx. an now add a de.sc~iption, about
rame di cui trovate sul nostro sito web la traccia scc.tion and proiìfe picture for you.r bo~
see /l.elp for alist of comonands, By the way,
rame da cui partire per ricavare la pellicola neces- when you'\Je -flnished çreatin& your cool bot,
ping our Sot Support if you war'lt a better
saria alla fotoincisione. Una volta ottenuta la ba- ..semarne for it , ~ust make sure the bot is
setta, che è a singola ramatura e quindi facilmente fully operntional hefore you do this,

realizzabile anche da chi abbia poca esperienz a di Use this token to access the HTTP Pl'l:
2'1&)402&7:AAllselg011éYaeSW3eHXgsSSIG;do
montagg i elettronici, montate i compone nti richie- lXgOP\ic

sti a partire dalle resistenze e dai diodi 1N4007, da Fora deseription of the Bot API, see this
page: httpS:L/çore.t§ lejrtm.ori/bots/ apj •"'
orientare come mostrato nel piano di montaggi o
visibile in queste pagine, proceden do con i conden-
satori (attenzion e alla polarità degli elettrolitici) e
poi con gli strip femmina che dovranno ospitare le Fig. 3 · Creazione del bot da BotFather.
schede Fishino e DFR0299; queste ultime, per poter
essere innestate dovranno essere dotate di pin-strip
a passo 2,54 mm da inserire dal lato inferiore nelle amplificatore. Completa ta la scheda dovete
piazzole laterali e da stagnare superiorm ente, da assembla re l'albero, che è composto da una sagoma

dove spuntano . ad abete (con in cima la stella) nella quale incastrare
Completa te il montaggi o inserendo e saldando il verticalm ente, ad angolo retto, le due semisago me
plug di alimentaz ione, i quattro connettor i per il ad abete; nell~ intercape dini ricavate nei punti di
collegam ento con cavetti tripolari alle strip di LED intersezio ne delle sagome collocate 3 strip a 12 LED
e il connettor e per l'audio, oltre alla presa jack Neopixel più una strip a 13 LED che deve sporgere
stereo 3,5 mm per la connessio ne a un eventuale in cima per illuminar e la punta a stella.
Le strip si ritagliano da un rotolo da 150 LED (codi-
ce STRIP150LED della Futura Elettronica)
distanzia ti di 33,3 mm l'uno dall'altro ; a tanto
ammonta la distanza tra i piani orizzonta li in ple-
xiglass dell'alber o. Quindi questa distanza non è
casuale ma corrispon de al passo delle strip a LED
utilizzate ed è fatta in modo che la luce emessa da
ciascun LED penetri trasversa lmente i piani in ple-
xiglass.
Una volta assembla to l'albero saldate ai tre contatti
di base di ciascuna strip un cavetto a tre fili termi-
nante con un connettor e femmina volante a passo
2,54 mm che innestere te nella scheda, quest'ulti ma
da fissare al fondo della base dell'alber o insieme
all'altopa rlante, come mostrano le foto del proto-
tipo che vedete in queste pagine e in particolar e la
Fig. 4.
Notate che i piani dell'alber o si introduco no dall'al-
to della struttura a portante (che appare come una
croce) partendo dal più grande, giacché si incastra-
no in virtù del fatto che le sagome sono triangolar i,
quindi larghe alla base e strette in cima; la Fig. 5
Fig. 4 · La scheda elettronica completa di Fishino Guppy chiarisce come avviene l'assembl aggio per incastro.
e del DFR0299 applicata al fondo della base dell'albero.

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 89


• •
Fig. 5
t.:albero applicato alla
sua base, dalla quale

escono i quattro
safdare

Comando Funzione
/ PLAY Riproduce la prima canzone

/PLAYX ] Riproduce la canzone x
/ STOP Ferma la musica
/ VOLUP - A - u-menta il volum_e_
-----'
/ VOLDOWN
/ NEXT
Diminuisce il volume
-
Riproduci la prossima canzone
/ RANDOM Riproduci in maniera casuale la musica
/ RAINBOW
/ GLITIER
- ---
Effetto Arcobaleno
Effetto Arcobaleno con la mpeggio
/ CONFETII Effetto Confetti
/ SIN E Accensione sequenziale
/ JUNGLE Effetto Rimbalzo
--~~--
·; sPM Effetto Scorrevole
Il materiale per realizzare l'albero di Natale Wi-Fi è di-
sponibile presso Futura Elettronica in due kit separati.
Il kit con tutta la parte elettronica (cod. WIFITREEEL),
che contiene la main board, la board Fishino Guppy, il
modulo per MP3, 4 pezzi di strip neopixel, l'altoparlan-
te e i cavi di collegamento è disponibile a Euro 85,00;
il kit che contiene tutte le parti in plexyglass tagliate
al laser, la base stampata in 30 e tutta la minuteria
necessaria all'assemblaggio (cod. WIFITREEST) è in
vendita a Euro 89,00.
L.:alimentatore switching (cod. AL5V2A) che permet-
te di alimentare l'albero costa Euro 8,50. l prezzi sono
comprensivi di IVA.

21013
• •

/play 11 41 .p

Ok. Parte la riproduzione dell'mp3 numero 1

/voi+

Ok. Alzo il votume 1 42


Fig. 7
/glitter 11.42 ..u
l comandi
per l'audio Ok. Effetto Glitter 11 43
e i giochi
di luce, con /next 11 43 ..u
le rispettive
Ok. Riproduco la prossima canzone 1 •3
risposte
generate /play4 1 ht3 #
dal bot.
Ok. Parte la riproduzione dell'mp3 numero 4

/random 11 43 v/

Ok. Riproduco musica random 1 43

/voi+ 111 43 ...u

Ok. Alzo il volume 1 43

1:{! Messaoqio

• fatto ciò lasciate che Fishino Guppy si connetta alla


vostra rete wireless.
Durante la connessione la stella dell'albero sarà
inizialmente rossa, poi gialla e infine, se tutto è an-
dato bene, diventerà verde. A questo punto potete
inviare i comandi con lo smartphone o tablet che
intendete utilizzare per interagire con l'albero.
I comandi utilizzabili sono divisi in due categorie e
corrispondono tutti a messaggi di testo:
• quelli per gestire le animazioni luminose prodot-
te dai LED Neopixel;
• quelli per riprodurre le musiche MP3.

Tutti i comandi sono riepilogati nella Tabella 1


(nella pagina precedente) e devono essere scritti
preceduti dalla barra (slash); già scrivendo la barra,
il nostro bot ci andrà a suggerire i comandi possibili.
La schermata dell'app Telegram durante la chat con
il bot che governa l'albero WiFi è quella proposta
nella Fig. 7: come vedete, abbiamo i comandi im-
partiti che sono contrassegnati dal colore azzurro
perché sono i messaggi che inviamo alla Fishino
Guppy e nel fumetto, in nero, le risposte.
INFORMAZIONI DETTAGLIATE E ISCRIZIONI SU Bene, con questo abbiamo terminato; non ci resta
www.futura.academy che augurarvi buone feste in compagnia del vostro
nuovo Social-albero di Natale!

72 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN



• • o o • o • • • • • • • • • • e • • • • • • • • • • o • • • • • • • • • • • • • • • • • • • • • 0 0
• • • • • • • •
0
• •
0
di MATTE O DE5TRO

ella precedente puntata abbiamo descritto la libre- diamo che la programmazione dei codici PIN e PUK in
ria e le funzioni messe a disposizione dalla stessa. EEPROM non può essere fatta direttamente dall'IDE
Ora presenteremo una serie di sketch attraverso i quali Arduino ma solo con apposito sketch di scrittura dei
vedrete in pratica come funziona la libreria e le sue dati in EEPROM.
potenzialità. Gli sketch implementeranno funzioni tra Ciò detto, iniziamo la descrizione degli sketch dalla
cui ricezione o invio di SMS, chiamate vocali, gestione programmazione in EEPROM dei codici.
di alcuni comandi generici, nonché la scrittura in EE-
PROM dei codici PIN, PUK ecc. PROGRAMMAZIONE EEPROM
La libreria è pensata per svolgere la gran parte del La prima operazione da compiere per utilizzare il
lavoro e lasciare il compito più facile allo sviluppato- GSM Shield è programmare la EEPROM di Arduino
re, che dovrà semplicemente adattare la libreria alle con i codici necessari al corretto funzionamento degli
necessità proprie e delle proprie applicazioni. Ricor- altri sketch.

' •

o •

,.....
1' \
o
o~ •
·o o

'
' f.-i9S ; ... ·

/
nfile "GenericCmd_GSM.h", subito all'inizio del file, &LONG- GEN- PSWD[O]
contiene l'elenco dei dati da memorizzare nella memo-
ria EEPROM. Questo valore viene quindi salvato in un'apposita va-
Allo stato attuale si tratta di una serie di codici numeri- riabile. Nel nostro caso abbiamo definito una struttura
ci che identificano le seguenti voci: dati p er recuperare gli indirizzi di partenza di tutti gli
array usati per le password, la quale è:
• Password generica 1 --? 8 caratteri numerici, spazio
occupato 11 byte (comprende le virgolette e il struct
carattere di chiusura della stringa); {

• Password PH PUK -T caratteri numerici, spazio uint8 t StartAddPinlCode ;


occupato 11 byte; uint8 t StartAddPin2Code ;
• Password PUK2 -T 8 caratteri numerici, spazio uint8 t StartAddPhPi nCode ;
occupato 11 byte; ui nt8 t StartAddPuklCode ;
• Password SIM PUK -T 8 caratteri numerici, spazio uint8 t StartAddPu k2Code ;
occupato 11 byte; uint8 t StartAddPhPukCode ;
• Password generica 2 --? 4 caratteri numerici, spazio uint8 t StartAddShor tPswdCode ;
occupato 7 byte; uint8_t StartAddLongPswdCode ;
• Password PH PIN -T 4 caratteri numerici, spazio ) EepronAdd;
occupato 7 byte;
• Password PIN2 --? 4 caratteri numerici, spazio Di conseguenza, la sintassi da utilizzare per sfruttare
occupato 7 byte; questa'struttura dati sarà:
• Password SIM PIN--? 4 caratteri numerici, spazio
occupato 7 byte. Gsm . EepronAdd . Sta r tAddLongPswdCode =& LONG_GEN_PSWD[O] ;
Gsm . EepronAdd . Sta rtAddPhPukCode =& PH- PUK- CODE[O] ;
Per dire al compilatore che si vuole inserire dei dati in Gsm . EepronAdd . Star t AddPuk2Code =& PUK2_CODE [O l ;
EEPROM si utilizza la seguente sintassi: Gsm . EepronAdd . Star tAddPuklCode =&PUKl_CODE[Ol ;
Gsm . EepronAdd . StartAddShortPswdCode=&SHORT_GEN_PSWD[Ol ;


const uint8- t EEMEM LONG- GEN- PSWD[ll] = " \"1 2345678 \ ""; Gsm . EepronAdd . Sta r tAddPhPinCode =&PH- PIN- CODE[Ol ;
Gsm . EepronAdd . Sta r t AddPin2Code =&PIN2 CODE [O l ;
In pratica abbiamo definito una variabile intera senza Gsm . EepronAdd . St a rtAddPi nlCode =& PI Nl CODE [O l ;
segno (uint8_t) di tipo costante (const) che attraverso
la direttiva "EEMEM" dice al compilatore che i dati Infine, per agevolare questa operazione le righe di
fanno parte della EEPROM. Notare che nell'esempio codice sopra esposte sono state raggruppate in una
riportato non si sta memorizzando una singola varia- funzione di libreria da richiamare durante la sezione di
bile, bensì un array di byte di lunghezza 11 contenente "Setup" dello sketch, in particolare abbiamo:
una password di tipo numerico.
La locazione di memoria da cui iniziare a scrivere i Gsm . EepromStartAddSetup( ) ;
byte sopra definiti viene decisa dal compilatore, a
meno che non venga impostata diversamente da codi- Se tale chiamata a funzione viene omessa il compilato- •

ce e l'indirizzo di partenza di ogni array viene poi re- re non genererà il file .epp ignorando il codice di asse-
cuperato via codice così da permettere l'accesso ai dati gnazione dei dati in EEPROM.
sia in lettura che in scrittura. Ora, come ben sappiamo, lo IDE Arduino programma
ncompilatore genera quindi un file con estensione la sola Flash del microcontrollore presente sulla board
.epp che viene memorizzato nella directory: usata e ignora totalmente la programmazione della EE-

C: \ Docurnents and Set tings\YourUserName \ LocalSettings\


Temp\arduino_build_xxxxxx j: 100 0 0 0 00223436323922 00 223 8 3 8 3 8 3 8 2200 223 55 C
: 1000100035 35352 2002231323 334 22002235 3 43056
La Fig. 1 mostra il contenuto del file .epp generato du- : 100020003934 313 5 3322002 239393939393939 3 9BE
rante la compilazione. : 0003000220022 3 4 3 434343 43 4 3 4 3 4 220022313 23 5
: 0800 4 000333 4 3 5 36373 220055
Ora, per recuperare gli indirizzi di partenza dei diversi
: 0000000 FF
array definiti in EEPROM si deve usare la consueta
sintassi in C: Fig. 1 · File .epp generato durante la compilazione.

74 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


PROM anche se il compilatore ha generato il file .epp. La sezione di setup si conclude e il codice passa al
Detto ciò ci sono due possibilità per programmare la main (void loop()) dove trova posto una sola funzione
EEPROM: la prima è sfruttare il tool a riga di comando che ha lo scopo di leggere i dati in EEPROM:
"avrdude"; la seconda è scrivere uno sketch dedicato ed
è quello che si è deciso di fare per risolvere il problema. Verify_Eepr om() ;
Diamo quindi un'occhiata al semplicissimo sketch
"GSM_SetEeprom" che ha il solo scopo di program- Ora analizziamo velocemente la funzione "Initiali-
mare la EEPROM del microcontrollore. Una volta pro- ze_PIN_PUK_Eeprom()" la quale ha il solo ed unico
grammata potremo scaricare nella Flash delle schede scopo di scrivere i dati in EEPROM. Vediamo quindi la
Arduino i nostri Sketch applicativi per la gestione di sezione di codice per scrivere il codice Pinl (SIM PIN):
SMS, chiamate vocali e altro.
Questo sketch è valido per le schede Arduino Uno, Add = Gsm . EepronAdd . StartAddPi nlCode ;
Arduino Mega 2560 e le schede Fishino corrispondenti. eeprom_wri te_byte ( (uintB_t *)Add++ , Ox22 );
Ricordarsi di selezionare nella libreria la scheda Ardui- eeprom_wr ite_byte((u intB_t *) Add++, ' 4' ) ;
no che si vuole utilizzare. eeprom_wr ite_byte((u intB_t *)Add++, ' 6' ) ;
Cominciamo dalla sezione di setup ovvero "void Se- eeprom_wr ite_byte((u intB_t *)Add++ , ' 2' ) ;
tup()"; la prima cosa da fare è richiamare la funzione eeprom_wri te_byte((ui ntB_t *)Add++ , ' 9' ) ;
per recuperare gli indirizzi di partenza in EEPROM eeprom_wri te_byte ( (uintB_t *)Add++ , Ox22) ;
in cui sono memorizzate le password, quindi si deve eeprom_wri te_byte ( (ui ntB_t *)Add, OxOO) ;
richiamare la funzione:
Per prima cosa carichiamo nella variabile puntatore
Gsm . EepromStar tAddSetup() ; "Add" l'indirizzo di partenza in EEPROM da dove
iniziare a scrivere i dati. In questo caso l'indirizzo di
Dopodiché si richiama la funzione di programmazione partenza riguarda il codice del PIN1. Seguono sette
della EEPROM ovvero: scritture e ad ogni scrittura il puntatore viene incre-

mentato di uno puntando alla locazione di memoria
Initialize_PI N_PUK_Eep rom() ; successiva. n primo valore memorizzato e il penultimo

sono le virgolette. Infatti i codici PIN, PUK ecc solita-
Infine si attende un tempo di 500ms e poi si in.izi ......"" mente sono sempre racchiusi tra virgolette. Conclude
la UART a cui è collegato il monitor seriale in modo da la stringa il carattere di chiusura OxOO. Questa sintassi
verificare che la EEPROM sia stata effettivamente pro- viene replicata per tutti i codici da salvare in EEPROM.
grammata con i dati desiderati. Per inizializzare la UART Adesso analizziamo la funzione di verifica dei codici
di debug si deve richiamare la funzione di libreria: (Verify_Eeprom()) la quale, come accennato prima,
ogni 15 secondi stampa sul monitor seriale i dati me-
Gsm . EnableDisa bleDebugS erial(true , BAUD_l15200) ; morizzati in EEPROM. Come prima analizziamo solo
una porzione di codice:
Questa attiva la UART e la inizializza alla velocità di
115200 Baud. Infine attiviamo gli interrupt di libreria Add = Gsm . EepronAdd . StartAddPin lCode ;
ovvero il TIMER1 per la base dei tempi e l'interrupt sprintf (AddressBuf fer l "0x %04X" l Add) ;
esterno INTO o INT4 a seconda che si usi Arduino Uno serial .print ("Address : "! ;
o Arduino Mega (in questo sketch l'interrupt esterno Serial .print (AddressBuf fer) ;
non viene usato). serial . print (" - > PINl = "! ;
Serial . print(cha r(eeprom_r ead_byte((u intB_t *)Add++))) ;
Isr . EnableLibi nterrupt() ; Serial . print(char( eeprom_rea d_byte((uin tB_t *)Add++))) ;
Serial . print(char (eeprom_re ad_byte((ui n tB_t *)Add++))) ;
Si attendono altri 500ms e infine si carica una variabile Serial . print(char (eeprom_read_byte (( uintB_t *)Add++ ))) ;
temporale con un tempo di 15 secondi. Tutte le volte Se rial . print (char (eeprom_rea d_byte ((u i ntB_t ~ )Add++ )));

che questo timeout scade il sistema provvede ad ese- Serial . print(char( eeprom_rea d_byte((uin tB_t *)Add++ ))) ;
guire una lettura in EEPROM dei dati memorizzati e li Serial . print( " \n ") ;
invia sul monitor seriale affinché l'utente possa verifi.-
carne la correttezza. Per prima cosa recuperiamo l'indirizzo ~el codice PIN
l, stampiamo a video la stringa che identifica cosa
Isr . TimeOutWait =T 15SEC; abbiamo letto e il suo indirizzo di partenza e infine il
-

ELETTRONICA IN - Dicembre 2018/ Gennaio 2019 75

l

contenuto della EEPROM. La Fig. 2 evidenzia quanto merito ai comandi AT inviatogli. Seguono una serie di
letto dalla memoria, dal PIN1 alla password generica stringhe, tutte memorizzate nella memoria Flash del
da 4 caratteri. Questi dati vengono stampati a video rnicrocontrollore, necessarie durante la stampa a moni-
una volta ogni 15 secondi. tor delle risposte in modo da rendere evidente di cosa
Un ultima curiosità riguarda la gestione della variabile si sta parlando.
temporale "Isr.TimeOutWaif' usata in questo sketch Iniziamo come al solito la trattazione dalla sezione di
per decidere ogni quanto stampare i dati letti. Alla Setup (void setup()) nella quale dobbiamo inizializzare
base di tutto ciò c'è il TIMERl gestito e configurato la libreria affinché possa svolgere alle sue funzioni.
dalla nostra libreria il quale genera un interrupt stabile Come già fatto nel precedente sketch dobbiamo prima
ogni 2 rns. Questo tempo viene detto base dei tempi di tutto richiamare la funzione:
e identifica la risoluzione che possono avere le nostre
variabili temporali usate dalla libreria (±2 rns). Gsm . EepromStartAddSetup( ); •

Ora per il nostro sketch abbiamo bisogno di un tempo


di 15 secondi quindi il valore da caricare nella variabile Questa inizializza la struttura dati con i puntatori
sarà pari a 7.500, tale valore viene decrementato di in memoria per il recupero delle password salvate
un'unità ogni qual volta scatta l'interrupt. Quando la in EEPROM, seguono quattro funzioni necessarie a
variabile giunge a zero significa che sono passati 15 inizializzare e testare gli I/O della scheda Arduino in
secondi. A questo punto lo sketch stampa a video e uso. Ricordiamo che l'hardware della shield prevede
ricarica la variabile. una serie di led collegati agli I/O delle schede Ardu-
ino utili sia per il debug del codice (Trigger) sia per
• SKETCH INVIO COMANDI GENERICI: evidenziare degli eventi significativi come la ricezione
Commentiamo ora lo sketch "GSM GenericCommand" di un SMS o altro (l'utente ha la piena libertà nella
il quale mostra come utilizzare una serie di comandi gestione di questi LED a seconda dell'applicazione che
base implementati nella libreria. Questo sketch è com- sta realizzando. La libreria mette a disposizione delle •
patibile con le schede Arduino Uno, Arduino Mega opportune funzioni per il loro corretto utilizzo). Quin-
2560 e le schede Fishino omonime. Ricordarsi di sele- di abbiamo:
zionare nella libreria la scheda Arduino che si vuole
utilizzare. Io . SetOutputTrigger() ;
Lo sketch è formato da un unico file e in testa ad esso Io . SetOutputLed() ;
troviamo una serie di dichiarazioni in merito alle mac- Io . CheckOutputTrigger() ;
chine a stati realizzate per la gestione dei vari task, una Io . CheckOutputLed() ;
per l'invio dei comandi e una per la stampa su moni-
tor seriale delle risposte ricevute dal modulo GSM in La prima funzione serve per inizializzare gli I/ O di
- trigger e la seconda inizializza gli I/O con i LED di
diagnostica (solo Arduino Mega 2560). Le ultime due
Address : OxOOOO - > PIN1 = "4629" funzioni servono per testare gli I/O appena configura-
Address : Ox001C - > PUKl = "54094153" ti, accendendo e spegnendo in sequenza i vari LED per
Address: Ox0007 - > PIN2 = "8888" verificare se funzionano allo start-up.
Address: Ox0027 - > PUK2 = "99999999" npasso successivo prevede l'abilitazione della seriale
Address: OxOOOE - > PH PIN
- = "5555" di debug per la stampa a monitor delle risposte ricevu-
Address : Dx0032 - > PH PUK = "44444444" te dal modulo GSM; notate che il codice per stampare a
Address: Ox003 - > LONG PASSWORD = "12345678"
= "1234"
monitor non fa parte della libreria, ma in questo sketch
Address: Dx0015 - > SHORT PASSWORD
abbiamo scritto un'apposita funzione per adempiere
a tale compito (ricordate le stringhe salvate nella Flash
Address: OxOOOO - > PINl = "4629" spiegate poco fa).
Address: OxOOlC - > PUKl = "54094153" La seriale viene configurata a una velocità di 115200
Address: Ox0007 - > PIN2 = "8888" Baud:
Address : Dx0027 - > PUK2 = "99999999"
Address: DxDDOE - > PH- PIN = "5555" Gsm . EnableDisableDebugS erial(true , BAUD 115200) ;
Address: Ox0032 - > PH PUK = "44444444"
Address: Dx003D - > LONG PASSWORD = "12345678"
Le altre velocità possibili sono: BAUD_2 4oo, BAUD_4so o,
Address: Ox0015 - > SHORT PASSWORD = "1234"
BAUD_9600 , BAUD_ l9200 , BAUD_38400 , BAUD_57600 .
Fig. 2 · Lettura della memoria EEPROM. Volendo si può impostare anche: BAUD_2304oo ,

78 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


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

BAUD- 250000 , BAUD- 500000 , BAUD- 1000000 . #endif


Quelle elencate sono tutte delle costanti definite in }

libreria, da passare come parametro alla funzione. Al


passo successivo abilitiamo gli interrupt: La prima riga richiama la funzione che gestisce la mac-
china a stati di invio e ricezione dati tramite la seriale
Isr . EnableLibinterrupt( ) ; (hardware/software). La gestione della comunicazione
seriale necessita di tre stati:
e si imposta la seriale di comunicazione l (UART l) - IDLE, dove il sistema rimane in attesa di inviare un
verso il modulo GSM: comando AT al modulo GSM;
- SEND, necessaria per inviare il comando AT al modu-
Gsm . SetBaudRateUartl(true , BAUD 19200) ; lo;
- WAIT, dove si rimane in attesa di una risposta da par-
Quest'ultima può essere di tipo hardware o software a te del modulo GSM; questa funzione serve sia durante
seconda della configurazione fatta nel file "IO_GSM.h" l'inizializzazione del modulo sia durante l'invio dei
e dall'impostazione data ai jumper presenti sulla comandi AT a regime.
shield. Se si utilizza una seriale software si consiglia
di non superare la velocità di 38.400 Baud, meglio se Immediatamente c'è il codice condizionale con cui
19.200 Baud. Se invece si usa la seriale hardware, si il sistema verifica se è in corso l'inizializzazione del
può tranquillamente impostare velocità fino a 115.200 modulo GSM (Flag Gsm . GsmFlag . Bi t . Gsmini tinProgress a
Baud. Quindi si esegue una pulizia dei buffer usati per "l" logico) oppure l'invio di comandi AT generici (Flag
la comunicazione seriale per poi dare inizio all'inizia- Gsm . GsmFlag . Bit . GsminitinProgress a "Q" logico).
lizzazione del modulo GSM inviando in sequenza il Quando il suddetto flag è a livello "l" vengono chia-
comando di accensione del modulo e l'inizializzazione mate le due funzioni per la gestione della macchina
della macchina a stati per la gestione dell'UART: a stati per l'invio dei comandi AT necessari a settare
il modulo GSM; la stessa macchina allinea la velocità
Gsm . InitPowerON GSM() ; della UART impostata dall'utente con quella del GSM
Gsm . UartFlag . Bit . EnableUartSM = O; se le due sono differenti.
, Gsm . ExecuteUartState() ; Durante l'inizializzazione il sistema verifica anche
Gsm . UartFlag . Bit . EnableUartSM = l ; l'eventualità di inviare il codice PIN alla SIM nel caso
questo sia abilitato. ncodice si trova memorizzato

Con le righe di codice appena descritte si conclude la nella memoria EEPROM come spiegato nel precedente
sezione di setup dello sketch. Eseguite queste ultime il sketch e il puntatore ad esso è stato recuperato con la
codice passa al main, ovvero il consueto "void loop()", prima riga di codice di inizializzazione.
nel quale ritroviamo il codice di gestione delle mac- Nella seconda parte del codice condizionale c'è la fun-
chine a stati per l'inizializzazione del modulo GSM e zione indispensabile per la decodifica delle risposte
dell'invio dei comandi AT a regime. ncodice che se- ricevute dal modulo (Gsm . GsmAnswerSt ateProcess O). Que-
gue è utiHzzabile in tutte le applicazioni in cui si fa uso sta è affiancata da altre due funzioni che si occupano
della nostra libreria e rappresenta la base di partenza. di intercettare eventuali dati inviati in autonomia dal
Quindi abbiamo: modulo GSM i quali potrebbero contenere informazio-
ni utili come ad esempio gli "Unsolicited Code" (Gsm.
Gsm . ExecuteUartState( ) ; Uart Continuous l yRead () e Gsm . Process UnsolicìtedCode () ) .
if (Gsm . GsmFlag . Bit . GsminitinProgress == l) { Allo stato attuale sono gestiti i seguenti: CRING, Pho-
Gsm . InitGsmSendCmd() ; nic Call e CREG.
Gsm . InitGsmWaitAnswer() ; Per ultimo abbiamo inserito anche la gestione di uno
} else { dei LED di diagnostica usati per evidenziare che il
Gsm . Uart ContinuouslyRead( ) ; sistema è uscito dalla condizione di inizializzazione
Gsm . ProcessUnsolicitedCode () ; ed è ormai a regime. A seconda della scheda Arduino
Gsm . GsmAnswerStateProcess () ; scelta si utilizzerà il LED 9 (Arduino Mega) o il trigger
#ifdef ARDUINO- UNO- REV3 2 (Arduino Uno).
Io . LedBlink(TRIGGER 2, 25 , T 2SEC) ; Durante l'inizializzazione, per evidenziare questa con-
#endif dizione si fa lampeggiare il LED collegato al trigger 3.
#ifdef ARDUINO- MEGA2560 - REV3 nblocco condizionale appena descritto è indispensabi-
Io . LedBlink(PIN LED9 , 25 , T 2SEC) ; le per il corretto utilizzo della nostra libreria di gestio-

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 77



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





• •
; #INCLUDE <AVR/ EEPROM . H> •


: #INCLUDE " UART GSM . H" •
- •
ne dei moduli GSM supportati. ;• #INCLUDE " IO- GSM . H"




:• #INCLUDE " I SR GSM . H"
Fuori dal codice condizionale trovano posto tutte le "GENERICCMD GSM . H"



: #INCLUDE - •

funzioni necessarie alla realizzazione dell'applicazione •


; #INCLUDE " SECURITYCMD- GSM . H"



in esame e svincolate dalla nostra libreria: ad esempio ;• #INCLUDE " PHONEBOOKCMD- GSM . H" •


;• #INCLUDE " SMSCMD GSM . H" •
quella per inviare dei comandi AT base in sequenza ; #INCLUDE " PHONI CCALLCMD- GSM . H"





perpetua (senct_AT_Cmcto ) e la stampa su monitor delle •
: #INCLUDE "GPRSCMD GSM . H" •




risposte ricevute dal modulo GSM (PrintDataReceived () ). •
: SECURITYCMD_GSM SECURITY ;



Ad ogni invio di un comando il sistema registra la ;• PHONEBOOKCMD GSM PHONEBOOK ;





.: SMSCMD- GSM SMS ; •


risposta ottenuta e la rende disponibile all'utente. In ; PHONICCALLCMD GSM PHONICCALL ;




particolare abbiamo la verifica della registraZione •
; ISR GSM ISR ; •



del modulo GSM alla cella tramite proprio operato- : IO_GSM IO ; •

: GPRSCMD GSM GPRS ; •

re (AT +CREG?), verifica della potenza del segnale •









GSM (AT+CSQ), stato del modulo GSM (AT +CPAS), .: CONST CHAR SMS - PHONE - NUMBER[ l PROGMEM
" \ " +3934900\ "" ; = •



: CONST CHAR SMS TEXT [l PROGMEM = " HELLO WORLD" ;
verifica dell'operatore (AT +COPS?), identificazione •






del costruttore (AT +GMI), identificazione modello ;• #DEFINE TRUE O



(AT+GMM), revisione software caricata (AT +GMR), : #DEFINE FALSE l •



• •
• •

numero seriale del prodotto (AT+GSN) e infine lettura •
; TYPEDEF VOI D STATE ;



di data e ora dal real time dock presente sul modulo : TYPEDEF STATE (*PSTATE) () ; •


;• // STATES MACHINE USED TO MANAGE THE INPUTS (P3 AND P4) •
GSM (AT+CLCK?). Di seguito quanto viene stampato :• PSTATE INPUT MANAGEMENT ;




sul monitor seriale a seguito della risposta ricevuta ai •






; BOOLEAN SENDSMS ;
comandi AT inviati, ovvero le risposte ricevute e total- •






mente decodificate. .; UINT8 - T DEBOUNCINGTI MEOUT ; //DEBOUNCING

TIMEOUT




;• UINT16 T TI MEOUTP3 ; //TIMEOUT TO MANAGE P3 •


:. UINT8 - T P3 - BUTTON = 9; //INPUT BUTTON P3 •
============ CPIN ============ •


; UINT8 T P4 BUTTON = lO ; //INPUT BUTTON P4
SIM OK •

- - •


============ CREG ============ • •

Registered , home network :• UNION DIGINPUTSTATUS { •



• •
Location area : "0065 " •

UINT8 - T INPUT ; •

• •
Cell ID : " 16F3" • STRUCT { •

============ CSQ ============



• UINT8 - T P3 - BUTTON •• l ; Il BIT o •

• • •
Rssi : 11


UINT8 - T P4 - BUTTON •• l ; Il BIT l •

•• •

Ber : O •
UINT8 T FREE •
• 6; •

• •
) IN ; •
============ CPAS ============ •
• •

• ) DIGINPUTSTATUS ;


Ready (MT allows commands from TA/TE) • •


============ COPS ============ •


Automatic mode ; <oper> field is ignored ; UNION DIGINPUTREADED { •



• •

Long format alphanumeric <oper> ; up to 16 characters ·• UINT8 T I NPUT ; •




Operator name : " TELECOM ITALIA :• STRUCT { •


============ GMI ============ :• UINT8 T P3 BUTTON : l ; l l BIT 0 •

Manufacturer Identification : SIMCOM Ltd : UINT8 - T P4 BUTTON : l ; l l BIT l •




============ GMM ============ •



UINT8 T FREE : 6; •

• •

TA Mode l Identification : SIMCOM SIM800C : ) IN ; •



============ GMR ============ :• ) DIGINPUTREADED ; •




TA Revision Identification of Software Release : : UINT8 T DIG I NPUTVAR; •

• •

Revision : l418B04SIM800C32 - BT • ••

============ GSN ============ : VOID SETUP () { •



TA Serial Number Ident ification (IMEI) : 866104027073389 :• / / MANAGE THE DIGITAL INPUTS (P3 AND P4 ) •

INPUT MANAGEMENT = INPUT - I DLE ;
• •
•• •
============ CCLK ============ •
- •


Date : 01/01/04 •
• •

Time : 00 : 10 : 40

• GSM . PSWDEEPROMSTARTADDSETUP() ; •


GMT : O


SETUPTIMER5{) ; //INITIALIZE TIMER 5 •

• •

-------------------- ---------- •

SETINPUTPI N{) ; •





IO . SETOUTPUTLED() ; //SETS I/O LEDS •



• IO . SETOUTPUTTRIGGER() ; //SETS I/0 TRIGGERS •

In questo modo si rendono le risposte più leggibili. •



• IO . CHECKOUTPUTLED( ) ; //CHECKS I/0 OUT PUT (LEDS )



• •

Tutte le stringhe stampate sul monitor seriale sono •




IO . CHECKOUTPUTTRIGGER () ; // CHECKS I/0 OUT PUT •


• •
memorizzate nella Flash del microcontrollore e non •

• GSM . ENABLEDISABLEDEBUGSERIAL(TRUE , BAUD 115200) ;

..

• •

occupano spazio nella SRAM. •




ISR . ENABLELIBINTERRUPT () ; //ENABLES INTERRUPT •



• GSM . SETBAUDRATEUARTl(TRUE , BAUD 19200) ;
I comandi AT di cui sopra vengono inviati a di- •

• GSM . CLEARBUFFER ( ) ; //CLEAR LIBRARY UART BUFFER ••



stanza di 1 secondo uno dall'altro e a gestire la •





• •

sequenza di invio pensa una macchina a stati •



GSM. I NI TPOWERON GSM() ; //START GSM IN I TIALIZATION ••


• •

realizzata con il consueto costrutto "switch" (fun- •• • • • • • • • • • • • • • • • o ••• o • • • • • • • • • • • • • • • • • • • • • • • •• o • • • • • • • • • • • • • • • • • • • ~ • • • • • • • • • • • • • • • • • • • •


zione voi d Send_ AT_ Cmd (void) "). Anche la funzione


11
(Continua)

78 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


• •


Listato 1->s'egue •
• •
• •
• •

• GSM . UARTFLAG.BIT . ENABLEUARTSM = 0; •

• •


GSM . EXECUTEUARTSTATE () ; •

che si occupa di stampare a monitor le informa- •


GS M. UARTFLAG . BIT. ENABLEUARTSM = l ; •


• •
zione estrapolate lavora sfruttando una macchina •

DELAY(500) ; •


• ISR . TIMEOUTWAIT = T 15SEC; •

a stati con medesimo costrutto (funzione "void •

• SENDSMS = TRUE ;


PrintDataReceived(void)"). :}






• •
: VOID LOOP () { •

• •
SKETCH GESTIONE SMS E CHIAMATA VOCALE •


GSM . EXECUTEUARTSTATE ( ) ; •


Nel Listato 1 trovate lo sketch "GSM_SmsOnly"

• IF (GSM . GSMFLAG. BIT . GSMINITI NPROGRESS == l) { •

• •

• GSM . INITGSMSENDCMD() ; •

in grado di gestire gli SMS. Si tratta un uno sketch •


GSM . INITGSMWAITANSWER() ; •

molto semplice e dedicato a questa specifica funzio- :• } ELSE { •




• •
• •
ne. Lo sketch "GSM_Sms_PhonicCall" (che trove- •

• GSM . UARTCONTINUOUSLYREAD() ;



• •
rete tra i numerosi esempi della libreria) ci permette •


GSM . PROCESSUNSOLICITEDCODE() ; •


• GSM . GSMANSWERSTATEPROCESS ( ) ; •
invece di provare alcune funzioni base riguardanti •





• •
l'invio/ricezione degli SMS e la possibilità di •


IF (SENDSMS == TRUE ) { •



SENDSMS = FALSE ; •
effettuare una chiamata vocale verso un numero di •

• GSM . READSTRINGFLASH{(UINT8 T *) SMS _ PHONE_ NUMBER , :

cellulare fisso, memorizzato nella Flash, oppure di



• - •


(UI NTS_T *)PHONEBOOK. PHONENUMBER , •

• •
chiamare un numero di telefono qualsiasi tramite •

STRLEN(SMS- PHONE - NUMBER)} ; •


• GSM . READSTRINGFLASH((UINT8_T *)SMS_TEXT , ••
apposita stringa di comando inviata da monitor •

• (U I NTS_T *)SMS . SMSTEXT , STRLEN(SMS_TEXT) );



• •
seriale. •
• SMS . SETCMD- AT- CMGS ( ) ; •


• } •

Questo sketch è compatibile con le schede Arduino •

• IO . LEDBLINK(PIN LED9 , 25 , T_lSEC) ;



• •
Mega 2560 e Fishino Mega. Ricordatevi di selezio- :• } •


• •
nare nella libreria la scheda Arduino che si vuole •

• DEBOUNCINGINPUT() ; / / DEBOUNCING {P3 ANO P4)



• •
utilizzare. •


INPUT MANAGEMENT() ; / /MANAGE DIGITAL INPUT •


Questo sketch è composto da quattro file: :• ) •


• •
• •
• file "GSM- Sms- PhonicCall" contenente tutte le •
• • • • • • • • • • •••• o • • • • • • • • • • • • • • • • • o • • • • • o • • • • • • • o • • • • • • • • • • • • • • • • o • • • • • • • • • • • • • • • • • • • • • •
••

dichiarazioni di variabili e costanti usate nello


sketch nonché le funzioni base usate per gestire uscite ovvero i LED di trigger e diagnostica:
l'applicazione;
• . • file "Digitallnput" contenente le funzioni per la SetinputPi n() ;
gestione• dei pulsanti P3 e P4 dello shield (de- SetOutpu t Pi n () ;
bouncing pulsanti e codice per attivazione fun-
zioni di invio SMS o attivazione chiamata vocale Le restanti righe di inizializzazione sono identiche al
a numero di rete fissa memorizzato in Flash); precedente sketch, anche la seriale di debug, nonché
• file "DigitalOutput" contenente la funzioni di quella di comunicazione verso il modulo GSM sono
gestione degli I/O configurati come uscite (Trig- configurate nello stesso modo ovvero 115.200 Baud per
ger e LED); la prima e 19.200 Baud per la seconda.
• file "Timerlnt" contenente il codice di configura- Procediamo analizzando la funzione di main (void
zione e gestione del Timer5 usato come base dei loop()) nella quale ritroviamo una serie di funzioni che
tempi per questo sketch. vengono richiamate in sequenza all'infinito.
Le prime due funzioni gestiscono i pulsanti P3 e P4:
Cominciamo la trattazione dal file "GSM_Sms_Pho-
nicCall" il quale vede in testa al file la configurazio- Debouncingi nput ();
ne delle variabili e delle costanti usate nello sketch. I nput_Management() ;
Tutte le stringhe usate sono memorizzate in Flash.
Nella sezione di Setup (void setup()) ritroviamo le La prima si occupa di intercettare la pressione dei tasti
funzioni di inizializzazione già discusse nel prece- P3 e P4 ai quali applica un debouncing di 50 ms. In que-
dente sketch con l'aggiunta dell'inizializzazion e del sto sketch, il tempo di debouncing è impostato a 50 ms
Timer 5 usato come base dei tempi: ma è possibile aumentarlo o diminuirlo a seconda delle
necessità. Tutto sta nel caricare la costante di tempo vo-
Set upTimer5 () ; luta nella variabile temporale "DebouncingTimeOut".
La seconda serve per gestire la macchina a stati riguar-
cui seguono le due funzioni di inizializzazione de- dante le funzioni correlate a P3 e P4. Se il pulsante P3
gli ingressi per la gestione dei pulsanti P3 e P4 non- è premuto per più di 3 secondi viene inviato un SMS
ché l'inizializzazione degli I/O configurati come

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 79 •

l
-

a un numero di telefono memorizzato in Flash; se P4 è are you?" al numero di telefono "+393490000000"; il


premuto per lo stesso tempo parte una chiamata vocale comando stringa da usare sarà il seguente:
verso un numero di telefono in Flash. A queste funzioni
appena descritte segue: CmdSms : "+393490000000"#How are you?
Pr ocessStateM a·chineGsm() ;
La stringa "CmdSms:" identifica che si vuole inviare
Qui trova posto il codice di gestione della comuni- un SMS, segue il numero di telefono che deve sempre
cazione seriale verso il modulo GSM con il consueto comprendere le virgolette e infine la stringa di testo
codice condizionale che discrimina se si sta eseguendo che si vuole inviare.
una inizializzazione del modulo GSM o un invio di Tra il numero di telefono e la stringa di testo deve
comando AT a regime. essere sempre presente il separatore "#".Se la stringa
Questo codice è identico a quello usato nel precedente di comando è corretta il sistema stampa a video la se-
sketch tranne per la gestione dei led che dipende ov- guente stringa"# Command received by user---+ CmdSms:
viamente dall'applicazione. A questo punto seguono ........... " dove al posto dei puntini c'è il numero di tele-
tutte le funzioni riguardanti l'applicazione in essere, in fono e la stringa dello SMS che si sta inviando. Subito
particolare abbiamo: dopo avere ricevuto il comando il sistema darà inizio
all'invio dello SMS tramite il comando AT +CMGS. Se
ProcessSeri alCmd() ; la spia seriale è attiva si vedrà il comando AT passare
ProcessUser AtCmd() ; sulla seriale con la relativa risposta.
ProcessGene ricAtCmd() ; Se invece si vuole eseguire una chiamata vocale verso
un numero di telefono a piacere il comando da inviare
La prima serve per interpretare i comandi stringa in- sarà: •

viati dal monitor seriale. Infatti tramite il monitor seria-



le è possibile dire all'applicazione a chi inviare un SMS CmdCall : +393490000000
generico, specificandone anche il contenuto, nonché
decidere a quale numero inoltrare una chiamata vocale In questo caso, oltre alla stringa di comando differente,

genenca. si ha che il solo parametro da passare è il numero di
Ma vediamo meglio come fare: supponiamo di voler telefono che diversamente da prima non deve essere •

inviare un SMS contenente la stringa di testo "How racchiuso tra virgolette. Anche in questo caso il siste-
ma risponderà con una stringa di testo ad indicare che
il comando è stato recepito e subito dopo inizierà la
chiamata vocale tramite il comando ATD.
In entrambi i casi, invio SMS o chiamata vocale, il nu-
mero di telefono viene salvato in una variabile di li-
breria chiamata "PhoneBook.PhoneNumber". Per quanto
riguarda lo SMS il testo dello stesso viene caricato nella
· variabile di libreria "Sms.SmsText". Entrambi sono
degli array di lunghezza opportuna.
Infine esiste una stringa di comando per cancellare
tutti gli SMS ricevuti, in questo caso la sintassi del co-
mando sarà:

CmdEraseSms :

Senza nessun parametro aggiuntivo.


Una volta recepito il comando
il sistema inizierà un loop di
cancellazione degli SMS dalle
celle di memoria della
SlM a partire dalla cella
l fino alla cella 30. nco-
mando di cancellazione
è AT+CMGD a cui va

80 Dicembre 2018 /G ennaio 2019 - ELETTRONICA IN




passato il numero della cella da cancellare. Nel caso stringa di comando " Led7otl ' si vedrà spegnersi il LED
in cui si invia una stringa di comando errata il sistema 7. Invece la stringa " Led7Blink" farà lampeggiare il LED
ritornerà la stringa di errore: 7 per 3 secondi. nlampeggia avrà un periodo di 250
millisecondi con duty-cycle del50°/o. Le stringhe di
# Comrnand syntax error . Retry comando devono essere inviate singolarmente rispet-
tando le maiuscole e le minuscole in quanto il codice è
Questa è l'ultima stringa di comando inviabile da mo- "case sensitive".
nitor seriale. Nel caso in cui fosse necessario è possibile Per concludere, di seguito riportiamo le costanti strin-
aggiungere nuove stringhe di comando aggiungendo ga salvate nella memoria Flash che identificano rispet-
il relativo codice. tivamente il numero di telefono che si vuole usare per
Passiamo ora ad analizzare la funzione " Processuse- inviare lo SMS, il testo da utilizzare e infine il numero
rAtCmd () "la quale contiene il codice per l'invio dei di telefono che si vuole usare per la chiamata vocale
comandi AT usati nell'applicazione. ncodice, tramite (pulsante P3 per invio SMS e pulsante P4 per chiamata
un costrutto "switch" discrimina se deve inviare un vocale come descritto prima).
SMS o fare una chiamata vocale e tale azione viene
selezionata dai pulsanti P3 e P4. Quindi pressione del // ----------------------------------------------------
-------------------------------------------------- -
const char SMS_PHONE_NUMBER[) PROGMEM = "\"+3934900\'"';
pulsante P3 per più di 3 secondi attiva l'azione di invio con st char SMS_TEXT[] PROGMEM = "FuturaGroup GSM L i brary
SMS (l'SMS conterrà la stringa di testo: " Fut u raGroup R.l. O.";
const char CALL_ PHONE_NUMBER[] PROGMEM = " +3934900 ";
GSM Library R. l . O. la quale è memorizzata in Flash. n
11

//====================================================
numero di telefono a cui sarà inviato lo SMS è anch'es-
so memorizzato in Flash. Guardando il codice è il nu- Come si può notare il numero di telefono per l'invio
mero comprendente anche le virgolette). Se invece si dello SMS deve essere sempre racchiuso tra virgolette
preme il pulsante P4 per più di 3 secondi si attiverà la mentre il numero di telefono per la chiamata vocale
chiamata vocale verso un numero di telefono sempre no. ntesto da abbinare allo SMS deve avere lunghezza
memorizzato in Flash (questa volta se~a virgolette). massima di 160 caratteri.
Per chiudere una chiamata vocale in corso premere
nuovamente il pulsante P4, basta un tocco senza pres- SKETCH GESTIONE COMANDI DI SICUREZZA
, sione prolungata. E RUBRICA TELEFONO
. la funz.10ne ProcessGenericAtCmd () la qua-
Infme Il "
Lo sketch "GSM_Security_PhoneBook" ci permette di
le, come il precedente sketch, prevede una serie di testare una serie di comandi inerenti la sicurezza e la
comandi AT da inviare in ciclo continuo al modulo gestione della rubrica telefonica. Oltre a ciò abbiamo
GSM. In questo sketch abbiamo i seguenti comandi: mantenuto la possibilità di gestire una chiamata vocale
stato del modulo GSM (AT+CPAS), verifica della in uscita. Anche in questo caso lo sketch è composto da
potenza del segnale GSM (AT+CSQ), verifica della più file distinti, come fatto nel precedente, di cui abbia-
registrazione del modulo GSM alla cella tramite pro- mo già dato una sommaria descrizione.
prio operatore (AT+CREG?), verifica necessità codice In questo caso l'unica differenza sta nel file "GSM_Se-
pin (AT+CPIN?), verifica dell'operatore (AT+COPS?), curity_PhoneBook" il quale deve gestire dei coman-
lettura dello SMS ricevuto (AT+CMGR) solo nel caso di AT differenti rispetto al precedente sketch. nfile
di intercettazione di un "Unsolicited Code", cancella- "GSM_Security_PhoneBook", come del resto il prece-
zione dello SMS ricevuto (AT+CMGD) e se richiesto dente, vede in testa una serie di dichiarazioni di varia-
tramite stringa di comando cancellazione di tutti gli bili e costanti. Le costanti possono essere di tipo stringa
SMS ricevuti (AT+CMGD). (salvate in FLASH, identificano il testo da visualizzare
Come ultima funzione è rimasta ProcessSmsRecei ved () ; sul monitor seriale o i comandi stringa da inviare sem-
Questa, dato un SMS ricevuto, ha il compito di proces- pre da monitor seriale), sia delle costanti numeriche
sarlo e se contiene delle stringhe di comando valide (identificano gli stati delle macchine a stati usate nello
esegue dei comandi prestabiliti. ntesto dello SMS sketch). Oltre a ciò sono anche definite le variabili glo-
ricevuto si trova nella variabile di libreria " sms • smsText". bali usate in questo sketch. ·
Nel caso dello sketch i comandi possono agire sul solo La sezione di Setup (void setup()) ritrova una serie di
LED 7, presente sulla shield GSM, ed eseguire le se- funzioni di inizializzazione necessarie alla configura-
guenti: accendere il LED 7, spegnere il LED 7 oppure zione della libreria, come si può osservare si richiama-
fare lampeggiare il LED 7 per 3 secondi. no le medesime funzioni già usate nel precedente. An-
Quindi inviando un SMS con la dicitura " Led7on" si che in questo caso il monitor seriale è impostato a una
vedrà accendersi il LED 7, viceversa se si invierà la velocità di 115.200 Baud e la seriale di comunicazione

ELETTRONICA IN - Dicembre 2018 / Gennaio 2019 81 •


• •

verso il modulo GSM a 19.200 Baud. la possibilità di inoltrare una chiamata vocale verso un
Analizziamo ora la ftllzione main (void loop()) nella numero di telefono qualsiasi. La stringa di comando è
quale ritroviamo una serie di funzioni che vengono ri- la stessa, quindi vi invitiamo a rileggere la descrizione
chiamate in sequenza all'infinito. Come nel precedente del precedente sketch.
abbiamo due funzioni per la gestione del debouncing Per quanto riguarda le nuove stringhe di comando
dei due pulsanti P3 e P4 dove in questo caso si usa solo partiamo dalla gestione del comando AT+CLCK per
il pulsante P4 per innescare la chiamata vocale a un eseguire illock/unlock di alcuni servizi messi a dispo-
numero di telefono salvato nella memoria Flash: sizione dal modulo GSM.
Le stringhe di comando disponibili sono:
Debouncing input() ;
Input_Management() ; CmdFacLock : <fac code>
CmdFacUnLock : <fac code>
Alle funzioni appena descritte segue questa: CmdFacCheck : <fac code>

ProcessState MachineGsm () ; La prima serve per mettere il blocco (Lock) a un ser-


vizio, per funzionare il comando stringa richiede un
dove si trova il codice di gestione della comunicazione codice che identifica il servizio su cui si vuole agire. •

seriale verso il modulo GSM con il consueto codice La Tabella l espone la corrispondenza tra codice e
condizionale che discrimina se si sta eseguendo una servizio. ncodice inviato verrà poi passato come para-
inizializzazione del modulo GSM o un invio di coman- metro alla funzione di libreria per l'invio del comando
do AT a regime. Questo codice è identico a quello del AT +CLCK. ncomando AT +CLCK prevede anche una
precedente sketch tranne per la gestione dei LED, che password per eseguire il blocco del servizio, tale pas-
dipende dall'applicazione. sword viene letta dalla memoria EEPROM, ricordate

Seguono le funzioni: quanto detto con il primo sketch analizzato?
Se invece si vuole sbloccare un servizio si deve usare
ProcessSeri alCmd() ; la seconda stringé'\ di comando con il rispettivo codice.
ProcessUserAtCmd( ); Anche in questo caso la password verrà letta dalla me-
ProcessGene ricAtCmd() ; moria EEPROM.
Infine abbiamo una stringa di comando per interroga-
La prima serve per interpretare i comandi stringa re il modulo GSM e vedere se il servizio è bloccato op-
inviati dal monitor seriale che sono diversi dal pre- pure no. In questo caso non serve nessuna password,
cedente sketch (più avanti diamo una dettagliata de- come risposta il modulo GSM ritornerà "O" se il servi-
scrizione). La funzione ProcessUserAtCmd () ",tramite il
11
zio non è bloccato e "1" se il servizio è bloccato. Queste
solito costrutto "switch", serve per discriminare quali informazioni sono facilmente reperibili dalla struttura
comandi AT si devono inviare al modulo GSM. Tra dati Security . SecurityFla g" e più in dettaglio dal flag
11

, , Il
questi abbiamo la chiamata vocale verso un numero di
Il
Secur1ty . SecurityFla g . B1t . ClckStatus .
telefono fisso (pressione pulsante P4) o verso un nume- Qui di seguito vedete l'invio del comando AT per ese-
ro di telefono a piacere tramite comando seriale. In più guire lo sblocco del servizio riguardate il codice PIN
ci sono tutti gli altri comandi AT gestiti dallo sketch e dellaSIM.
richiamabili solo tramite stringa di comando inviata da
monitor seriale. AT+CLCK="SC" , 0, "4629 "
.
Infine la funz10ne ProcessGenericAtCmd
Il Il
()
la qua- OK
le, come il precedente sketch, prevede una serie di
comandi AT da inviare in ciclo continuo al modulo Invece di seguito riportiamo il codice che attiva il bloc-
GSM. In questo sketch abbiamo i seguenti: stato del co della SIM tramite codice PIN.
modulo GSM (AT +CPAS), verifica della potenza
del segnale GSM (AT +CSQ), verifica della registra- AT+CLCK="SC" , l ," 4629"
zione del modulo GSM alla cella tramite proprio OK
operatore (AT+CREG?), verifica necessità codice pin
(AT +CPIN?), verifica dell'operatore (AT +COPS?). Infine qui di seguito vedete il codice che esegue un test
Vediamo ora le stringhe di comando che si possono sullo stato del servizio inerente alla SIM.
inviare dal monitor seriale; la prima stringa disponibile
l'abbiamo già incontrata nel precedente sketch ovvero AT+CLCK="SC" , 2

82 Dicembre 2018 / Gennaio 2019 - ELETTRONICA IN



Tabella 1 · Corrispondenza codice/servizio
AO 01 OX Al IR FD SC PN PU PP
o 1 2 3 4 8 9 10 11 12
+CLCK: l
+CPBS : "SM" , 5, 250
La Fig. 3 evidenzia il monitor seriale con le stringhe OK
di comando inviate, ponete attenzione alla sintassi
dei comandi i quali sono tutti "case sensitive". In caso La terza stringa serve per leggere la locazione di
contrario il sistema ritornerà una stringa di errore. memoria desiderata e necessita, come parametro,
Un'altra stringa di comando implementata riguarda la dell'indice desiderato; il comando AT+CPBR ritorna il
possibilità di cambiare la password ai servizi tramite numero di telefono memorizzato all'indirizzo dato, la
il comando AT+CPWD. Quindi abbiamo la seguente tipologia del numero e una breve descrizione in forma-
stringa inviata: to stringa.
La porzione di codice seguente mostra i dati ritornati
CrndFacSet Pwd : <fac code>, <new password> dalla lettura della locazione tre della rubrica.

Questa stringa di comando richiede due parametri: il AT+CPBR=3


primo è il codice del servizio (vedi Tabella 1) mentre il +CPBR : 3, " +393xxxxxxx" , 145 , "Borisxxxxxx"
secondo è la nuova password numerica la quale deve OK
essere racchiusa tra virgolette. Di seguito, il comando
inviato per cambiare la password, che in questo caso La quarta stringa serve per salvare in rubrica un nuovo
corrisponde al PIN della SIM. numero di telefono, il comando necessita di quattro
parametri distinti ovvero indirizzo in rubrica in cui sal-
AT+CPWD=" SC" , " 4629" , " 1234 " vare il nuovo numero, il numero di telefono racchiuso
OK tra virgolette, la tipologia del numero e infine un testo
descrittivo anch'esso racchiuso tra virgolette.
ncomando AT prevede di inviare sia il codice PIN La Fig. 16 mostra quanto detto, il comando AT+CPBW
corrente che il nuovo PIN. n codice PIN. corrente viene salva nella locazione di memoria sei un nuovo numero
letto dalla memoria EEPROM. Se il comando AT va a di telefono.
buon fine, il vecchio codice PIN memorizzato in EE-
PROM viene sostituito da quello nuovo; nella Fig. 4 AT+CPBW=6 , " +3934 xxxxxx" , 129 , "Angxxxxx"
trovate la relativa stringa di comando inviata dal mo- OK
nitor seriale.
Per ultimo analizziamo le stringhe di comando per ge- Se si seleziona una locazione già occupata questa ver-
stire la rubrica, in questo caso abbiamo: rà sovrascritta. L'ultima stringa di comando serve a
cancellare una locazione di memoria della rubrica per
CrndSelPhonebookMem : <MEM code> rimuovere un numero di telefono.
CmdQueryPhonebookMem : Qui di seguito trovate il comando AT+CPBW con il
CmdReadPhonebookMern : <MEM add> solo parametro di indice che esegue la cancellazione
CmdWritePhonebookMem : <MEM add> , <PhoneNumber> , <Phone- della locazione.
NurnberType> , <Text>
CrndErasePhonebookMern : <MEM add>

La prima stringa di comando serve per selezionare la


rubrica su cui lavorare; anche in questo caso abbiamo
! Co~nd received by u~r -> CXdfacLock : 9
un codice che identifica la rubrica (Tabella 2). + Cor=:and received by u:ser -> OrlFecCheck: 9
f Cor:•nd receiV@d by uaer - > Orl~acUnLock : 9
Nei nostri esempi lavoreremo con il codice 6 (SM) che Cor=:and received by user - > Cl!dFacChect: 9
identifica la rubrica della SIM, selezionabile con l'invio Cor:and
t CoEMnd
received
received
by user
by ~er
- > Cw1FacLock: 9
-> CWtFecCbeck: 9
del comando AT+CPBS.
La seconda stringa serve per verificare quante locazio-
ni di memoria della rubrica selezionata sono disponi-
bili e quante occupate; la porzione seguente di codice
mostra che la rubrica della SIM dispone di 250 locazio- •

ni di memoria e 5 sono occupate.

AT+CPBS? Fig. 3 · Stringhe di comando su monitor seria/e.

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 83


l

COM14 (Arduino/Gm.nno COM14 IArdutno/Genuino Mega or Mega 2560)

[ In-.ia }

i Co=:aod ~~celved by u~er -> ~Sel~bc~c~e~: 3


cc--nod ~eceived b1 U3~r -> ~~~~:ho~~~~=


• Cax:and ~ec:i~~ b4 ~er -> C:dRe~dfbcn~cc~~o : 3
Cc~And :~ce1ved by U3e= -> Coaft:l:eFoc~ebc~~~ : E, ~-3934 7tllllllr , 129, ·~~·
! Ct:-!::d :~cei··e1i by ~er -> c=d~ :e.!e ~hc~el:ct~~: f

-
:::;

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

-

Fig. 4 • Stringa di comando relativa alla sostituzione del P/N, Fig. 5 · Stringa di comando relativa alla memorizzazione
visualizzata sul monitor seria/e. di un numero telefonico, visualizzata sul monitor seria/e.

AT+CPBW=6<CR><L F> AT inerenti la sicurezza ( ENAD.wl:._ANSWER_sEcuRrTY_AT_


<CR><LF> CMD_ STATE);

OK<CR><LF> - abilitazione sezione di gestione risposte a comandi


AT inerenti la rubrica ( ENABLE_ANSWER_ PHONEsooK_AT_
La Fig. 5 evidenzia i comandi stringa appena spiegati, CMO_STATE);

passati dal monitor seriale di Arduino. - abilitazione sezione di gestione risposte a comandi
AT inerenti gli SMS ( ENABLE_ANSWER_sMs_ AT_cMD_sTATE);
CONCLUSIONI - abilitazione sezione di gestione risposte a comandi
Con quest'ultimo sketch abbiamo concluso la carrel- AT inerenti le chiamate vocali ( ENABLE_ANSWER_PHo -
lata degli esempi. Vogliamo dare ancora qualche con- Nrc_cALL_AT_ cMo_ sTATE) . •

siglio sull'utilizzo della libreria e in particolare sui file


"Io_GSM.h" nel quale ritroviamo tutte le definizioni Se si omette di abilitare una sezione inerente ai coman-

necessarie a configurare il funzionamento della libre- di AT inviati, il sistema non riuscirà a gestire le risposte
ria in base al modulo GSM che si vuole utilizzare e in e rimarrà in attesa. Se necessario, abilitare l disabilitare
base allo hardware a disposizione. Quindi ricordatevi le sezioni di debug.
sempre di: Ricordate che esiste una definizione globale che disabi-
• selezionare uno dei moduli GSM supportati; lita tutto il codice di debug nella libreria e sotto-defini-
• selezionare quale scheda Arduino si intende usare zioni per attivare codice di debug mirato.
tra quelle supportate;
• selezionare la revisione hardware, la quale deve
corrispondere alla revisione hardware stampata sul
PCB;
• selezionare tra UARTl hardware o software (la
scelta dipende dalla configurazione dei jumper, per
la quale rimandiamo alla tabella presente nel file); Lo shield universale GSM (cod. WWGSMSHI ELD)
• abilitare le sezioni di gestione delle risposte da è in vendita presso Futura Elettronica al prezzo di
parte del modulo GSM, rammentando che sono Euro 54,90. Viene fornito montato ad esclusione degli
disponibili diverse sezioni a seconda delle categorie strip li ne (compresi) che vanno saldati manualmente. Il
di comandi AT; in questo caso si possono abilitare prezzo è comprensivo di IVA.
più sezioni contemporaneamente, quindi abbiamo: Lo shield si può interfacciare con uno dei seguen-
-abilitazione sezione di gestione risposte a comandi ti moduli GSM: interfaccia con M95 (cod. FT1128M,
AT generici ( ENABLE_ANswER_GENERr c _ AT_ c Mo_sTATE); Euro 39,00), modulo cellulare miniaturizzato con
- abilitazione sezione di gestione risposte a comandi SIM800 (cod. FT1308M, Euro 29,00) e modulo cellulare
GSM/ GPS con SIM928A (cod. FT1178M, Euro 59,00).

Tabella 2 • Identificativi della rubrica.


Dlrllillllmlmll!llllll!llllll!l
o 1 2 3 4 5 6 7 8 9 10 11 12

84 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


'
•••••••••• •. • •• •. • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •v•~· • • • • • • di RICCARDO BEN NATI

Conosciamo da vicino hi ha un'auto elettrica o equipment, esprime al meglio


i caricabatteria il senso di questo misterioso
"Plugin" (ovvero ricaricabile EVSE, perché in realtà si tratta
per le auto elettriche dall'esterno) o si sia comunque di un dispositivo che fa un po'
fornite dai costruttori. interessato all'argomento, ne di tutto, tranne quel che ci si
avrà già sentito parlare. Detti aspetterebbe, ovvero gestire
anche Wall Box, EV Chargers, . la corrente di ricarica come
Colonnine di Ricarica o, vo · farebbe un norrrtale caricabatte-
mente, "caricabatterie", si tratta ~· rie; questo, perché in realtà tale
degli EVSE, acronimo di Elec- azione è svolta dall'elettronica
tric Vehicle Supply Equipment. del veicolo.
La seconda "E", che sta per Ciò detto, a cosa serve l'EVSE,



l CAVI
I cablaggi sono elettricamente sovradimensionati ,
ossia le loro sezioni sono pensate per un uso conti-
Electric Vehicle Supply Equipment? In effetti la nuativo e costante alla massima corrente nominale,
domanda sorge spontanea. La risposta è molto più aggiungendo un margine di sicurezza, mentre i
ricca e articolata di quanto non sembri. trefoli di rame sono sempre intestati con capicorda
per evitare che le viti di serraggio del connettore
LA STORIA possano danneggiarli.
Da quando esistono le prime auto elettriche ci si Ma i cavi stessi sono anche rinforzati, con una
è posti il problema di rendere sicura la manovra corazza che ne rende praticamente impossibile il
di ricarica del mezzo. In pratica, gli stessi criteri taglio con attrezzi comuni (coltelli, forbici, ecc ... ) e
e normative adottate per le pistole delle pompe persino capaci di resistere anche se vengono schiac-
di benzina dovevano inevitabilmente diventare il ciati da una ruota di un camion. E di solito sono resi
complemento analogo nella versione elettrica. anche ben visibili (hanno un bel colore fluorescente
Ecco quindi che il"nostro marchingegno" è chiama- verde, giallo o arancio) anche per evitare di schiac-
to ad eseguire una lunga lista di azioni di controllo ciarli.
e verifica prima di consentire l'avvio dell' operazio-
ne di ricarica, in modo da scongiurare i possibili LO STANDARD SUl CONNEIIORI TIP01 E TIP02
rischi che l'azione comporta. A parte la scontata qualità del contatto elettrico e
la bassa resistenza ohmica che un connettore del
LA SICUREZZA PRIMA DI TUnO genere deve garantire, la seconda sfida che tale ele-
Come sappiamo, acqua ed elettricità vanno poco mento deve affrontare è l'impermeabilità. Sebbene
d'accordo, ma l'auto deve garantire l'utilizzabilità esistano già degli standard industriali, il problema
anche sotto la pioggia e l'operazione di ricarica del connettore impermeabile fu forse il primo da
non fa eccezione. Ma l'auto è anche abbandonata superare da parte dei primi produttori di veicoli
all'aperto, alla mercé di eventuali vandali o sem- elettrici.
plicemente ragazzini in vena di dispetti, quindi Dopo un po' di confusione iniziale dove ognuno
• sono previsti dei sistemi di blocco dello sgancio dei andava per la propria strada, possiamo dire che, ad
connettori e un'idonea robustezza del cavo. Inoltre oggi, esistono sostanzialmente due tipi di connet-
una macchina' è una massa metallica che, se non è tori standard universalmente riconosciuti a livello
correttamente tenuta a potenziale di terra, può di- mondiale, uno più diffuso in USA e Giappone
ventare una trappola mortale per chiunque la tocchi. (sostenuto da Generai Motors e Nissan), chiama-
Poi c'è la questione delle alte correnti in gioco, che to Tipo l (Fig. l) e l'altro, il Tipo 2 (Fig. 2) più
sviluppano facilmente calore quando la conduttivi- familiare alle -case automobilistiche europee quali
tà dei contatti non fosse più ottimale, quindi neces- Renault, Audi, Volkswagen.
\

sità di protezione da surriscaldamento e/ o fuoco; La differenza fra i due, almeno parlando di aspet-
è quindi necessario monitorare la temperatura dei to e forma, è che il primo, il Tipo l, SAE }1772,
connettori, sia lato EVSE, sia lato veicolo. somiglia ad una "pistola spaziale" e possiede un
Insomma, il sistema è pensato per essere sicuro. evidente rp.eccanismo di aggancio che serve a scon-
Molto, sicuro. · giurare l'eventualità che si possa sfilare accidental-

Fig. 1 · Connettore TIPO


1 (SAE J1772) con il suo
visibile "gancio" e relativa
presa da pannello, supporta
solo la tensione alternata
monofase.

Fig. 2 - Connettore TIPO 2 OEC 62196-2), .


detto anche Mennekes, scelto dalle principali
case europee, grazie ai 5 pin di potenza,
supporta anche la tensione trifase.

88 Dicembre 2018 / Gannaio 2019- ELETTRONICA IN


.
-----~ -----------------------------------~-----------------------~----------------------~----------~--

Typ 1 / USA Typ 2 l EurQPa


"

mente dalla sua sede. Ha un 'grilletto' che aziona


uno switch (poi vedremo a cosa serve) e possiede
tre contatti (pin) principali, disposti a 120° fra loro,
più altri due pin di 'controllo' più piccoli. Ne esiste
anche una versione 'estesa' che ha, in aggiunta, un SAS J1 77l / l EC '2196-2 IEC 6l196-2
altro paio di p in di potenza, dedicati all'alimenta-
zione in alta tensione DC (vedremo più avanti il

Level3) .
L'altro, il Tipo 2, detto anche Mennekes, richiama
anch'esso l'ergonomia di una pistola, ma è più
grande, anche perché ha altri due pin di potenza;
infatti questo può funzionare indifferentemente
con alimentazione monofase o trifase. Ha un solo
pin di controllo e non ha nessun 'gancio' di ritenu-
ta, la quale è realizzata invece tramite fori quadri
ai quali si ancora il meccanismo di blocco, gestito
nella controparte complementare fissa (sono così
strani che non è facile chiamarli maschio e femmi-
na).
La Fig. 3 illustra la piedinatura dei connettori Tipo
SAE J1712 / lEC '2196-3 IEC6l196~
l e Tipo 2 con le loro versioni.
Esiste un terzo tipo di connettore, chiamato Cha-
deMo, nato in Giappone ma poco diffuso da noi in Fig. 3 · Piedinatura dei connettori Tipo 1 e Tipo 2.
Italia, che illustriamo nella Fig. 4.

l QUAnRO 'MODI' DI RICARICA (LEVEL 1 ••• 4) ma di protezione in caso di malfunzionamento del-



Oltre ai due diversi tipi di connettori, lo standard la messa a terra, ma è ormai proibito in quasi tutti

IEC 62196 prevede quattro modi di ricarica, per i Paesi, in quanto la messa a terra non è sempre
ciascuno dei quali sono indicate le caratteristiche presente.
elettriche e le modalità di protezione e di utilizzo. Il Modo 2 aggiunge una comunicazione semiattiva
Il Modo 1 è una connessione diretta passiva a tra il veicolo e la linea di alimentazione e fornisce
230 Vca monofase o 400 Vca trifase (solo con con- protezione contro sovracorrente ed eccessiva tem-
nettori Tipo2), tra il veicolo e la linea di alimenta- peratura.

z1one. Il Modo 3 è una connessione attiva tra il veicolo e
La protezione elettrica è garantita solo da un siste- il sistema di ricarica, sempre a 230 Vca monofase o
400 Vca trifase (solo con connettori Tipo2), prevede
le stesse sicurezze del modo 2 ma consente una
completa comunicazione col veicolo per regolare
la corrente di carica. Nota: la tensione di carica è
portata al veicolo solo dopo l'inserimento del con-
nettore, attraverso un "ok" ottenuto dal sistema di
controllo.
Infine, il Modo 4 è una connessione attiva tra il vei-
colo e il sistema di ricarica a 600 V in corrente con-
tinua. Qui l'alimentazione viene raddrizzata per la
carica dal sistema di ricarica, prima di essere fornita
al veicolo. Risulta quindi più complesso e costoso
dei sistemi precedenti. Garantisce i tempi di ricarica
più brevi ed è lo standard per veicoli solo elettrici
Fig. 4 · Variante del connettore con batterie molto grandi come le Tesla dove occor-
Tipo1: a sinistra normale, per Modi re grande potenza per ricariche in tempi utili.
1, 2 e 3; a destra il tipo con contatti N el marzo 2011 l' ACEA, a nome delle principali
opzionali per Modo 4 a 400Vcc. case automobilistiche europee, ha pubblicato un

ELETTRONICA IN - Dicembre 2018 / Gennaio 2019 87


"OK" sul pin di controllo fintanto che va tutto bene.


In caso di surriscaldamento o altre anomalie il
veicolo interrompe Ja carica e cambia lo status, il
che fa in modo che l'EVSE tolga alimentazione al
connettore. Appena il veicolo lo percepisce, sbloc-
ca il fermo al connettore per consentire l' estrazio-
ne dello stesso dalla presa posta sull'auto. Tale
sistema fa in modo che non ci sia mai una scintilla •

sui connettori durante gli attacchi e distacchi, ma


il tutto avvenga sempre in assenza controllata di
alimentazione.
Alcuni veicoli poi sono in grado di segnalare
all'EVSE uno speciale status, di "ventilazione
Fig. 5 • EVSE portatile, con cavo diretto "tethered". richiesta" che l'EVSE può segnalare con una spia
La spina da inserire nella presa di casa è un elemento di allarme e/ o attivando uno switch ausiliario
critico spesso sottovalutato, perché può surriscaldarsi. che, per esempio, potrebbe azionare dei ventilatori
• se il locale è chiuso come ad esempio un garage .
Questo perché la chimica delle batterie, sotto uso
estremo, può prevedere il rilascio di gas idrogeno,
docul?1ento dove raccomandava il Tipo 2 Modo 3 molto pericoloso.
come standard unico per l'Unione Europea da adot- L'ultima funzione chè citiamo è la misurazione
tare entro il2017. Attualmente quindi, il connettore delle temperature sui connettori: negli EVSE
di Tipo 2, usato in Modo 3 o 4 è quindi da conside- a muro, o Wallboxes, è previsto un sensore di
rarsi l'attuale standard in vigore per il nostro Paese. temperatura sulla presa del connettore posto
sull'EVSE, mentre per quello lato veicolo il mo-
LE FUNZIONI ESSENZIALI nitoraggio è svolto dall'elettronica dell'auto. In

Come abbiamo visto all'inizio, il nostro EVSE deve alcuni EVSE portatili, quelli dai quali escono di-
fare una serie di cose che rappresentano controlli rettamente i cavi (uno che va al connettore auto e
di sicurezza, prima di portare fisicamente la ten- l'altro di alimentazione dell'EVSE, che termina con
sione di rete, sia essa monofase o trifase, alternata una spina per la presa di casa) a volte troviamo un
o continua raddrizzata, al veicolo stesso, il quale sensore annegato nella spina stessa (un esempio è
si occuperà di impiegarla per la propria ricarica in proposto nella Fig. 5).
maniera completamente autonoma. Questo perché la spina scalda facilmente, dal mo-
Prima di tutto viene verificato che il collegamento mento che le spine comuni da 16A come le Shuko
di terra sia valido. sono per 1.6 Amax non continuativi e quindi non ri-
Per farlo, naturalmente si dovrà misurare che non sultano idonee all'uso. Ad esempio la Volkswagen
ci sia un flusso di corrente che scorre lungo il cavo fornisce un EVSE di questo tipo, dotato di Shuko,
di terra, né che esista una differenza di corrente ma lo limita a lOAmax, benché la GTE possa esse-
fra fase e neutro (o fra le tre fasi in caso di allaccia- re caricata fino a 16Amax.
mento trifase), sfruttando lo stesso principio degli
interruttori differenziali, chiamati comunemente
"salvavita".
Passato questo check, l'EVSE verifica che la ten-
sione di rete sia valida ed entro i limiti previsti,
segnalando eventualmente l'errore relativo. Infine,
controlla che la connessione con l'auto sia attiva
attraverso il contatto di 'feedback' previsto sul 10%

connettore stesso. Se è tutto ok, quindi il connetto-


re è inserito e l'auto risponde che è pronta ad av-
viare la carica, l'EVSE dà inizio allo stato di carica
azionando un relè teleruttore che porta la tensione
di rete al connettore stesso e quindi al veicolo.
Durante la carica il veicolo mantiene il segnale Fig. 6 - Correlazione tra corrente e duty-cycle.

88 Dicembre 2018 / Gannaio 2019 - ELETTRONICA IN



-
• •
Sicurezza:
one flash and you 're ash
Basta "una scarica e sei polvere" dicono gli americani.
Parliamo di tensioni di rete, di elevate correnti e potenze in
LA REGOLAZIONE DELLA CORRENTE DI CARICA gioco, quindi tutta roba che rende sconsiglia bile l'approccio
A cavallo fra funzionalità essenziali ed opzioni fai-da-te l DIY (Do-lt-Yourself) in un progetto del genere per
dell'EVSE c'è proprio questa, in quanto il veicolo chi non ha le giuste competenze, in quanto rischia seria-
stesso ha già nel suo menu di impostazioni la pos- mente di rimanere fulminato mentre 'traffica' tentando di
sibilità di impostare la massima corrente alla quale costruirsi un EVSE. Poi ci sono i rischi di sovraccaricare i cavi
verrà effettuata la ricarica. Avere quindi un EVSE dell'impianto, perché ovviamente montare un EVSE di una
che permetta di impostare un limite alla corrente certa potenza prevede di dover fare l'upgrade del contatore
standard da 3,3kW e probabilmente rifare parte del cablag-
di carica non è quindi un must, ma spesso è molto
gio adeguando l'impianto alle potenze in gioco.
utile. Ecco quindi che il nostro EVSE dovrà inter- Un installatore dovrebbe avere le competenze per
venire per concordare col veicolo stesso tale valore, dimensionare correttamente la linea in base al carico
che sarà il più basso fra i due. Se, per esempio, im- previsto e alla sua lunghezza, progetto sul quale metterà
posteremo a 12A max la corrente sull'EVSE ma sul una firma e si assumerà una responsa-
veicolo avremo impostato a SA max, vedremo che bilità, ma noi siamo sicuri di fare tutto • •

perbene? • •
il da nostro EVSE non usciranno più di quegli SA
impostati. Viceversa, se sull'EVSE avessimo messo Ma non è finita, c'è sempre il rischio
6A max, allora la corrente assorbita dal nostro che, se qualcosa non funziona a
dovere, ci sia possibilità di 'friggere'
veicolo scenderà a 6A, pur lasciando impostato a
nientemeno che l'elettronica dell'auto
SA il limite sul menu dell'auto. Questa comuni- elettrica nuova, con chissà quali costi
cazione avviene utilizzando una modulazione del ATTENZIONE
di riparazione. Insomma, a meno di CORRENTE
duty-cycle PWM di un segnale a 1kHz emesso sul non voler rischiare in proprio, non è
. ELETTRICA
pin di controllo, che "dice" all'auto a che limite di consigliabile affidarsi al primo progetto ••
corrente deve avviare la carica. La Fig. 6 riporta la trovato in Rete.
tabella con la correlazione tra duty-cycle e corrente
di carica.

ALTRE FUNZIONI UTILI autonomia in modalità solo elettrica) ma ci sono


Chi ha un veicolo elettrico o Plugin Hybrid mezzi elettrici puri come Nissan Leaf, Renault Zoe,

(quindi ricaricabile via EVSE) sa che è molto utile Bmw i3, Hyundai Ioniq, Kia Niro, eccetera che
conoscere la çorrente di ricarica, e quindi la poten- hanno batterie da oltre 40kWh; per non parlare dei
za con cui tale azione è svolta, per diversi motivi. 70kWh e oltre di alcuni modelli Tesla.
Prima di tutto, per evitare di far saltare il contatore Per caricare tali batterie serve parecchia potenza,
di casa, soprattutto se ci sono altri carichi dome- soprattutto se dobbiamo completare una carica in
stici collegati, ma anche per sapere quanto tempo tempi ragionevoli e impostare la giusta corrente di
si dovrà attendere per avere una carica completa: ricarica può essere molto importante. Ecco quindi
ad esempio se si sta caricando da una colonnina che alcuni EVSE consentono di misurare ad ogni
pubblica. carica gli effettivi kWh riversati in quel serbatoio
Nota la capacità nominale della batteria, ad esem- elettrico che è la batteria, anche per tenere sotto
pio nel caso della Golf GTE sono S,7kWh, togliamo controllo un eventuale degrado della stessa, che
la capacità residua che conviene sempre lasciare: si manifesta come perdita di capacità (si vede la
impostando l'auto per non scendere mai sotto al capienza che diminuisce). Inoltre le versioni con
20% otteniamo circa 7,0 kWh. connessione WiFi sono spesso abbinate ad una
Bene, questa è l'energia che dobbiamo introdurre App software che consente anche di fare questi
per riempire il "serbatoio" elettrico dell'automobi- conti facilmente, traducendo in km di autonomia
le, quindi se ricarichiamo a lOA, cioè a una po- un certo tempo di ricarica applicato ad una bat-
tenza di 2,2kW (220V x lOA) sapremo che immet- teria già parzialmente carica ed arrivando a dirci
teremo circa 2,2kWh ogni ora che passa. In 7/2,2 quanti minuti di ricarica servirebbero per poter
= 3,2h circa, avremo quindi eseguito la completa percorrere un certo numero di chilometri.
carica. Se però caricassimo alla massima corrente/
potenza che l'auto consente, cioè 16A, complete- EVSE CON FUNZIONI EVOLUTE
remmo la carica in 7:220:16 = 2 h. In Germania, dove gli impianti fotovoltaici sono
L'auto presa ad esempio è una ibrida plugin, molto diffusi, si trovano facilmente dei disposi-
quindi la batteria è relativamente poco capien- tivi di misurazione che consentono di misurare
te (il costruttore dichiara con essa circa 45km di l'energia prodotta, quella auto consumata, e quella

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 89


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

At a glance o kW
AlWAYSON
3.1 kW
HIGHEST POWER TODAY
2.6 1.W
HIGHEST POWER YESTEROAY
- ---

TOOAY ., METERREAOER Export


Powernow
PO\VERNOW
18 october 2011
• 0.5

O•4 -------- -------- ·- ---· .......... ··········--~---·-·--·-·····------------···--------- ~--


0 .3 - ----------~----·--------
--- --- --- ---
7.3 kWh 8.2 ~Wh 0.2 -------· - --~ --·.... --
SO fAR TOOAY DAILY AVERAGE

"Al.WAYS Ot LEVfL BEING CALCULATEO

o
Sei up alerts A 0000 0600 1200 1800 2345

Fig. 7 . Una tipica App con i grafici dell'energia trasfer ita.


esport ata in rete. Si tratta di sensor i di corren te progra mmat a ad un tempo precis o usand o il timer
da applic are ai cavi dell'im pianto che misur ano la dell'au to, cosa che invece è facile e precis a se viene
corren te e calcolano i relativi consu mi, trasme tten- fatta fare all'EVSE.
doli via radio (sulla freque nza di 433MHz) a una
centra lina collegata via ethern et ad un server che COSTI E SPECULAZIONI
regista i dati e sul quale sono basate le App, che Se interp ellate una qualun que concessionaria di
poi mostr ano i grafici dei consumi. Un esemp io è auto, vi parler anno, uno per l'altro , di circa 1.500€
propo sto nella Fig. 7. di costi per una Colon nina di Ricarica o W all Box,
Alcun i EVSE hanno un sistem a simile per integr a- come amano chiamarla; la cifra si intend e installa-
re i dati di consu mo per la ricarica dell'au to con zione esclusa.
quelli di consu mo domes tico in modo da consen- I march i più blason ati sfiorano i 3.000€, ma par-
tire all'EVSE di impos tare la potenz a di ricarica liamo pur sempr e di EVSE, spesso con le stesse
dell'au to dinam icame nte sempr e pari al miglio r identi che funzioni. Certo, se state spend endo 30,
valore dispon ibile ottenu to come differe nza fra 40 o 50 mila euro per un'aut o elettrica, forse non
la potenz a erogat a dal FV (oppu re, in assenz a di farete troppo caso ai 2.000 € di costi per l'insta lla-
autopr oduzio ne FV,la potenz a massim a ottenibile zione dell'EVSE, ma se siete arriva ti a leggere fin
dal contatore) e quella assorb ita dai carichi dome- qui, avrete immag inato che il valore dell'ha rdwar e
stici, ottimi zzand o la carica al massim o ed evitan - di un EVSE probab ilment e non arriva a un decimo
do i fastidiosi distacchi del contatore. di quelle cifre.
In un EVSE evolut o poi, a volte è utile avere un Tutta questa specul azione ha aperto la strada
calend ario con la possib ilità di stabilire una fascia all'ing egno dei maker ed ha scatur ito una serie di
oraria di avvio schedu lato della ricarica perché , è proge tti di EVSE più o meno Open Source, come
pur vero che molti veicoli hanno già funzio ni si- quelli reperibili sul web a questi indirizzi:
mili, ma consen tono di impos tare solo l'ora di par- - http://www.aprs.org/charging-D IY.html;
tenza previs ta, non quella di avvio della ricarica - https://www.openevse.com/;
(temp o che il veicolo aggiun ge autom aticam ente) - http://www.instructables.com/id/DIY-J1772-EVSE/
che, siccome dipend e da quanta batter ia è rimast a
dall'us o preced ente, non è mai una costante. e mille altri che si trovan o in rete cercan do su Goo-
Alla fine ciò non perme tte l'avvio della ricarica gle, ad esemp io, con la chiave "EVSE".

90 Dicembre 2018 / Gannaio 2019 - ELETTRONICA IN


' '



RIC RICEVITORE
• •• ••••••••••••••••••••• •••••••• ••••••••••••••••••••

••
00 : li CANALE 220VAC
cod. EMY220RX2 : cod. EMY220RX1
'
cod. EMY12RX2
00
,
'
4 CANALI12VDC OD
cod. EMY12RX4
'

o
.•
• 4.
-


o•

TRASMETTITORE . •

•••••••••••••••••••
1 CANALE •


o• \

cod. EMYTX1 •

• \
l

~

00 RASMETTITORE : ·.. TRASMETTI
. RE
••• ••• •••• •• ••• ••• • • • •••• •• • • •• •• • ••• •
' 2 CANAI11 00 4 CANALI DO
cod. EMYTX2 € cod. EMYTX4 €
'
Ai ricevitori va abbinato esclusivamente il trasmettitore con lo stesso numero di canali.
'
'RA
~----..............,_~
Futura Group srl
Via Adige, 11 • 21013 Gallarate (VA) Prezzi rvA Inclusa. Caratteristiche tecniche /w.
l A~· A nut h n l'l l r~s o~ l
ELETTRONICA® Tei.033 1n99775 evendltaon-llnesu: 1
VV VY 1 Ul Cl
• ft-''•/j
()

di MARCO MAGAGNIN
TCP lP
ETHERNET

• • •
• • •
• •
• •
• •
.• ,.•

• • •

Vi presentiamo una soluzione


di automazione che fornisce la
possibilità di controllare una
serie di relè, utilizzando la rete
locale cablata ethernet. Il tutto
pilotato dalla nuova versione
della scheda Ardui no Yun.

l progetto che vi presentiamo nasce dalla dispo- n secondo dispositivo è una scheda relè comandabi-
nibilità pressochè contemporanea di due dispo- le via TCP /IP su una rete lan ethemet, disponibile
sitivi che, seppur di origini diverse, si prestano presso Futura Elettronica con il codice ETH2REL-
perfettamente ad essere integrati tra di loro in una BOARD. Il progetto che vi proponiamo permette
soluzione di automazione remotizzabile. n primo di utilizzare la scheda Arduino YUn. sia come web
dispositivo è la scheda Arduino YUn., tornata ad server, che come schedulatore a tempo, per coman-
essere disponibile, nella nuova versione Rev. 2, dare una o più schede relè dislocate sulla rete locale,
dopo un periodo di relativa "assenza" dal mercato. secondo lo schema di riferimento visibile in Fig. 1.

ELETTRONICA IN- Dicembre 2018/ Gennaio 2019 93


l

c ' »

Controllo rele •

Refe

5 6 7 8
Fig. 1 - Schema
•••••

••••
• •
• •••• di riferimento.

• •
• •• •
• •
•••

Una piccola avvertenza. La realizzazione di questa relè e dei pin di output ad orari prestabiliti, in realtà
applicazione richiede un po' di dimestichezza con è possibile impostare minuti, ore, giorni di calenda-
l'ambiente GNU /Linux, la scrittura di programmi rio o della settimana e mesi associati alla operazioni
in linguaggio HTML, Javascript, PHP e Python. sui relè.
Una conoscenza di reti e di configurazione di router La scelta di Arduino YUn per questa applicazione •

certo non guasta. è dettata dal fatto che, data l'esiguità del software
Come visibile, l'applicazione prevede che la scheda necessario, no~ si giustifica l'utilizzo di un micro-
Arduino YUn e la scheda Relè siano collegate in rete computer più potente come potrebbe essere Ra-
locale tramite collegamenti Ethemet, ovviamente spberry Pi.
anche distanti tra di loro.
A questo punto una pagina HTML, raggiungibile ARDUINOYUN
attraverso l'Access Point di Arduino YUn, permette La geometria della scheda Arduino YUn è rimasta
di visualizzare lo stato dei relè e dei pin di output. pressoché invariata, rispetto alle versioni preceden-
Utilizzando lo schedulatore Cron, disponibile in ti. Le principali "innovazioni" sono riassumibili
OpenWRT, è possibile impostare l'attivazione dei come segue:

Pulsante reset del


microcontrollore
ATmega32U4

o • •
• • • • • •
• • •
• • • •
• • • • •
• • • LED di stato

Pulsante reset YÙN.


Esegue il reboot del
Fig. 3 - Layout scheda sistema operativo
Arduino Yun 2. OpenWRT

Pulsante reset del Wi-Fi

94 Dicembre 2018 / Gennaio 2019 - ELETTRONICA IN


• •
• il circuito di alimentazione è stato migliorato e rimandiamo agli articoli pubblicati sulla rivista
reso più robusto; Elettronica In ed allibro "Alla scoperta di Arduino
• è stato implementato un USB hub; YUn". Una notazione importante riguarda l'utiHzzo
• la posizione dei connettori Ethernet e USB è inva- dei pulsanti di reset presenti sulla scheda. Ne sono
riata ma sono stati entrambi disposti in modo da presenti ben tre, posizionati come visibile in Fig. 3,
ridurre le dimensioni, in altezza, della scheda. In con varie funzioni che descriviamo di seguito:
particolare, il connettore Ethernet è stato ribas-
sato all'interno di un incavo sulla scheda, così • 32U4 Reset button - Questo pulsante permette il
pure come il connettore USB, che è stato montato reset del microcontrollore ATmega32U4;
orizzontalmente, anch'esso ribassato per mezzo • YUn reset button- La pressione del pulsante
di un incavo nella scheda. Queste modifiche per- "YUn reset button" permette di eseguire il reboot
mettono di inserire eventuali shield di espansione del sistema operativo OpenWRT. Chiaramente
ad una distanza minore dalla scheda "principale" tutti i dati in memoria saranno persi e tutti i pro-
senza particolari rischi di creare corticircuiti sulle cessi attivi al momento saranno terminati;
schermature dei connettori; • WiFi reset button - ll pulsante "WiFi reset button"
• il sistema operativo OpenWRT, che costituisce il ha una doppia funzione. La pressione normale
motore del componente Atheros AR9331, è stato permette di riportare il modulo WiFi alla configu-
aggiornato ad una versione che contiene numerose razione di fabbrica, cioè configurato come Access
patch per la risoluzione di bug e malfunzionamenti. Point con IP statico 192.168.240.1 con nome SSID
"Arduino Yun-XXXXXXXXXXXX", dove le dodici
Per chi volesse approfondire maggiormente le ca- "X" rappresentano il MAC address della scheda
ratteristiche e l'utilizzo della scheda Arduino YUn, YUn. Per resettare il modulo WiFi è necessario
tenere premuto il pulsante per almeno cinque
secondi ... ma non molti di più. Il reset del modu-
•••
lo WiFi comporta anche il reboot di OpenWRT .

f
..• Abbiamo detto di non tenere premuto il pulsante


..• molto oltre i cinque secondi perchè il pulsante ha
, una doppia funzione. Tenuto premuto per più di
"•
30 secondi provoca il ripristino del sistema opera-
tivo OpenWRT con la versione originale, ovvero
~

.•

~
~

quella caricata in fabbrica. Una buona opzione

:"' - • Microcontr.ollore: ATmega32u4 ~

:. • Tensione di-alimentazione:- 5V

•• per permettere di recuperare eventuali operazioni
- •

: • lnput Voltage: SV



maldestre. Questo lascia la libertà di sperimenta-
• •
: • Canali 1/:0:20 •
A
re senza il timore di trovarsi in situazioni senza
• =~ l'"

:_ • Canali PWM: 7 , '"· , Il l!

m•
.~

Il~
via d'uscita. Più semplice di così. Chiaramente il
Canali Ingresso Analogici: :12:· - "
Il

:• · : . • '•

• prezzo è di perdere tutte le configurazioni e gli

:_ • Corrente per pln dii/O: 40 mA •
• eventuali aggiornamenti eseguiti su OpenWRT .
• •

: • Corrente sul pin 3.3V : 50 mA •

• •
: • Memoria Flash: 32 KB (4 KB usate per Il bootroader) •
• •


Un ulteriore richiamo sui LED presenti sulla scheda,
: • SRAM: 2.5 j(B •

·- • posizionati come visibile in Fig. 4, e sul loro significato:
:• • EEPROM: 1 ~8 •


'
f •
:• . • Clock Speed: 16 MHz ::··:..
'""
::.·::
- •



~



• USB- Blu, indica attività sul connettore USB;

• •

• PROCESSORE LINUX •


• WLAN (WiFi) - WiFi attivo;

• •
~


• Processare: Atheros AR9331



• POWER - Indica la presenza di alimentazione;

• •

• • Architettura: MIPS @400MHz •


• W AN - Indica la presenza di una connessione di

• •

• • Tensione di alimentazione: 3.3V •
• rete Ethernet attiva;
• •
• •


• Ethernet: IEEE 802.3 10/100Mbit/s •
• • Pin 13 -Riporta lo stato del pin 13;
• •



• WiFi: IEEE 802.11b/g/n •

• • Serial TX - Indica attività sulla porta seriale in
• •



• USB Tipo-A: 2.0 Host/Device •

• trasmissione (per esempio quando si utilizza il
• •


• Lettore di scheda: Micro SD Card •
• monitor seriale);
• •

• • RAM: 64 MB DDR2 •




• • Serial RX - Indica attività sulla porta seriale in
• • Memoria Flas:16 MB •







trasmissione (per esempio quando si utilizza il

• •

• •• •• • •• • • •• • • •• • •• •• • • ••• • • • ••• • • • • •• • • ••• • •• ••• •• • •• • • • • •• • • ••••• ••• • • • • •• • •• ••• • •
• monitor seriale) .

ELETTRONICA IN - Dicembre 2018/ Gennaio 2019 95

l
••

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

Fig. 4 - LED presenti


sulla scheda Arduino Yun.

re presente a bordo della scheda stessa.


La caratteris tica "simpatic a" di questa scheda è
data dal fatto che l'interfaccia TCP /lP non è rea-
lizzata con un web server con interfaccia HTML,
- - Seria l reciver ma l'applicaz ione TCP /IP della scheda gestisce un
- - Seria l transmit protocoll o fatto da semplici comandi da inviare
- - Pin l3
- - WAN (ethernet) indicator mediante socket TCP od UDP in modalità RAW.
- - Power indicator In questo modo è possibile integrare l'utilizzo
- - WLAN (WiFi) indicator della scheda in pressoché qualsiasi applicazi one
- USB
di gestione di I/ O remoti. Inoltre sono scaricabili
una serie di applicazi oni software che permetto no
di configura re e testare il funzionam ento della
scheda anche in assenza di applicazi oni specifiche.
L'aliment azione della scheda richiede una tensione
compresa tra i 9 ed i 24V ed è applicabi le mediante
un connettor e plug oppure utilizzand o gli oppor-
Ricordiam o ancora che i due processor i di Arduino tuni connettor i a vite, per un impiego più "stabile".
Yt1n possono eseguire programm i che collabora no I relè sono in grado di sopportar e un carico di 30
tra di loro grazie all'ambie nte Bridge, composto VDC a lOA o 250 VAC sempre a lOA. Lo stato dei
da una libreria per Arduino dal lato del processar e relè è indicato con due LED rossi. Il LED verde
32u4 e del corrispon dente framewor k dal lato del indica la presenza di alimentaz ione.
sistema OpenWRT. Lo schema di riferimento del La parte importan te per la nostra appliçazi one è il
funzionam ento di questo sistema di comunicazio- protocoll o di comunica zione da utilizzare per atti-
ne è visibile in Fig. 5. Per un approfon dimento sul vare e disattivar e le uscite relè e per impostare la •

funzionam ento di questa architettu ra e sull'utiliz zo configura zione dell'interf accia Ethemet e le moda-
delle diverse funzionalità disponibili vi rimandia - lità di funzionam ento . •

mo alla lettura del libro citato all'inizio dell'articolo. Nei comandi seguenti "R" è il numero che cor-
risponde al relè od al pin di output che si vuole
SCHEDA ETH2RELBOARD operare, "n" è un numero espresso in secondi.
La scheda, visibile in Fig. 6, è in grado di pilotare
due relè, fisicamente montati a bordo della scheda, OR Restituisce lo stato (on/ off) del relè
ed ulteriori uscite sui p in di output, per mezzo di corrispon dente;
un'interfa ccia TCP /IP gestita da un microcontrollo- lR Chiude il relè corrispon dente, se aperto; •


- .. ~- ~

-- -
USB
Rx Tx HOST

ATmega • •
ltnmo
32u4 4
Tx
BR Gli
Rx
AR 9331
~

SD
CARD

USB WiFi ETH


Pro g. lnterface
Fig. 5 - Architettu ra
l ARDUI NO ENVIROM ENT l l LINUX ENVIROMENT
l Bridge.

98 Dicembre 2018 / Genn aio 2019 - ELETTRONICA IN


• •


• •

------------------------------ - -------------------------------------------------------------------
Ingresso Connettore
alimentazione •
espansione
9-24V uscite

--:------ Porta Network


Terminali Relé:
250V AC /10 A -
oppure 30V DC l 1OA

• Connettore
------ alimentazione
5VDC

Fig. 6 - Layout scheda


2 LED indicatori di stato relé SR-201.

lR* Chiude il relè corrispondente, se aperto, per 5. cablaggio tra Arduino Ytin e scheda Relè;
riaprirlo dopo circa ~ secondo; 6. configurazione schedulatore Cron;
lR:O Come "lR"; . 7. test;
lR:n Chiude il relé se aperto; dopo "n" secondi 8. eventuale configurazione scheda Relè.
(l <= n <= 65535) lo riapre;
2R Apre il relè, se chiuso. Andiamo con ordine. Come prima operazione
accendete Arduino Yun. Aprite la funzione di con-
Nota: Se al posto del numero del relè si inserisce il figurazione WiFi del vostro PC e dopo un certo pe-
valore "X" (lX o 2X), l'operazione richiesta agisce riodo vedrete apparire una nuova rete con SSID che
su tutti i relè contemporaneame nte. corrisponde ad "Arduino Yun-XXXXX "
Questi comandi possono essere inviati da una dove la sequenza di "X" rappresentano l'identi-
• semplice finestra di terminale, oppure da un' ap- ficativo univoco del vostro Arduino Ytin. Come
plicazione in esecuzione su un microcontrollore o configurazione predefinita Arduino Ytin presenta

microcomputer. Da ricordare bene: la configurazio- una sottorete con indirizzo IP 192.168.240.1/24. Sce-
ne predefinita prevede che la scheda relè risponda gliete di collegarvi all'SSID di Arduino Ytin, per il
all'indirizzo quale non è prevista Password. Vi verrà assegnato
automaticamente un indirizzo IP dal server DHCP
192.168.1.100 di OpenWRT.
A questo punto potete collegarvi alla finestra di
sulle porte TCP 6722 e UDP 6723 terminale di OpenWRT, per esempio, utilizzando
l'ormai ultranota applicazione Putty.
La porta di configurazione della scheda è: Collegatevi utilizzando il protocollo SSH e impo-
stando l'indirizzo 192.168.240.1. Alla richiesta di un
TCP 5111 utente rispondete con: root e password: arduino. Vi
verrà presentata la schermata visibile in Fig. 7.
PREPARAZIONE DI ARDUINO YUN - Ora collegate un cavo della vostra rete locale alla
La realizzazione di questa applicazione prevede porta Ethernet di Arduino Ytin. Fate attenzione:
una serie di passi che possono essere così riassunti: tentando di inserire il cavo di rete si rischia di
l. aggiornamento della distribuzione OpenWRT premere il pulsante di Reset della Wlan. Digitate il
con il supporto PHP per il server web uhttpd; comando:
2. preparazione della micro SD Card con i compo- •

nenti software della nostra applicazione; ifconfig


3. scrittura programmi (o download dal sito) e
trasferimento sulla SD Card; e verificate che l'interfaccia di rete ethl presenti
4. configurazione della rete locale di Arduino Ytin un indirizzo che appartenga alla vostra rete locale.
per collegarsi sulla stessa sottorete della scheda Questo è indispensabile in quanto, per aggiornare
·Relè; la distribuzione di OpenWRT, deve essere possibile

ELETTRONICA IN- Dicembre 2018/ Gennaio 2019 97


l

Fig. 7 - Collegamento
alla she/1 di OpenWRT.

collegarsi alla rete Internet pubblica. disponibile con il comando:


Se tutto è corretto digitate il comando:
opkg list php*
opkg update •
Per far gestire i programmi PHP dal server web di
Questo comando permette di aggiornare il reposito- OpenWRT, ovvero uhttpd, è necessario aggiornare •

ry dei pacchetti disponibili per l'aggiornamento di il file di configurazione di uhttpd.


OpenWRT. Al termine installate i componenti per
l'esecuzione di programmi PHP in modalità CGI. Utilizzando WinSCP, sempre puntando all'indi-
Digitate il comando: rizzo 192.168.240.1 con utente "root" e successiva
password "arduino". Andate alla cartella:
opkg install php7 php7-cgi php7-cli
/etc/config/
come visibile in Fig. 8. Al momento della scrittura
di questo articolo la versione di PHP corrente è la e aprite il file:
"7".
In caso di problemi verificate la versione di PHP uhttpd

Fig. 8
Installazione PHP.

98 Dicembre 2018 / Gennaio 2019 - ELETTRONICA IN


'
--·-·-----·· - - - - - - - - - - - - - - - - - - -·- - - -·· - - - - - -·- - - - - - ·--------------

-:onfi g '· http d ~~ mai n"


list listen_htt p · o. a. o.O :BO
list listen_http · r: :]:BO I
list liste n_https "0.0 . 0.0: 44 3'
list listen_htt s ~ : : :443 '

opt on o e '~'l''"~·•
option rfc19lS_filter ~ 1 "
opt.ion ax_reqLests ' 3 "
opti C)fl 1 ax_connecti ons ' 1 00 "
opti on cer t ",/etc / uhtt pd. crt "
Fig. 9 opt. i on key' ~/ etc,/\ http d. kej.r "
option cgi _pr efi x "/cgi-bi n·
File di configurazione opti o n l '· a_pr efi x "/l uci '
server uhttpd. opti o n l 1.a_ha ndl er •.lusr ,./ l i b,/1 '-a/ l uci ,/'sgi ,/L htt pd. l ua ~
opti o n s cr i pt _t i meout • 60 "
opt.i on net\•ior k_ti eout • 30 •
option http_keepali ve ~ 20 "
optio n tcp_keepali ve "1 .
opt.i on L bus_pr efi x • ./ubus ~~
option r edirect_https "O"
contlq- cert · def a1.. l ts ·
- l

opti on da:y-s n 7 30 a
opti on bits " 204 8 .
opt1on cot ntry zz
l " •

opti on state some·&•rhere "


opti on l o'cait i o n "unknovj'n •
option commonname · LEDE 'un ·
71',31
R.Jga: .q Codiflca : 1252 (.~NSI - Latino

Modificatelo, aggiungendo la direttiva: phpinjo();


, ?>
list interpreter ".php=/usr/bin/php-cgi"
Aprite un browser e digitate l'indirizzo:
come visibile in Fig. 9. Salvate e chiudete. Ora riav-
viate il server uhttpd con il comando: 192.168.240.1/sd/phpinfo.php

/etc/init.d/uhttpd restart Se ottenete il risultato visibile in Fig. 11 tutto fun-


ziona a dovere.
Ora è tempo di preparare la micro SD Card dove A questo punto è necessario realizzare il collega-
metteremo i nostri programmi. Una micro SD Card mento tra Arduino Yun e la scheda Relè.
da 8GB andrà benissimo. Inseritela nello slot del
vostro PC e create le cartelle:

/arduino/www
~l
/data

Toglietela dal PC e inseritela nello slot di Arduino ~(?p fl p


Yun. Sempre con WinSCP andate nella cartella:
phpi t:1ifO (} ;
/www/sd
Fig. 10
e create un file con nome phpinfo.php File phpinfo.php.

inserite il seguente testo, come visibile in Fig. 10:

<?php

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 99


'

Prima è necessari o configura re l'interfaccia W AN di della scheda Relè. Date tensione alla scheda Relè e
Arduino YU!l in modo da farla partecipa re alla stes- tornate al collegam ento con WinSCP al file system
sa sottorete della scheda Relè. Dal browser digitate di Arduino YU!l. Dovrete creare una struttura iden-
l'indirizzo : tica a quella visibile in Fig. 15.
Create un file vuoto di nome "sr201.py" . Recupera te
192.168.240.1 il contenuto del file dal repositor y GitHub all'indi-

nzzo:
Dopo breve si aprirà la pagina di login dell'appli ca-
zione di configura zione di OpenWRT, come visibile https://github .com/berkinet/sr-201-relay
in Fig. 12. Inserite la password "arduino". Nella
pagina successiva cliccate su "CONFIGURE" e poi Copiate il programm a all'intern o del vostro file e
su "advance d configura tion panel (luci)". Dal menu salvate.
in alto seleziona te "Network >>lnterfa ces" (Fig. 13). Ora scaricate gli altri file dal sito di Elettronic aln e
Nella nuova pagina cliccate su "WAN" in alto a copiateli nella stessa cartella /www/sd/.
sinistra, e configura te la nuova pagina come visibile Nel browser digitare l'indirizzo :
in Fig. 14.
Nell'ordin e: 192.168.1.100/sd
l. seleziona te "Static address";
2. cliccate sul pulsante "Sw itch protocol" ; ed otterrete la pagina visibile in Fig. 16.
3. inserite l'indirizz o "192.168.1.1"; L'applica zione web è una classica pagina HTML,
4. inserite la Netmask "255.255.255.0"; che utilizza l'architet tura AJAX per inviare comandi
5. Cliccate sul pulsante "Save & Apply" in fondo al server web e per mantener e aggiorna_to lo stato
alla pagina. dei relè e dei pin di output. Nella Fig. 17 sono visi-
bili alcuni Relè in stato "on" ed altri in stato "off". •

Attendete che tutto termini. Collegate l'interfaccia Con questa piccola applicazi one potete attivare e di-
Ethernet di Arduino YU!l con l'interfaccia Ethernet sattivare i vostri relè e pin da remoto. il programm a

~•foO x
-.,._....,._
+ <D 192.168.210. /IApoofo.!*P 1 Q, Cerca --

PHP Verslon 7.1.11

System UnuxArdulno 4 9.9111{) Tue ~r 24 17:17:07 2018 mips


Conligure Commalld 'Jconngure' '-target=mips-o penwrt-llnUX' '-host:mips-()penwrt-linUX' '-build=x86_64-pc-linux-onu' ·-;nogram-
prefix=' '-program-sullir-' ·- prefix--/Us( ·-exec-prefix=/us( '-blndlr=/usrlbln' '-sbindlr=/usr/sbln'
'-llbexecdlr=/usrnib' '-syscontdir=/etc' '-datadlr=/usr/share' '-localstatedlr=lva( '-mandlr=/usr/man'
'-lntodlr=lusrAn fo' '-enable-dl' '-enable-cgl' ·-enable-fpm' '-enable-share d' '-disable-statlc' '-disable;path '
'-dlsable-debug' '-dlsable-phpdbg' '-wlthout-pea( '-wlth-conng-file-path=letc' '-wfth-config-fil e-scan-dir=Jetc
/phpT '-dlsable-short4ags' '-wlth-zllb=lhome/arduino/!ede-yun/staglng_dlrltarget-rnlps_24kc_musl/us( '- With·
zlib-dlr=lhome/ardulnonede-yun/staglnll.dlrltarget-rnips_24kc_musl/us( '-enable-calendar=shared' '-enable-
~l!e=shared' '-wlth-curt=shared,lhome/ardulnonede-yun/staoinll.dlrltarget-rnips_24kc_musl/us( '-enable-
fileintO--shared' '-with-getteld=s hared,lhome/arduinonede-t1Jn/staglng_dirltarget-rnlps_24kc_musl/usr~ib
nibintl-full' '-enable-dom- shared' '-enable-exil=shared' '-enable..ftp=shared' '-wlth-gd=shared' '-wlth-
jpeg-dir=lhome/arduinonede-yun/staginll.dirltarget-rnips_24kc_musl/us( '- with-png-dir=/home/arduinonede-
yun/staging_dir/!arget-mips_24kc_musl/us( '-without-xpm-di( '-enable-gd-native-ttr '-dlsable-gd-jis-conv'
'-with-freetype-dir=lhome/ardu inoAede-yu n/staging_dir/ta rget-mips_24kc_musl' '-with·gmp=shared,lhome
/arduino/!ede-yun/staging_dir/!arget-mips_24kc_musl/us( '- enable-hash=shared''- with-iconv=shared,lhome
/arduino~ede-)1Jn/staging_dirltarget-rnips_24kc_musl/usrnib/!iblconv-stub' '-enable-intl=shared' '-enable-
json=shared' '-with-tdap=shared,lhome/arduinonede-yun/staginll.dirllarget-rnips_24kc_musl/us( '-wlth-
ldap-sasl=lhome/arduinonede-yun/staging_dirllarget-rnips_24kc_musl/usl' '-enable-mbsbing=shared'
'-enable-rnbregex' '-wlth-mcypt=shared,lhome/arduinonede-yun/staging_dirnarget-rnips_24kc_musl/usl'
'-with-mysqli=shared,lhomelarduino~ede-yun/staging_dirnarget-mips_24kc_musllusrlblnlmysql_config'
'-enabfe-()pcache=shared' ·-witiHlpenssl=shared,lhome/arduinonede-yun/staging_dirnarget-
mips_24kc_musl/us( '-with-kerberos =no' '-with-openssl -dir=/home/arduino/!ede-yun/staging_dirnargel-
mips_24kc_musilus( '-enable-pcnlf:shared' '-enable-pdo=shared' '-with-pdo-mys ql=shared,/hom e/ardu i no
nede-yun/staglng_dlrltarget-mips_24kc_musl/us( '-with-pdo-pgsq f:shared,lhome/arduinoAede-yun/staging_dir
..... _ .. ....:- ... .,A a.. ... _ . ....... .. .... ~ • k --~ _..._ . .. . la... _-.J-_ _ .,.. .., _ _ _ ......... . . s... .... ..... _ ~ . -s...,. ...-:...... ...e; ...__ _ _.

Fig. 11 - Risultato phpinfo.php.

100 Dicembre 2018 /Gennaio 2019- ELETTRONICA IN



Fig. 12 - Pagina di login


WELCOME TO YOUR AROUINO YUN .
del config urato re
di Open WRI
Enter password to access the web contro! panel

······~
Please be su re you have coolcies enabled before proceedtng.

l
LOG IN

AJ_stato.php viene lanciato ciclicamente dal brow ser "sr201.py" che avete scaricato dal repository GitHub.
per mantenere aggiornato lo stato dei relè e dei pin Questo prog ramm a è utlizzabile anche da linea di
e viene attivato ogni volta che cliccate su uno degli comando. Digitate dalla finestra di terminale:
"inte rrutto ri" che attivano o disattivano i relè o i pin
di outp ut. Questi ultimi prog ramm i utilizzano le python /www/sd/sr201.py 192.168.1.100 close:1
funzionalità messe a disposizione dal prog ramm a oppu re

Arrlln> - OVerview - LuCI

~""+) CD 192. 168.2'10. ·1 e Il o. Cerca --



Status

System
Hostname

Model

Firmware Version .11 r6773i-1-Bdd3a6e l LuCI Ieile-17.01 branch {git-1B.113.71669-09ae63B)

Kernel Version 4.9.91

Local Time Sun Sep 23 19:40:38 2018

Uptime 'l Oh 14m 35s

Load Average 0.66, 0.49, 0.39

'

Memory
Total Available

Free

.
Fig. 13 - Selezione configurazione interf acce di rete.

ELETTRONICA IN- Dicembre 2018 /Gennaio 2019 101


--

WAA LAN

lnterfaces- WAN
On this page you can configure the network interfaces. You can bòdge severa! interfaces by tJcking the "bridge interfaces" field and enter the names of severa!
network interfaces separa! ed by spaces. You can also use ~ notation INTERFAO:. VLANNR ~: e ellO. l }.

Common Configuration
Generai Setup Advanced Set110gs Physical Settings Firewall Settings

Status Uptime: 10h 17m 43s


etll1 MAC.Address: A8:40:41 :19:D5.68
RX: 667.34 KB (10994 Pkts.}
TX: 1.31 MB (22588 Pkts .)
1Pv4: 192..168.12/24

Protocol StatiC address

1Pv4 address 192.168 1 2 •

1Pv4 netmask 255 255.255.0 v

1Pv4 gateway

Fig. 14 - Configurazione rete WAN.

python /www/sd/sr201 .py 192.168.1.100 open:1

Dove il numero dopo i":" è il numero del relè o del


pin di output. Sostituen do il numero potete attivare Sincronizza

o disattivare qualunqu e uscita. Impostazioni trasferimento Prode 1to •


Per avere lo stato della scheda Relè digitate: Loc* SeleDon; _ e ~omeocl ~SIOI"' QpZl0111 B.emoto to

python /www/sd/sr201 .py 192.168.1 .100 status
• >>

Se si desidera attivare o disattivare le uscite della » I±J " jjl Dowrload " [;)' Modifica )( " I±J "
scheda Relè secondo un calendario prefissato torna-
te nell'applicazione di configurazione di OpenWRT. Nom~ -

Dal menu selezionate "System>>Scheduled Tasks". _sr20l.~

Si aprirà una finestra di configurazione che non è AJ _stato.php

null'altro che il file di configurazione dello schedu- .' ' '" ' '

.' '
latore Cron. Inserite le seguenti dichiarative (Fig.18)

1-59/2 * * * * /usr/bin/python /www/sd/sr201 .py


192.168.1.100 close:3 ,-. sr201.py ,-. sr201.py

0-58/2 * * * * /usr/bin/python /www/sd/sr201 .py


192.168.1.100 open:3 < b i l < 'l l >
----~--------~
Beli 112KB inOdi9 OBdi 1111<8 ' Odl9
SCP 10.23.-lO
Fig. 15 - Cartella web di Arduino Yun.

102 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN



Fig . 16 - Pagina controllo
Arduìno yun ControUo Rele )(
re/è. Arduino yun ContraDa Refe )(

(+
, _.,.,..,.,) CD t92.t68.240. 1/sd, e l >> -- --
Cont rollo rele Controno re~e
-- _.. ____________ ---- --·-

Il Reie
l r i
Rele
1 2 3 4 1. 2 3 4
l'
l
l
i------ -- - - _ ___J - -
l
,_ l - ---·- - ---
5 6· '
7 8 ll
l l 5 6 7 8
l l l

!
'
l
l• l l
Q
J
l

l
Fig. 1 7 - Visualizzazione
stato re/è.

Queste istruzione faranno attivare l'uscita 3 ogni Ciascun parametro temporale può essere configu-
minuto dispari di ogni ora e lo faranno disattivare rato come serie di valori (ad esempio 0,3,7,9); come
ogni minuto pari di ogni ora. · un intervallo (ad esempio 3-7); un misto dei due (ad
Abbiamo descritto Cron in moltissimi articoli e in esempio 0,3,4-6,9); oppure ancora come frequenza
particolare nel libro citato all'inizio. */5 (ogni 5 minuti, ore, ecc.).
Riportiamo solo una sintesi delle combinazioni
valide. Cliccate su pulsante "Submit".
* * * * * <comando da eseguire> Poi, dalla finestra di terminale, digitate:

service cron restart


+-- -- giorno della settimana (0- 6) (O=Domenica)

+-------
mese (1 - 12)
+-------: --
giorno del mese (1 - 31) per rendere operative le dichiarazioni, altrimenti do-
+-------------
ora (0- 23) vrete spegnere e riaccendere Arduino YUn.
+---------------- min (0- 59)
\

· • .Arduìrno - SrnerJuled Tasks - l p •

_....,.
19_z_._16_a_.240
.L.-._ _ _._1Jlu_dJ_a_dm_rn_~_svs_ter._._ _C--' 0.. cerca l >>

Sche·d uled Tasks


This is the sy-stem crontah in 'Nhich scheduled tasks can be defined.
Note: you need to manuaUy restart the cron se.rvice ifthe cruntab ffl·e was empty before
editing.

1-5912 ~ * * lusr/bin/python /J1V\YW/sd/sr201.py 192.158_1_1-00 close:3


"f:

0-58/2 '* ~ * * /usrlbi-nlpython /mvw/sdl:sr201 _py 192_168.1 .100 open:3

Fig. 18
Configrazione
schedulatore Cron.

ELETTRONICA IN - Dicembre 2018 /Gennaio 2019 103


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

O Config Utility for tletwork Relay r t·- M


L=.Ji-=- ~
iJ Network l il Network l Remote Contro! J ./ Others J

lP Address lP .:.ddress 1192. 168.1.100

Subnet Mask 1255.255.255.0

Gateway 1192. t68.1.1

IPAddleu

j , O~ l c~ncet l
Rrmvii!re vers1on: 1.0.931

,- -----,
; Disconnect i
- ·---' Save l .iL Exit l
Fig. 19- Strumento di configurazione scheda SR-201 Fig. 20 -Finestra di configurazione scheda SR-201 .


Se tenete aperta la pagina del browser, ad ogni scadere Cliccate sul pulsante "Connect" e, nella finestra pop-
di minuto vedrete modificarsi l'immagine dell'interrut- up, inserite l'indirizzo della scheda Relè, tipicamente
tore corrispondente all'uscita 3, a seconda che questa si 192.168.1.100. Cliccate su "OK" ed otterrete la finestra •

trovi nello stato "on" oppure "off". di configurazione visibile in Fig. 20. Impostate le
vostre configurazioni e poi confermate cliccando sul
CONFIGURAZIONE SCHEDA RELÈ pulsante "Save".
Se volete integrare questa applicazione all'interno
della vostra rete locale, dovete configurare opportuna- •
mente sia la componente router del sistema OpenWRT
che l'interfaccia Ethernet della scheda Relè. Per esegui-
re questo compito è bene avere una certa conoscenza
della configurazione di reti TCP /IP, soprattutto per
quanto riguarda la sicurezza. Come avrete notato gli
accessi sono senza password, a parte il configuratore Il materiale utilizzato in questo progetto è disponibile
'
di OpenWRT, e questo non è certo il massimo in termi- da Futura Elettronica. La board ARDUINO YUN REV 2
ni di sicurezza. Se decidete di integrare l'applicazione (cod. ARDUINOYUNRE V2) è in vendita a Euro 59,50,
nella vostra rete, proteggetela a dovere. Tornando l'alimentatore switching 5 VDC l 3 A con connetto-
alla configurazione della scheda Relè vi consigliamo re micro USB (cod. AL05-3USB) costa Euro 10,50,
di utilizzare lo strumento messo a disposizione dal la scheda ethernet a 2 relè (cod. ETH2RELBOARD)
produttore. Lo trovate tra i file scaricabili dal sito Futu- è disponibile a Euro 34,00, l'alimentatore switching
rashop (wwwjuturashop.it) nella documentazione della 12 VDC l 1,2 A (cod. AL 12V1 A2) è in vendita a
scheda ETH2RELBOARD. Per poter utilizzare questo Euro 8,50 . Il libro ''Alla scoperta di Arduino Yun"
strumento è necessario collegare, con un cavo diretto, (cod. YUNBOOK1) è disponibile a Euro 12,90 e il cavo
l'interfaccia Ethernet della scheda Relè con l'interfaccia UTP CAT5E 2XRJ45 da 1,8 metri (cod. PAC609B018)
Ethernet del vostro PC. Poi assegnate un indirizzo IP costa Euro 2,70. l prezzi si intendono IVA compresa.
statico all'interfaccia di rete del PC che appartenga .
--------· - ----- -
' -j
'/·'' ,--. --~·

alla stessa sottorete della scheda Relè, per esempio ~/·}c'·} .,; id~.; . •. 11.materiale va richiesto a: > ·. · .. · .• •
192.168.1.30. Scaricate il file, scompattatelo ed eseguite ;: , ·.·i'/.:...-. F~i J/~\Ei-
'· .....
~ù~o .
ni ca, Vi <1 Adige·.....·
11, 21 ol r Ga Il ara te (VA) \ ....j
il programma "Config Utility.exe". Si apre l'applicazio- - '. ' ', - ,_

. . . . ..-...:rei: ·033h:799775"
~--. ,__ -.-_.:,: ' ." - - '

Fax: 0331~792287- www.futurashop.it ,.


' •, ' - '• __

-~~ ~·::- .. /,..:1;"":-;x_::;,,i:_-._ -- ..- . ---.-•. ... ,..· _.-. __ >.- •• -:-.;._:_
ne visibile in Fig.l9. ~:-', ..• ;.-..·

104 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN


no per la ricerca n
ENEA e CINECA hanno vinto una gara in- supercomputer offrirà servizi essenziali Nl Fusion sostituirà il precedente sistema
ternazionale per realizzare in Italia un su- per la ricerca sulla fusione, oltre che per la di calcolo ad elevate prestazioni fornito dal
percomputer per la ricerca europea sulla modellistica computazionale del plasma e supercomputer HELIOS dell'lnternational
fusione nucleare, in grado di eseguire 8 dei materiali, anche per la validazione dei Fusion Energy Centre di Rokkasho, in Giap-
milioni di miliardi di operazioni al secondo risultati sperimentali di ITER, il grande pro- pone.
(8 Pflops) grazie a processori di ultima ge- getto internazionale che dovrà dimostrare

neraz10ne. la fattibilità dello sfruttamento dell'energia www.enea.it
A partire dal 2019 e per cinque anni, i due da fusione, e come base per la progettazio-
enti italiani forniranno servizi di calcolo ad ne di DEMO, il reattore che dopo il2050 do-
alte prestazioni (HPC) e storage di dati per vrà immettere energia elettrica da fusione

EUROfusion, il consorzio europeo per lo svi- m rete.
luppo dell'energia da fusione e gestiranno ENEA referente del progetto e membro
il supercalcolatore installato presso il cen- di EUROfusion, provvederà alla gestione
tro di calcolo del CINECA per la simulazione dei servizi HPC e di supporto applicativo
numerica della fisica dei plasmi termonu- agli utenti del consorzio, mentre CINECA
cleari e l'analisi strutturale dei materiali metterà a disposizione una partizione di
avanzati per applicazioni energetiche. MARCONI con una potenza di picco di 16
Con una potenza di calcolo quasi raddop- Pflops che lo colloca al 18° posto tra i 500
piata rispetto alla precedente versione, il computer più potenti nel mondo. MARCO-
"!ipii\INaker"

mondo
Un nuovo supercom- scala contenenti circuiti
puter progettato per elettronici.
funzionare con gli stessi A differenza dei compu-
meccanismi del cervello ter tradizionali, SpiNNa-
umano è stato acceso ker non comunica invian-
presso l'Università di do grandi blocchi di dati
Manchester. La macchina dal punto A al punto B
"Spiking Neural Network tramite una rete stan-
Architecture" o "SpiN- dard. Invece, imita l'ar-
Naker" è capace di oltre chitettura massicciamen-
200 trilioni di operazioni te parallela del cervello
al secondo, con ciascuno - inviando miliardi di pic-
dei suoi processori (ce ne coli pezzi di informazio-
sono un milione) in grado ni simultaneamente a
di compiere 100 milioni migliaia di destinazioni
di operazioni al secondo. diverse.
Il progetto, che ha ri- "SpiNNaker ripensa com-
chiesto 20 anni per la pletamente il modo in cui
progettazione e 12 per funzionano i computer
la costruzione, ha visto la convenziona/l', afferma
luce grazie ad un finan- Steve Furber, professore
ziamento di 15 milioni di di ingegneria informati-
sterline da parte del Go- ca presso l'Università di
verno britannico a cui si Manchester. "Abbiamo
sono aggiunti i fondi del creato una macchina che
progetto europeo Hu- funziona più come un
man Bra in Project (HBP). cervello umano che come
SpiNNaker può manipo- un tradizionale compu-
lare più neuroni biologici ter, il che è estremamen-
in tempo reale rispetto te eccitante. L'obiettivo
a qualsiasi altro compu- finale del progetto è
ter sul pianeta. l neuroni sempre stato quello di
biologici sono cellule avere almeno un milione
cerebrali di base presen- di core in un singolo com-
ti nel sistema nervoso puter per applicazioni di
che comunicano prin- modellazione cerebrale
cipalmente emettendo in tempo reale. Ora ab-
"picchi" di energia elet- biamo raggiunto la meta
trochimica. Il cosiddetto e tutto ciò è fantastico. "
calcolo "neuromorfico"
può imitare questi picchi http://apt.cs.manchester.
usando sistemi su larga ac.uk!projects/SpiNNaker/
••

screen a 1ncasso
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
l Range di temperatura: da 5° Ca 35° C (impastabile)
v Limite range di temperatura: 5-99° C
Consumo: <0,3 Watt ·

(Il
m Senso re di temperatura: NTC (1 Ok) 1% .
-:l
()
Montaggio: a incasso
c
·-
:g;
-
·-
' Dimensioni: 86 x 86 x 17 mm
iQ):J Peso: 234 grammi
....
a. -

(' \

PLACCA PER TERMOSTATO


WiFi FR695
Placca da utilizzare in cod. FR695
- abbinamento al termostato
Wi-Fi FR695 e alla scatola
da incasso modello 503E
'•• • •.
*
• l l l....
• • • • • • •• • •
l

(acquistabile separatamente). A(9Jl) Po~1 Te~~nU3t SQ~'l
Dimensioni: 116x74,9x7,6 mm ~~
cod. PLACCAFR695

ICROCHIP

ella prima puntata, abbiamo spiegato il concet-


to di CIP evidenzia ndo i vantaggi che la loro
implemen tazione apporta rispetto all'utilizzo del
microcontrollore canonico con la CPU che deve
Entriamo nel vivo
occuparsi, tra i vari compiti, anche della gestione
dell'argomento conoscendo diretta delle periferiche.
alcune periferiche CIP integrate A partire da questa seconda puntata cominciamo ad
nei microcontrollori Microchip. esaminar e alcune delle più interessanti ed utili uni-
tà CIP che si trovano integrate in alcune MCU a 8 e
16 bit di Microchip .
Per le "prove pratiche" previste a corredo delle
nozioni teoriche esposte utilizzeremo la scheda
di sviluppo "Curiosity" (Part Number Microchip
Fig. l
La demoboard
utilizzata nel corso.

DM164137) che vedete nella Fig. 1 e che viene equi- 2. Porte collegate agli ingressi; sono logiche AND l
paggiata con un PIC16F1619, microcontrollore do- NAND/OR/NOR che prendono gli "Ingressi" e
tato di un gran numero di CIP, che ci permetterà di producono quattro segnali di uscita.
sperimentare quanto vedremo. 3. Funzioni Logiche; blocco configurabile per svol-
Come ambiente software utilizzeremo MPLAB gere una funzione logica a scelta tra:
X, attualmente alla versione 5.05, il plugin MCC a. AND/OR;
(MPLAB Code Configurator), attualmente giunto alla b. OR/XOR;
versione 3.65.1, nonché il compilatore XCS (attual- c. AND a quattro ingressi;
mente giunto alla versione 2.0). d. flip-flop di tipo Set-Reset; •
e. flip-flop di tipo J-K;
CLC (Configurable Logic Cell) f. flip-flop di tipo D a uno o due ingressi;
La prima CIP di cui ci occupiamo è la CLC, ovvero g. input latch.
"Cella Logica Configurabile": si tratta di una logica 4. Uscita: unic~ uscita risultato dei blocchi prece-
programmabile che opera al di fuori dei limiti di denti.
velocità dell'esecuzione del software, in alcuni casi
replicata all'interno della MCU: nel caso della no- Schematicamente una CLC può quindi essere rap-
stra scheda di sviluppo, la MCU PIC16F1619 dispo- presentata come mostrato nella Fig. 2.
ne internamente di ben 4 CLC. Riassumendo, la CLC accetta fino a 16 segnali di
La CLC può essere immaginata come composta da ingresso e attraverso l'uso di porte configurabili
quattro blocchi distinti di seguito descritti. riduce i 16 ingressi a quattro linee logiche che pilo-
1. Ingressi; possono essere fino a 16 a seconda tano una delle otto funzioni logiche con un'uscita
della della MCU; singola.
Naturalmente, ogni singola CLC, prima di poter
essere utilizzata, deve essere configurata; tale con-
figurazione si può fare sia in modo classico, pro-
grammando a mano, uno per uno, i vari registri di
configurazione della periferica, o, in modo molto
più rapido ed intuitivo, tramite l'apposito tool grafi-
INPUTS co MCC (MPLAB Code Configurator).
OUTPUT
Per questa volta, proprio per dimostrare la tediosità
della configurazione manuale rispetto all'utilizzo di
MCC, effettueremo entrambe le cose.

Configurazione "manuale" di una CLC tramite registri


La configurazione di una CLC prevede la configu-
DATA LOGIC
FUNCTIONS razione di otto registri, impostati i quali, la CLC
GATING
inizierà a funzionare autonomamente ed indipen-
Fig. 2 - Schematizzazione di una CLC. dentemente dal codice che gira nella CPU.

CLCxSELO Gate lnput 2 Gate lnput 1 Tabella 1


- 1 1 1 - o o o CLC11N[O] CLC11NO PIN
CLC11N(1] CLC1 1N1 PIN
LCxD2S<2·0 LCxD1S<2:0>
CLC1 1N[2] SYNCC10UT
CLCxSEL1 Gate lnput 4

Gate lnput 3 CLC11N[3] SYNCC20UT

- 1 o 1 - 1 o o CLC11N[4]
CLC1 1N[5]
Fosc
TMROIF

LCxD4S<2:0> LCxD3S<2:0> CLC11N[6] TMR11F


CLC1 1N[7] TMR2 = PR2
Fig. 3- Registri della CLCxGLS.
CLC11N[8] lc1 - ou1
CLC11N[9] lc2 ou1
I registri che dovremo configurare a mano sono: CLC11N[10] lc3- ou1
CLC1 1N[1 1] lc4 out
• CLCxCON CLC11N[12] NC010UT
• CLCxSELO CLC11N[13] HFINTOSC
• CLCxSELl CLC1 1N[14] PWM30UT
• CLCxGLSO CLC11N[15] PWM40UT
• CLCxGLSl
• CLCxGLS2 blocco delle "Porte collegate agli Ingressi".
• CLCxGLS3 Tale blocco ha quattro porte logiche che devono
• CLCxPOL essere configurate. Ciò richiede la configurazione
di cinque registri. Ogni ingresso può essere confi-
Per prima cosa configureremo gli "Ingressi" che gurato diretto, invertito connesso e non connesso. I
possono arrivare a ricevere 16 segnali differenti pro- cinque registri da configurare sono:
venienti da: • CLCxGLSO
• Pin di I/O • CLCxGLSl
• Timers • CLCxGLS2
• Uscita di altre periferiche • CLCxGLS3
• Bits di registro • CLCxPOL

Gli ingressi sono selezionati tramite i bits nei regi- Di base, ogni porta è configurata come una porta
stri CLCxSELO e CLCxSELl (x rappresenta il nume- OR, ma ogni suo ingresso e la sua uscita, può essere
ro della CLC) come vediamo in Fig. 3. impostato invertito o non invertito; ciò consente
Ogni input ha un identificativo a 3 bit associato che di creare porte AND, NAND, OR e NOR. Le porte
viene inserito nei registri CLCxSELn per abilitare possono anche essere impostate su un un livello
l'input voluto secondo la Tabella l. logico costante l o O. Schematicamente abbiamo
Terminata la selezione degli "Ingressi" dobbiamo quanto riportato nella Fig. 4.
passare a configurare il blocco successivo, ovvero il Ogni ingresso di una porta logica ha una coppia
di bit in uno dei registri CLCxGLSx; i due bit che
debbono essere programmati sono un bit che indica
non invertito (T) ed uno che indica invertito (N). Se
>-
si programma (l) il bit T, l'ingresso non è invertito,
mentre se si programma (l) il bit N, l'ingresso è in-
vertito. Se entrambi sono impostati su zero, l'ingres-
so non è collegato al gate (Fig. 5).
Infine, il bit LCxGxPOL del registro CLCxPOL in-
CLCxGLSO LCxGyPOL Gate Loglc vertirà o non invertirà l'uscita del gate; se messo a
Ox55 1 ANO zero l'uscita sarà non invertita, mentre se posto ad l
Ox55 o NANO
OxAA 1 NOR
l'uscita sarà invertita. ·
DATA OxAA o OR Terminata anche la configurazione delle "Porte col-
OxOO o Loglc O
legate agli Ingressi" si può passare alla configura-
GATING OxOO 1 Loglc 1
zione del blocco successivo, ovvero quello relativo
Fig. 4 - Schematizzazione del funzionamento delle porte. alle "Funzioni Logiche".
CLC1POL CLCxCON LCxMODE < 2 : O >

CLC1GLSO Fig. 7- Impostazione del codice nel registro CLCxCON.


LCIG104T LC1G10'U LCIG103T LC1G TOm LC101DZT L.C1G102N LC10101T LC1Q101N

o 1 o 1 o 1 o 1
l l ll
l l 1 l
lnput4 lnput 3 lnput 2 lnput 1 (1-CLCxiF impostato su Rising Edge);
• LCxiNTN - Abilitazione interrupt Falling Edge
Fig. 5 - Bit déi registri CLClPOL e CLClGLSO. (1-CLCxiF impostato su Falling Edge).

Mentre il bit LClPOL del registro CLCxPOL deter-


n blocco delle "Funzioni Logiche" offre la scelta tra mina se l'uscita viene invertita logicamente (l) o
otto possibili configurazioni selezionabili tramite un meno (0), come mostrato nella Fig. 10.
codice a tre bit nel registro CLCxCON; in particola- Esaminata la configurazione "manuale" di una
re, possiamo selezionare una tra le configurazioni CLC vediamo ora come il tool MCC ci aiuti in una
proposte nella Fig. 6. configurazione "assistita".
n codice a tre bit deve venire impostato nei bit
LCxMODE del registro CLCxCON per abilitare la Configurazione "assistita" di una CLC tramite MCC
funzione logica selezionata (Fig. 7). MCC (MPLAB Code Configurator), plugin di MPLAB
Finita anche la configurazione del blocco relativo X, è uno strumento basato su interfaccia grafica che
alle "Funzioni Logiche" non ci resta che affrontare permette la configurazione di una CLC con pochi
l'ultimo blocco, ovvero quello dell'unica "Uscita". semplici clic su una schermata che rappresenta ciò
Come già spiegato, tutti i blocchi di una CLC si che si va a realizzare; nella Fig. 11, in rosso sono
riducono a un'unica uscita in grado di: pilotare un
pin di I/O, essere l'ingresso di un altro modulo There are multiple bits that contro! the
CLC, essere l'ingresso di una periferica interna o output from the CLC module .
anche attivare un interrupt.
Queste varie possibilità si configurano tramite l'uti- LCxEN LCxOUT
lizzo dei registri CLCxCON e CLCxPOL (Fig. 8).
I bit del registro CLCxCON controllano le imposta- •
Logic - " ~
zioni di uscita (fate riferimento alla Fig. 9) : -~l> LXI
• LCxEN - Bit di abilitazione modulo CLC (l -
Gates .) ii l
l

LCxOE CLCx
CLC On, O- Off); LCxPOL
IlO pin
• LCxOE - Bit di abilitazione uscita (l - Abilitazio-
ne, O- Disabilita); LCxlNTP _r
CLCxiF
• LCxOUT- Monitoraggio interno dell'uscita tra- LCxiNTN "'L
mite software (bit di sola lettura);
• LCxiNTP - Abilitazione interrupt di Rising Edge Fig. 8 - Utilizzo dei registri CLCxCON e CLCxPOL.

OOO=AND -OR 001 = OR - XOR 01 O= 4- lnput AN D 011 = S-R Latch

lcg1


lcg1 lcgl
lcg1 """' l- lcg2 lcg2
" s Q l

lcg2 ./
' lcq lcg3
' \--lcq lcg2
' leq lcg3
./

lcg3 )_J ~
lcg4 ~
\-J lcg3 ./
lcg4
" ./
R

lcg4 / lcg4

100 = 1-lnput D Flip-Fiop with Sand R 101 = 2-lnput D Flip-Fiop with R 11 O= J-K Flip-Fiop with R 111 = 1-ln put Tran sparent Latch with S and R
lcg4 lcg4
lcg4
lcg2 D S Q lcq lcg2
' /
D Q lcq lcg2
lcg1
J Q lcq
lcg2 D
s Q lcq
!>
lcg1 lcg4 K R
lcgl R lcgl LE R
l> R
lcg3 lcg3
lcg3
lcg3

Fig. 6 - Configurazioni logiche realizzabili.


CLCxCON connesso, senza indica che è connesso) mentre i
L.:.t~f L~T LCdfliF
o piccoli rettangolini tratteggiati, facendoci clic, in-
seriscono o tolgono un complemento del segnale
(NOT). Il riquadro "B" in blu, mostra i piccoli ret-
tangolini tratteggiati anche sulle uscite. Anche qui,
Fig. 9 - I bit del registro CLCxCON. facendo clic su di essi, si inseriscono o si tolgono
inversioni logiche del segnale (NOT).
n blocco rosso numero "3" e l'associato menu a
CLC1POL tendina, sempre identificato con il numero "3",
LC1POL
- - - LC1G4POL LC1G3POl LC1G2POL LC1G1POL rappresenta le "Funzioni Logiche" (in particolare,
nell'immagine, è stato selezionato un Flip-flop di
Fig. 10 - bnpostazione bit LC1POL. tipo D ad uno ingresso con S-R). Facendo clic sul
menu a tendina vengono elencate le otto possibili
"Funzioni Logiche" e, selezionando quella voluta, si
evidenziati i vari blocchi che abbiamo descritto ed ha, in tempo reale, l'aggior11amento dell'immagine
in blu i punti di collegamento o di "inversione" del e dei collegamenti.
segnale). Infine, l'ultimo blocco rosso, il numero "4", rappre-
Il blocco rosso con il numero "l" pern1ette, grazie senta l' "Uscita" in cui, come evidenziato riquadro
ad un menu a tendina in cui sono elencate tutte le "C" in blu, c'è il solito rettangolino tratteggiato su
possibili "sorgenti", la selezione dei vari "Input". cui, facendo clic, si attiva o meno il complemento
Il blocco segnato con il numero "2" rappresenta le del segnale logico (NOT).
"Porte collegate agli ingressi" ed il riquadro" A" Risulta più che evidente la semplicità e la facilità
in blu, mostra che si può connettere o meno ogni di configurazione che ci viene permessa dall'uso di
ingresso ad ogni porta (il filo con la X significa non MCC il quale ci nasconde (anche se sempre esamina-

-D~I

CLC1

0 ENb't a.c
D ENb't o_c ~nterru&:n
O En. bi A 'ng ln:erruPt O Ena1ft Falling nterrupt

Mode 1-lnput O tllp ftol) wlth Sand q l •l

1 2 3 4
L ClCINO ) --:-'-- !
(Cl~~'OPPS_
l

s
Cl.C NO lClCINOPPSl
2

l
ClC NO (ClCINOPPSJ
R

l ClC NO (CLCINOPPSI

AOCRC "
Ang.-lar T\4R Comp1 A 8 c
Ang Jiar TMR C0rnp2
Angular TMR Comp3
Angular TMR mlutd pulse
Angular TMR ptr1od
Angular anglt eloelt
Cl OUT
C20lJT
CCP1~t
v

Fig. 11 - Configurazione
assistita CLC.
bili) i vari registri, la tediosità e l'osticità della loro segnale in uscita.
corretta impostazi one, evitandoc i banali errori per Tutto questo grava, ovviamente, sulla CPU la qua-
aver magari confuso un bit di un registro con un le, non solo verrà interrotta nel lavoro che starà
altro. svolgendo ad ogni interrupt, ma dovrà farsi carico
Negli esempi( ... e nelle puntate) che seguirann o, di eseguire la ISR e riprender e a fare ciò che è stato
utilizzeremo sempre, per la configurazione delle va- interrotto.
rie CIP, il tool MCC evitando così lunghe e noiose Ovviamen te, la cosa ha un impatto anche sulla du-
configurazioni manuali dei singoli registri associati rata esatta del"perio do" dell'onda quadra generata,
ad ogni CIP. difatti, anche se il periodo del"time r" è sicuramen -
te preciso, il richiamare una ISR comporta comun-
Esempio 1 -Generaz ione di un'onda quadra que una certa "latenza" (ad esempio per il salvatag-
Il primo semplice esempio che realizzeremo ci per- gio dei registri prima di entrare nella ISR ed il loro
metterà di mostrare come è possibile generare un ripristino all'uscita) ed implica comunqu e l'esecu-
onda quadra su un piedino della nostra MCU, uti- zione di codice software, cosa che naturalme nte non
lizzando un timer ed una CLC, senza alcun lavoro può avere tempo zero, tempo che si va ad aggiun-
da parte della CPU. gere alla suddetta "latenza" e che contribuisce quin-
Con MCU senza CLC, il metodo classico per gene- di ad allungare il periodo dell'onda quadra rispetto
rare un'onda quadra su di un p in, è quello di pro- a quello calcolato e programm ato nel timer.
grammar e opportun amente un "timer" per generare L'utilizzo di una CLC semplifica di molto il proble-
un interrupt ogni volta che esso va in overflow. La ma e permette di scaricare la CPU da ogni compito
ISR associata a detto interrupt deve avere il com- legato alla generazione del segnale richiesto.
pito di invertire il livello del pin su cui si vuole il Avviato MPLAB X, creiamo un nuovo progetto

"" 1obN9tr.
System Module •
~~------------------------------------------~~~ VOO
l e asy Se:t.p -= ~tg.r.trt
AA5
.., I ~ERNAI OSOlLATQq l
Currtt'l: System ctock 8 M •z
Otct l.a tor Select r _·_ _ _ _ _ _ _ _
_~M
"4TOSC osd"j;or. 1/0 'unction on CLKIN ......._l·-.~l
Syr.tm Clodc Se1tct FOSC l•l
Internai Clock .._ls_vH_z _HF_ _:I.._·_,I o -+PU Ceptblt Frequeney
Eltttm&l Cloelt 1 t.• Hz
D P- l El'\lbled D SV.tvllrl Plt Entbled

.., YIWOT

We:chdog Timer Enable ( WOT disabled l .. t


CIOtk
================~~

Cloek Sototce

lflndow Ooen Tant l


ri!M~t Pcrlod
~================~ ..

---

o.,..,_. Nothariolls IWCCJ Pltt fo(.l~r Crld Vltw M

Ptck.: POIP20 _.. ~Pin No 17 4l • 3 2 13 112 l---~--~~


19 18 ~~~~~~- 11 10 18 15 14 7 8 --------
5 -----------------------------------------~
at.!J
'f __,_~Poli 0 'f
A....,..
r----.........--rP_ort. ..- l ~0111 C 'f J
Modufe FunctJon O rectlon O 1 2 3 4 6 4 15 e 1 o 1 2 3 4 6 6 7

- OSC

pll'l Mod • 'f


- CLKOUT
GPIO
GPO
out&M
II"CXll

Fig. 12 - La scheda Systenz Modzile del tool MCC.


TMR2

l§> Easy Setup , § Reglsters

Hardware Settings

lvl Eneble Timer


Timer Clock Timer Period

Clock Source ILF_os_C_i4_ ___JIL·.-JI Timer Period 4.096 ms s 500ms s 1.048576 s

Clock Frequency Actual Period 499.712 ms (Period ca lculated via Timer Pe riodi
32.768 kH2

Postscaler 'l,-s,- ----,I' ·'J Ext Reset Source j T21N l• J

Prescaler 1 1:128 J • J contro! Mode ;


l = R
=ol=l o=v.=r p=ul=se====~~;::·~l
Pola rity l Rising Edge l •l Start/Reset Option IL s_of_tw_ar_e c_on_tr_oi _ ___ _.IL·.-JI
O Enabfe Prescaler O/P Sync
O Enable Clock Sync
D Enable Timer lnterrupl
Software Settlngs

CaUbock Function Rate OxO x lime Pariod • 0.0 ns

Fig. 13 - Tab per la configurazione del Timer2.

di tipo "standalone"; come MCU selezioniamo periodo prefissato.


il PIC16F1619 (MCU montata nella "Curiosity"), Selezioniamo di nuovo il tab "Resource manage-
come "Hardware Tool" (debugger), selezionia- ment (MCC)", e nella sezione "Devices Resources"
mo "Microchip Starter Kits->Starter Kits (PKOB)- apriamo, cliccandovi sopra, la risorsa "Timer".
>Curiosity" e come compilatore XC8 v2.00. Andia- Ci verranno presentati i vari "Timers" presenti nel-
mo poi sulle proprietà del compilatore (XCB Global la MCU; selezioniamo il"Timer2" facendo doppio
Options) e, nella categoria "Global Options", alla click su di esso. Al centro, si aprirà un nuovo tab,
voce "C standard" selezioniamo "C90": attenzione relativo a detto "Timer2" dove potremo procedere
che se non si effettua questa selezione e si lascia il alla sua configurazione (Fig. 13).
• default C99 si verificheranno errori durante la com- Verificata la presenza del segno di spunta sulla ca-
pilazione del codice. sella "Enable Timer" selezioneremo come "Clock
A questo punto possiamo mettere in esecuzione il Source" FOSC/4, come "Postscaler" il valore 1/8 e
tool MCC per la configurazione di base (Fig. 12): come "Prescaler" il valore 1/128 che ci permetterà
nella parte bassa, nel tab "Pin Manager : Grid View" di selezionare il periodo del nostro Timer da un
selezioneremo il tipo di "Package", che nel nostro minimo di 4.096 msec ad un massimo di 1.048 sec.
caso è un PDIP20 (l'immagine del corretto package Sceglieremo come periodo 500 msec (valore reale
apparirà nella finestra di destra). generato 499.7 msec) cosi da avere un lampeggia
Nella parte alta, selezioneremo come "Oscillator" del LED facilmente visibile ad occhio (circa 500
INTOSC, come "System Clock" FOSC e come "In- msec ON, 500 rnsec OFF per un periodo dell'onda
ternai Clock" 1MHz_HF, toglieremo eventuali segni quadra di circa l sec). Come potete notare, in tutto
di spunta che dovessero essere presenti nelle caselle quello che abbiamo fatto sino ad ora non ci siamo
relative al PLL e ci accerteremo che il "Watchdog" preoccupati dei registri e dei bit in essi coinvolti,
sia disabilitato. demandando a MCC il compito di scrivere il giusto
A questo punto potremo andare nella parte di sini- codice per la loro inizializzazione!
stra, selezionare (nel caso non fosse già selezionato) Proseguiamo ora inserendo una CLC che, opportu-
il tab "Resource management (MCC)" e potremo namente configurata, ci permetterà di far lampeg-
fare clic sul pulsante "Generate". giare il nostro LED.
MCC preparerà così già i primi moduli del progetto Selezioniamo di nuovo il tab "Resource manage-
che troveremo e potremo esaminare selezionando il ment (MCC)", e nella sezione "Devices Resources"
tab "Projects", guardando i files del nostro progetto. apriamo, facendoci sopra un clic, la risorsa "CLC".
Terminata la configurazione iniziale andremo a Ci verranno presentati le varie "CLC" presenti nel-
configurare, sempre con l'ausilio di MCC il"Timer" la MCU; selezioniamo il "CLC1" facendo doppio
che ci permetterà di generare il nostro segnale con clic su di essa. Al centro, si aprirà un nuovo tab,
relativo a detta "CLCl" dove potremo procedere LED_DS Al (pinfisico 18)
alla sua configura zione (Fig. 14). Come nel caso LED_D6 A2 (pin fisico 17)
dei "Timer2" , come prima cosa ci accerterem o della LED_D7 CS (pin fisico 5)
presenza del segno di spunta sulla casella "Enable
CLC" e verificher emo che non ci siano altri segni di Utilizziam o il LED_D6, ovvero quello collegato alla
spunta nelle altre caselle. porta A2 (lo vedete nella Fig. 15). In MCC, tutto in
Nel menu a tendina chiamato "Mode" selezione- basso, selezionia mo il tab "Pin manager: Grid View"
remo "JK flip-flop with R", nel menu a tendina, e, in corrispon denza della riga in cui compare il mo-
collegato alla prima porta logica di "Ingresso ", se- dulo CLC1, funzione CLC10U T, facciamo clic sul
lezionere mo T2_postsc aled_out ovvero il segnale piccolo lucchetto aperto, su sfondo di colore azzur-
che ci indica che il"Timer2 " ha raggiunto i 500msec ro, che si trova in posizione A2. Esso si trasforme rà
ed ha ricominci ato a contare. Faremo un solo click in un piccolo lucchetto chiuso su sfondo di color
nel rettangoli no tratteggia to corrispo~dente così verde, ad indicare l'avvenut a connessio ne (Fig. 16).
da collegare tale segnale al primo pin della prima A questo punto utilizzere mo nuovame nte il pul-
porta di "Ingresso ". Infine faremo clic nei due ret- sante "Generate " e quindi potremo passare ad esa-
tangolini tratteggia ti relativi all'uscita della seconda minare il codice generato. Tutte le routine di MCC
e quarta porta di "Ingresso " (corrispondenti ai segnali saranno raggrupp ate nei gruppi di nome "MCC Ge-
l e K del flip-flop) in modo che appaia il'o' indicante nerateci Files" e, nel nostro e~'-~.upio, tra gli include
la "negazion e" del segnale in uscita. (.h) troveremo :
In questo modo avremo configura to la nostra CLC • clcl .h
in modo che, ogni volta che il"Timer2 " va in over- • device_config.h
flow venga inviato un segnale sul clock del flip-flop • mcc.h
e ch e esso commuti il segnale in uscita. • pin_mana ger .h
Ora non ci resta altro da fare che collegare l'uscita • tmr 2.h
della nostra CLC ad uno dei LED presenti sulla no- •

stra scheda dimostrat iva. Mentre tra i sorgenti (.c) avremo:


Detti LED sono connessi alle porte della MCU nel • clcl.c
seguente modo: • device_config.c
LED_D4 AS (pinfisico 2) • mcc.c

CLCl '
'
,:_ 1
·
'
,,'..:'
' '

oJ
'
··· · ··
,/,,•,
,


.
,,• ~,..
'
••
.· '
<' •'
r '
·
',':!',,r,;,•,_,,
' '
'' •
-· .·
,",~,• . ...,
~
·,',-
'
," ~:'
· aaa t!!l'
~

~:.-.•. , ,' '~ "'&

ClC1
r----- - -
® Easy S en.:p § Reglsters
Hardware Settings

(t] EnabJe CLC


O Enabte CLC lnterrupt
D Enabfe Rising lnterrupt D Enable Falling lnterrupt
l
t
-
; E-xpon CLC imag e
-
Mode JK tlip-flop \'t'Ìth R

- -
CLCJI\1) (CLC "'OPPS) •
l
J Q

·-·"·
-. ....
~

........
~ 7l:CI~t) (ClO '{t~S)
.., ....... K
R

Fig. 14 -Il tab relativo alla CLC1 che stiamo configurando.


dimenticanze e/ o errori).
il nostro main.c conterrà, se si eliminano gli abbon-
danti commenti che MCC inserisce ovunque per
chiarire cosa viene fatto, solo:

#include "mcc_generated_filesl mcc. h"


l*

Main application
*l
void main(void)
{
Il initialize the device
SYSTEM_Initialize () ;
Fig. 15 - Indicazione della connessione. while (l)
{

• pm_manager.c
• tmr 2.c Il Add your application code
}
Inoltre verrà anche generato il file main.c (il vero }
programma principale).
Se siamo curiosi possiamo andare a vedere cosa Come si vede nella porzione di codice soprastante,
contengono questi file (che sono molto ben com- inizialmente viene chiamata la funzione "SYSTEM
mentati) e scopriremo che in essi sono tutte le Initialize()" per inizializzare il tutto e poi, il"sup~r
istruzioni che servono ad inizializzare sia la MCU loop" (while(l)) che è totalmente vuoto, a dimostra-
che le varie periferiche che abbiamo configurato, zione del fatto che la CPU non sta svolgendo alcun
impostando negli opportuni registri i bit necessari compito.
(lavoro che, in assenza di MCC, avremmo dovuto Con l'apposito pulsante di MPLAB X possiamo
fare interamente a mano con il rischio di possibili compilare e caricare il nostro codice sulla scheda


Output Notif ications. [MCC) Pin Manager: Gri Vie: i ' .


Package: PDIP20 • Pin No: 19 18 17 4 3 2 13 12 11 10 16 15 14 7 6 5 8 9
Por AT Por BY Por CY
Mod le Fune ion Direction o 1 2 3 4 5 4 5 6 7 o 1 2 3 4 5 6 7
C Cl C C10 UT ou tput 'il 'il i 'b 'il 'il 'il 'il 'il 'il 'il 'il 'b 'b 'b 'b 'b
C CINO input 'b 'b 'b l 'il 'b 'b 'b 'b 'il 'b 'b 'à 'il i 'b 'à 'b 'b
C Cx T'
C CIN 1 input 'b 'b 'b 't. 'à 'b 'b 'à 'à 'à 'à 'à 'à 'b 'b 'à 'à 'à
C CIN2 nput 'à 'à 'b 11 'b 'b 'b 'à 'b 'à 'à 'b 'à 'b 'b 'à 'à 'à
C CIN3 lnput 'b 'à 'b l•b 'b 'b 'b 'il 'il 'à 'b 'b 'à 'b 'il 'b 'à 'à
osc CLKOUT output 'à
GPl O linput 'à 'à 'b 'à 'à 'b 'b 'à 'à 'à 'à 'à 'à 'b 'à 'b 'ìl 'à
Module T
GPlO output 'à 'à 'b b 'à 'à 'b 'à 'à 'à 'à 'à 'à 'à 'à 'b 'ìl 'à
RESE T MCLR input i •

T1CKI lnput 'il 'à 'à 'à 'ìl 'b 'à 'à 'il 'à 'à 'à 'à 'b 'à 'b 'ìl 'à
TMR1 T
T1G input 'à 'il 'à 'à 'à 'à 'à 'à
·~ 'b 'à 'à 'à 'b 'à 'à 'à 'à
Fig. 16 - I lucchetti indicano l'avvenuta connessione.
dimostrat iva e, al termine del caricamento, vedre- nalmente , dei costi di produzion e).
mo il nostro LED _D6lampeggiare con periodo di l Come già fatto per l'esercizio precedent e, messo in
secondo senza alcun intervent o da parte della CPU. esecuzione MPLAB X, creiamo un nuovo progetto
di tipo "standalone"; come MCU selezioniamo il
Esempio 2- "Deboundng" di un pulsante PIC16F1619 (MCU montata nella "Curiosity" P/N#
Il secondo esempio che realizzeremo ci permetter à DM164137), come "Hardwa re Tool" (debugger)
di effettuare il"Debouncing" di un pulsante senza selezioniamo "Microchip Starter Kits -> Starter
codice che debba girare nella CPU e senza alcun Kits (PKOB) -> Curiosity " e come compilato re XC8
hardware aggiuntiv o esterno. v2.00. Andiamo poi sulle proprietà del compilato re
Come sappiamo , il"Debouncing" di un pulsante (XCB Global Options) e, nella categoria "Global Op-
può essere fatto, sia via software, leggendo il pul- tions", alla voce "C standard" selezioniamo "C90"
sante, attendend o un periodo di tempo fissato e (attenzione, se non si effettua questa selezione e si
rileggend o il pulsante per verificare che sia sempre lascia il default C99, si avranno errori durante la
nella stessa posizione (strada non sempre praticabi- compilaz ione del codice).
le, specie se sono coinvolte ISR), che via hardware , A questo punto possiamo mettere in esecuzione il
aggiunge ndo sul pin di ingresso della MCU una tool MCC per la configurazione di base.
rete R/C, opportun amente dimensio nata, in modo Con riferimento alla Fig. 17, nella parte bassa, nel
da eliminare i "rimbalzi " del pulsante collegato. tab "Pin Manager: Grid View" selezioneremo il
Utilizzan do un paio di CLC ed un Timer, il tutto tipo di "Package", che nel nostro caso è un PDIP20
può essere fatto senza coinvolgimento software del- (l'immagi ne del package esatto apparirà nella fine-
la CPU (quindi senza includere ritardi nel software) stra di destra).
e senza dover aggiunge re alcun hardware esterno Nella parte alta, selezioneremo come "Oscillator"
(riduzion e degli spazi occupati e, anche se margi- INTOSC, come "System Clock" FOSC e come "In-

aaas
Module

Easy Setup Registers •


~~-----------------------------------------.---------------------------4
.,. INTERNAL OSCILLATOR

Current System clock 4 MHz

Oscillator Select INTOSC oscillator: 1/0 function on CLKIN pin •

System Clock Select l FOSC l •j


Internai Clock LI _ F_ _
z_H
4_M_H_ ...JI'-•_,j O .. P L Capable Frequency
External Clock 1 MHz

O PLL Enabled O Software PLL Enabled

.,. WWDT

Watchdog Timer Enable l WDT disabled

Clock

Clock Sounce Software contro!, controlled by WDTCS bits •


Window Open Tlme Software WDT window size contro! (WDTWS bits) •

Time-out Period l SoftNare Contro! (WDTPS)

• Programming

lvi Low-voltage Programming Enable


Fig. 17- Tool MCC avviato.
Hardwa re Settings

Timer Clock Timer Period

lv'l Ena ble Prescaler 1 1:256 l •l Requested Period : 256 us s 35ms s 65.536 ms
~==~
Clock Source: l FOSC/4 l •l Actual Perìod : 35.072 ms

lncrement On: ~~l=nc=,.=me=nt=_h=U=o==:1=·:::::;1


Extemal Frequency : 100kHz

D Enable Timer lnterrupt


Software Settings

Callback function Rate OxO x Time Period ~ os

Fig. 18 - Scheda di configurazione TimerO.

temal Clock" 4MHz_HF, toglieremo eventuali segni il valore 1/265 che ci permetterà di selezionare il
di spunta che dovessero essere presenti nelle caselle periodo del nostro timer da un minimo di 256 mi-
relative al PLL e ci accerteremo che il "Watchdog" crosecondi ad un massimo di 65.536 millisecondi.
sia disabilitato. Come periodo sceglieremo 35 ms, intervallo di tem-
Terminata la configurazione iniziale andremo a po normalmente sufficiente per il "Debouncing" di
configurare, sempre con l'ausilio di MCC il "Timer" un pulsante; il periodo, dato il dock ed il prescaler
che ci permetterà di generare il segnale che determi- usato, sarà effettivamnete di 35.072 ms.
nerà il perido di "Debouncing" voluto. Proseguiamo ora inserendo una prima CLC (CLCl),
Selezioniamo di nuovo il tab "Resource manage- che avrà il compito di "Debouncing" vero e proprio,
ment (MCC)", e nella sezione "Devices Resources" campionando e memorizzando il segnale prove-
apriamo, facendoci sopra clic, la risorsa "Timer"; niente dal pulsante "Sl" per il periodo del TimerO.
allora ci verranno presentati i vari "Timers" pre- il pulsante è l'Sl della scheda demo (Fig. 19).
senti nella MCU; selezioniamo il "TimerO" facendo Detto pulsante "51" è collegato al pin C4 della MCU
doppio clic su di esso. Al centro, si aprirà un nuovo corrispondente a CLCIN1 sulle CLC, secondo quan-
tab, relativo a detto "TimerO" dove potremo proce- to mostrato nella Fig. 20.
dere alla sua configurazione (Fig. 18). Come sempre, per prima cosa ci accerteremo della
Una volta verificata la presenza del segno di spun- presenza del segno di spunta sulla casella "Enable
ta sulla casella "Enable Prescaler", selezioneremo CLC" e verificheremo che non ci siano altri segni di
come "Clock Source" FOSC/4 e come "Prescaler" spunta nelle altre caselle.
Nel menu a tendina chiamato "Mode" selezionere-
mo "1-input D flip-flop with S an d R", nel menu
a tendina, collegato alla prima porta logica di "In-
gresso", selezioneremo "TO_overflow" ovvero il
segnale che ci indica che il "TimerO" ha raggiunto i
35 millisecondi, mentre nel menu a tendina collega-
to alla seconda porta logica di "Ingresso", selezio-
neremo "CLCIN1" ovvero il segnale proveniente
dal pulsante "51" presente sulla nostra scheda
Pulsante dimostrativa. Faremo un solo clic nel rettangolino
tratteggiato corrispondente al "TimerO" così da col-
legare tale segnale al primo pin della prima porta di
"Ingresso" e faremo due clic nel rettangolino tratteg-
giato corrispondente al "CLCINl" così da collegare
tale segnale, invertito, al secondo pin della seconda
porta di "Ingresso".
Adesso configureremo una seconda CLC (che chia-
meremo CLC2 ...) per comandare il solito nostro
Fig.19- Il pulsante S1 . LED _D6, ovvero il LED collegato alla porta A2, in
Pin Module Module Module CLCI

CLC1

Easy Setup Reglsters


~--~------------------------------------------------------------------~
Hardware

lvi Enable CLC


O Enable CLC lnterrupt
D Enable Rising lnterrupt D Enable Falling lnterrupt
[ Export CLC image ]

Mode l1-input D Ili p-flop with S and R • l

....
TO_o~erf OH '"'
..,
1

s
ClCfN"l !CI.CINlPPSl • 2 D a
....
. .
:
.....
. ...
'

3 •
CLCINO (CU: -..oPM) •
R

Fig. 20 - Connessione logica del pulsante.

modo che, ad ogni pressione del pulsante "51", tale Nel menu a tendina chiamato "Mode" selezionere-
LED cambi stato (Fig. 21). mo "JK flip-flop with R" mentre nel menu a tendi-
Come ormai siamo abituati a fare, ci accerteremo na, collegato alla prima porta logica di "Irigresso",
della presenza del segno di spunta sulla casella selezioneremo il segnale di uscita dalla preceden te
"Enable CLC" e verificheremo che non siano stati CLCl ovvero LCl out.
apposti altri segni di spunta nelle altre caselle. Faremo un solo clic nel rettangolino tratteggiato

rPi.:cn.:..:Mo.:.:d.:..ule"-=:.J....Cin.:Cte.:Crr.::!up.:ClMo.:.:.:.:du:;.::le...=:.l..2Sy:.:ue:.:mc:.Mo.:..d::cul.:..e. =LC::CLC.:.:Ic....:::.J CLC2 0 .... a'!"


CLC2

{§} Easy Setup § Reglsters


Hardware Settings

0 Enable CLC
O Enable CLC lnterrupt
O Enable Rising lnterrupt O Enable Falling lnterrupt
l. E_x~!~ CL~ !mag.~ l ..

Mode l JK flip-flop with R

...
.. .
l ~~~~

CLC NO tC1.C:I\DPPSJ •
2 a f-----,

3
CLC NO ICLCir-oOPPS) •
R


CLcm-D tcLC . MPPS) •

Fig. 21 - Logica per il comando del LED da pulsante.


Output - MPLAB® Code Configurator Notif ications [MCC) Pin Manag er: Grid View '

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


Por AT Por 9 T Por C T

Mo dul e Fu ne ion Direct ion o 1 2 3 4 5 4 5 6 7 o 1 2 3 4 5 6 7


C C1 C C10 U outp t 'b 'b 'b 'b 'b 'b
'b 11 11 'b 'b 'b 'b 'b 'b 'b 'b
C C2 C C20 UT output 'b 11 fi 'b 'b 'b
'b 11 'h 'b 'b 'b 'b 'b 'b 'b 'h
c c 1 ·o input 'b 'b 'b D 'b 'b 'b
'b 'h 'h 'b 'b 'b ~ 'b 'b 'b 'b
C Cx ..,
C Cl 1 input 11 'b 'b 'il 'b 'b 'b
'b 'b 11 'à 'b 'b 'b ~ 'b 'b 'b
lc t input 11 'b 'b D 'à 'à 'à 'b 'à 'h 'à 'à 'à 'h 'à 'h 'à 'à
- l ~! ,J3 input 'à 'à 'à 't 'à 'à 'à 'b 'b 'à 'à 'à 'à 'à 'h 'b 'à 'à
osc C KOUT ou tput 'à
Pin Module ..,
GPl O input 'à 'à 'h 't:J 'à 'à 'à 'à 'à 'à 'à 'à 'à 'à 'b 'b 'à 'b
GPlO loutput 'h 'à 'à 'tl 'à 'à 'b 'à 'b 'à 'h 'à 'b 'à 'h 'à 'à 'à
RESET MCLR input fi
T RO TOCKI input 'à 'à 'à d 'à 'à 'à 'à 'à 'à 'h 'à 'b 'b 'h 'à 'b 'à
Fig. 22 - Avvenuta connessione.

corrispondente così da collegare tale segnale al pri- (while(l)) è, come al solito, completamente vuoto.
mo pin della prima porta di "Ingresso". Infine prov- Con l'apposito pulsante di MPLAB X possiamo
vederemo a fare clic nei due rettangolini tratteggiati compilare e caricare il nostro codice sulla scheda di-
relativi all'uscita della seconda e quarta porta di mostrativa e, al termine del caricamento, vedremo
"Ingresso" (corrispondenti ai segnali Je K del flip-flop) il nostro LED _D6 accendersi e spegnersi ad ogni
in modo che appaia il'o' indicante la "negazione" pressione del pulsante "Sl", come sempre, senza
• d el segnale in uscita. alcun intervento da parte della CPU .
In questo mç>do avremo configurato la nostra CLC
(CLC2) in modo che, ogni volta che la "CLCl" gene- Conclusioni
ra un segnale (pressione di "Sl" +periodo del TimerO) Siamo quindi arrivati alla fine di questa puntata, nella
venga inviato un segnale sul dock del flip-flop e quale abbiamo esaminato in dettaglio una delle più
che esso commuti il segnale in uscita. comode e flessibili CIP, vale a dire la CLC, che è la
Ancora una volta non ci resta altro da fare che col- "Cella Logica Configurabile"; questa periferica, proprio
legare l'uscita della nostra CLC (CLC2) al LED_D6 grazie alla sua estrema versatilità , può essere configu-
presente sulla nostra scheda dimostrativa. Per fare rata e utilizzata per gli scopi più svariati al fine di sca-
questo, ci sposteremo in basso, nel tab "Pin Mana- ricare la CPU di lavori che rallenterebbero solamente
ger: Grid View" e, in corrispondenza della riga in l'esecuzione del programma da parte di quest'ultima.
cui compare il modulo CLC2, funzione CLC20UT, Abbiamo anche visto come, grazie all'uso del tool di
facciamo clic sul piccolo lucchetto aperto, su sfondo sviluppo MCC, sia possibile configurare sia la MCU
di colore azzurro, che si trova in posizione A2. che le sue periferiche, senza dover programmare a
Esso si trasformerà in un piccolo lucchetto chiuso mano i vari bit dei vari registri, evitando possibili erro-
su sfondo di color verde, ad indicare l'avvenuta ri e sviste e velocizzando enonnemente lo sviluppo di
connessione (Fig. 22). una qualsiasi applicazione.
Come abbiamo già imparato a fare nell'esercizio Un esame dei sorgenti generati rivelerà inoltre un' otti-
precedente, utilizzeremo pulsante "Generate" e ma qualità del codice 'C'prodotto, facilmente leggibile
quindi potremo passare ad esaminare e a provare e ben commentato (nei .h) per spiegare la logica delle
sul campo il codice generato. varie funzioni.
Come in precedenza, scopriremo che nel main.c è Nelle prossime puntate continueremo l'esame di altre
presente solo la chiamata alla funzione di inizializ- CIP e della loro configurazione con il preziosissimo
zazione dei necessari registri e che il"super loop" toolMCC.
.~
··'· ·-:· '·~ .}",

~ - c:! •
t..::l i:::l
',·
• TM

..:; ·-·•..

" ·S>·

'

'.
-..
'

Se il Verbasizer, cui Da- po reale; diversamente


vid Bowie aveva lavora- da ciò che è basato sul
to in vita, era poco più ' ercom or re machine learning, è la
di un'idea, oggi le melo- prima forma di Al ca-
d ie generate dall'intel- • • pace di comprendere il
ligenza artificiale sono
una realtà.
canzon1 e mus1ca co d ice d i i m prowisazio-
ne di un musicista dopo
Molti artisti stanno oggi una manciata di note. Il
sperimentando l'appli- d irettore del Conserva-
cazione dell ' l nte l l igenza torio di Santa Cecilia,
Artificiale: Ash Koo- a Roma, ha adottato
sha ha creato Yona, un A-Mint come strumento
"uomo ausiliario" ca- didattico e a breve sa-
pace di scrivere testi e ranno awiate le prime
musiche in maniera au- masterclass per i nse-
tonoma, mentre Daniel gnare a utilizzarlo. Ma i
M Karlsson compone la musicisti stiano tranquil-
• •
sua mus1ca 1n gran par- 1i, perché non v erra n no
te utilizzando linguag- messi in un angolo, dato
gio di programmazione che l'intelligenza artifi-
dal vivo Tida iCycles. ciale senza un training
Litaliano A lex Braga, in ........._~---~ adeguato non dà risultati
collaborazione con due soddisfacenti e il training
ricercatori dell'Università di Roma Tre, ha creato (e è fatto di dati e algoritmi proposti dall'uomo alla
proposto all'ultimo Maker Fair di Roma) A-Mint, un macchina, quindi dai musicisti.
nuovo tipo di intelligenza artificiale basata su reti
neurali in grado di comprendere la musica in tem- https:/ / 2018.makerfairerome.eu/ it/

ELETTRONICA IN- Dicembre 2018 /Gennaio 2019 123


. .. .

. .

> Nuovi processori per l'embedded Al


Greenwave Technologies presenta la sua nuova algoritmi di riconoscimento d'immagine e di suo-
serie di processori GAP8, dedicati allo sviluppo ni e voci, compresi l'inferenza delle Convolutional
e all'implementazione industriale di applicazioni Neural Network (CNN) con un'elevata efficienza
loT; questi chip peraltro consentono lo sviluppo energetica, ottenuta grazie a un cluster computa-
e il deployment di sistemi a basso costo per ap- zionale a 8 core integrato, combinato con un acce-
parati a funzionamento autonomo e dispositivi di leratore hardware di convoluzione.
sensing intelligente in grado di catturare, analiz- Il funzionamento ultra low-power dei dispositivi
zare e classificare, nonché di fondere consistenti consente di rilevare il volto di una persona con un.
sorgenti di dati come immagini, suoni e vibrazioni. assorbimento di potenza dell'ordine di pochi mW.
l nuovi dispositivi della Greenwave Technologies La capacità di riconoscimento d'immagine forni-
sono ottimizzati per eseguire un ampio spettro di sce anche la possibilità di rilevamento di presen-

Servitizzazione, cos'è
Western Digitai ha immesso sul l due nuovi modelli di SSD utiliz- l nuovi SSD rappresentano un'of-
mercato i nuovi SSD NVMe PC zano firmware e controller pro- ferta strategica di Western Digi-
SN720 e PC SN520, capaci di prietari insieme alle memorie tai che va incontro alla crescente •
prestazioni elevate, lunga durata NAND 3D Western Digitai. richiesta di PC ad alte prestazioni
e tagli di storage fino 2 TB. La nuova architettura NVMe uti- capaci di soddisfare le esigenze
l due SSD fanno fare a Western lizzata nei nuovi SSD NVMe PC di applicazioni come la realtà vir-
Digitai un altro passo avanti nello SN720 e PC SN520 è rivolta ai t ua le , l ' i nt e Il ig enza a rt if ic ia le , l ' e-
sviluppo dell'loT e delle applica- produttori di dispositivi compu- diting alle late risoluzioni come il
zioni presenti, giacché consente ting device, PC 2 convertibili in 1, 4K e il settore del gaming, ma an-
di portare a bordo di dispositivi soluzioni embedded, loT e siste- cher e soprattutto d i piattaforme
remoti e trasportabili uno storag mi di monitoraggio finalizzati ad di archiviazione per le applicazioni
di grande capacità, con pesi e acquisire e trasformare in tempo loT nel settore medico, della vi-
ingombri ridottissimi, bassissimi reale enormi quantità di dati, in- deosorveglianza, della robotica e
consumi energetici, elevata velo- dirizzati alle Smart City, smart in tutti quegli ambiti dove occorra
cità di accesso. home ecc. acquisire e conservare per l'invio
differito o a richiesta grandi quan-
.. ;
.. tità di dati come quelli risultanti
...• ·'• '• ·
l
.. l::.
t-
l. ::
..
Il
"
:: l:: .;
"
.,.,.'
;
da l riconosci mento d'immagine e
o "' ç
(/)
V)
.
'l biometrico.
••
--
C-1

:"""
>
. L.
l
{
Gli SSD PC SN720 sono dispo-
o t nibili in taglia da 256, 512, 1 e 2
.• <'J Il

z •..•
l
r--
TB con fattore di forma M.2 2280
-
~
V)
()
....
c..
. ..
·-
JW
C) ro .. single-sided, in grado di offrire
l ·-
Q ""
..
:l
c: ·-
<YI
' o :~" una velocità di lettura/scrittura
'
'l ...
'-
Q)
rJ)
...c ..
....~· ~
sequenziali fino a 3.400 MB/ s e
·""
~ :-..
'
....
::J

n
....""/ r?
2.800 MB/s. Stesso form factor
.• .'

'
,••
i
•.'>
<,)
....
"<'>
l:"
..
t~

•:"i.
per i PC SN520, disponibili in ca-
pacità di 128, 256 e 512 GB.
.:. .. E.
41-
(,c
..'"' :.
AJ~ <=V"l •
(/)·- :. J .....

<O cn ~~ .~ :
~. ..- r... :~ ..
.....
.'\ Cl -
.~,;;. ~... . ::
mmr ~ u HH
L
JIUIU ll:;:l:JIII www.sandisk.com

124 Dicembre 2018 /Gennaio 2019 - ELETTRONICA IN




~ Huawei Eco-Connect Europe 2018


Suite e Huawei Cloud, che pros-
simamen te saranno presenti su
- - milioni di veicoli.
• - Grazie alla divisione Bosch Sof-
tware lnnovations, il primo servi-
zio disponibile ai consumatori ci-
• -~
' nesi tramite il Huawei Cloud sarà
Bosch loT Remote Manager, che
consente di gestire e controlla-
re gateway, sensori e dispositivi.
Nello specifico, Huawei sviluppe-
rà i gateway hardware per l'loT,
che saranno preconfigurati con
Huawei ha organizzato a Roma nel- alla trasformazione digitale delle il software Bosch loT Gateway e
lo scorso novembre il terzo evento industrie europee, all'import antis- gestiti tramite Bosch loT Remote
Huawei Eco-Connect Europe. simo ruolo del SG nel futuro e al Manager per Huawei Cloud.
L.:evento, incentrato sulla tema- modo in cui l'ecosistema digitale Nel 2019, grazie alla Bosch loT
tica delle tecnologie digitali e in- aperto europeo con reti potenti, Suite verranno resi operativi ser-
telligenti, ha fatto il punto sulla cloud, Big Data e loT può incre- vizi come Vehicle Managem ent
capacità del "vecchio continent e" mentare il successo e stimolare la Solution, disponibile localmente
di recepirle e sul modo in cui l'In- crescita delle imprese. su Huawei Cloud, che connette in
telligenza Artificiale può essere In occasione dell'event o, Bosch rete i veicoli commerciali per tutta
sfruttata convenientemente in e Huawei hanno annunciato la la loro vita e offre tecnologie tra
termini di efficienza e sicurezza. loro collaborazione nell'accelera- le quali la diagnostica predittiva e
Un focus particolare è stato sulle re lo sviluppo dell'loT (Internet of gli aggiornamenti software OTA.
tecnologie mirate a velocizzare il Things) in Cina e rendere disponi-
processo che dovrebbe portare bili i servizi software di Bosch loT www.huawei.com

,,-·- ELETTRONICA IN- Dicembre 2018 /Gennaio 2019 125


ENEA
'FI [barge' '
ricarica perveloce
per mobilità
elettrica
• •
-
1'---
t::Di t "Fare il pieno" ai mezzi elettrici del tra-
sporto pubblico in pochi secondi, utiliz-
Alimentazione zando il tempo della fermata dei viag-
Metano o Gpl
giatori, grazie a un innovativo sistema
di ricarica superveloce. Si chiama "Flash
Charge" ed è stata presentata durante •
l'ultima edizione di Key Energy presso lo
stand dell'ENEA. "Flash Charge" si basa
sull'utilizzo congiunto a bordo dei bus
e alle fermate, di supercondensatori, di-

'

'


spositivi dalle eccezionali caratteristiche
elettriche, in grado di fornire elevate
potenze in brevi periodi. "Per ricaricare
un autobus in 1O, massimo 20 secondi,
basta la sola presenza di una adeguata
infrastruttura di ricarica lungo la linea
Ili !iDI
di servizio. "Ciò consente di proiettare
il trasporto pubblico elettrificato verso bi
un'autonomia illimitata - spiega l'ing.
Antonino Genovese, responsabile del
Laboratorio sistemi e tecnologie per la
Volvo di lihe
mobilità sostenibile e l'accumulo dell'A-
genzia - Un altro vantaggio di questa
Dopo aver annunciato la propria del
tecnologia è il minore impatto sulla rete impatto sul
intenzione di elettrificare tutte
di distribuzione elettrica. Per rendere il rete produttiva i
le Volvo di nuova costruzione
sistema più versatile, stiamo lavorando la fabbrica di costruzione di motori d1
introdotte dopo il2019 aggiungendo
ad ulteriori soluzioni con batterie di pic- Skovde, in Svezia.
di stare lavorando affinché le auto
cola capacità". ENEA è inoltre impegna- con motore esclusivamente elettrico Lo stabilimento di Ghent
ta su progetti e studi
arrivino a costituire Il 50% delle sue circa 1'11% del suo
inerenti tecnologie
vendite globali entro il 2025, Volvo energetico dall'energia eolica e
per la motorizza-
Cars introduce per la prima volta 2016 ha installato un impianto di
zione elettrica ed
l'energia solare nelle sue attività riscaldamento in grado di ridurre
ibrida, sistemi di
produttive globali. L'installazione del 40% le emissioni di C02, per un
accumulo, soluzio-
di 15.000 pannelli solari nello totale di 15.000 tonnellate all'anno.
ni per la sicurezza e
stabilimento di produzione di Ghent, Dal 2008, tutte le unità produttive
software a sostegno
in Belgio, segna un altro passo in europee di Volvo Cars soddisfano
delle policy di trasporto sostenibile e
direzione dell'obiettivo individuato il proprio fabbisogno di elettricità
di prevenzione dell'inquinamento, tra
dalla Casa di azzerare l'impatto attraverso fonti rinnovabili.
cui HOWMOVE, ECOTRIP, CITYLOG, e
sul clima delle proprie attività Volvo Cars si sta anche impegnando
STREET per la diagnostica del traffico.
produttive globali entro il 2025. attivamente per incrementare
L'installazione dei pannelli solari l'impiego di materiali sostenibili nei
www.enea.it segue la presentazione fatta dalla Casa propri prodotti. L'intenzione è quella di
automobilistica all'inizio di quest'anno arrivare a realizzare almeno il25% delle
parti in plastica di ogni nuova Volvo con
materiale riciclato entro il2025.

https:!!group. volvocars.com
• ••

Zinco-aria , la nuova frontiera delle batterie

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


• •

: : ! : :
•• •• •• •• ••

Cento dollari al kWh: è il prezzo converte l'ossido di·zinco in zinco ed almeno 1000 cicli di carica/scarica.
delle future batterie zinco-aria ossigeno. Durante la scarica avviene Negli ultimi sei anni, NantEnergy
indicato da Patrick Soon-Shiong, il processo opposto con l'ossidazione ha installato in 11 O villaggi in
CEO di NantEnergy, la società che sta dello zinco mediante l'ossigeno Africa e Asia impianti solari con
sviluppando questa nuova tecnologia dell'aria e la generazione di energia sistema di accumulo basato su
di accumulo che promette non solo elettrica. batterie zinco-aria, ed ora la società
prezzi pari ad 1/3 rispetto alle attuali La ricerca si è focalizzata sulla capacità è pronta a distribuire sul mercato
batterie al litio, ma anche l'assenza dello zinco di mantenere la carica per i propri prodotti, facilitata in ciò
di materiali rari e la loro assoluta non lunghi periodi e sulla possibilità di dall'abbondante disponibilità dello
pericolosità. ripetere il ciclo di carica/scarica per un zinco in natura e dal costo contenuto.
Un processo semplice, già esplorato numero sufficiente di volte. l prototipi o

100 anni fa da Thomas Edison, che attualmente in uso consentono https://nantenergy.com

l l l •

l l l

ctJ
Cf)
::J
oc:
·-

'

.00
€ ,
Cod. ROBOAR M PICK AND PLACE PER BRACCIO
ROBOTICO "ROBOARM"
B C OROBOTICO IN PLEXIGLASS - IN KIT
raccto robotico è un'esperienza interessante per chi vuole
: : -~..si al mondo della robotica e prepararsi a sfide più complesse.
:. ~ ::- · contiene tutto il necessario per realizzarne uno di tipo articolato
- &~ ·g,ass a 4 gradi di libertà, con base rotante (180°), pinza per afferrare
; : ;~a · · (montabile sia in posizione orizzontale che verticale)
:- : :3 ocomandi gestibili da Arduino o altra elettronica (acquistabile
'
- :: ~--a:amente) . E disponibile anche il kit "Pick and Piace" composto
-
-~ _-a piccola pompa a depressione, un'elettrovalvola, un microswitch,
- i e ventosa, che permette di equipaggiare il braccio robotico € ,
--- sistema di prelievo e rilascio di piccoli oggetti. Cod. PEPARM

••••••• ••••••• ••••••• ••••••• ••••••• ••••••• ••••••• ••••••• ••••••• ••••••• ••••••• ••••••• ••
o r· anche gli altri modelli .•• BRACCIO ROBOTICO
6DOF CON PINZA E
-
:. ·- ~ : :
.
~ec can 1co, SERVI RC - IN KIT
- --: _ : · que motori •

- : _~ a ·colazioni
_- _ .Là i controllo
B,l~ACCIO
ROBJlJICO
CON CONTROeEO
VI~ CAVO -IN KIT

, oa
Cod. KSR10
••
•••••• •
• • ontata •
• verslo~~~ ;M •
040
• cod. IVA Inclusa. •
• E: 1.299,00 il •
••• •••••••

montata
Versio~~RAG/M
o u g ~ ·.~
~ ' ~
cod. !VA inclusa.
E: 699,00

Cod. 3DRAG/K

Potrebbero piacerti anche