lt
Quel sottile filo che lega
Rivista mensile, anno xxrv n. 228
SEnEMBRE 2018 Arduino all'Olivetti
Direttore responsabile:
Arsenio Spadoni
(Alsenlo.Spadon/Oe/e11ron/cain.it)
"Ivrea città industriale del XX innovativo. Cui fece seguito, alcuni
Redazione:
Stefano Garavaglia, Paolo Gasparl, secolo" è stata riconosciuta anni dopo, Programma 101, in
Boris Landoni, Davide Scullino, recentemente Patrimonio Mondiale assoluto il primo Persona! Computer
Gabriele Oaghetta, Alessandro Sottocornola
(redazlone@ete11ronfcaln.it) UNESCO: è il 54° sito del nostro al mondo.
Grafica: paese (record mondiale), il secondo Un percorso di successo che si
Ales.sia Sfulclnl, Fiiippo Gorl a carattere industriale dopo quello interruppe bruscamente con le
(Alessfa.Sfufcfnf@efettronfcafn.ft)
di Crespi d'Adda. Il riconoscimento misteriose morti di Adriano Olivetti
Ufficio Pubblicità:
Monica Premoll (0331-752668) riguarda l'insieme delle realizzazioni e di Mario Tchou, a capo della
(Monica.Premofl@etettronlcafn.lt) collegate al progetto industriale e divisione elettronica, e che in
Ufficio Abbonamenti:
Elisa Guarnlero (0331-752668)
socio-culturale di Adriano Olivetti: seguito vide lo smembramento e un
(Ellsa.Guamfero@efertronlcaln.it) un complesso di edifici progettato rapido declino della società.
DIREZIONE, REDAZIONE, PUBBLICITÀ: dai più famosi architetti e Secondo molti un'occasione persa
FUTURA GROUP srl • Divisione Editoriale
via Adige 11 • 21013 Gallarate (VA) urbanisti italiani per mantenere la leadership
Telefono 0331-752668 Fax 0331-792287 del Novecento, mondiale in questo settore,
Abbonamenti: riconoscibile nel e continuare a fornire un
Annuo 10 numeri Euro 45,00
Estero 10 numeri Euro 45,00 (digitale) tessuto urbano esempio di solidarietà
Le richieste di abbonamento vanno Inviate a: della città. sociale.
FUTURA GROUP sr1 Un progetto Dell'eredità dell'Olivetti
via Adige U. 21013 Gallarate (VA)
tel. 0331·752668. che parte dal di allora, tuttavia,
Distribuzione per l'Italia: concetto di qualcosa è rimasto:
S0.01.P. Angelo Patuzzl S.p.A. responsabilità sicuramente
via Bettola 18 · 20092 Cinisello Balsamo (Ml)
Telefono 02·660301 Fax 02-66030320 sociale dell'impresa e STMicroelectronics
Stampa: che pone l'uomo, in questo (allora SGS), la società
ROT03 Spa • Via Turbigo, 11/b caso il lavoratore, sempre fondata da Adriano Olivetti e
20022 CASTANO PRIMO (Ml)
al centro dell'interesse comune e Telettra per sopperire alla carenza
Elettronica In: che nell'immediato dopoguerra di transistor durante la costruzione
Rivista mensile registrata presso Il Tribunale di
Miiano con Il n. 245 Il 03/05/1995.
ha cercato di dare un'alternativa dei sistemi Elea.
Prezzo di copertina Euro 6,00. Gli arretrati nel sostenibile all'industrializzazione AIvrea è anche nato il progetto
formati cartaceo e digitale (pdf) sono acquistabili sul Arduino, nell'ambito dell'Interaction
sito della rivista al prezzo di Euro 6,00.
selvaggia e non rispettosa dei
Poste Italiane Spa • Spedizione In abbonamento bisogni delle persone. Un progetto Design Institute, ospitato in un
Postale • D.L. 353/2003 (conv. In L. 27/ 02/2004) che Adriano Olivetti ha portato vecchio stabile Olivetti, la Casa
art. 1 comma 1 • DCB Miiano.
FUTURA GROUP sr1 è Iscritta al Registro Operatori al successo negli anni sessanta Blu, lo stesso colore delle schede
della Comunicazione n. 23650 del 02/07/2013. (tra l'ostilità dell'establishment Arduino. Un progetto che, al di là
Impaginazione ed immagini sono reallzzaU In
DeskTop Publishing con programmi Adobe lnDeslgn industriale di allora) facendo l'aspetto tecnico, richiama valori
e Adobe Photoshop per Windows. dell'Olivetti l'azienda leader sicuramente in sintonia col pensiero
Tutti I contenuti della Rivista sono protetti da
Copyright Ne è vietata la riproduzione, anche mondiale nel campo dell'Office di Adriano Olivetti, dalla cura del
parzlale, la traduzione e più In generale la diffusione Automation, come di direbbe design, alla democratizzazione della
con qualsiasi mezzo senza l'autorizzazlone scritta da
parte dell'Editore. I circuiti. Il firmware ed il software oggi, con prodotti meccanici e tecnologia, all'importanza della
descritti sulla Rivista possono essere realizzatJ solo elettromeccanici, come le famose comunità.
per uso personale, ne è proibito lo sfruttamento a
carattere commerciale e Industriale. Tutti possono calcolatrici Divisumma. Un mondo Che sia proprio Arduino l'erede
collaborare con Elettronica In. L:invlo di articoli. che stava per subire l'impatto dell'Olivetti?
materiale redazionale, programmi, traduzioni, ecc.
implica da parte del Collaboratore l'accettazione
dell'elettronica allo stato solido,
dei compensi e delle condizioni stabilite dall'Editore occasione che Adriano Olivetti ,.., ,....,
(www.elettronicaln.fVase.pdl). Manoscritti, disegni
seppe cogliere realizzando i ! I I '
{~ ./!w'
e foto non richiesti non verranno in alcun caso
restituiti. L:utllizzo del progetti e del programmi primi computer a transistor della
pubblicati non comporta alcuna responsabllìtà da
serie Elea, famosi non solo per le
parte della società Editrice. a J
FutuL prestazioni ma anche per il design
~l)io'Spadoni
(Arsenio.Spadonf@elettronicain.it)
© 2018 FUTURA GROUP srl Group
/ ,J;, iflm
ARTICOLI
21 SICUREZZA
"f'TnD Tl\<.'l'ADll e
WIRELESS
29 ' ... -· ...
rnll l'IU.ITCt.UJA
: !:ARDUINO
IN COPERTINA:
Questo mese non potevamo che dedicare
la copertina al compatto generatore 005 di
segnali che, oltre alle Interessanti prestazioni
offerte, presenta anche un aspetto
decisamente attraente.
ROBOTICA
56 ...
r.n
........ I
PU~K
JBOTf CO
& Pl·Ar.E
Dotiamo il braccio robotico pubblicato
nel fascicolo precedente di un sistema pneumatico
di presa erilascio di oggetti, comandato attraverso
uno shleld Arduino reallzzato allo scopo.
67 TOP PROJECT
•~ nrm 1=n
Flshmograph permette di monitorare con precisione
I terremoti che coinvolgono la nostra abitazione utilizzando
il sensore 075, notificandoci tramite email gli eventi rilevati,
consentendoci di mettere in sicurezza persone e cose.
lf{ijil\
W Mensile associato all'USPI,
Unione Stampa Periodica ltalìana
87 TECNOLOGIA
r11~· .. n r.1111)4 l l=I!
Auto più sicure grazie a nuove tecnologie
che hanno permesso la guida autonoma e
che presto la promuoveranno da fenomeno
sperimentale a realtà su larga scala.
01 EDITORIALE 99 DIDATIICA
I Dtl~DDCDDV PI
05 ELETTRONICA Costruiamo una cassetta degli attrezzi
INSIEME per chi vuole prendere confidenza con
li mondo della programmazione fisica
12 APPUNTAMENTI utilizzando GNU/Linux e Raspberry PI,
ma non solo. Seconda puntata.
& EVENTI
17 COMPONENTI
& SISTEMI 113 DIDATTICA
t: Tn
La direttiva RED
Un mio amico 111i ha riferito che la norma-
tiva R&ITE relativa agli apparati radio
11011 è più i11 vigore. Evero? E 11 q11ali
norme bisogna fare riferimento?
Roberto Sani - Napoli
...
/
pitì frequente In morte di cani dimenticati in (www.ti.com/too/IT/DEP-0100 7) utiIizza spostano dei blocchi che rappresentano
auto piuttosto che quella di bambini. Per que- il chip AWRl 642 e pochi altri componen- delle funzioni di ingresso o di uscita che
sto motivo vorrei modificare il progetto "Save ti; come si vede nell'immagine, il disposi- vogliamo vengano eseguite) mentre per
my Child" proposto sul fascicolo di marzo per tivo è in grado di coprire un angolo di 60 quanto riguarda l'hardware si utilizzano
adattarlo anche ai cnni. Come posso fare? gradi, per cui per coprire l'intero abitaco- le corrispondenti schedine fisiche col-
Luigi Masala - Cagliari lo è necessario utilizzare due sensori. legate attraverso dei semplici cavetti e
Con lo stesso principio, e utilizzando la dei connettori, senza dover utilizzare il
Evidentemente è necessario modificare stessa tecnologia, è possibile effettuare saldatore. Tra i sistemi di sviluppo di que-
il sensore che nel progetto originale era il conteggio delle persone che entrano e sto genere, sicuramente il più noto (e più
realizzato con un set di pulsanti posti escono in un edificio passando attraverso performanti) è "WIO Link", un progetto
sotto il seggiolino, una soluzione og- la porta d'ingresso. Il sistema garantisce promosso da Seeed Studio per creare un
gettivamente un tantino "artigianale". una elevata precisione ed è in grado di nuovo modo di sviluppare applicazioni
Il problema sta proprio qui, trovare un discernere due o più persone che entra- loT, progetto che ha fatto la sua compar-
sensore adatto ad entrambi i casi non no o escono dall'edificio contemporane- sa già nel 2015 su KickStarter.
è così semplice: l'impiego di sensori di amente e molto vicine tra loro. WIO Link è una scheda di sviluppo Wi-
movimento PIRo radar, del tipo di quelli Fi open source basata su ESP8266 con
utilizzati negli impianti antifu rto, non si una piattaforma software (in pratica una
presta infatti allo scopo a causa dei troppi App) che consente agli utenti di creare
disturbi ambientali. l:IoT per tutti applicazioni loT virtualizzando una serie
Fortunatamente la tecnologia - di quelle di moduli plug-n-play (quelli della serie
più avanzate, oltretutto - ci può esse- Vorrei realizzare un controllo basato s11l 111io Grove della stessa Seeed Studio). La bo-
re d'aiuto. Ci riferiamo alla tecnologia Smartphone nond zé la relativa App per verifi- ard principale WIO Link viene alimentata
mmWave di TI utilizzata in ambito auto- care un valore di tensione e, nel caso, attivare con una adattatore di rete e dispone di
motive per rilevare gli ostacoli davanti e o disattivare da remoto un circuito elettrico. una batteria ricaricabile per consentire il
intorno all'automobile. Questi dispositivi TI fatto è elle sono completamente a digiuno fu nzionamento in modalità autonoma;
radar - che operano tra 76 e 81 GHz e pre- di programmazione o non ho neppure molta sono presenti anche un paio di pulsanti,
sentano un ingombro ridotto e consumi dimestichezza col saldatore ... un LED e una serie di connettori che ven-
molto bassi - vengono sempre più spesso L11ca Barbieri - Roma gono utilizzati per collegare i modulini
utilizzati in altre, innovative, applicazioni, Grove (sensori e attuatori}. Dal punto di
sia in ambito automotive che industriale. Quello che tu vorresti realìzzare, qualche vista hardware, dunque, non è necessario
Recentemente Texas lnstruments, che anno fa avrebbe richiesto l'impegno di realizzare neppure una saldatura per
ha in produzione l'unico prodotto single- più persone, almeno uno sviluppatore mettere in fu nzione il circuito. Se tutto
chip per questa applicazione, ha presen- software specializzato in Android (e/o ciò rende già molto semplice il progetto,
tato una soluzione completa di hardware iOS) e un esperto progettista hardware. ancora più sorprendente è il modo di fun-
e software in grado di "contare" il numero Oltretutto tecnici di un certo livello, zionamento della piattaforma software.
di persone o animali presenti all'interno di in grado di muoversi agevolmente t ra Per realizzare l'App della riostra applica-
un'automobile. Una soluzione smart nata standard di rete, programmazione di zione, è necessario scaricare e installare
per ottimizzare l'impianto di climatizza- microcontrollori, gestione dei protocolli sullo Smartphone l'App "WIO Link", da
zione e il sistema degli air-bag ma che loT, ecc. Oggi, invece, grazie ad alcuni configurare successivamente utilizzando
può essere utilizzata anche come sistema tool di sviluppo hardware e software una modalità drag and drop. In pratica
anti-intrusione o per rilevare la presenza semplicissimi, chiunque ha la possilbilità dovremo scegliere tra una serie di simboli
di uno o più essere viventi all'interno della - anche coloro che non hanno mai scrit- la funzione da assegnare ad uno specifico
vettura. to una riga di codice o che non hanno 1/0 . Successivamente dovremo impostare
Il principio di funzionamento è piuttosto mai usato un saldatore - di realizzare il modo di attivazione (o di lettura) di
complesso, anche se a noi interessa ave- complete e sicure applicazioni per l'In- quella specifica porta utilizzando IFITT,
re solamente un segnale che ci indichi ternet delle Cose. Sembra impossibile un servizio web gratuito che permette la
la presenza o meno di esseri viventi ma è proprio cosi: per la creazione e creazione di semplici catene di condizio-
all'interno della vettura, a prescindere l'impostazione dell'App su Smartphone ni, senza dover scrivere una sola riga di
dal numero. Questo Reference Design si utilizza una tecnica visuale (in pratica si codice.
Elettronica Insieme
1-•111111•111111•1
lii ROME •
~ /\M[j!JW ,
,.
, -FERROVIE
! ! I ITAUANE
_j,f.,FUTURA
mtt'R1f1ffCA•
futurashop . /t
,.
d TRENITAliA
-----
o FIERA
ROMA
Mal\e.
... .
m.o etone.com
CON Elettronica In
LE IDEE
'
DIVENTANO
REALTA!
Mese dopo mese
realizza i progetti
descritti sulla rivista,
rimani aggiornato
con i nostri Corsi,
approfondisci
la conoscenza delle
tecniche e dei
componenti più avanzati
con i nostri tutorial
e le nostre news.
COME ABBONARSI
scrivendo a abbonati@elettronicain.it
con i dati riportati nel coupon a lato.
®
compilando il modulo di
abbonamento riportato a lato e
inviandolo al seguente indirizzo:
@ @
telefonando a compilando il modulo di
+39-0331·752668 abbonamento riportato
a lato e inviandolo al
seguente numero:
+39-0331-792287
Nome:
Via:
N•: CAP:
Città:
Provincia: Telefono:
e-mail:
+
lnv a 1n busla chlus.i 1
Futura,':
OroupJ
/
FUTURA GROUP srl
MOSTRE MERCATO
MONTESILVANO (PE) S. LUCIA DI PIAVE (TV) BOLOGNA
FIERA DELL'ELETTRONICA FIERA DELL'ELETTRONICA MONDO ELETTRONICA
Palacongressi d'Abruzzo DI SANTA LUCIA Bologna Fiere - Via Aldo Moro
Montesilvano (PE) Area Espositiva Santa Lucia Organizzazione: Expo Fiere Sri
Organizzazione: CM Eventi Organizzazione: Eccofatto Tel: 054527548 Fax: 0545291179 I I
Tel: 3208322538 Tel: 3498632614 info•expositionservice.it
infot1cm-eventi.it · www.cm-eventi.it silvia@eccofatto.info • http://eccofatto.eu/ www.mondoelettronica.net
06 e 07 Ottobre 2018 06 e 07 Ottobre 2018 06 e 07 Ottobre 2018
L'elenco aggiornato di tutte le Mostre Mercato del 201a e dei più importanti eventi nazionali e internazionali di elettronica,
sicurezza e fonti rinnovabili è dispornbile sul sito www.elettronicain.it
- - - - - - - /.e-.X~tJ \
-
:§::. .::. ~§
-- ------ -- -- = ~ ~;::::-
g §§- - --- / r
--- - ---_, ._ _ ._
----
--~
-
-
- -
-
-
- -
-
-
- --- I
22 - 23
SETTEMBRE
2018
N o
PARCO ESPOSIZIONI NOVEGRO
www.parcoespo sizioninovegro.i t
RTP, l'oscilloscopio top di gamma di Rohde & Schwarz
Rohde & Schwarz presenta la nuova fa- segnale all'oscilloscopio (deembed-
miglia R&S RTP di oscilloscopi ad eleva- ding). E nonostante tale correzione, la
te prestazioni, espandendo il proprio velocità risulta ancora molto alta e il
portafoglio di oscilloscopi, in linea con trigger digitale, grazie alla sua esclusi-
il suo motto ·ascilfoscope lnnovation. va architettura, è in grado di attivarsi
Measuremenr Confidence'. Durante lo con precisione sui segnali compensati.
sviluppo della nuova famiglia di oscil- L'R&S RTP combina più strumenti di
loscopi, il team di progettisti si è foca- qualsiasi altro oscilloscopio della sua
lizzato in particolare sull'accuratezza classe. Oltre al canali dell'oscilloscopio
della misurazione, sulla velocità, su una analogico, sono disponibili 16 cana-
vasta gamma di funzioni e su una tec- componenti embedded con interfacce li logici, quattro canali di tensione e
nologia a prova di futuro. L'oscillosco- RF digitali o a banda larga particolar- quattro canali per la misura della cor-
pio R&S RTP combina vari strumenti, mente veloci. L'R&S RTP è disponibile rente; lo strumento supporta l'analisi
come nessun altro oscilloscopio della nelle versioni a 4 GHz. 6 GHz o 8 GHz. ~ del protocollo delle interfacce seriali
sua classe. Tutte queste caratteristiche l'unico strumento sul mercato in grado e offre potenti funzioni di analisi dello
rendono l'R&S RTP l'oscilloscopio ide- di compensare in tempo reale le per- spettro e del segnale.
ale per il debugging, ad esempio di dite di trasmissione dalla sorgente del www.rohde-schwarz.com
Primo chip con dual Wi-Fi 802.11 ax Nuove soluzioni per cruscotti
per veicoli connessi integrati Automotive Grade Linux
plete 802.11 ax. L'innovativa
architettura dual-Wt-Fi simul-
Green Hills Software ha an-
nunciato la disponibilità del
security-c:ritical, come
cruscotti definiti via sof-
<>
tanea di Marvell stabilisce un suo sistema di virtUalizzazione tware, telecamere, siste-
nuovo precedente tecnologi- sicura INTEGRITY Multivisor mi ADAS, OTA. gateway e V2X.
co, che integra due sottosiste- e degli strumenti di sviluppo Il risultato finale è la possibilità
mi Wi-Fi completi in un singolo avanzati per Automotive Gra- di realizzare sistemi completi a
SoC e consente a due flussi de Linux (AGL) per i principali costi inferiori ottenendo piat-
dati 2X2 indipendenti di es- circuiti integrati SoC a 64 bit taforme più scalabili, tempi
sere eseguiti contemporanea- per applicazioni automotive. di sviluppo più brevi e minori
Marvell ha presentato la prima mente e alla massima velocità. Per la prima volta, è possibile costi di certificazione ASIL Il
soluzione wireless dual Wi· Fi Sono molti i casi d'uso che integrare nei sistemi a bordo progetto Automotive Grade
802.llax del settore con 2x2 richiedono questa tecnologia, di un autoveicolo applicazioni Linux è un'iniziativa promossa
più 2X2 connessioni simulta- specie all'interno dei veicoli. AGL in grado di garantire i più da Linux Foundation.
nee, oltre a BluetoothS/Blueto- L'88Q9098 consente il riutilizzo alti livelli di sicurezza definiti www.ghs.com
oth LE e 802.11 p per la comu- di una singola soluzione in tutte dalle norme ISO 26262 grazie
nicazione vehicle-to-vehicle. le applicazioni di infotainment al sistema operativo in tem-
~
La nuova soluzione combo e telematica, offrendo strea- po reale (RTOS) INTEGRITY. In
8809098 offre prestazioni a ming multimediale leader di questo modo, gli OEM posso-
livello di gigabit, affidabilità mercato, aggiornamenti sicuri no eseguire in totale sicurezza
superiore e maggiore sicurez- over-the-air, comunicazione da applicazioni di infotainment e
za In auto; questo SoC, inoltre, veicolo a veicolo (V2V) e funzio- per auto connesse basate su AUTOM""JT IVE
amplia la leadership di Marvell nalità hot-spot. AGL in partizioni sicure, insie- GRADE
nella fornitura di soluzioni com- www.marvell.com me a funzioni safety-critical e
METAL DETECTOR
TASCABILE
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • •• • • • • • • • • • • • • • • • • di BORIS LAN DONI
+
~
~
rC1 RI
Q2
es
LSI
~
E
<l)
.e
(.)
muro o nel pavimento, mentre si chiamano metal frequenza di oscillazione, Ja cui bobina costituisce
detector tutti i dispositivi finalizzati alla ricerca di anche l'avvolgimento primario di un trasformatore
arnù addosso alle persone o nei bagagli, di bombe in aria; il secondario è la bobina L2, che si trova in
sotterrate ed anche di protesi o placche metalliche serie al condensatore C2, necessario a disaccoppia-
nel corpo ai fini della preparazione ad esami come re la componente continua di polarizzazione a ripo-
la Risonanza Magnetica Nucleare. Alla fine sono la so della base del transistor (se non ci fosse, la base
stessa cosa, ma cambia la tecnologia per adattare il del Ql sarebbe cortocircuitata con il positivo di
dispositivo alla destinazione finale. alimentazione e l'oscillatore non funzionerebbe) ma
In queste pagine vogliamo proporvi la realizzazio- dimensionato per farsi attraversare dal segnale alla
ne di un piccolo cercametalli funzionante a pile e frequenza di lavoro dell'oscillatore, senza presen-
utilizzabile per verificare che in una parete dove tare apprezzabile reattanza. Anzi, idealmente C2
volete piantare un chiodo o un tassello non vi siano forma con L2 un circuito risonante serie accordato
tubazioni o cercare un oggetto metallico perduto alla stessa frequenza di qlllello risonante parallelo
nella terra in giardino. Nulla vieta di utilizzarlo per formato da LI e C3.
.rHevare la presenza di parti metalliche addosso alle Notate che per facilitare la realizzazione, i due
persone, sebbene non si tratti di un vero cercame- avvolgimenti (bobine) sono realizzati da piste del
talli per addetti alla sicurezza come quelli utilizzati circuito stampato opportunamente dimensionate.
negli aeroporti o nei tribtmali. L'oscillatore di Meissner rientra nella categoria dei
circuiti oscillatori a trasformatore, nella quale la
SCHEMA ELETIRICO retrocessione del segnale necessario a innescare l'o-
Entriamo subito nel vivo del progetto analizzan- scillazione avviene mediante un trasformatore d1e
do lo schema eleth·ico del circuito, che trovate in accoppia il circuito di uscita con quello di ingresso.
queste pagine e che appare molto semplice: consta Lo sfasamento di 180° viene determinato dal fatto
infatti di tre h·ansistor con i quali viene realizzato che il trasformatore restituisce al secondario w1a
un oscillatore a retroazione cui segue un amplifica- tensione indotta che è sempre in opposizione di
tore di potenza con filtro capacitivo. fase rispetto a quella che alimenta il primario (quin-
L'oscillatore è di tipo Meissner e verte sul h·ansistor di, 180° esatti). Nell'oscillatore a trasformatore la
NPN QI, al cui collettore è applicato un circuito frequenza dipende dalle caratteristiche del h·ansi-
antirisonante (formato da L1 e C3) accordato alla stor e dall'induttanza degli avvolgimenti, ovvero
dal ritardo che il trasformatore inh·oduce nella
pratica a causa delle proprie componenti parassite
e che non è sempte 180° come in teol'ia.
CARATTERISTICHE TECNICHE Nell'oscillatore di Meissner il trasformatore retro-
• Tensione di alimentazione: 9 +1 2V cede al primario tma tensione che, per come sono
• Corrente a ssorbita: 50 mA realizzati gli avvolgimenti (le due spirali sono
• Funzionamento: a variazione d'Induttanza affiancate e la fine dell'Ll si trova in corrisponden-
• Rilevamento: t utti i metalli za dell'inizio deU'L2 e viceversa), è in opposizione
• Segnalazione rilevamento: acustica di fase e tale da innescare l'oscillazione: in pratica
quando la tensione ai capi della LI cresce perché il
i i
Elenco Componenti:
R3: Trimmer 100 ohm
C1: 100 nF ceramico 01: S9018
C2: 2,2 nF cermico 02: S9015
C3: 2,2 nF cermico 03: S9012
C4: 100 nF ceramico LS1: Buzzer
C5: 100 µF 25 VL elettrolitico
R1: 220 kohm 1% Varie:
R2: 2,2 kohm 1% - Circuito stampato S1386 (61x66 mm)
: ............................................................................................................................................................................................................................................:
un condensatore postogli in parallelo, un circuito la alla quale la reattanza capacitiva eguaglia quella
accordato antirisonante; quest'ultimo ha la caratte- induttiva, almeno nel modulo) e molto bassa alle
ristica di presentare un'impedenza elevatissima in altre frequenze. In virtù di ciò, il trasformatore tra-
corrispondenza della frequenza di dsonanza (quel- sferisce alla base del transistor un segnale abbastan-
za ampio da innescare l'oscillazione praticamente
alla sola frequenza di risonanza del circuito LC.
Si può quindi affermare con sufficiente approssi-
mazione che la frequenza di lavoro vale:
1
fo= - -- - -
2n -I (LxC)
Dunque, l'oscillatore emette teoricamente un
segnale sinusoidale a frequenza uguale a quella di
risonanza del bipolo LC.
Notate che nel circuito le due resistenze di sinistra
servono alla polarizzazione in continua della base
e il condensatore provvede a cortocircuitarle in
presenza di segnale.
L'oscillatore di Meissner esiste in due varianti, la
prima delle quali è quella appena descritta; l'altra
ha il circuito accordato sul secondario (base) invece
che sul primario (collettore). La frequenza di oscil-
Gli awolgimenti del trasformatore ricoprono lazione del caso si calcola con una forma analoga a
entrambe le facce del circuito stampato. quella appena esposta, con la sola differenza che al
~ "Arei...'WIGnnnoVno·
P«t-C<».W
A WJ0""°'o..A.llJIC b .. -,.uny p~g> · 9ltt1qeyl•j ''h scou. topi
""'°"""'°
~ ·A.VRtSP"
AtG~lm>(#ltog,Jl'nm.ftOfloc'I) ...._UA~Q.:4.:l::J.U.UU ~'IT'' ' ·m •'' •••.u a , ..,,,,,,, :tgr~~
~
.......... ~
AretllftQ/GrrLlr'IOZtt0lNt11R-USSPort1
AidulftQ/~l'll)MK1llOOO
Aroi.lll'(llf'~~
--
~tf'U/)OM~«~.tl560
Al'OilinoMtQ.aADl
~~lTH
Ard\inrQIGcn..inoMIOO
kdlllno[aplOr'•
~llOll'll
Àfd\llno Erntmtt
M:1111"°rt0
Nc:Mnolll
l.11).'°aG~USS
ll'Vf'WArdUlln;i
USB del vostro PC vi verrà richiesto di installare i Board stiamo usando. Antennino è compatibile con
driver, i quali possono essere reperiti dal sito del Arduino/Genuino Uno, quindi selezioniamo dal
rivenditore dell'adattatore oppure dal produttore menu (Fig. 1)
del chip. Tools>Board> "Arduino/Genuino Uno".
Nel caso in cui abbiate scelto un adattatore con Per poter caricare gli Sketch su Antennino, non è
chip FT232 i driver si trovano a questo url: obbligatorio rimuovere le batterie, ma è una proce-
http://wwwftdichip.com/FTDrivers.htm. dura consigliata per evitare che una configurazione
Alla pagina http://wwwftdichip.com/Support/Docu- errata dei jumpers possa creare dei problemi.
111ents/InstallGu.ides.htm è possibile consultare una Per programmare la scheda è necessario settare i
guida esauriente per l'installazione dei driver. ponticelli come in Fig. 2, in modo di poter alimen-
Il dispositivo presente nello shop di futura eleth·o- tare Antennino dal cavo dell'adattatore USB.
nica è un buon candidato: In questo modo la scheda viene alimentata tramite
https://wwwjuturashop.it/connettivit%C3%AO- il regolatore lineare MCP1703. Per quanto riguarda
networking/convertitori-usb/UCOOA_CONVERTITO- la piedinatura del connettore per la programmazio-
RE_USB-SERJALE%203,3V-5V. ne fate riferimento alla Fig. 3. La disposizione dei
Terminata l'installazione se tutto è andato a buon pin è pensata in modo che una eventuale inversio-
fine dovreste trovare una nuova porta COM virtua- ne non crei dei danni, ma è sempre buona norma
le pronta per l'uso. prestare la massima attenzione nella fase di colle-
Attenzione: prima di collegare l'adattatore ad An-
tennino, verifichiamo che 1'adattatore sia configu-
rato per lavorare con una tensione di 3,3V e non 5V.
HELLO ANTENNINO
È sempre bene iicevere una piccola gratificazione idefine LED 9
void set up ()
immediata ed allora facciamo una cosa. Essendo pinMode(LED, OUTPUT} ;
Antennino a tutti gli effetti un Arduino, vediamo
void loop() {
se il classico Sketch Blink funziona sulle nostre due digita l Wri te(LED, HIGH) ;
schedine (Listato 1). Unica accortezza è definire il delay(lOOO) ;
digìta l Wr i te (LED, LOW) ;
PIN associato al LED in modo corretto. Ricordiamo delay(l000 );
che su Antennino il LED si trova sul PIN 9.
Per poter iniziare a programmare con Antenni-
no dobbiamo indicare alla IDE di Arduino quale
https://github.com/LowPowerLab/SPIFlash
gamento dei connettori. Siete pregati di fare riferi- https://github.com/PaulStoffregen/OneWire
mento a questa configmazione per il caricamento https://github.com/milesburton/Arduino-Temperature-
degli altri Sketch nel corso dell'articolo. Control-Library
Collegniamo infine l'adattatore USB al PC e al https://github.com/GreyGnome/PinChangelnt
connettore di Antennine e clicchiamo sul pulsante https://code.google.com/p/u8glib/
a forma di Play della IDE per compilare e caricare
il nostro primo Sketch sulla nostra Board. Per comodità, a questo link
Se tutto funziona a dovere dovreste vedere lampeg- https://github.com/open-electronics/antennino
giare velocemente il led a bordo dell'adattatore USB sono dispo1ùbili le librerie e i sorgenti.
e al termine se non ci sono stati errori il led a bordo Una nota che potrebbe essere banale per i più
di Antennina dovrebbe iniziare a lampeggiare al esperti ma che molte volte fa perder un sacco di
ritmo di circa un impulso al secondo. Bene, ora che tempo ai neofiti: raggiungendo il link Github della
abbiamo testato le nosh·e schede possiamo dedicar- prima libreria, atterreremo nella pagina simile a
ci a qualcosa di più impegnativo e gratificante. quella riportata in (Fig. 4) .
A questo punto, per scaricare la libreria necessaria
ORA INIZIAMO A FARE SUL SERIO... dovremo cliccare sul pulsante "Clone or download".
Come avrete notato, nello Sketch Blink che abbia- Unzippiamo il file che abbiamo scaricato.
mo appena caricato non sono state definite delle Il file conterrà una cartella con il seguente nome (in
librerie particolari. questo caso): SPIFlash-master.
/1
Gli sketch che impiegheremo ora, utilizzano libre- Rimuoviamo il suffisso -master", lasciando solo la
rie che normalmente non si trovano nelle installa- prima parte del nome della cartella: SPIFlash.
zioni standard, dovremo scaricarle, scompattarle Ripetiamo lo stesso procedimento per le successi-
ed inseribile nella opportuna cartella libraries della ve librerie da scaricare. A questo punto abbiamo
IDE di Arduino. diverse cartelle distinte: RFM69, SPIFlash, ecc.
Ad onore del vero esiste un'altra modalità di scari- Ora dobbiamo individuare dove L'IDE di Ardui-
camento delle librerie, ma per il momento preferia- no conserva le librerie. Normalmente la cartella si
mo usare questa prassi manuale, ma che ci permet- trova nel seguente percorso:
• ,,,dmplt> SPlflash.ReadWnte
·-·
1-=::J J3 TPL5110. byte NODEID = l ;
byte NETWORKID = l ;
byte DATll_GllTEWAY_ID D 253 ;
1I J2
byte OTA_GATEWAY_ID = 254 ;
+ ·-
Parte comune a tutti gli Sketch che andremo ad
utilizzare d'ora in poi è la configurazione della se-
C:\Program Fil es (x86) \Arduino \ libraries zione RF che deve essere personalizzata nel valore
del NODEID. Nel nodo sensore che andremo ad
Andremo quindi ad inserire le cartelle delle nuove utilizzare abbiamo settato il valore come ripo1tato
librerie scaricate nella cartella libraries di Ardu- nel listato. Sempre da Listato 2 abbiamo riportato
ino. Riavviamo l'IDE Arduino e saremo pronti a le quattro variabili principali che defu1iscono i
lavorare. settaggi di rete del nodo.
Questi parametri verranno caricati nella EEPROM
PRIMO TEST: del chip ATMEGA328p per evitare che in seguito
NODO MODALITÀ LOWPOWER·TPL5110 all'aggiornamento OTA possano essere sovrascritti.
In questo primo test utilizzeremo una scheda An- Quindi l'aggiornamento modificherà il funzio-
temùno su cui andremo a caricare lo Sketch Node- namento del nodo ma non i parametri di rete del
TPLSl 10.ino. In Fig. 5 vediamo come dovremo nodo ìn modo da preservarne l'identità in rete.
configurare i jumper una volta terminato il carica- Lo sketch del nodo sensore è strutturato nel modo
mento del firmware. classico, con una parte iniziale in cui vengono defi-
Gli sketch corrispondenti sono piuttosto lunghi, niti gli import, le variabili globali e alcune funzioni
per cui non li riporteremo integralmente sulla rivi- usate ripetutamente: ReadLux(), ReadBatteryLe-
sta, ma metteremo in evidenza solo le parti salienti; vel(), ReadTrigger(), sendData() etc .. Naturalmente
chi vorrà potrà scaricarli dal nostro sito www. abbiamo la pa1te comprendente il Setup che ini-
elettronicain.it insieme ai file del progetto. zializza il funzionamento e il ciclo Loop che viene
Dopo la parte iniziale in cui si definiscono le libre- ripetuto finché il dispositivo non viene resettato.
rie da includere, abbiamo inserito la definizione di Particolare attenzione va posta alla funzione Re-
due parameh·i molto importanti per quanto riguar- adTrigger() che riportiamo per esteso nel Listato 3.
da la possibilità di aggiornare il modulo da remoto. Ricord iamo brevemente che nella modalità
Vedere il Listato 2. Lowpower che usa il TPL5110 il microcontrollore
FAMILY specifica la tipologia di nodo. Mentre non è alimentato e quindi i classici interrupt non
FIRMWAREVERSION definisce la versione at- funzionano. lnolh·e non è sufficiente risvegliare il
tuale del firmware caricato stù nodo. Vedremo poi Microcontrollore, ma è necessario informarlo che
come vengono impiegate queste informazioni per il risveglio è stato causato da tm segnale di allarme
l'aggiornamento OTA. che deve essere intercettato dal codice al momento
Listato 3
int ReadTri99er() I
Il Leggo la tensione presente sulla capacità Cl
int v = analogRead(TRIGGER_INPUT) ;
delay(50) ;
Il Scarico i l condensatore portando il PIN in modalità OUTPUT
Il e poi ad un livello Basso
pinMode(TRIGGER_INPUT, OUTPUT);
digitalWrite (TRIGGER_ INPUT, LOW) ;
return v;
Listato 6 .:
i f (TriggerDetected) (
batteryReportCycles aQ ;
TriggerStat us = cligitalRead(TRIGGER INPUT) ;
sendData () ; -
Blink(LED, 3);
else if (batteryReportCycles >= BATT CYCLES)
Il invio le notifiche sullo stato della batteria solo se sono in modalità LowPower
i f '( Sleep_Time > O ) (
sendDa ta () ;
Blink (LED, 3) ;
batteryReportCycles=O;
if (Sleep_Time >0) (
for (byte i~O ; i < Sleep_Time; i++) (
LowPowe r.powerDown (SLEEP_Ss, ADC_OFF, BOD_OFF) ;
batteryReportCycles++;
dell'intervallo temporale necessità il riavvio dell'al- quale invia la struttura dati Payload_t valorizzata
imentazione. con i dati ricevuti dai sensori e lo stato dell'allar-
me. Se durante il funzionamento normale non si
SECONDO TEST: verifica alcun allarme, allora l'invio di dati avviene
NODO MODALITÀ LOWPOWER·ATMEGA328P quando batteryReportCycles >= BATT_CYCLES
In questo secondo esercizio utilizzeremo una in pratica ogni risveglio viene incrementata la
scheda Antennino in modalità Lowpower. In Fig. variabile batteryReportCycles e quando viene
6 vediamo come dovremo configurare i jumper raggiunta la soglia BATT_CYCLES viene inviato
una volta terminato il caricamento del firmware. In un pacchetto di dati al Gateway_Dati. Il cuore della
questo caso caricheremo lo Sketch Node-LowPo- temporizzazione è la funzione LowPower.power-
wer.ino. Down che permette di portare a basso consumo il
Anche per questo Sketch andremo ad analizzare microconh·ollore, in questo caso per un tempo di
solo le parti più interessanti. Nel Listato 6 vediamo 8 Secondi. Si può ovviare al limite degli 8 secondi
una parte del loop ed in particolare la gestione del inserendo come nel blocco di codice di fig. 7 la
passaggio in modalità LowPower, l'intercettazio- funzione all'interno di un loop. In questo caso se
ne di un allarme tramite interrupt e l'invio di un Sleep_Time =1 il periodo di temporizzazione sarà
pacchetto informativo periodico di dati al Gate- di 8 secondi altrimenti sarà pari a 8S * Sleep_Time.
way_Dati. Se portassimo il valore di Sleep_Time=O come
Notiamo che se viene intercettato un interrupt la risultato avremmo un nodo sensore che non andrà
variabile TriggerD etected viene posta a true nel mai in modalità basso consumo.
loop e questo determina l'invio di informazioni al Per triggerare un allarme è necessario portare bas-
Gateway_Dati tramite la funzione sendData(), la so il PIN 07. Questo evento farà risvegliare il nodo,
determinerà l' invio di una struttura dati contenen-
te il valore di allarme=l e poi il nodo tornerà in
1-@J JB
11
modalità LowPower.
.--
1-
1-UQjJ J7
11
GATEWAY_DATI
Possedere w1a rete di sensori senza poter elaborare
·-
11 J4 le informazioni che gli stessi raccolgono è di scarsa
·-o
.--
utilità e quindi si rende necessario avere un nodo
·-
11 J3 Gateway_Dati che funga da concentratore per tutti
1- i nodi sensori. Allo scopo dobbiamo caricare su un
11 J2 modulo Antennino lo Sketch Gateway_Dati.ino
Fig. 7 · Configurazione
·- per alimentazione continua
Anche in questo caso non riporteremo il listato com-
pleto1ma solo le ftmzionalità più importanti.
usando batterie AA a bordo.
Il Gateway_Dati deve poter ricevere le informazioni
provenienti dai nodi sensori, quindi deve fare riferì-
·mo
sensori nella variabile DATA_GATEWAY_ID.
Sul modulo abbiamo previsto la possibilità di vi- 11,_ J2
sualizzare i dati ricevuti in tempo reale tranùte w1 +
piccolo display Oled.
Se ritenessimo di non volerlo utilizzare potremmo
rimuovere tutti i riferimenti nel codice compresa
l'importazione della libreria ed utilizzare solo la
porta seriale per visualizzare i dati ricevuti sul
monitor seriale collegato al PC. Il funzionamento dello Sketch è veramente molto
Se invece intendiamo avvalerci del display Oled, semplice, come di consueto è presente una sezione
dovremo sincerarci per prima cosa che il pinout di definizione variabili, e delle funzioni comuni,
dello stesso sia compatibile con quello di default una funzione di setup ed una di loop che è quella
del modulo Antennina, altrimenti si renderà in cui vengono intercettati i dati ricevuti dai nodi
necessario invertire le h·acce sotto il connettore del sensori. Il seguente spezzone di codice propone il
display Oled. Non inserite un display con una pie- Loop del Gateway_Dati.
dinatura invertita perché rischiate di compromet-
tere il funzionamento del display o del regolatori a if (radio.receiveDone()) I
bordo di Antennino. if (radio . DATALEN •• s~zeof(Payload_t))
Nel codice sono previste già due opzioni: memcpy(myOwnBuffer, (const void • )radio . DATA, radio . DATALEN);
una configurazione relativa al chip SH1106 ed una Cast_To_Struct(curData , myOwnBuffer) ;
relativa al chip SSD1306. In mancanza di infor-
mazioni pW1tuali sul modulo è necessario andare Qui gestiamo la visualizzazione dei dati sul di-
a tentativi, ma non succederà nulla di grave: al splay; in alternativa possiamo gestire la ricezione
massimo il display rimarrà nero. di una ·Condizione di allarme da un nodo, utilizzan-
Il Gateway_Dati non permette la memorizzare le do allo scopo curData.allarm:
informazioni pervenute dai sensori e quindi l'idea-
le sarebbe collegare tramite porta seriale il Gateway )else!
ad un Raspberry Pi dotato di un software specifico Serial . print(F( " Invalid payload : " )) ;
che permetta di storicizzare i dati ricevuti su un dB Serial . print( ' ( ' ) ; Serial . print(radio . SEN-
MySql ed eventualmente visualizzarli tramite una DERID, OECl ; Serial . print(" ] " ) ;
interfaccia Web. for (byte i • O; i< radio . DATALEN; i++) {
Questa opzione è già in cantiere e vedremo di Serial . print((char)radio . DATA [i}) ;
spiegarla eventualmente in un altro articolo. Per
il momento potremmo intercettare l'arrivo di un Serial. print (f' (" (RX_RSSI : " )) ;Seria l.
allarme da W1 nodo ed attivare un pin di uscita dal print(radio.RSSI);Serial.print(")•) ;
Gateway collegato ad un allarme. Serial . println( "" ) ;
Dobbiamo decidere come alimentare il Gateway_
Dati. Consideriamo due Opzioni.
Usiamo le batterie a bordo del modulo impiegando Analizzando il codice è evidente che il dato ricevu-
il regolatore Step-Up Max856. Questa naturalmen- to dal sensore viene preso in considerazione sola-
te è una opzione di test ma che non ha senso usare mente se ha una dimensione consona a quella della
in un ambito reale (Fig. 7). sh·uttura dati che ci si attende Payload_t altrimenti
L'altra opzione è quella che utilizza un'alimenta- viene emesso un messaggio con il testo: "lnvalid
zione esterna da applicare ai pin Yin del modulo payload".
antennina e che verrà portata a 3.3 V dal regolatore Se la dimensione del messaggio soddisfa questo
lineare MCP1703 a bordo del Modulo Fig. 8 primo filtro, il messaggio stesso viene "converti-
Nodo 2
Sketchbook locatìon:
C:\Users\mlrko\Documents\Ardulno Browse
OK Cancel
famiglia di appartenenza e la versione del firmware tra la famiglia del richiedente e quella assegnata
corrente. al firmare sul gateway e verifica se la versione del
Al momento del risveglio il nodo sensore invia firmware del nodo richiedente è inferiore a quella
una richiesta di aggiornamento verso il Gateway_ presente sul Gateway.
OTA, fornendo la versione attuale del firmware Se queste due condizioni sono soddisfatte viene
(FIRMW AREVERSION) e la famiglia di apparte- iniziata la procedura di aggiornamento e al termine
nenza del nodo (F AMIL Y) in modo che il firmwa- il nodo Sensore viene riavviato e fatto ripartire con
re venga caricato sulla tipologia corretta di nodi la nuova versione del firmware. Al nuovo risveglio
remoti. dallo stato Lowpower, se la versione sul gateway
Le variabili relative all'ID del nodo remoto (NO- non viene aggiornata e di conseguenza incremen-
DEID), ID della rete (NETWORKID), ID del Gate- tato in numero di versione, non si verificherà alcun
way dati (DATA_GATEWAY_ID) e Gateway OTA successivo processo di aggiornamento. Per capire
(OTA_GATEWAY_ID) sono salvati in EEPROM, in dove Arduino salvi i file binari .hex delle compila-
modo che non vengano sovrascritte dall'aggiorna- zioni che esegue, dobbiamo abilitare una opzione
mento del FiJmware. nella IDE.
n gateway riceve la richiesta di aggiornamento Andiamo quindi sotto File/preferenze e spuntiamo
remoto, verifica se il firmware a disposizione è "Show Verbose Output"(Fig. 10).
adatto al nodo richiedente. Esegue un confronto Mandiamo quindi in compilazione uno sketch e
1 l "
:? linelude <llO!f!o.h>
J tinclud~ ~ Rl"H69_ATC .h>
4 finclude <RFM69_0'l'A .h>
S tinclude <SP IFlash.h>
~ Jinelude <SPI .h>
; tinelud~ <O'lleWire . h>
8 hnclude <Dal a~TeT!lp"'ra1;1 r . h >
5 f~nelude <EEr.ROH .h>
10 tinclude "My'l'ypes.h"
11
1:?
13
14
H Il
17 Il
II l!'AMJJ.Y: definisce la famiglia del dispositivo
.... Settings o X
Fig. f 2 - Settings
Save
dell'applicazione.
lt«
D.itallb "'
la "I
_ _ _ _ _v I~ I 1.oac1ro1ou1 BMh
T~ IO ....-
..___ fldl to -T~
un nodo Antennino con a bordo lo sketch di un già visto nella Fig. 5. Per comodità (ma non è essen-
nodo, per esempio TPL5110.ino. Se usiamo il nodo ziale) potremmo collegare anche il nodo sensore
TPLSl 10 dobbiamo settare i jumpers come abbiamo tramite seriale al PC (ci servirebbero però due adat-
Filt Crt<fiu
s-11..oo
o.:-is
Port opened •t 16/06/ 2018 1 11$?100 i'Cll
W AIT P\EASE !!
e.......9 Flu h eh.., ••• OOHE [001.13
S(T lOAO lOCAl Fl.ASH
Wa.t ffH r.a. . HEX to lo•d .. FLASH Htm0ry a.ud A«~
ITimeout lst 30 S«on<IJ 1t2);
Pttr
·.cne
I
~Sù
Or>e v)
O.Ca Bb
~ ~
X
Mode
0 Hox
O St1 S-•<uro di wolt r uuur~ la f l .:..SH.. @T~
-
Tu Ilo Conttl
.
Rudy
:n5200 vi
[T_OO NlOAD hiiy
OOWNlOAO HOOE
U11Jt!U01l
:ra.e vi
9cpllts
PAYlOA01 [ REHOT'E_ FAHllY:l LOCAl.....FAHILY:l REHOT'E_FnlHWAREVERSlON=l lOCAL_FlRHWAREVERSIOH: 3J
tatori USB). Una volta collegato il nodo alla seriale simile a quello riportato in Fig.18. Notiamo che il
apriamo il Monitor Seriale relativo alla porta a cui nodo, circa ogni 8 secondi cerca prima di contattare
è collegato il modulo e dovremmo vedere un Log il Gateway_OTA inviandoli la famiglia del nodo
............................................................ ..........
NUmt<O 8yle140285
femJot L 1 Vfll'lion Ll
Fig. 17 - Verifica del caricamento del binario sulla Flash Memory del Gateway_OTA.
rRI GG!:R: O
3endi nq $truc e PAi"LOAO: fainil y=l f~_ v o$r .si on = l) ( ~ b yte~ ) -> ~O rop l y . •.
· STAR'!' TASK· ·
Scnding ~true t PAYLO~D: up~imeQ.•UlO ~ oempai-J0 . 25 Sa t.t.ery;0 . 25 Lux c 4t l) (1.6 byte.5 ) - > NO repl y • • .
3end ing et r uct. PA'iLO:.D: f a.mily=l fw_~er.s io n= l ) (~ b yte• ) - > NO rep ly ••.
-.START T ;>..SF. - -
.S~ ndi ng 3 t ruc t PA'tL:OAD: ...,p d .m't'a 8'4 78 t.em.p.;;30 . 00 &at.tery-;;i0 , 2.S Luxc4 05) (16 byt c s } • > NO .rc pl ;· • • ,
So&nding a~ruce PA'tl.tOAD: f a.m.ily=l fw_~er .s io n = l] (4 b yte.s ) - > t-iO re?l y • ••
-START T;>..51'••
Se ndi ng oe:uc e PA'tLOAD: ui>• i ,..e=l2S l S • • ,.!'= 30 . 00 5U<e:y=0 .2 3 Lux= U O) (16 b y; u) · > SO repl y • . •
Se nding ' t ruc-; ~A\"lrOAO: f a m.i ly=t f-11( ?~r.sion=l] (4 by,_•_
u_)______ - - - - - - - - - - - - - - - : = = = = - - = = = - - -vi
G2]Autosaoll NevA!ne V 115200 beud V
e la versione del Firmware. E poi cerca anche di adattatore USB anche il mod ulo Anteimino che
inviare dati al Gateway_Dati per aggiornalo sullo svolge il compito di Gateway_OTA. Mandiamo in
stato dei sensori. Ora colleghiamo al PC tramite esecuzione l'applicazione Antennino Programmer.
Rudy
1115200 vi
SET_ OOWNLOAO Pùy
I I
Target''. ~~~!,'.
'"'}~J:JJf~!.Yr.~J!et.t!:oniç~. Via'Adige 11, 210.U ~~ll!}ra(e
· ·
'·· . . .
H materiale
.: .
va richiesto
•.·· ..........
. ..·
a: ..
Il file binario verrà inviato al nodo remoto che, . '"" '. ..
·'-, :. (VA)
completata la procedura si riavvierà con la nuova
~lJ:-:l~?]?~r~x:.on.l-792287 - www,futura~.h .~~·!,V
versione del Firmware (Fig. 20).
.
è lo strumento più importante
ratorio elettronico da · • estga
1JI' ali tutto la possibilità di ti
buona risoluzione la tensione e la corrente ---
---
di uscita, requisiti soddisfatti da questi nuovi
alimentatori. Mantengono i valori impostati ---
---
- - -r
---
in modo affidabile e indipendentemente dalle
fluttuazioni della tensione di alimentazione o
del carico collegato. ---
-----
---
ALIMENTATORE LINEARE CON DOPPIA
---
-- -
---
_. ....
USCITA REGOLABILE
0-30 VDC I 0-5 A
Alimentazione: 230 VAC - 50 Hz
Uscita duale regolabile:
- Tensione: da Oa 30 VDC
- Corrente: da Oa 5 A
Uscita fissa: 5 VDC I 3 A
Tensione di ripple: < 1 mv
C54,DO ALIMENTATORE SWITCHING
A SINGOLA USCITA
Dimensioni: 360x265x165 mm Cod. AL1502
Peso: 10 kg
REGOLABILE
0-15 VDC I 0-2 A
Alimentazione: 230 VAC - 50 Hz
Uscita regolabile:
- Tensione: da Oa 15 VDC
- Corrente: da Oa 2 A
Dimensioni: 240x150x95 mm
Peso: 3,5 kg
e22B, 00
Cod. AL2X3005 Prezzi IVA inclusa.
~crl
CONNl L1
JN OUT
U2
ce
t::1,, l l l l Cl C2 C3
GND
l
C13
I U4 SOA
6
5 9
10
SOA
I C18 C20 C22 C25
!°"'
AO
Al
SCL
7
SCL
Ul
3V3 +
l l I I
A2 wc R12 3V3
GNO
4 5
RST
52 C24 8 C9 C10
tI
CONN3
14 vcc
R7
RB
R9
13
12
PIOB
PIOS
PIO! PI023 8
COMP
VOUT
U3
5
l I
~
FSINC MCLK
RlO 11 2 7 3
4 PI015 PI017 SCLK C2VS
51,, PI013
3 G
MOSI
GND AGND
Cll C14
....
(.)
PIOO 3V3
3V3
4 9
I I
3V3
5~
~
Rll
6
PI04 4 2 ~
4
E
CO
VRFN
17 '~ 16
I
t Sl
I
~
Q)
..e:
(.)
• ••! ••t•••t••tt••\ ' ! •_!•••• ' ' ' ' '.J ·~•.! ' •• •••J. '.I !.-"i l...''P1'J ''"-"
C 1: 22 µF 16 VL ceramico
C2, C3: 100 nF ceramico
C4, C6: 100 pF ceramico
C5: 100 nF ceramico
C7. C8: 100 nF ceramico
C9: 1OµF ceramico
C10+ C12: 10 nF ceramico
C13: 100 nF ceramico
C14: 10 µF ceramico
C15, Cl 7: 100 nF ceramico
C 16: 100 µf 16 VL elettrolitico (06 mm)
C18:-
o
C19: 100 nF ceramico
C20. C22: 330 pF ceramico
C21 +C24: 100 nF ceramico
C25:- L 1, L2: Induttanza 100 µH S2: Pulsante N.O.
C26: 15 pF ceramico L3: Induttanza 1 µH CONN1: Morsetto 2 vie
C27: 1O pF ceramico L4: Induttanza 2,2 µH CONN2: Connettore filo-scheda 3+3 vie
C28: 100 pF ceramico L5: Induttanza 1 µH CONN3: Strip maschio 5 vie
C29: 100 pF ceramico U1: LPC822M101JDH20J CONN4: Presa BNC verticale da CS
R1, R2: 100 ohm U2: MC78LC33 CONN5: Strip maschio 3 vie
R3+ R10: 10 kohm U3: AD9833BRMZ J1 :Strip maschio 2 vie
R6+R10: 100 ohm U4: 24LC08B/SN
R11, R12: 15 kohm U5, U6: SN74AHC1G14DBVR Varie:
R13: 1 Mohm Xl: Quarzo 25 MHz (HC49) - Jumper (2 pz.)
R14: 2.2 kohm $1: Pulsante N.O. ·Circuito stampato S1398 (45 x 48 mm)
: .........................................................................................................................................................................................................................................................................:
nerà il ponticello fra i piedini 2 e 3 del connettore e connettendo direttamente l'uscita delI'accumu-
CONNS e si preleverà il segnale fra i piedini 1 latore al DAC, mentre l'onda quadra è creata per
(GND) e 2 (uscita non filtrata) dello stesso connet- comparazione dell'MSB dell'uscita dall'accumula-
tore CONNS; in questo caso il connettore CONN4 tore. Questo produce delle forme d'onda accetta-
resterà inutilizzato. bili a basse frequenze (intendiamo basse rispetto
L'uscita resterà comunque accoppiata in alternata: alla frequenza cli dock. ..) ma comporta un certo
con i due condensatori C16 e C17 si avrà una fre- jitter man-mano che la frequenza generata aumen-
quenza di tagHo inferiore di circa 5 Hz, che dovreb- ta. Quindi le forme d'onda triangolari e quadra
be essere sufficiente per la maggior parte dei casi. andranno utilizzate con cautela e verificando prima
Nulla vieta cli cortocircuitare C16 e C17 ed avere che le caratteristiche siano adatte allo scopo.
un'uscita accoppiata in continua: riferirsi al da- Inoltre se per le forme d'onda sinusoidale e trian-
tasheet dell'AD9833 (punto [1] dei Riferimenti) per golare l'ampiezza sul piedino 10 dell'AD9833 può
inclicazioni su come effettuare questa modifica. arrivare al massimo a 0,6Vpp per l'onda quadra i
All'interno dell' AD9833 abbiamo due generatori livelli sono quelli dell'alimentazione dell'integrato;
separati ma solo uno dei due può essere connesso quindi dopo C16 e C17 l'onda quadra avrà un'am-
all'uscita (piedino 10 dell' AD9833). È molto como- piezza picco-picco di circa 3,3V.
do, però, avere due DDS indipendenti all'interno Per dia1ogare con questa scheda è neces?ario un tra-
dello stesso integrato per poter effettuare salti cli slatore cli livello o protocollo da UART 3;3V a RS232
frequenza veloci come richiesto per la generazione o USB. Nel caso, si tratterà cli adattare le connessio-
di modulazioni FSK o PSK. ni: il connettore CONN2 ha due contatti cli massa
L' AD9833 è in grado cli generare tre forme d'onda: (piedini 1 e 6) e può fornire qualche decina cli mA
sinusoidale, triangolare e quadra. In effetti, però, la cli corrente a 3,3V attraverso i piedini 2 e 5.
ROM contiene solo le informazioni per la sinusoi- I segnali RXD e TXD della UART sono disponibili
de: l'onda triangolare è generata saltando la ROM sui piedini 3 e 4; dal piedino 4 esce il segnale che va
Alte prestazioni.
Multifunzionalità.
Scopri il nuovo Oscilloscopio R&stRTP (da 4 GHz a 8 GHz)
1 De-embedding in tempo reale
1 Strumenti multipli in uno
1 Dimensioni contenute
sddsg 0.1
[-] >getstat
Fig. 1 - Una tipica finestra di comando da terminale.
system core clock 30000000
uarto_stat l
LPC_USARTO·>STAT 1012 minimo di attrezzatura che comprende una pinzet-
LPC_SPIO- >STAT 132 ta per posizionare i componenti, della pasta-salda
o filo di lega saldante molto sottile (al massimo 0,5
ad9833_ ctrlreg 2008 mm di diametro), una stazione saldante con stilo
ad9833_freqreg 4058 molto sottile e potenza massima di 30 watt, oltre a
ad9833_;phasereg cooo una lente d'ingrandimento per aiutarsi nel posizio-
namento dei componenti più piccoli.
(-] > Può essere utile deporre del flussante sulle piazzole
1-l > prima di saldarvi i componenti, giacché aiuta nel
I·] >fO 12500 mantenerli in posizione e dello sciogliere la lega
1-J >fO -,10000 saldante tra essi e le rispettive piazzole.
1- l >fl 137600 Il montaggio deve iniziare dal microcontrollore
1-l >fO e dai due integrati, quindi proseguire con tutti i
[-) >tri passivi e i transistor, andando in ordine di altezza
[- ) >eer O e seguendo l'orientamento visibile nel piano di
55 montaggio illustrato in queste pagine; i pin-strip
per realizzare i due jumper, il cormettore a vaschet-
(- ] >eew o aa ta a 6 poli dell'ICSP (programmazione in-circuit) la
[-) >eer O
aa
[-) >
'
~i1kflOJ
cod. FR695
...
OUT+
....
(.)
~
PWR Dl
Cl + C2 C3 + C4
IN-
1 +SV
l l +12V
l l OUTl
l&.I
L&j
r
~
~ 011
VIN
02 E
51 ©
·~
AO
-t::
(..)
~
r,,,
+SV
52
40--
~ 010
Al
+
OUT2
53
r
·~
~ 09
A2
ARDUINO
04
Q2
r
2
~ 06
' +SV
ko~
54
:~
A3
012 S I SENS
r,,,
!°3
013
ss 40--
~ OS
A4
RS
;1'
r,,,
07
56 4 ~8 03
AS
08
GND I< ~
J;,1 J;,2
azioni che vogliamo. Vi spiegheremo come, quando vocomandi, che stavolta hanno quattro pin invece
descriveremo il firmware applicativo. di tre, giacché abbiamo aggiunto quello, opzionale,
per il feedback di rotazione d ell'alberino.
L'ELmRONICA DI CONTROLLO Ciò è possibile perché la scheda Arduinq/Fishino
Il controllo d ei quattrn servocomandi del braccio UNO dispone di sei uscite PWM e permette il pilo-
robotico è affidato ad Arduino UNO, attraverso lo taggio diretto di altrettanti servocomandi, almeno
shield del quale h·ovate lo schema elettrico in que- per quel che riguarda i segnali di posizione; l'elet-
ste pagine; da esso vedete come si tratti d i qualcosa tromagnete della valvola a tre vie viene invece ge-
di semplice, riassumibile nel prolw-lgamento delle stito attraverso una linea di I/O digitale, che nello
linee analogiche (1 PWM e un analog inpu t per cia- shield pilota un transistor utilizzato come interrut-
scuno dei servo) di ATduino sui connettori dei ser- tore statico. Lo shield non si limita a fornire i segna-
alimentazione di quest' ultima scheda è collegato) ma dalla premessa che abbiate già assemblato il braccio
da un jack DC separato a bordo, che nello schema robotico secondo le istruzioni fornite nell'articolo
eleth·ico è siglato PWR; l'alimentazione d'ingresso ad esso dedicato nel fascicolo n° 227. Dovete quindi
passata attraverso il diodo dj protezione viene filtra- preparare l'elettronica e cablai-e il tutto secondo lo
ta dai condensatori Cl e C2 e quella stabilizzata, a 5 schema di assemblaggio riportato in queste pagine;
volt, dai condensatori C3 e C4. più esattamente, una volta realizzato lo shield oc-
C oncludiamo l'analisi dello schema elettrico con corre applicarlo ad Arduino e poi cablare l'elettroni-
le linee di I/ O 07 e D8 di Arduino, le quali sono ca (servo, alimentazione, elettrovalvola e pompa di
input che acquisiscono lo s tato dei pulsanti Pl e P2, depressione) nonché realizzai-e il circuito pneumati-
d estinati a future applicazioni, ovvero ad avviare co con la pompa a depressione. Lo shield si realizza
e arrestare l'apprendimento d ei movimenti, per partendo dal circuito stampato, quest'ultimo otte-
esempio. nibile per fotoincisione dalle tracce lato rame che
trovate nel nostro sito www.elettronicain.it insieme
REALIZZAZIONE PRATICA agli altri file d el progetto; incisa e forata la basetta,
Bene, passiamo adesso dalla teoiia alla pratica oc- si possono montare i pochi componenti occorrenti,
cupandoci della costruzione del sistema, partendo che richiedono un po' d'attenzione in quanto per
Elenco Componenti:
Varie:
• Strip femmina 2 vie (4 pz.)
- Strip maschio 2 vie (4 pz.)
- Plug alimentazione
- Morsetto 2 vie passo 5mm (2 pz.)
• Strip 6 vie 15mm
- Strip 8 vie t 5mm (2 pz.)
· Strip 1O vie 15mm
- Circuito stampato S1397 (69 x 55mm)
:......................................................................................................................................................................................................................................................._...............:
buona parte sono in SMD. Quindi servirà un po' di 2 prevedete delle morsettiere da circuito stampato
manualità ed un po' di esperienza sulla saldatura a passo ,5 mm. Notate che i MOSFET devono essere
di componenti a montaggio superficiale, nonché un stagnati abbondantemente nella zona dell'aletta
minimo di ath·ezzatura che consiste sostanzialmen- metallica, allo scopo di distribuire meglio la corren-
te in un saldatore da una ventina di watt di potenza te ma soprattutto il calore prodotto.
a punta molto fine, del filo in lega saldante del dia- Completate lo shield montando, dal lato componen-
metro massimo di 0,5 mm (o pasta saldante) delle ti, gli strip femmina a pin lunghi che costituiscono
pinzette per posizionare i vari elementi, una lente gli header Arduino. Fate attenzione ai LED SMD,
d'ingrandimento per aiutarvi nel posizionamento e che sono delicati e non vanno sw-riscaldati, pena la
della pasta flussante da spalmare sulle piazzole per deformazione della resina che li iicopre.
favorire l'adesione dello stagno ai componenti. Sistemato lo shield applicatelo a una board Ardu-
Procurato il tutto iniziate il montaggio posizionan- ino UNO rev3 e collocate il tutto sulla piastra di
do i componenti più piccoli, ossia dalle resistenze e supporto poste1iore del braccio, fissandolo median-
dal diodo (che va orientato come indicato nel piano te colonnine distanziali in plastica alte 8 mm e viti
di montaggio visibile in queste pagine), proseguen- 3MA; connettete quindi i servocomandi ai pin-sh·ip
do con il regolatore, che va saldato sul PCB tenen- dello shield, tenendone i connettori verso il più vici-
dolo sollevato mediante pin-strip, lunghi anche solo no header. Invece, se avete dei servo con feedback e
1 cm, a passo 2,,54 nun, dal lato componenti. Passate quindi connettore single-in-line a 4 poli, collocateli
poi ai pulsanti, ai condensatori, ai transistor e ai come previsto. I fili dell'elettropompa a vuoto e
MOSFET, rispettando la polarità indicata (per i con- della valvola a tre vie (due per entrambi i disposi-
densatori elettrolitici, i BJT e i MOSFET) dal piano tivi) vanno collegati alle morsettiere OUTl e OUT2,
di montaggio, quindi inserite e saldate i pin-strip rispettando la loro polarità; siccome le predette
per i servo e l'ingresso SENS. Per l'ingresso di ali- uscite erogano una tensione di 5 volt, la pompa e
mentazione saldate la presa jack e per OUTl e OUT l'elettrovalvola devono essere a a 5 V.
i,. l ·
elettrica ed elettronica, tuttavia affinché
il braccio robotico esegua la manipola- ..:'
: guida
zione degli oggetti bisogna applicargli
al polso il manipolatore pneumatico
a ventosa, che si realizza assemblan- dfstantlale ABS 3•11
Servo
(Cod. SERV0213)
Servo
(Cod. SERV0213)
Servo
(Cod. SERV0213)
COLLISIONSENS
Servo
(Cod. SERV0206)
fdefine pump 2
fdefine valve 4
Se rvo base;
Servo shoulder;
Servo elbow;
Servo wrist rot ;
Servo wrist=ver;
Fig. 2 - Il sensore Servo gripper;
microswitch applicato
allo stelo della Il the setup function runs once when you press reset
ventosa sulla Il or power the board
testa pneumatica. vo i d setup () I
Il initialize digi ta l pin LED_BUI LTI N as an output .
p inMode(pump, OUTPUT) ;
pinMode(valve, OUTPUT) ;
digitalWrite(pump, HIGH);
digitalWrite(valve, BIGH) ; //HIGH ASPIRA LOW RILASCIA
contenente il microswitch che rileva la compressio-
llFor each step motor this set up the initial degree
ne del sistema a ventosa. Nel chiudere il corpo deli-
mitato dalle due piastre ricordate che la forcella del-
la guida in plexiglass per il sistema a ventosa deve Braccio . begin () ;
Scegli il convertitore di tensione DC-DC che meglio si adatta alle tue esigenze. '":'~,
.. : · .'.'.dl~,·_-., - '-.. . e""'
"
CONVERTITORI
STEPDOWN DC-DC
Fishmograph permette di monitorare con precisione i terremoti
che coinvolgono la nostra abitazione utilizzando il sensore 075,
notificandoci tramite email gli eventi rilevati, consentendoci
di mettere in sicurezza persone e cose.
FISHMOGRAPH
IL TUO PRIMO
SISMOGRAFO
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • di ALESSANDRO PASQUALINI
Il collegamento del sensore a Fishino 32 è visibi- caria accedendo alla relativa pagina all'interno della
le nella Fig. 1, dalla quale vedete che dobbiamo stessa webapp.
connettere i pin INTl e INT2 a due pin di Fishino Per impostazione predefinita, le notifiche via e-mail
32 capaci di gestire interrupt e collegare il bus I2C e sono disabilitate e per abilitarle è necessario "de-
l'alimentazione. È consigliabile utilizzare anche una commentare" ENABLE_EMAIL_NOTIFICATION e
batteria LiPo capace di mantenere alimentato Fish- inizializzare le costanti successive con i dati relativi
mograph anche in condizioni di blackout, garan- al server SMTP utilizzato; ricordiamo che decom-
tendo la continuità della procedura di rilevazione; mentare significa rimuovere la doppia barra (//) che
naturalmente le notifiche via e-mail non possono precede l'istruzione, in modo che Fishino la inter-
essere inviate per l'assenza della connessione. preti come un'istruzione e la esegua.
Dopo il collegamento dobbiamo copiare nella Nel nostro esempio abbiamo utilizzato Gmail, ma
root di una scheda di memoria microSD il codice per consentire a Fishino 32 di utilizzare questo ser-
relativo alla webapp ed inserirla nell'apposito slot ver SMTP dobbiamo abilitare le "app meno sicure"
di Fishino 32; la scheda verrà utilizzata anche come nel nostro account Google, collegandoci all'indiriz-
storage per i dati relativi all'applicazione, ovvero zo https://myaccount.google.co111/l.esssecureapps e, nella
lo storico delle rilevazioni e la lista dei destinatari pagina web che si apre nel browser, ponendo lo
delle notifiche e-mail. slider corrispondente in posizione attiva (Fig. 2).
A questo punto possiamo procedere con la confi- Una volta abilitato l'accesso di Fishino al .nostro
gurazione dello sketch; nel Listato 1 è riportata la account Google, dobbiamo codificare in Base64 il
porzione di codice adibita a questo scopo. nostro indirizzo di posta elettronica, ovvero il nome
INTl_FIN e INT2_PIN indicano rispettivamente account completo di @gmail.com (ad esempio,
i pin di Fishino 32 ai quali sono state connesse le pippo@gmail.com), che verrà utilizzato come nome
uscite INTl e INT2 del sensore 075; WEBAPP_DE- utente nella comunicazione con il server SMTP, e la
FAULT_PASSWORD è la password predefinita password di accesso al nostro account. Per fare ciò
della webapp ed è naturalmente possibile modifi- possiamo, eventualmente, usufruire di un servizio
Go gle o :..
r,1cuni dls.pos11,v1 e app utìhZZ.lno una tecnolt>g:1a d1 aoc es~o men:> s1c"'r.a, che rende p1u vulnerabile " tuo
;u;i:ount Puoi dis:o:>ttivarc I aG,.esso pet queste app (soltmone col's19ha10) oppure attlv;irc l occcszo se
d1.,'S1dcu u11nua1h nonostàntl! 1r1sc.;-l11 Ul1et100 mCotmilZ•om
Fig. 2 - Schermata visualizzata ne//'abifitazione de/le "app meno sicure" ne//'account Goog/e.
on-line molto comodo, accessibile all'indirizzo il cuore di questo progetto, permettendo di gestire
http://www.base64encode.org, che ci permette di codi- completamente sia il sensore D7S sia il sistema di
ficare in Base64 senza dover installare alcunché nel notifiche email, impostando differenti destinatari.
nostro computer. L'output codificato dell'indirizzo Collegandoci all'indirizzo IP impostato nella
e-mail e della password va copiato rispettivamente configurazione di rete di Fishmograph, ci appare la
in SMTP_LOGIN e SMTP_PASSWD. schermata di accesso che protegge l'intero sistema
SMTP_FROM_NAME e SMTP_FROM_EMAIL cor- da accessi non autorizzati; il primo accesso andrà
rispondono al mittente delle e-mail di notifica. Se si effettuato utilizzando la password predefinita nella
utilizza Gmail è obbligatorio inserire esattamente il fase di configurazione.
proprio indirizzo di posta elettronica completo in Dopo aver effettuato il login, la webapp ci rein-
quest'ultimo campo, mentre nel precedente è possi- dirizza automaticamente alla pagina contenente
bile inserire qualsiasi nome ci aggrada, ad esempio lo stolico delle rilevazioni comprendente anche
Fishmograph può essere w1a buona scelta. informazioni sull'evenh1ale raggiungimento delle
Arrivati a questo punto possiamo caricare lo sketch condizioni di "shutoff" e di "collapse", mostrando-
all'inten10 del nostro Fishino 32 e collegandoci ne in caso positivo l'orario e la data dell'emissione
all'indirizzo IP, impostato nei parametri di connes- del segnale da parte del sensore D7S.
sione WiFi, vedremo apparire la webapp (il carica- Cliccando su D7S Readings è possibile visualizzare
mento iniziale della webapp potrebbe riclùedere le rilevazioni prelevate direttamente dal sensore,
qualche secondo, dovuto alla dimensione d ei file suddivise nelle cinque più recenti e nelle cinque di
che il browser deve scaricare prima di iniziare la intensità maggiore.
sua interpretazione). Per verificare se Fislunograph Email Alerts permette di gesti.i-e l'elenco dei desti-
funziona correttamente possiamo configw·are un natari delle notifiche e-mail. Il limite massimo di
destinatario all'interno della webapp e muovere il destinatari che possono essere inseliti è 10, questo
sensore D7S finché non rileva il "finto terremoto" limite garantisce di non sovraccaricare la memoria
da noi causato, se riceviamo una notifica nella no- del Fishino 32, rischiando eventuali comportamenti
stra casella email il sistema ftmziona correttamente. imprevedibili.
Per rendere migliore l'affidabilità del sensore, è Nella pagina Settings è possibile gestire il sensore
opportw1o che l'intero progetto sia rigidamente D7S inizializzandolo, ovvero acquisendo gli offset
ancorato al pavimento, oppure saldamente attacca- deU'accelerometro interno rispetto alla sua posizio-
to al muro attraverso un'asta metallica; da evitare ne, eseguendo un test di autodiagnostica oppure
l'inserzione tramite il pin-strip (perché l'ancoraggio cancellando i terremoti che ha memolizzato. Il tab
meccanico non è rigido abbastanza) e collegare la User consente di modificare la password di accesso
scheda mediante fili. alla webapp, mentre il tab Generai consente di eli-
minare lo storico delle rilevazioni visionabile nella
WEBAPP pagina Earthquakes. Nel caso in cui si verifichi un
La webapp (il cui codice è visibile nel Lis tato 2) è terremoto menh·e siamo connessi alla webapp, ve-
Listato 2 - La webàl(~1t l
Il t he use is not autenticated and we need to handle the body of the reque$t
) else (
FishinoClìen t c l ient = web . getCliènt() ;
/lgetting the body of the r e que s t
char body[ c lient . available(J +l] ;
int i = O;
while (client. available () && i < 300)
body[ i ++J = (cha r) client . read() ;
I
body[i) = O;
else (
//getting the password from the body
const char *password request[ " password"J;
return true;
>w+
ftshmograph
e lii*
dremo apparire delle notifiche nella paiie superiore nomissioni che posso compromettere il corretto
della pagina indicati l'evento che le ha generate. funzionamento del progetto.
La webapp è stata sviluppata utilizzando HTML, Per garantire al web server, nel nostro caso Fishino
CSS3 e AngularJS, un framework Javascript che 32, questa capacità, dobbiamo introdurre i concetti
permette di realizzare applicazioni single-page di session ID e web session.
asincrone, ovvero di variare il contenuto della pa- Un session ID non è altro che un codice identificati-
gina mostrata dal browser senza che l'utente debba vo univoco che il server genera e associa all'utente
attendere il refresh della stessa. Il caricamento del attualmente connesso e che permette al server di
nuovo contenuto avverrà "dietro le quinte" da par- ricostruire lo stato dell'utente osservando la web
te del browser e AngularJS si occuperà di sostituirlo session collegata a quello specifico ID. L'utente, o
a quello vecchio, popolandolo con i dati necessari, meglio il browser dell'utente, riceve questo codice
eventualmente scaricandoli dal web browser sem- da parte del web server sotto forma di cookie nella
pre asincronicamente. risposta della richiesta HTTP; il browser si occupe-
rà di conservarlo e di allegarlo ad ogni successiva
WEB SESSION CON FISHINO richiesta garantendo il funzionamento delle sessioni
Tutti i servizi on-line impongono la necessità di web.
riconoscere l'utente e mantenere lo stato delle sue Nel Listato 2 abbiamo riportato parte del firmware
azioni, cosa essenziale nel web dinamico, dove i di Fislunograph, concentrandoci sulle porzioni che
contenuti deUe pagine web sono costruiti dinami- gestiscono direttamente la sessione.
camente dal server rispettando le esigenze dello La funzione loginHandler è l'handler passato all'i-
specifico utente. stanza della classe FishinoWebServer (non mosh·ato
Possiamo pensare a tutti i siti che ci richiedono LU"\ in questo spezzone di codice) che gestisce le richie-
login e mosh·ano dei contenuti relativi alla nostra ste che arrivano all'endpoint /log in.
utenza, come i nostri profili social oppure il nostro La prima funzione incontrata è startSession, la
store online preferito. quale ilùzializza la sessione, verificando se nella
Non sarebbe molto gradevole ritrovarci addebitato richiesta è presente un cookie contenente l'identi-
sulla nostra carta di credito l'acquisto effettuato da ficativo di sessione dell'utente; se il cookie non è
un estraneo, solamente perché il web server non è presente l'identificativo viene generato.
stato capace di riconoscere l'utente connesso in quel Per la generazione ci siamo avvalsi del timestamp
momento. Anche Fishmograph necessita di ricono- prelevato dall'RTC integrato per garantire un iden-
scere l'utente connesso perché riclùede un processo tificativo sempre diverso; naturalmente è possibile
di login prima di accedere alla parte di controUo, generarlo in qualsiasi modo, l'importante è man-
proteggendo, di conseguenza, da possibili ma- tenere l'univocità. Solamente se la sessione è stata
IJ Fi•hmOOC•Ph
fishmograph
Slgn out
void setup() {
Il Fishino connection stuff
Il Init i alize serial and wait for port to open
(Continua)
void loop() {
Fishmograph readyl
Initializing ... ...... OK
Selftest ...... OK
Earthquake started!
Shutoff!
Earthquoke ended!
Earthquake startedl
Shutoffl
Earthquake ended!
mittente e gli indirizzi dei destinatari, indipenden- potenzialità e.gli eventuali casi di utilizzo a prote-
temente se essi siano CC o CCN (in inglese BCC). zione delle nostre apparecchiature elettroniche.
Il contenuto del messaggio, preceduto dagli hea- Una possibile evoluzione del progetto potrebbe es-
der, è inserito dopo aver invocato il metodo data, sere l'aggiunta di un relé utilizzato per scollegare
che indica al server l'inizio del messaggio. l'alimentazione nel caso in cui il sensore rilevi una
È interessante notare come il destinatario CCN condizione di pericolo e generi, di conseguenza, il
non venga inserito all'interno degli header conte- segnale di "shutoff" o di "collapse".
nuti nel messaggio, ma riceverà comunque il mes- Il progetto è stato anche l'occasione per esporre i
saggio perché incluso nei destinatali. Terminato fondamenti della gestione di una sessione web e
l'inserimento del contenuto del messaggio, attra- l'invio di e-mail da Fishino: tutti concetti che po-
verso il metodo finishData è possibile procedere trete trasferire a vostre applicazioni anche diverse
all'invio del messaggio di posta elettronica. Ogni da Fishmograph. •
comando utilizzato in questo esempio restituisce
un codice di stato che indica se l'operazione è
andata a buon fine oppure se ci sono stati errori per il MATERIALE
permettendoci di interrompere prematuramente
l'invio della e-mail.
La libreria mette a disposizione anche una classe I componenti necessari per realizzare questo . proget-
contenitore per compilare velocemente una e-mail, to sono disponibili presso Futura Elettronica. La bo-
senza doversi preoccupare di gestire manualmente ard Fishino32 a 32 BIT (cod. FISHIN032) è in vendita
tutti i comandi con i relativi codici di stato; all'in- a Euro 59,00 e la Breakout con sensore di terremoti
terno degli esempi contenuti nella libreria è possi- (cod. BREAKOUT019) è disponibile a Euro 48,00. I prez-
bile trovare uno sketch di esempio che ne mostra il zi si intendono IVA compresa.
funzionamento.
CONCLUSIONI
Fishmograph è un esempio di applicazione del
sensore di terremoti D7S capace di mostrarne le
36,oo
" •••• cod.
•
FISHINO UNO
-
Alimentazione:
da 7 a 12 Vdc (tramite plug)
•
:
/ FISHINOUNOBOX ...
:· € 4,90 \'&
~
};!!
€ € 49,90
- 5 Vdc (tramite porta USB) ..~
..·~
• Compatibile al 100% con - ..... ·· ~T
Arduino UNO ON\\
• Modulo WiFi
• Interfaccia per scheda MicroSD
• Modulo RTC con batteria di mantenimento
• Sezione di alimentazione a 3,3 V potenziata
• Compatibile con shleld e schede mìllefori
• Peso 25 g
• Dimensioni 76,5 x 53,5 x 14 mm
~~!.~.
~ ... •
~~./!
cod. •• •• ~
j/ FISHINOMEGABOX\ ~
111 : € 5190 \'&
..t_ ~ I
I~
.:fii
•. I ..... , ,
~ ..../ /
• Interfaccia per scheda MicroSD
FISHIN032 • Modulo RTC con batteria di
mantenimento
• Controller PIC32 bit ..... ·····:.aç,~~ • Stadio di alimentazione
• Alimentazione: switching (5 Vdc e 3,3 Vdc)
- 3,6 Vdc (tramite batteria esterna al litio) • Compatibile con shleld e schede mìllefori
- da 3,5 a 20 Vdc (tramite plug o sull'ingresso Vin) • Peso 37 g
- 5 Vdc (tramite porta USB) • Dimensioni 101,5 x 53,5 x 15 mm
• Circuito di ricarica per batteria al litio
• Compatibile con Arduino UNO
• Modulo WiFi
• Modulo RTC con batteria di mantenimento
• Clock 120 MHz, riducibile via software FISHINO PIRANHA
• Interfaccia per scheda microSD
• Codec audio stereo
• Peso 29 g
• Dimensioni 76,5 x 53,5 x 14 mm
cod. FISHIN032
€ 59,00
FISHINO GUPPY
• Alimentazione:
- 3,6 Vdc {tramite batteria esterna al litio)
- da 6,5 a 20 Vdc (tramite plug)
- 5 Vdc (tramite porta USB)
• Circuito di ricarica per batteria al litio
• Compatibile al 100% con Arduino NANO
cod. GUPPY • Modulo WiFi
€ 44,90
61mm
T
"aerogeneratore ad asse verticale", che si distingue
E perché il rotore ruota orizzontalmente ed ha l'asse
E
o in verticale. Generatori eolici di questo tipo sono
U'l
molto pratici perché si prestano all'utilizzo nei pic-
coli spazi e quindi all'installazione su balconi, ter-
razzi ecc. e di solito sono di piccola potenza, anche
se in qualche installazione possono essere impiegati
Fig. 1 sistemi di potenza più rilevante di quella che carat-
Il Motore/
Generatore
terizza gli aerogeneratori verticali per uso cittadino
120Vcc / 55W. o domestico e in generale per energy harvesting.
L'unità di conversione dall'energia meccanica del
195mm rotore azionato dal vento a quella elettrica, che è
l'obiettivo finale del nostro progetto, è un moto-
re elettrico in corrente continua a spazzole, dalla
potenza di 55 watt, alimentabile a 120 Vcc e caratte-
zionamento degli aerogeneratori, aree geografiche rizzato da una velocità di rotazione di 2.500 giri al
notoriamente ventose, tuttavia è possibile conside- minuto (Fig. 1).
rarla un problema superabile nelle piccole instaJJa- Resta inteso che, siccome il motore verrà utilizzato
zioni concepite come soluzioni di energy harvesting, per generare corrente, non bisognerà alimentarlo
ossia di recupero di un'energia altrimenti perduta. ma collegarlo con due fili per trarre da esso l'elettri-
In quest'ottica si collocano i piccoli aerogeneratori cità, che produrrà quando il suo albero verrà posto
posti ad esempio nelle campagne e utilizzati per in rotazione dall'energia del vento.
alimentare piccole pompe o altri utilizzatori che La nostra scelta è stata indirizzata verso questo
non è possibile allacciare alla rete di distribuzione motore per la bassissima resistenza che oppone
dell'elettricità ed anche quelli integrati nell'arredo alla rotazione dell'albero, tanto che è possibile farlo
urbano (situati ad esempio sopra i lampioni del- ruotare senza sforzo con le dita di una mano, otte-
le città) e negli edifici. Generatori di questo tipo nendo, anche in questo caso, una discreta tensione
funzionano da caricatori di una o più batterie, nelle di uscita.
quali si accumtùa l'energia in eccesso per il suo Le applicazioni per questo motore possono essere
utilizzo, ad esempio, la sera, allo scopo di accendere moltissime, dato che può funzionare anche come
lampioni sulla strada. una dinamo; in questo caso il semplice movimento
Il progetto che qui vi descriviamo nasce in tale con- di rotazione dell'albero motore permette di produr-
testo ed è stato concepito per produrre una piccola re energia elettrica, così come può generare movi-
quantità di elettricità con cui far funzionare disposi- mento meccanico (rotazione dell'albero motore)
tivi a basso assorbimento, magari anche grazie allo
storage (ossia l'immagazzinaggio) in una batteria
o gruppo di batterie per garantirci continuità di
alimentazione anche nei periodi in cui il vento non
soffia o ha scarsa intensità, ovvero per accumulare
di giorno l'elettricità con cui alimentare, la sera e la
notte, le luci a LED del giardino o di un patio.
A differenza di un impianto fotovoltaico, che per
ottenere il massimo rendimento necessita di molte
ore di luce (quindi rende meglio in primavera ed
estate), un generatore eolico può essere utilizzato
tutto l'anno, in inverno così come di notte, perché il 'IJSmm
vento non ha orari né stagioni.
I
IL PROGETTO f
L'aerogeneratore che vi proponiamo non è il clas- i
... ...
Fig. 2
..
I
L'IMPIANTO DI ACCUMULO
L'energia prodotta dall'aerogeneratore è limitata
da quella sviluppabile dal motore utilizzato come Fig. 6 · Schema del
dinamo, quindi può soddisfare le esigenze di uti- sistema eolico di accumulo
lizzatori che richiedano non più di una cinquantina dell'elettricità.
':~~~.·,1,/ 4
/ I, "''
e49,00
Cod. WH1170
PORTATA
SENSORE
50
METRI
Disponibili anche: ···· ··· ·· ··· ··· .-.· ·· ···· ·· ··· ·· ··· ··· ·· ····· ·· ··· ·· ··· ·· ···· ··· ··· ··· ·· ··· · ···· ··..... ·.... ··· ·. ··.......... .
Sveglia digitai~ con campanelli Sveglia radiocontrollata tramite Termometro e igrometro
meccanici e doppio allarme segnale DCF con data e ora
Display retroilluminato. Con ampio display LCD
Consente di impostare
I'-" differenti orari di allarme.
Display retroilluminato,
Visualizza la temperatura
interna, data e giorno
della settimana.
visualizza la temperatura
interna da -10 •e a +so ·e,
l'umidità 10% - 99% RH,
funzione snooze. Formato ora: 12124. la data e l'ora.
e 11, 80
Cod. WT705G
e 13, 00
Cod. TIP020
e5,oo
Cod. TERMOCLOCK
2 CANALI 12VDC
cod. EMY12RX2
0
1:i
16 ,
DO
\
i. € 13 ,00
: 1 CANALE 12VDC
4 CANALI 12VDC
cod. EMY12RX4
.: cod. EMY12RX1
6 € 13 ,00
- •
•
o.
.
·.................
TRASMETTITORE .. ,, ..
2 CANALI
cod. EMYTX2 € 12 ,00 4 CANALI
cod. EMYTX4 €
13 ,00
Ai ricevitori va abbinato esclusivamente il trasmettitore con lo stesso numero di canali.
V rt•R.A
'°'' H
ELETTRONICA®
FuturaGroupsrl
ViaAdige, 11•21013Gallarate(VA}
Tel. 0331P99775
I
PreZZllVAlnck.rso. I Caratterlslichetecnlche
e vendita on·llne su:
www. nut ,
ury~s
I a
h Qln
.,.., . /
1
/T
"'
guida (il controllo del superamento della linea di del settore e un'occasione di sviluppo economico.
margine della ca.rreggiata o della corsia, la verifica Si pensi solo che oggi il giro di denaro che ruota
di ostacoli laterali, l'Adaptive Cruise Contro!, il ri- attorno ai sistemi elettronici per l'automotive si
levatore di stanchezza, il sistema anticollisione) e, attest a su circa 30 miliardi di dollari: questa cifra
negli anni a venire, vetture capaci di muoversi in crescerebbe enormemente con i sistemi di sicurez-
completa autonomia seguendo il percorso dettato za attiva e guida autonoma.
dalla cartografia GPS. Il rapidissimo sviluppo della tecnologia dei semi-
conduttori consentirà di accelerare l'introduzione
PERCHÉ LA GUIDA ASSISTITA di queste nuove funzionalità. Tra i produttori di
Il controllo semiautomatico e autonomo dei vei- semiconduttori, Texas lnsh·uments (TI) è all'avan-
coli è prezioso perché offre vantaggi in termini d i guardia della tecnologia automotive e nell'elabo-
risparmio di carburante, mobilità e convenienza, razione della catena di segnali analogici e nelle
tempi di viaggio e utilizzo efficiente delle sh·ade, soluzioni embedded; anche Intel, con l'acquisizio-
ma anche sicurezza e riduzione dei costi sociali ed ne della Mobileye, ha stretto recentemente forti
economici che gli incidenti implicano. Basti pensa- accordi con BMW e FCA per sviluppare tecnologie
re ai numeri da capogiro che descrivono il feno- au tomotive.
meno: in U.S.A. nel 2016 ci sono stati circa 40.000
morti per incidenti stradali; circa 1,25 milioni nel TECNOLOGIA AVANZATA, SICUREZZA AVANZATA
mondo intero. La sicurezza attiva dipende, tra l'altro, dai sistemi
Chi sostiene l'utilità della guida autonoma av- avanzati di assistenza alla guida, che rientrano nel
valora la propria tesi con il fatto che oltre il 90% concetto di ADAS (Advanced Drive Assistance
degli incidenti è causato da errore umano e che i Systems) e che si concretizzano in una serie di tec-
sistemi elettronici sarebbero in grado di fare molto nologie basate sull'elettronica che sono progettate
meglio: certo siamo lontani dalla precisione asso- per aiutare a garantire un funzionamento sicuro
luta, quindi va lasciata la possibilità di intervento del veicolo. Le innovazioni nell' ADAS aiutano a
manuale (quindi chi già pensa che si possa andare prevenire gli in~identi mantenendo la distanza di
in auto senza patente si dovrà disilludere...) da sicurezza tra le automobili in modo affidabile, av-
parte del conducente. visando i conducenti delle condizioni di pericolo,
La guida autonoma rappresenta non solo una rile- proteggendo gli occupanti e le persone in strada
vante opportunità di ridurre il numero dei sinistri da cattive condotte alla guida e svolgendo altre
e fluidificare il traffico (si sa che molti degli ingor- operazioni legate alla sicurezza. L' ADAS fornisce
ghi cittadini sono dovuti al fatto che automobilisti anche funzioni che serviranno in futuro come ele-
indisciplinati impegnano l'incrocio anche quando menti importanti dell'operazione autonomamente
il semaforo è giallo e non possono sgomberarlo controllata da computer. Se le autovetture promet-
all'arrivo del rosso, quindi poi chi incrocia fa lo tono di liberare i conducenti in modo che possa-
stesso...) ma anche un piatto ricco per le imprese no utilizzare il loro tempo in modo più efficace
durante i viaggi e viaggi più lunghi, le funziona-
lità ADAS contribuiranno a ridurre al minimo il
rischio d i collisione, evitare lesioni e salvare vite.
Le case au tomobilistiche stanno facendo a gara
per introdurre sempre più capacità di assistenza ai
conducenti nelle nuove auto, aggiungendo nuove
funzionalità di anno in anno.
Già oggi l'automobile affida all'elettronica ciò che
un tempo era appannaggio della meccanica e si ar-
ricchisce di sistemi che prima erano irrealizzabili;
vari sottosistemi comunicano, tramite bus dedica-
ti, nelle moderne automobili. La loro estensione
ha portato all'integrazione nell'ADAS, dove un
"cervello" comtmica con i diversi sistemi dell'auto
(ASR/ESP, ABS, ECU, Airbag, SRS ecc.) e fornise
un'elaborazione ad alte prestazioni ed eterogenea
per la visione artificiale, oltre al processo decisio-
nale necessari per i sistemi ADAS di nuova gene- collisioni modulando la frenata e la trazione (ad
razione e i sistemi di azionamento automatizzati. esempio sistemi come il TCS=Traction Contro!
L' ADAS vede in campo OEM (come Bosch e System) onde evitare il pattinamento delle ruote o
Continental Automotive) oltre che produttori di lo sbandamento del veicolo (ESPI ASR). A volte il
semicondutto1i come Intel e Texas Instruments; sistema controlla attivamente una singola caratte-
quest'ultima conta soluzioni a cui accenneremo ristica dell'automobile, come ad esempio l'adatta-
nelle prossime pagine. mento automatico dei fari anteriori alle curve (per
esempio su Opel Astra J e Citroen CS) ed in futuro
L'AUTOMAZIONE EVOLVE LA S ICUREZZA ad altre condizioni di cambiamento.
DELL'AUTO Il Livello 3 prevede la guida semi-autonoma, vale
La SAE (Society of Automotive Engineers, www. a dire che l'automobile assume la guida in deter-
sae.org) che è l'ente americano che definisce gli minate circostanze, ma il conducente deve essere
standard automotive, h·a cui i protocolli di comu- pronto per riprendere il controllo. Prendiamo ad
nicazione delle prese di diagnosi OBD e la classifi- esempio la guida in autostrada: una funzione di
cazione degli oli lubrificanti (la nota SW40, 10W40 guida semi-autonoma per la guida autostradale è
ecc.) nel documento di riferimento J3016 tratta il controllo di velocità adattivo (ACC, ossia Adap-
tassonomia e definizioni per i termini relativi al tive Cruise Contro!) basato su radar (può essere a
sistema di guida automatizzata dei veicoli. Tale laser o a ultrasuoni) e telecamera, aiuta a mantene-
documento esprime il sistema di classificazione re la distanza di sicurezza dal veicolo che precede,
per fornire una terminologia comune per la guida controllando l'acceleratore e i freni. Se sussiste il
automatizzata. La Tabella 1 elenca i livelli di rischio d i impatto, il sistema attiva la f:renata di
automazione di guida di SAE International per emergenza automaticamente. L' ACC può interagi-
i veicoli sh·adali; da essa vediamo che il livello re con la gestione motore per mantenere la velo-
Onon è un'automazione ed è già considerato cità, ossia accelerare se il veicolo rallenta rispetto
cosa del passato. Nei Livello 1 e Livello 2, questi alla velocità impostata Cruise Contro!, pur subor-
sistemi possono prendere brevemente il controllo dinando tale automatismo al mantenimento della
attivo dell'automobile per assistere nel parcheggio, d istanza di sicurezza. Un altro sistema che già
impedire l' urto di oggetti non visibili ed evitare vediamo (anche sui camion Volvo, per esempio) è
..
delle Immagini del dati di decisione
f1\ o
· G:;e'\
®
• Creazione ... • Localizzazione .. • Strategie di guida Controllo
nuvola di punti
• Fusione
• Creazione modello
ambientale
• Controllo
movimento
ECU
..
intermedia
a livello grezzo
.. • Pianificazione
movimento
.. • Gestione
traiettoria
• Pianificazione
della strada
l'assistenza per la corsia, che utilizza una teleca- posto di guida, un po' come avviene nei convogli
mera anteriore o posteriore per mantenere la vet- delle meh·opolitane senza macchinista, sebbene
tura centrata nella sua corsia e ad una distanza si- muoversi sulle strade sia un tantino più comples-
cura dagli altri veicoli (il sistema Volvo si chiama so che viaggiare guidati da binari.
LKS =Lane Keeping Support, Controllo corsia di Ognuna di queste fasi si basa su quelle che pre-
marcia). Un altro sistema è l'LCS (Lane Changing cedono, fondendo i sistemi di sicurezza esistenti
Support, Aiuto al cambio di corsia) che utilizza con nuovi, più complessi. Oggi, la maggior parte
un radar per controllare l'angolo cieco sul lato del delle nuove automobili esce di fabbrica con alctme
passeggero e verificare la presenza di veicoli bassi, funzioni di sicurezza ADAS passive ed altre attive,
così da non investirli nel cambio di corsia. e la disponibilità sta aumentando rapidamente;
Il Park Assist assume il pieno controllo durante il secondo le previsioni della società di ricerche di
parcheggio in parcheggi e garage affollati e può mercato IHS Market, il mercato mondiale ADAS
rilevare quando il conducente ha difficoltà nell'e- supererà 302 milioni di unità ogni anno nel 2022
seguire la manovra, aiutandolo. Un esempio è grazie in parte alle nuove tecnologie come i siste-
l'IPA (Intelligent Parking Assist) della Toyota, che mi di monitoraggio del conducente e le telecamere
una volta inserita la retromarcia inquadra con la a specchio laterale e posteriore. Le caratteristiche
telecamera posteriore lo spazio del parcheggio e per un funzionamento avanzato semi-autonomo
assiste nella manovra: tutto ciò che il conducente oggi stanno cominciando ad apparire nei veicoli di
deve fare è agil:e su acceleratore e freno, perché lo fascia alta, mentre le auto completamente autono-
sterzo viene azionato dal sistema. me, ancora oggi sperimentali, dovrebbero seguire
O DAS (Driver Alert Support, Allerta al condu- nel periodo 2020-2025.
cente) è un sistema intelligente che tiene traccia Come con quasi tutte le innovazioni, l' ADAS
del tuo comportamento di guida. Se si discosta verrà introdotto prima in veicoli di fascia alta, poi
dal consueto e indica stanchezza, avvisa con un approderà alle auto di fascia media e alle utilitarie,
segnale e un messaggio sul display che consiglia quando la tecnologia corrispondente sarà diventa-
di fare una pausa. Andiamo ora a vedere i livelli ta -grazie alle economie di scala- monetariamente
superiori ADAS, che contemplano veicoli che si abbordabile. Per esempio le telecamere d i retro-
spostano in modo completamente autonomo: si marcia, oggi disponibili sulle auto, sono nate con i
tratta dei Livello 4 e Livello 5; qui il conducente camion, per garantire manovre sicure, ma oggi le
è superfluo, ma è utile che resti come controllore troviamo su auto di ogni fascia.
per escludere il controllo e passare alla modalità
"umana". È anche verosimile, in futuro, arrivare al COME FUNZIONA L'ADAS
livello più avanzato, con automobili che si muo- Più elevati devono essere i livelli di funzionalità,
vono senza conducente e che nemmeno avranno il di automazione, di assistenza e i requisiti di affi-
<labilità, più diventano necessari sistemi di elabo- immagini. L'elaborazione ad alto livello determi-
razione multi-modali con input da sensori, tra cui na il tipo di elemento con cui si interagisce sulla
ultrasuoni, RADAR, LIDAR e telecamere (a colori, strada, ossia altri veicoli, persone, animali, segna-
monocromatiche, stereo e a infrarossi). li o luci semaforiche, oltre alla velocità con cui
Sono inoltre necessarie comunicaziohi via sa- l'oggetto si muove. Un microcontrollore (MCU)
tellite, così come le comunicazioni radio con le decide se procedere, fermarsi o attendere fino a
automobili vicine (V2V= Veichle to Veichle, ossia quando (ad esempio) il pedone non si muove, la
veicolo-a-veicolo) e le installazioni terrestri (veico- luce non cambia o si allontana una vettura vicina.
lo-infrastruttura); servono per posizionamento, lo- Contemporaneamente, i flussi di dati da altri sen-
calizzazione, acquisizione delle condizioni stradali sori di ingresso come i RADAR vengono esaminati
ed altre informazioni. per ottenere informazioni nel caso si manifestino
La Fig. 1 illustra l'architettura del sistema dal Li- condizioni preponderanti, come la cattiva visibili-
vello 3 al Livello 5 vista da una prospettiva funzio- tà dovuta alla nebbia.
nale. È chiaro che per consentire il funzionamento Siccome qualsiasi sensore può affrontare condi-
a questi sistemi è necessario svolgere un'ampia zioni operative impegnative, la fusione di input
vaTietà di compiti in tempo reale. provenienti da diversi flussi di dati aumenta note-
Dovendo lavorare in tempo reale, l' ADAS e i si- volmente la precisione e l'affidabilità del sistema.
stemi automatizzati dovranno convertire i segnali Da un canto la necessità di supportare sempre più
in input forniti dai sensori in idonei formati di sistemi multirnodali con sensori multipli per siste-
dati ed estrarre tutte le informazioni necessaxie, ma sta spingendo i costruttori di semiconduttori a
in tempo reale. Questi sistemi devono fondere le superare i limiti del "silicio" e dall'altro i produt-
informazioni provenienti da diverse fonti, deci- tori di automobili affrontano la sfida di integrare
dere l'azione di controllo corretta e commùcare in nuovi sensori a bordo del veicolo e le unità di
modo appropriato al dxiver o all'uscita di con- elaborazione corrispondenti senza compromettere
trollo automatico. Oltre a richiedere un'elevata il design del veicolo e il confort degli occupanti.
fedeltà agli stessi ingressi, i sistemi si baseranno Un'altra.sfida è mantenere bassi i costi di tali siste-
su computazioni ad alte prestazioni che possono mi, per portare l' ADAS su tutti gli autoveicoli.
eseguire contemporaneamente una varietà di algo- L'architettura SoC, proposta per esempio da Texas
ritmi. Ad esempio, mentre l'elaborazione a basso Instruments, permette di implementare sistemi
livello forniscè un flusso costante di immagini altamente efficienti capaci di integrare sensori
video pre-filtrate o pre-condizionate di una strada, con varie modalità, ottimizzando consumo, form
l'elaborazione a livello intermedio identifica gli factor e costi. Uno dei punti chiave che consen-
oggetti importanti nelle competenti sezioni delle tono all'architettura TI di dare di più rispetto ai
concorrenti è l'approccio ad architettura di sistema - per i dati del sensore RADAR prevede ope-
eterogenea. razioni di correlazione per rilevare oggetti e
calcolare vettori di velocità;
COS'È L'ARCHITETIURA ETEREGONEA? • elaborazione di livello medio:
Per comprendere il concetto di architettura - identifica gli oggetti di interesse all'interno
eterogenea esaminiamo brevemente la catena di delle immagini per l'utilizzo nell'elaborazio-
elaborazione del segnale negli autoveicoli dotati ne ad alto livello, allo scopo di riconoscere gli
di ADAS. È possibile suddividere una catena di oggetti e una MCU di sicurezza decide cosa
elaborazione del segnale ad alto livello in questi deve fare il sistema in tal caso;
segmenti: - nei livelli più alti della guida assistita o della
• elaborazione a basso livello: guida automatizzata, l'elaborazione a livello
- concentrata sull'elaborazione di dati grezzi medio sviluppa una comprensione completa
da sensori quali una fotocamera, RADAR, di una determinata scena basata su una o più
LIDAR, ecc.; modalità del sensore;
- per w1a telecamera comporta l'elaborazione • elaborazione ad alto livello:
dei dati dei pixel per ricostruire immagini - spazia dal semplice utilizzo dei risultati
utili per ulteriori elaborazioni; dell'elaborazione a livello medio per eseguire
High-level processing
• Object detectlon and tracking _;_,, Hardware for fully connected end convolutlon layers
• Classifioalfon
• Adaboost, SVM General-purpose processing for sensor fusion
• KNN,ANN '----1./ ARM9, DSP
Mid-level processing
• Optlcal flow
• Stitching 1- • ~ Specialized hardware units for key sensors
• Integrai lmage ," ----V" Distortion correction
• Feature extractlon (HOG, SURF, SIFT. ORB, ...) ISP
• Oisparity =---v Other key functionalities
• Deteclion of corners
\., • Detection of edges ,)
Low-level processing EVE and DSP vector coprocessor
• lmage slgnaJ processlng =---v High bandwidth
• Filtering Pixel operations
• Gradients < - y SIMO parallellsm
• Morphological operations Energy efficiency
,_ -- - .- . - - ~
FACILITARE SVILUPPO
E SCALABILITÀ DEL SOFTWARE
Mentre un'architettura eterogenea è super-effi-
ciente nella mappatura della catena del segnale e
quindi consente lo sviluppo di sistemi a costi e po-
tenze efficienti, la programmazione di diversi tipi
di core di elaborazione è a volte un compito più
oneroso, soprattutto quando è accompagnato dalle
pressanti esigenze di sviluppo di nuovi sistemi in • supporto sistema operativo real-time Texas
forte concorrenza di mercato. In tale scenario il Instruments {TI-RTOS) e Linux OS;
software utilizzato dovrà essere astratto, ottimiz- • emulazione PC (Windows) emulation per proto-
zato e riutilizzato nei sistemi successivi, poiché le tipazione di applicazione e kernel;
funzionalità di sicurezza a ttive si evolvono. • generazione del codice automatizzato per appli-
L'architettura TI SoC integra soluzioni come cazione e kernel-wrapper;
l'inter-processing core (IPC) e la coerenza della • conformità alla specifica OpenVX 1.1.
cache per consentire una struttura efficiente del
software ADAS. Lo scopo del framework software TI E LO SVILUPPO
è consentire il massimo di calcoli aperti, in modo DEL DEEP LEARNING
da alleviare gli sviluppatori dalla complessità di Oltre a semplificare lo sviluppo del software
un'architettura eterogenea, fornendo tutti i van- complessivo utilizzando Open Framework come
taggi correlati. OpenVX, TI sta anche rivoluzionando lo sviluppo
Ad esempio, oltre ai propri framework software, del deep learning per i propri SoC, consentendo
TI è un contributor fondamentale dello standard i flussi d i sviluppo semplificati subito utilizzabili.
Khronos OpenVX per l'accelerazione della visione Il flusso deep learning di TI consente l'apprendi-
artificiale. OpenVX affronta l'astrazione di un'ar- mento e lo sviluppo in ambiente PC o Cloud in
chitethtra eterogenea, pur avendo una flessibilità cui i potenziali e i vincoli di costo possono essere
minima e completa dell'utilizzatore. flessibili per massimizzare le prestazioni e ridur-
I vantaggi di OpenVX sono evidenziati di segui- re il t empo di sviluppo, ma consente una facile
to e la Fig. 4 mostra una visione di alto livello implementazione a bassi consumi sui dispositivi
dell'implementazione di OpenVX su TI SoCs. Il TDA di produzione automobilistica. La tecnolo-
risultato è il pieno diritto di prestazioni su TI SoC gia TDA2xADAS SoC dì TI ha un acceleratore di
tramite l'interfaccia OpenVX portatile: visione programmabile contenente uno o più EVE
• elaborazione visiva portatile e potente; specializzati per gestire grandi quantità di dati di
• calcolo accelerato, distribuito e parallelo su DSP, sistema video, ISP per la pre-elaborazione della
EVEs, HWA e processori ARM. fotocamera, un DSP per elaborazioni di segnali
• scalabilità da TI TDA2x, TDA2Ex, TDA3x e fa- più generali e opzioni RISC che includono diversi
miglia di SoC TDA-Next driver-assistance SoC; microprocessori ARM.
D
Library (TI DL)
translation Translated networlc
Trained tool distribulion +
network fromTI parameters
model
[ PC compute J
Open VX, TI SDK
••••
Optlmal msoun::e partìllonlng
6 C66xOSP
runnlng
TellSOfl 1 11 Caffe2
TI DL Executlon Llbrary
PC/GPU/Cloud compute TI Optlmlzed Network
Layers
Training performance wlth high power
TDA2x SoC compute
Full network performance at a fractfon ot the power
Train on PC/GPU
Il portafoglio SoC di TI include MCU, DSP mul- requisiti. Il ruolo dell'azienda nella fornitura di
ticore e processori di visualizzazione eterogenei. tecnologia attiva di sicurezza si basa su un'espe-
Nello sviluppo dell' ADAS e delle funzioni di rienza di decenni nel settore degli autocarri, che
guida automatizzate, i produttori di elettronica risale allo sviluppo dei primi freni antibloccaggio.
automotive cercano -in un fornitore di semicon- Inoltre TI offre agli OEM del settore automotive la
duttori- la tecnologia e la forza logistica; Texas conformità con i gli standard di sicurezza auto-
Intruments è diventata fornitore di semicondut- mobilistici come l'Intemational Organization for
tori per i sistemi di sicurezza perché soddisfa tali Standardization (150)/Technical Specification (TS)
Hardware Acceleration:
High Bandwidth Pixel
Operations
Configurable HW
Fig. 5 - Architettura eterogenea del SoC TDA2x. Acceleration
€ 119,00
Cod. TRACKIM0 1
ASCUOLA
di Raspberry Pi
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • di MARCO MAGAGNIN
rima di utilizzare la scheda FT1369, presentata ovvero senza monitor, tastiera e mouse in quanto è
P sullo scorso numero, è necessario predisporre
Raspberry Pi, con il sistema operativo Raspbian ag-
abbastanza probabile che si riesca a raggiungere Ra-
spberry Pi in remoto senza la necessità di conoscere
giornato, sul quale andremo ad installare i pacchetti l'indirizzo IP, in seguito vedremo come.
aggiuntivi necessari al funzionamento della scheda Potete scaricare l'immagine del sistema opera-
e delle sue espansioni. La configurazione consigliata tivo dalla sezione "Downloads" del sito ufficia-
prevede l'utilizzo di un microcomputer Raspber- le della Fondazione Raspberry Pi all'indirizzo
ry Pi 38 o 38+ configurato con un monitor HDMI, llttps://unuw.raspberrypi.org/downloads. Una volta
tastiera, mouse, alimentatore e collegamento alla scaricata l'immagine e scompattata in una cartella
rete locale con cavo Ethemet. In alternativa potete a piacere del vostro PC, è necessario trasferirla su
utilizzare Raspberry Pi in configurazione "headless", una micro SD Card per poter essere utilizzata con
f-ac11a·= ~ ~ ll11IBm
01 GND(VSS) GND Pl-06
02 +5V +5V Pl-02 posta da due freccette affiancate, una rivolta verso
03 Contrasto GND Pl-06 l'alto e l'altra verso il basso. Vi apparirà l'indirizzo
04 RS GPI022 Pl-15 IP, che procurerete di annotarvi da qualche par-
05 RW GND Pl-06 te. A questo punto ci colleghiamo a Raspberry Pi
06 E GPI023 P1-16 u til.izzando il dient di accesso remoto "Putty" che
07 Data O ormai dovrebbe essere anch'esso familiare ai lettori
08 Data 1 della rivista . Aperto Putty inserite l'indiri2zo IP
09 Data 2 che avete annotato e cliccate sul pulsante "Open".
10 Data3
In caso abbiate scelto la configurazione "headless"
11 Data 4 GPI025 Pl-22
provate a collegarvi utilizzando il nome "host" al
12 Data 5 GPI012 Pl-32
posto dell'indirizzo IP. Il nome host predefinito per
13 Data6 GPI016 Pl-36
14 Data 7 GPI020 Pl-38
Raspian è "raspberrypi" (senza apici). Se tutto fun-
15 +5V via 560ohm
ziona si apre la "finestra di terminale", che chiede
16 GND P1-06 di inserire utente e password per eseguire l'accesso
alla shell di terminale di Raspbian. Se operate con
monitor, tastiera e mouse, aprite la finesh·a di termi-
Raspberry Pi. Abbiamo descritto questa operazione nale direttamente dal desktop. Una volta ottenuto
più volte sulla rivista e nel libro "Enh·a nel mondo l'accesso, la prima operazione da eseguiTe è l'ag-
di Raspberry Pi 3". Per l'utilizzo con il vostro PC giornamento del sistema operativo, che si ottiene
può essere necessario dotarsi di un adattatore da digitando i classici comandi:
Micro SD ad SD normale, nel caso sia presente l'al-
loggiamento per le SD Card, oppure di un SD Card sudo apt-get update
reader esterno da collegare ad una presa USB libera. sudo apt-get dist-upgrade
Sempre a proposito di SD Card vi consigliamo un
modello con almeno 16 Gb dj capacità e di classe 10. e, per aggiornare anche il kemel
Una volta trasferito il sistema operativo Raspbian su
Micro SD Card, non "smontatela" ancora dal vostro sudo rpi - update
PC. Nella configurazione iniziale il sistema opera-
tivo Raspbian impedisce il collegamento da remoto Ora che il nostro Raspberry Pi è nella sua forma mi-
utilizzando SSH. Per lavorare con Raspberry Pi in gliore possiamo ini2iare a sperimentarne l'utili2zo.
collegamento remoto via SSH (Secure SHell).
È però possibile m odificare Ja configurazione MODULO LCD
agendo direttamente sul contenuto della Micro SD Tra i modub a disposizione proponiamo di utiliz-
Card. Una volta terminata la scrittura della Micro zare per primo il modulo LCD 16x2, w1 modulo a
SD Card, una delle due partizioni che compongono cristalli liqwdi che permette di visualizzare messag-
il file system di Raspbian, è formattata come FAT32 gi su due righe, ciascuna di 16 caratteri. La scelta è
e quindi è visibile anche da un PC con sistema ope- caduta su questo modulo in quanto poco costoso
rativo Windows. Aprite l'unità che corrisponde alla e, tutto sommato, abbastanza semplice da interfac-
Micro SD Card e nella ca1tella che vi appare create ciare a Raspberry Pi. Il modulo è visibile in Fig. 1 e
un file nuovo, anche sen2a contenuto, e salvatelo utilizza il controllore LCD Hitachi HD44780. Quindi
con nome "ssh" (senza apici e sema estensione). le informazioni che vi forniamo sono vabde presso-
Con questa operazione, nel corso del primo "boot", ché per tutti i moduli basati stùlo stesso controllore.
Raspbian si auto configura in modo da permettere Quello che vi proponiamo presenta caratteri bianchi
l'accesso remoto via SSH già dalla prima accensio- su un fondo retroilluminato blu.
ne. Ora smontate la Micro SD Card dal vostro PC Dal punto di vista dell'interfaccia hardware iJ modu-
ed inseritela nell'apposito alloggiamento presente lo LCD presenta un connettore con 16 pin, che sono
su Raspberry Pi. Controllate tutti i collegamenti e collegati ai pin del GPIO ru Raspberry Pi, secondo le
collegate l'a)jmentatore alla rete elethica, Durante corrisponde02e indicate nella T abella 1.
il primo avviamento la partizione di "root" viene Normalmente il display LCD richiede otto linee in
automaticamente espansa fino ad occupare tutto lo parallelo per la ricezione dei dati dal microcontrol-
spazio disponibile sulla Micro SD Card. Se avete la lore o da miO"ocomputer. È però possibile, come
coniigurazione con monitor e mouse avvicinate la nel n ostro caso, impostare il display in modalità "4
"freccia" del mouse all'icona in alto a destra com- bit" ed inviare ciascun carattere in due "frammenti"
class HD4080 :
selE . clear ()
def clear(selfl :
•"" Blank I Reset LCD •NN
sleep(0 . 001)
bits=b1n(bits) (2 : ) .zfill(8J
for i in ran9e(4,8):
i f bit.sii -- "l" :
GPIO . output(self . pins_db( : :-1] (i-4) , True)
(Contin 11a)
def destroy(self) :
self . clear ()
GPIO . cleanup (self . pin_e)
GPIO . cleanup (self .pin_rs)
GPIO . cleanup (self . pins_db )
def loop() :
global led
led • LCD()
led • HD44780 ()
sleep(2)
led. elear ()
sleep(2)
led . message(" TEST LCD \n WATT IP")
sleep(S)
giro • 1
while (giro •• 1) :
led. clear ()
cmd • ~hostname -I I cut -d\ ' \' -fl"
IP subprocess.check_output(cmd, shell • True)
lcd . message("IP ADDRESS : \n" + str(!Pll
sleep(2)
sleep(30 )
destroy ( l
devono essere eseguite in continuazione, da quelle Per questo esempio abbiamo utilizzato la libreria
che devono essere "risvegliate" unicamente all'acca- pigpio, inserita negli ultimi rilasci del sistema opera-
dere di quaJche evento, di solito un pin che cambia tivo Raspbian.
di stato. Anche in questo caso è assolutamente da I vantaggi principali de11a libreria pigpio sono:
evitare l'inserimento del controllo della variazione • Non richiedere i privilegi di root o sudo da parte
di stato di uno o più pin di ingresso all'interno del dei programmi utente per accedere al GPIO di
ciclo principale del programma, pena il sovraccarico Raspberry Pi;
della CPU e il degrado generale delle prestazioni del • La gestione del GPIO mediante funzionalità
sistema. veicolate via socket TCP /IP. In questo modo è
Prendiamo l'esempio del programma del Listato 2 possibile gestire il GPIO di Raspberry Pi in moda-
che permette di associare alla pressione di ciascun lità multi processing ed anche remotizzame la ge-
pulsante l'accensione di uno specifico LED. stione sulla rete TCP /IP. Per esempio uno o più
python _Test_Buzzer . py
import time
import pigpio
Px = ( P7 + P6 + PS + P4 + P3 + P2 + Pl + PO)
print Px
prìnt Phex
pi . i2c_write_byte(h, int(Px, 2)) Il send byt:e
t:ime . sleep(l)
princ: Pdec
print bin(Pdec)
prìnt Ptab
RO = Ptab[7)
Rl = Pcab[6]
R2 = Ptab [5]
R3 = Ptab [4]
R4 • Ptab[3]
RS • Ptab[2]
R6 • Ptab[l]
R7 = Ptab[O]
print RO
print Rl
print R2
princ. R3
princ. R4
print RS
print R6
princ. R7
modulo utilizza il bus I2C per la comunicazione giuntivi. La selezione degli indirizzi avviene
con Raspberry Pi. Infatti, lo scopo della scelta di posizionando opportunamente i ponticelli AO, Al
questo modulo è di sperimentare come comunica- e A2. Gh indirizzi selezionabili vanno dal valore
re sul BUS I2C. Come è noto sul BUS I2C possono 32 al 37 decimali (in esadecimale dal 20 al 27), in
essere collegati diversi dispositivi, purché cia- quanto il registro di indirizzamento prevede 7
scuno riconoscibile con un indirizzo univoco. Per bit di indirizzo con i primi quattro impostati in
esempio, assegnando indirizzi diversi, è possibiJe modo predefinito aJ valore binario "Ox0100" e
indirizzare fino a otto diversi moduli PCF8574, gli ulteriori tre bit sono impostati con i ponticelli
ottenendo così 64 canali di ingesso/ uscita ag- AO, Al e A2. I connettori che "portano" il bus I2C
- --
SIMBOLO OPERAZIONE DESCRIZIONE
Costante stringa Questo blocco crea una costante di tipo
stringa. È possibile digitare il contenuto
della stringa direttamente dentro il box tra
le virgolette.
•19.1.111: Unione stringhe Tramite questo blocco è possibile unire
due o più stringhe.
400,,!&t
1· .t!.jii§i: I CI
1 < •
+ig.1.111: Lungheua stringhe Questo blocco restituisce la lunghezza
di una stringa in numero di caratteri. Un
alt ro blocco simìle denominato "is empty•
verifica se una determinata stringa è
4!11,,1! Confronto tra stringhe
vuota.
Questo blocco permette dl eseguire li
replacement
Tabella 1 - Operazioni più comuni sulle stringhe con Al.
OPERAZIONE DESCRIZIONE
is in list? thing
list Questi blocchi consentono di creare una
Creazione Uste lista vuota o una lista con una serie di
elementi.
length of list list
Questo blocco consente di aggiungere
~is list empiy? ilist Aggiunta di elementi In
nuovi elementi alla lista (è possibile
aggiungere etemenU cliccando sull'icona
coda ad una lista
a forma di Ingranaggio). I nuovi elementi
saranno aggiunti In coda alla lista.
pick .a random item list
inselt kst item hst
index
.7°lnde1dn11ist thln9 item Tramite questi blocchi è possibile inserire
I nsertmento e rimozione
e rimuovere elementi da una lista tramite
fist di elementi da una lista
il loro indice.
1
select list item list
index
Tramite questo blocco è possibile sosti·
Sostituzione di un ele-
tuire un elemento In una lista utilizzando
mento di una lista
1ri~Q*rtri~ti1te1Jì·~1lsi~.. l'indice per Individuarlo.
""'ot..~~ - , ..
- index
item Individuazione di un
Questi blocchi consentono di verificare se
un dato elemento è presente in una lista
elemento in lista
oppure se una Usta è ·vuota.
-- -- -
r~place. list item list
Indice di un elemento Questo blocco consente di ottenere !'indi·
index in lista ce di un dato elemento tn una lista.
replacement
Tabella 2 - Principali blocclti di gestione liste in AI.
Esistono vari altri blocchi che consentono di esegui- lore di ritorno e senza valore di ritorno, come illu-
re ulteriori operazioni sulle liste, ma in questa sede strato in Fig. 3. In entrambi i casi è sempre possibile,
non ce ne occuperemo; lasciamo a voi l'approfondi- se necessario, passare degli argomenti alla procedu-
mento cti questo argomento. ra; questo può essere fatto semplicemente premen-
do sul pulsante a forma di ingranaggio presente su
Le procedure in App Inventor uno dei blocchi procedure visto in precedenza ed
Come la maggior parte dei linguaggi di program- effettuando il drag&drop dei blocchi input; l'opera-
mazione, anche in AI è possibile creare delle zione è schematizzata nella Fig. 4. Invece nella Fig.
sub-routine, ossia delle funzioni che prendono 5 è riportata una procedura che ha due argomenti:
in ingresso un set di parametri, eseguono una xey.
determinata elaborazione ed infine possono, even- Le procedure devono avere nomi univoci all'inter-
tualmente, ritornare un determinato valore come no di ogni Screen e una volta definite comparirà
risultato dell'elaborazione stessa. Una volta definita, tra i blocchi "Procedures" l'apposito blocco per la
la funzione (o sub-routine) ha la caratteristica di relativa invocazione (Cali Procedure), come illu-
poter essere richiamata in qualsiasi altra sezione strato in Fig. 6; tale blocco può essere utilizzato per
della nostra applicazione, permettendo di realizzare invocare una procedura da un punto qualsiasi della
alcuni principi base della programmazione, come la nostra app.
modularità e il riutilizzo del codice.
In App Inventor queste sub-routine prendono il Es~mpio pratico di procedure
nome di procedure e sono rappresentate con bloc- Vedi~mo adesso come creare una semplice proce-
chi di colore violetto. dura fhe esegua la moltiplicazione tra due valori,
AI definisce due tipi principali cti procedure, con va- passati come argomenti alla procedura stessa. Per
Sei eet
zw
Fig. 7 - Procedura con ritomo ed argomenti x e y. Fig. 9 - Procedura completa.
>-
z
- La famiglia Drawing and An.imation
Passiamo adesso ali'analisi della famiglia di com-
ponenti Drawing and Animation; questa famiglia
comprende elementi, come sprite e canvas, che per-
mettono di realizzare animazioni o anche semplici
giochi. 1n Fig. 11 è riportato uno screenshot della
famiglia Drawing and Animation.Passiamo, come
di consueto, all'analisi dei vari componenti, specifi-
cando nel dettaglio anche eventi, metodi e proprietà.
Fig. 8 - Inserimento del blocco moltiplicazione e dei blocchi Ball
get degli argomenti della procedure.
Una semplice sprite di forma rotonda, che può es-
sere posizionata su di un Canvas, dove può reagire
prima cosa trasciniamo all'interno del workspace a tocchi, swipe e drag, interagire con altre sprites
un blocco di tipo procedure con valore di ritorno (come altre balls o image sprite) e con gli edge della
ed assegniamogli due argomenti, x e y, che sono i Canvas nella quale si trova posizionato. Lo sprite
nostri due valori da moltiplicare, come illustrato in ha una serie di proprietà, come velocità e direzione,
Figura 7. e si muove in accordo ad esse. Velocità e direzione
A questo punto inseriamo all'interno.un blocco sono indicate, rispettivamente, in pixel al secondo e
moltiplicazione (dal gruppo dei blocchi matematici), in gradi (partendo dal lato destro dello schermo).
collegato al connettore "result" e inseriamo come Ad esempio, per avere una ball che si muova di 8
operatori del blocco matematico le get per i para- pixel al secondo, con un intervallo di movimento di
metri x e y, çhe possiamo ottenere semplicemente 500ms, verso la parte alta dello schermo, si dovrà
facendo mouse aver (portandoci sopra il puntatore settare:
del mouse...) sugli argomenti della procedure, come • la proprietà speed della ball a 4 pixel;
illustrato in Fig. 8. Il risultato finale è illustrato in • la proprietà interval della ball a SOOms;
Fig. 9. • la proprietà heading della ball a 90 (O è il lato
Un esempio, puramente didattico, di utilizzo della destro dello schermo, 90 la parte alta);
procedura appena realizzata, è riportato in Fig. 10. • la proprietà enabled a true.
~
Drawing and Animation
- . . . •e 1 1 1111
•1==r • i• /• Bali 7
lmageSprite
Canvas
Il Canvas (Tela) è un pannello rettangolare sensibile Fig. 12
al tocco all'interno del quale possono muoversi gli Inserimento
sprites ed è possibile disegnare oggetti All'interno dell'immagine di
di un canvas ogni posizione può essere identificata uno l111age Sprite.
per mezzo di due coordinate cartesiane x e y, con le gioco". Il campo sarà un canvas e la palla e la buca
seguenti regole: due ball sprite, che "tireremo" con uno swipe sullo
• X è il numero di pixel dall'estremità sinistra del canvas; schermo touch, avvalendoci dell'evento slung.
• Y è il numero di pixel dall'estremità superiore Prevediamo, inoltre, di inserire una label per tenere
delcanvas. traccia del punteggio, un componente notifier per la
notifica dei punti ed un pulsante per ricominciare
Analizziamo anche per questo componente gli eventi, il gioco. Inoltre consentiremo alla palla di rimbal-
i metodi e le proprietà, aiutandoci con la Tabella 4. zare su tutte le pareti del canvas ed utilizzeremo
un componente dock per invalidare un tiro non a
Esempio Pratico con i componenti segno dopo un timeout di 5 secondi, in modo da
Drawing and Animation evitare rimbalzi indefinti.
Passiamo adesso, come di consueto al nostro esem- Cominciamo la realizzazione della nostra app
pio pratico. Avendo trattato i componenti della d'esempio posizionando gli elementi che ci servono
famiglia Drawing and Animation, in questa puntata sulla designer view:
abbiamo deciso di presentare come esempio pratico • un canvas Cvs_GameArea;
la realizzazione di una semplice app di gaming. • due Ball Sprite chiamate rispettivamente Spt_Ball
Nello specifico decidiamo di realizzare una sorta di ed Spt_Hole;
semplice gioco di minigolf, dove bisogna centrare • un button Btn_Restart;
con una pallina una buca posizionata in maniera • due labels chiamate rispettivamente Lbl_Sco-
randomica sulla parte superiore del "campo da reLbl ed Lbl_Score;
-
, SC!el!fll
• ~
.,,
)>.
".:'O
-z
~
m
z
~
Fig.14 - Variabile globflle e procedure ScoreMessage. o
ResianGame
::o
Currant Score: Spt_Hole:
o • Pafat Color: Black;
• Radius: 12;
• X: 145;
Fig.13 • Y: 20.
Non·visible componente Layout
dell'app Clock:
Ntf.Nessages Cli<:..Timeout d'esempio.
• Timer Always Pire: false;
• Timer Enabled: false;
• un componente Notifier Ntf_Message; • Timer Interval: 5000.
• un componente Clock Clk_Timeout.
Una volta completato, il layout della nostra app do- Una volta impostate le proprietà, passiamo sul-
vrebbe apparire come quello proposto nella Fig. 13. la block view, dove per prima cosa creiamo una
Impostiamo anche le seguenti proprietà statiche: variabile globale Score (inizializzata a zero) e due
procedure senza valore di ritorno e senza argomen-
Canvas: ti, chiamate rispettivamente NewRound e Score-
• Background color: green; Message, le cui implementazioni sono riportate in
• Height: 70%; Fig. 14 e in Fig. 15.
• Width: fili parent. La procedure NewRound ci serve a riposizionare
la pallina nella parte centrale bassa del campo e la
Spt_Ball: buca in una nuova posizione random (casuale) sulla
• Interval: 20; parte alta dello schermo.
• Paint Color: White; La procedure ScoreMessage invece ci serve a
• Radius: 8; determinare il messaggio da presentare all'utente
• X: 150; (segnatura di un punto o vittoria) tramite il compo-
• Y: 300. nente notifier. Inoltre, in caso di vittoria (raggiunta
se il numero di punti è superiore a 20), viene anche
! • • , resettata la variabile globale score.
,.--, t •, A questo punto non ci resta che gestire i vari eventi
.5J; o NewRound '
di gioco, che sono i seguenti:
do set ~.l§'mll to ::m • Spt_Ball.Flung per effettuare i tiri;
.set ~-ED to ('H • Spt_Ball.EdgeReached per i rimbalzi contro i
bordi del canvas;
set ~ . . . to 1 . ~
~r.. I j-·
set E.I~ · ir.11111m to ' 1 random integer from I 1 O ; to (~
"--- ' .___,
mrntRIL: .,pyl!·~·
·
initialize global ~ to ( : m
I inrtialize global ~ to ( : m
Fig. B - Esempio di blocchi
disponibili nel backpack.
• Spt_Ball.CollidedWith per determinare se è stato Gli snippet di codice grafico che implementano gli
segnato un punto; eventi elencati sono riportati in Fig. 16.
• Btn_Restart.Click per ricominciare un gioco; In sostanza, al verificarsi dell'evento di flung viene
• Clk_Timeout.Timer per iniziare un nuovo round settata la proprietà speed della pallina al valore
allo scadere del timeout (tiro fallito). dell'argomento speed del flung più una costante
di valore 5 (per rendere il gioco più veloce) e la del componente Spt_Ball e passando l'edge indi-
proprietà heading al valore dell'argomento heading viduato dall' event handler stesso. Al verificarsi
dell'evento. Questo orienta la pallina nella direzio- dell'evento CollidedWith (pallina in buca) viene
ne dello swipe. Inoltre viene attivato il timer: da chiamata la procedura NewRound, in modo da po-
questo momento trascorrono 5 secondi prima che sizionare gli elementi per un nuovo round di gioco,
venga triggerato l'evento di timeout. aggiornato il punteggio e chiamata la procedura
L'evento EdgeReached viene gestito in maniera da ScoreMessage per presentare il messaggio all'uten-
generare i rimbalzi, chiamando il metodo Bounce te. Inoltre viene stoppato il timer. Infine con i due
eventi BtnRestart.Click e Clk_Timeout.Timer viene
iniziato un nuovo round e nel caso della pressione
~ : .'-' ~> :t :è •A • · · i'
del pulsante azzerato il punteggio (in quanto si
tratta di iniziare un nuovo gioco da O).
Conclusioni
In questa quinta puntata abbiamo analizzato alcuni
aspetti nuovi di Appinventor, come la gestione del-
le stringhe e delle liste, oltre ad aver spiegato come
realizzare le procedure. Inoltre abbiamo descritto
una nuova famiglia di componenti, la famiglia
Drawing and Animation, che risulta fondamentale
nello sviluppo di app di gaming.
Restart Game Nella prossima (e conclusiva) puntata del corso ve-
dremo ulteriori aspetti legati alla programmazione
Current Score:
ed analizzeremo le ultime famiglie di componenti
12
rimaste, oltre a spiegare come si pubblicano le app
realizzate con App Inventar sullo store Google Play
Fig. 17 - Immagine di una fase di gioco. per renderle disponibili al pubblico.
www.telecomitalia.com
••• Google
::::: Al Il sistema si basa su un algoritmo
che si avvale di una rete neurale,
ossia una forma di intelligenza
l'intento del progetto non è de-
cidere al posto dei dottori, ma
semplicemente fornire un "con-
artificiale in grado di prevedere, sulto" digitale.
quasi con certezza, la morte o Lo scopo è quindi accorciare i
meno di una persona nel giorno tempi delle diagnosi, lasciando
successivo all'analisi eseguita su più tempo ai medici per seguire
di essa. più pazienti, se non altro perché
l..'.algoritmo prende in considera- formalità come la compilazione di
Google non smette di sorprende- zione età. sesso, genere, condi- diarie ospedaliere e cartelle clini-
re e dopo i sistemi di riconosci- zioni cliniche del paziente e segni che portano via tempo e averle
mento vocale e l'annuncio della vitali e forn isce una diagnosi con precompilate da un computer ne
candidatura della sua Al al ser- il 95% di accuratezza, soprattut - farebbe risparmiare.
vizio del Pentagono, ogg i vuole to su l richio di morte entro le 24 Il programma è stato testato su
stupire il mondo della medicina ore. 216.221 adulti, con la raccolta di
con un progetto chiamato "cer- Il sistema può anche predire 46 miliardi di punti di rilevamen-
vello medico" che si propone di quanto tempo il paziente rimarrà to, anche se per ora non ha avuto
analizzare le condizioni del pa- in ospedale e se la malattia potrà una sperimentazione ufficiale da
ziente, prima di tutto mediante avere delle ricadute in futuro. parte delle Autorità Sanitarie.
il riconoscimento d'immagine e, La rete neurale di Google, ag-
grazie all'intelligenza artificiale giorna col tempo le previsioni, a https://ai.google/research/
www.siemens.it
..
Superconductors, convegno organizzato in-
sieme a Nexans e lo IASS di Postdam. Inuovi
record sono stati raggiungi nell'ambito del
progetto dimostrativo n.S di Best Path, nel
suo complesso il più grande progetto di
ricerca finanziato dall'Unione Europea nel
settore energia negli ultimi dieci anni.
L'altra innovazione nella tecnologia super-
conduttiva presentata a La Spezia è relativa
al cavo che è progettato e prodotto usando
il Diboruro di Magnesio - MgB2 come su-
perconduttore, e che presenta caratteristi-
che di economicità molto interessanti.
Il prossimo passo per la diffusione di que-
sta tecnologia dovrebbe essere lo sviluppo
di linee guida per cavi superconduttivi ad
alto voltaggio con corrente diretta con un
consorzio di produttori che assicuri gli stan-
dard di sicurezza e qualità.
www.asgsupérconductors.com
www.polimi.it
CODICE TENSIONE D'INGRESSO TENSIONE D'USCITA CORRENTE D'USCITA POTENZA RIPPLE DIMENSIONI PREZZO
MWOSOOS 170 • 264 VAC SVDC 10A SOW 75mV 159X97 X38mm 15,00 €
MW05012 170 • 264 VAC 12VDC 4,2A sow 100mV 159X97 X38mm 15,00 €
MW05024 170 -264 VAC 24VDC 2,1 A sow 100mV 159X97 X38mm 15,00 €
MW10005 SVDC 2DA 100W 100mV 199 X 98 X 38 mm 20,00 €
MW10012 170 • 264 VAC 12VDC 8,SA 100W 100mV 199 X 98 X 38 mm
-
20,00 €
MW10024 170 - 264 VAC 24VDC 4,SA 100W 100mV 199 X 98 X 38 mm 20,00 €
MW14505 176 • 264 VAC 5VDC 25 A (30 A max.) 125W 100mV 199 X 98 X 38 mm 24,00 €
MW14512 88· 132 VAC / 176- 264 VAC (selez.) 12VDC 12 A 144 w 120mV 199 X 98 X 38 mm 24,00 €
MW14524 88· 132VAC/176· 264 VAC (selez.) 24VDC 6A 144W 150mV 199 X 98 X 38 mm 24,00 €
MW35005 90-132 VAC /180·264 VAC (selez.) SVDC SOA 250W 150mV 215X115X50mm 39,00 €
MW35012 90·132 VAC /180·264 VAC (selcz.) 12VDC 29A 350W 150mV 215 X 115 X 50 mm 39,00 €
MW35024 90·132 VAC /180-264 VAC (selez.) 24VDC 14,6A 350W 150mV 215 X 115 X SO mm 39,00 €
MW35036 90-132 VAC /180·264 VAC (selez.) 36VDC 9,7 A 350W 150mV 215 X 115 X 50 mm 39,00 €
MW35048 90·132 VAC /180-264 VAC (selez.) 48VDC 7,3A 350W 240mV 215X115X50mm 39,00 €
Dlsponiblll
anche
moduli con
funzione di:
MADE IN
ITALY
·~~~~~~~~__J