Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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 .....
cod. KSR1 4
€ 16·50 . ' l : •
• : ft-: .: . Jr.l=
!l - •
. t =-- ... .. .
~
i . .
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
..:-
/
;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 ~:::!.
•
Dicembre 2018 l
Gennaiò 2019
n. 231
RASPBERRY Pl
OSIO, UPLICATORE DI SD CARD
PER RASPBERRY Pl :-----
...............
.......___
:::::- ... --..
-
... ----
•
--..
....._.
•
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 - ~ ~
... . "
co,,M,
.
!·"i::"::
;1 • tn•> "' .
17
& Sl...d~ "~c!
105 SCIE
&TE
Entriamo nel vivo dell'a
cune periferiche CIP i '"",...
ntrollori MicrochiP;.
ttronica •
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
- .
TS
...--~~
l
Logistfcs Machine l H~ndllng Machlne Il Logistics
• ••
............. .
. . .
••
l' ..
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
•
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
•
•
•
COME ABBONARSI
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
•
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".
Nome:
-
Via:
No: CAP:
..... ______.....
Città:-------------~
Telefono:
•
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
.. , .......................................... . ....... . .... .. . .. . ... .. .. . . .. .- ' . ' . ' ..... ' . .. ' . . . .... . ... ... ... .. . .. .. . ... . . . ... . .
' ' ' ' ' ' ' '' ' ······' .... , ····· ..................... ...... , '
- ·
···················-·························· ········-···•·-·········· ··· ··· -·- ············ .. ' ... ' .......... ... ·-. -.-·-. -· -...... ' ... ' .. .
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
..... . .. ' .. . ' . . . ' . ' -.. ' . .......... .' ..... .. .. . ......................... .............. ....... ..... ' ... .. ' . .. .. ' ..-. . .. . .. ... . ' . . ... .. ' . .. ' .
....··''
..........
..... ~ .. 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
' ...' ' .. . ' . .. ' . .- .... .... ' -.. ' . .- ' . .. ' . .-.. .. . .............. ····-·· .... ····· ............... . ........................... , ... , ... , ... , ... .. . -- .. -- ..... ... ' ............... ' .... ' .. '. , ... .
'
..... •''
·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
, .................................... ....... .. . ..................... ... ...... ........... ... . ········-·······-·····---· --··---·---·- --·--··
......... ..... ......... ............. .......... . ............................................ . .... ' ... ' ............ ............. ........... . . ........ ... ... ......... ....... ... .. .. ....... .
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 è 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!
•
•
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
•
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
...
•• ••
•
.. '"""' ' .
.. .,._...,_.._
.
...
"'
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
•
•
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
•
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(;)
-
-
•
•
ELETTRONICA IN - Dicembre 2018 - Gennaio 2019 21
•
•
Alimentazione 5V
, A'klll$db(1U 8G)
'~(l44&G)
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 • • • •
.
• •
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 ~ • • ~ • • • • • • • ~ • • • • • • • • • • • • • • • • • • ~ • • • • • • • • • • • •
•
•
Fig. 2 - Copia
applicazione OSID
da GitHub
Fig. 3 - Configurazione
Riga: 1/6 Carattere: 91 (OxSB) Codifica: 1252 (ANSI -Latino
file server.ini
# ! .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
"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 ~ •
" •
• •
: #-! /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 •
[ Deskto p Ent r y] •
Fig. 5 - Configurazione
Riga: 1/9 Carattere: 91 ~Ox SB) Coclifìe_a: 1252 ANSI .. Latino
file osid.desktop
2:03
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)
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.
.f rPI~
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.
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-
•
• ~ • • • =• • ~ • • • • • • • • • • • • • • • • • • • ~ + • ~ • • • • • • • • • • • • • • • • • • ~ • ~ ~ • • • • • • • • • • • • • • • • • • • • • • • ~
segreteria organizzativa :
studio fulcro
via ausonia, lOOr - genova
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)
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
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
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--=.... ~
•
~
•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
•••
o
o
o
•'
•o
o
••
o
•• •
••o
conduzione di tale BJT, il cui collettore torna a zero •o
•• o
o
o o
o
••o
~
• -~
otteniamo un segnale variab~le, anzi, alternato, di . o•
••
•
"
~
R9 0 !;': o
o
•o --CJ- --CJ- o o:
~
~
m
o
•
•
o
o
•o
pari al doppio di quella degli impulsi presenti tra +
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
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
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
••
o
o
•
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à.
#
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
•
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:
z
... ,..--· ---
. ...-
-r-
------~ -·
--
._.:.•
--
..... , l.-:':"
..
1
' -~
Listato
-
~ . --~ ;,--
' r '"·
,, lt•· :.... • '
.
.. ( l ''l
' ·!'-·.''.
,,, ;~,.!!
,, •H" o. 1.. .110.:.:.6,,....,.'
• •
• •
• •
•
: input 2 Il numero degli input (sensori ) .
•
•
•
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 • • • • • • • • • • • • • •
•
• • • • • • • • • • • • • • • • • • • • • • • • •
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)
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 " .•
•
#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
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
•
- -
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.
l
.,
con .l.
•
•
BOARD Utvo
COMPRESA
(PER IL MODELLO ALPHABOT
, LE BOARO RASPBERRY Pl
EARDUI NO NON SONO COMPRESE)
Cod. ALPHABOT Cod. ALPHABOT2
•
r
\"astaCO\
Caratteris~iche tecniche
e vendita on·lme su:
www fu tu ra s h o p it
• •
• •
•
•
•
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 •
BRACCIO ROBOTICO
Fig. 2 BASATO SU LEGO
•
X Off Blocco
{) On verde. •
{9 On for Seconds
e On for Degrees
Pro>drrity
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.
•
•
,
.- 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
h petto
•
Suono
Slunlonl
•
'la!Mbi)
Stage
l ... x o t y o
Bl«.'thl
•
mieto blt
l
O'
Valtgetta
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.
•
•
•
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
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.
•
cod. SET3ASSI
•
... ....... ...... ... "
•
o
€ 7s,oo
cod. ELEMANDERll
... ...... ... ... ...............
€ ss,oo
cod. STEPMOT03
...... . . .. .... .. ... ... .. . .. . .. cod. MW14524
... ... ..... .. ... .. .. ... .. ..
€ 18,oo € 24,00
•
-- .
"' ,, -
.- .
-·
- •
• 'r
•
•
- ..
-.: ~
- -: :;
- •
- --
• •
• •
.. . -
•••
...... r
c
\. Il.
·"'
~
o
• •
Schema di cablaggio o
'
l
@
' • o
-- • < "
--
J::llli~
_
o
~~
ti
""'
[~
il
...• - un :a
!
•
- H l
'
1OX SENSORilASER
(cod. 2850-lASERSENSORJ
•.
'
•
SCHEDA A RElÉ TTl
(cod. 2846·RElAY1 CHI
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 •
• 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ì
\
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-
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
'
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) •
••
•
•
• •
•• •
•
•
•• ••
• •
•
• •
• ••
•
• •
~· ········ ····· · · ······ ·· ··· · ··· · ·· · ···················· · ··· ·· ················· ··· · ··· ······ ····· ··· · · ··~·· ··· ················ ············· ········· · ·· ·············· ··· · · ··············· ······ ····· ···· ····· · ········ ···· ···················· ·
Tabella 1
Le note generate dal sintetizzatore integrato nel VS1053B.
Fig. 2
Il re/è a
comando ITL.
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.
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)
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
,
•
• •
• •
•
:• 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) ; •
•
' •
digitalWrite(VS_XDCS , LOW) ; //Send aMIDI note - on message .
#endif //Like pressing a piano key
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.
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,
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
• • • • • • • • • • • • • • • • • • • • • • • • • • • o • •
.,
•
CARATTERISTICHE TECNICHE
molto utili se alimentiamo il circuito con un ali- •~
•
• Tensione di alimentazione: 5 Vcc •'
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
- ~ ~
••
• ••
••
•
•
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) •
•
••
•
• •
• ••
•
..• .. ... ... .... .. ..... .. ... ...... ... ... .. .... .. ... .... .. ... ......... ... ... ......... ... ... ...... ... .... ........ ... .... .. ... .. ... ... .. ... .... .. ..... ... .. ... .. ... ... .. .... ... ... ..... .. ... .. .. .... .. .... ...... .. ... ... .. .... ... ... .. .... ... ... ... .. .. .... .... .... .•
• •
•
Se
di cablaggio
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• .'
fì
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
•
•
•
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:
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 )
•
•
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.
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
/voi+
/random 11 43 v/
1:{! Messaoqio
• • 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); {
•
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-
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
-
•
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( ); •
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-
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 ;
•
•
•
•
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 ============ • •
•
Ber : O •
UINT8 T FREE •
• 6; •
•
• •
) IN ; •
============ CPAS ============ •
• •
•
• ) DIGINPUTSTATUS ;
•
•
Ready (MT allows commands from TA/TE) • •
•
•
============ COPS ============ •
•
•
•
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 •
•
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() ; •
•
•
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
l
-
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 :
•
•
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
•
• •
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>
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
[ In-.ia }
•
• 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.
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) . •
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).
•
•
•
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-
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.
At a glance o kW
AlWAYSON
3.1 kW
HIGHEST POWER TODAY
2.6 1.W
HIGHEST POWER YESTEROAY
- ---
•
0 .3 - ----------~----·--------
--- --- --- ---
7.3 kWh 8.2 ~Wh 0.2 -------· - --~ --·.... --
SO fAR TOOAY DAILY AVERAGE
o
Sei up alerts A 0000 0600 1200 1800 2345
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".
•
•
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
•
• • •
• • •
• •
• •
• •
.• ,.•
•
• • •
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.
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:
o • •
• • • • • •
• • •
• • • •
• • • • •
• • • LED di stato
.•
•
~
~
•
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) .
l
••
. ------------~·------------------------------------------------------------------------------------
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
•
• •
------------------------------ - -------------------------------------------------------------------
Ingresso Connettore
alimentazione •
espansione
9-24V uscite
• Connettore
------ alimentazione
5VDC
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- •
Fig. 7 - Collegamento
alla she/1 di OpenWRT.
Fig. 8
Installazione PHP.
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 " •
/arduino/www
~l
/data
<?php
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 --
•
······~
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
•
Status
System
Hostname
Model
'
Memory
Total Available
Free
.
Fig. 13 - Selezione configurazione interf acce di rete.
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
1Pv4 gateway
•
•
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~ -
null'altro che il file di configurazione dello schedu- .' ' '" ' '
.' '
latore Cron. Inserite le seguenti dichiarative (Fig.18)
(+
, _.,.,..,.,) 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:
_....,.
19_z_._16_a_.240
.L.-._ _ _._1Jlu_dJ_a_dm_rn_~_svs_ter._._ _C--' 0.. cerca l >>
Fig. 18
Configrazione
schedulatore Cron.
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"
~--. ,__ -.-_.:,: ' ." - - '
-~~ ~·::- .. /,..:1;"":-;x_::;,,i:_-._ -- ..- . ---.-•. ... ,..· _.-. __ >.- •• -:-.;._:_
ne visibile in Fig.l9. ~:-', ..• ;.-..·
•
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. -
(' \
ICROCHIP
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.
- 1 o 1 - 1 o o CLC11N[4]
CLC1 1N[5]
Fosc
TMROIF
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).
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.
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
-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
Cloek Sototce
---
- OSC
Hardware Settings
Clock Frequency Actual Period 499.712 ms (Period ca lculated via Timer Pe riodi
32.768 kH2
CLCl '
'
,:_ 1
·
'
,,'..:'
' '
oJ
'
··· · ··
,/,,•,
,
~·
.
,,• ~,..
'
••
.· '
<' •'
r '
·
',':!',,r,;,•,_,,
' '
'' •
-· .·
,",~,• . ...,
~
·,',-
'
," ~:'
· aaa t!!l'
~
ClC1
r----- - -
® Easy S en.:p § Reglsters
Hardware Settings
- -
CLCJI\1) (CLC "'OPPS) •
l
J Q
·-·"·
-. ....
~
........
~ 7l:CI~t) (ClO '{t~S)
.., ....... K
R
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
.,. WWDT
Clock
• Programming
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
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
....
TO_o~erf OH '"'
..,
1
s
ClCfN"l !CI.CINlPPSl • 2 D a
....
. .
:
.....
. ...
'
3 •
CLCINO (CU: -..oPM) •
R
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
0 Enable CLC
O Enable CLC lnterrupt
O Enable Rising lnterrupt O Enable Falling lnterrupt
l. E_x~!~ CL~ !mag.~ l ..
...
.. .
l ~~~~
CLC NO tC1.C:I\DPPSJ •
2 a f-----,
3
CLC NO ICLCir-oOPPS) •
R
•
CLcm-D tcLC . MPPS) •
Output - MPLAB® Code Configurator Notif ications [MCC) Pin Manag er: Grid View '
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>·
'
'.
-..
'
•
. .. .
. .
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
•
•
'
'
•
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
• ••
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
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