Elettronica Maker · 2020-04-22 · Elettronica & Maker n° 13 - 2020 • 5 rupt, al set di...
Transcript of Elettronica Maker · 2020-04-22 · Elettronica & Maker n° 13 - 2020 • 5 rupt, al set di...
Elettronican° 13 - 2020
Antropomorfo con APP Android
Voltmetro con ATtiny85
Sanificatore UV-Cper Maschere di Protezione
Conoscere i Core Arm
Maker&
Apollo Computer:Il Software
Braccio Robotico
Processing e Arduino
Elettronica
Se leggi queste righe, probabilmente non ci conosci: permettimi di presentarti la nostra rivista, in poche parole.E&M nasce agli albori del 2018, come progetto editoriale eco-sostenibile che, pur non utilizzando il mezzo fisico di stampa, mantiene il formato pseudo-cartaceo e l’organizzazione delle pagine di una rivista classica, in un file pdf. Il tutto con l’aggiunta delle piene funzionalità offerte dai collegamenti ipertestuali che, con buona pace degli amanti del genere classico, sulla carta stampata per il momento non si trovano. In altre parole, E&M si pone un po’ come “anello mancante” tra l’immensa pletora – incontrollata e non necessariamente sempre affidabile nei contenuti – dei blog a carattere tecnico e il mezzo tradizionale che odora di inchiostro. Uno degli intenti principali del progetto doveva essere la facilità di comunicazione tra lettore e autore, per colmare un’altra delle lacune fondamentali della stampa tradizionale, ovvero “la barriera della redazione” che da sempre, in quell’ambiente, si era frapposta tra le parti. Oggi le cose sono profondamente cambiate; chiunque legga i nostri articoli può interagire con gli autori in un click, privatamente o in pubblico. Inoltre, per dare ulteriore enfasi al carattere “social” delle attività, da pochi giorni Elettronica & Maker dispone di una propria pagina di FaceBook, che ci auguriamo possa divenire un ulteriore punto di incontro, confronto e diffusione tra tutti gli appassionati della materia. Usatela per i vostri post a tema e condividetela il più possibile con gli amici!
EDITORIALE
Il Nostro Progetto
Maker
Sommario
&
In questo contesto non poteva mancare neppure l’attivazione di Twitter, per le news di rilievo nel nostro settore, ma non solo. Le pagine che seguono sono un estratto del numero completo che potrai scaricare gratuitamente dal nostro sito, assieme a tutti quelli già pubblicati. Buona lettura!
Roberto Armani
Numero 13 - 2020
46
34
28
56
14
Ora E&M è anche su:
Seguici!
4
4 • Elettronica & Maker n° 13 - 2020
Continuiamo la nostra celebrazione del cinquantesimo del primo sbarco sulla Luna, dando un'occhiata al software del computer di bordo delle missioni Apollo, Apollo Guidance Computer (AGC).
Nel n. 11 della rivista abbiamo introdot-
to il computer di bordo delle missioni
Apollo, Apollo Guidance Computer (AGC)
parlando degli aspetti hardware. Non pote-
va mancare una discussione sul software.
Nell’articolo precedente abbiamo definito
AGC come un controllore embedded, un
compatto computer digitale destinato a
gestire processi in real time. In questo ar-
ticolo, diviso in due parti, rivedremo bre-
vemente alcuni concetti fondamentali del
controllo software in real time, utili ad in-
quadrare meglio la descrizione dell’archi-
tettura a partire dalle risorse hardware, fino
ai programmi applicativi.
Seguiremo uno schema classico usato
nell’avvicinarsi ad un nuovo micropro-
cessore o microcontrollore, iniziando con
quello che si chiama ‘modello di program-
mazione’. Daremo quindi uno sguardo ai
registri disponibili, alla struttura di inter-
Apollo Computer:il Software
di Mario Rotigni
Le immagini di questo articolo sono state ricavate dal sito NASA e
utilizzate nel rispetto della politica di utilizzo della stessa.
Elettronica & Maker n° 13 - 2020 • 5
rupt, al set di istruzioni, e poi al software
di sistema, un sistema operativo elementa-
re ed i livelli successivi sempre più lontani
dall’hardware, per finire con i programmi
applicativi. Vedremo come questo compu-
ter di oltre 50 anni fa adottasse soluzioni
ancora avanzate, pur viste con gli occhi di
oggi. Strada facendo, introdurremo qual-
che paragone con tecnologie e soluzioni
moderne e poi daremo qualche indicazione
a chi voglia andare più a fondo (ricordiamo
che “Portiamocene uno a casa” era il titolo
del capitolo finale dell’articolo precedente,
qui manterremo lo stesso spirito). E’ inte-
ressante notare come AGC non sia affatto
il “computer centrale” dell’astronave, cui la
fantascienza ci ha abituati da decenni. Al
contrario, solo un ristretto numero di fun-
zioni e apparati è stato posto sotto il suo
controllo. Responsabilità di AGC sono sta-
te principalmente la gestione del sistema di
assetto, navigazione e guida, la telemetria,
la piattaforma inerziale e la generazione dei
segnali di temporizzazione per almeno al-
tri 20 sistemi dell'astronave. Molte funzioni
non sono state per nulla automatizzate ma
lasciate al controllo diretto dell’equipag-
gio, tramite interruttori e deviatori elettro-
6 • Elettronica & Maker n° 13 - 2020
una sola unità di elaborazione. In gergo più
tecnico, il problema è come implementare
il multitasking avendo a disposizione una
sola CPU. Entreremo in maggior dettaglio
tra poco ma si può anticipare che il “truc-
co” consiste nell’avere un computer molto
più veloce dei processi che è chiamato a
controllare. Andremo quindi a dividere le
funzioni complesse da realizzare in unità
elementari, la cui esecuzione non potrà
che essere serializzata. Con il suo clock
di 2,048 MHz AGC è in gra-
do di eseguire una istruzio-
ne elementare in circa 500
nsec, tempo molto piccolo
se confrontato con la sca-
la temporale con cui evol-
vono i processi controllati,
stimata dell’ordine di qual-
che millisecondo. Qualora
alcuni processi controllati
richiedessero attenzione da
parte del computer esatta-
mente nello stesso istante
o temporizzazioni prossime
alla risoluzione gestibile, le
sezioni critiche sarebbero
implementate in hardware
invece che in software, libe-
rando la CPU dall’onere più
stringente.
A tal proposito, una defini-
zione ancora molto utile di
“Real Time” veniva introdot-
ta nei seminari Intel sui mi-
meccanici (come le luci di casa, anche se
può sembrare paradossale, a prima vista).
E` questo il caso ad esempio del sistema di
riscaldamento della cabina.
I progettisti di AGC si sono trovati a dover
risolvere il classico problema di tutti i pro-
gettisti di apparecchiature embedded.
Programmi applicativi diversi devono es-
sere in esecuzione controllando molte
funzioni ed operazioni in contemporanea
evoluzione, pur avendo un solo computer,
Elettronica & Maker n° 13 - 2020 • 7
controllare fa si che tempi di elaborazione crocontrollori negli anni 80. Per definire un
sistema come Real Time, due condizioni
chiedono di essere soddisfatte. La prima
è la predicibilità del tempo di risposta, la
seconda una velocità di esecuzione suffi-
ciente a rispondere in tempo utile agli even-
ti del processo. Non si richiede quindi la
massima velocità possibile ma una rispo-
sta adatta a quanto si deve gestire, a van-
taggio dell’economia del sistema, eviden-
temente. Un classico esempio per chiarire,
è costituito dal termostato di un apparta-
mento. L’inerzia termica dell’ambiente da
registrarti
14 • Elettronica & Maker n° 13 - 2020
di Giuseppe La Rosa
Se vi affascina l’automazione antropo-
morfa, continuate a leggere: di seguito
vi illustreremo come costruire un semplice
Robot ARM (figura 1) pilotabile da Smar-
tphone, capace di sei diverse articolazioni.
È composto da una parte elettromecca-
nica per eseguire i singoli movimenti, una
scheda di interfacciamento allo Smartpho-
ne tramite Bluetooth e di un’Applicazione
Android di controllo.
Usando i cursori nell'App di Figura 11 pos-
siamo controllare manualmente il movi-
mento di ciascun servo o asse del braccio
del robot.
Memorizzare le posizioni del braccio robo-
tico, poi eseguirle automaticamente e va-
riarne la velocità di esecuzione.
Nel corso dell’articolo descriveremo come
realizzare le singole parti e come assem-
blarle nel modo più semplice possibile.
In questo articolo realizzeremo un braccio robotico con Arduino che può essere controllato e programmato in modalità wireless utilizzando un'applicazione Android. Verrà esposto l'intero processo di costruzione, a partire dalla stampa 3D delle parti costituenti il robot, dalla realizzazione del circuito stampato e programmazione di Arduino, alla descrizione della nostra applicazione Android per il controllo del braccio robotico.
SmartRobot Arm
Elettronica & Maker n° 13 - 2020 • 15
suna caduta di tensione sull’alimentazione
del circuito.
Il connettore J9 serve per la programma-
zione In Circuit ed è utile per caricare il Bo-
otloader di Arduino UNO.
Per la comunicazione seriale con il modulo
HC-06 Bluetooth (J10) sono stati preferiti i
pin IO8 e IO9, lasciando libera la porta se-
riale Hardware sul connettore J7 utilizzata
solo per il caricamento del Firmware.
Poiché i servomotori assorbono molta cor-
rente durante lo spunto, potrebbe accade-
re di avere cali temporanei di tensione in
grado di produrre errori di trasmissione.
Per alimentare i servomotori e ovviare ai
cali di tensione improvvisi sono stati inse-
riti condensatori elettrolitici: C8, C9, C10 e
C11. Nel prossimo paragrafo passiamo alla
realizzazione meccanica del nostro Robot
ARM.
IL CIRCUITO ELETTRICO
I sei servocomandi e il LED1 utilizzato per
visualizzare avvio del Robot sono gestiti
dal microcontrollore ATMEGA328P (IC1),
ed il circuito che ne deriva è parecchio
semplice, come visibile nello schema elet-
trico di Figura 2.
La scheda deve essere alimentata con un
semplice alimentatore stabilizzato da 2000
mA o più, in grado di erogare una tensione
di 5 volt.
Il diodo D1 al silicio, messo in antiparalle-
lo alla linea di alimentazione (connettore
J8) in serie un fusibile (F1), ha l’incarico di
provocare la rottura del fusibile F1 in caso
di inversione accidentale della polarità sul
connettore J8; allo stesso tempo il fusibile
F1 offre la protezione contro il sovraccari-
co. Il vantaggio di utilizzare il diodo D1 in
antiparallelo è quello di non introdurre nes-
16 • Elettronica & Maker n° 13 - 2020
LA MECCANICA
Per realizzare la struttura meccanica ab-
biamo utilizzato tre servomotori MG996R
del tipo standard con ingranaggi in metallo
per la base rotante, la spalla e il gomito.
Per la chiusura, apertura, rotazione, ab-
bassamento e innalzamento della pinza,
abbiamo scelto tre mini servocomandi
MG90S.
In Figura 10 è rappresentata la disposizio-
Figura 1: Foto del Robot ARM finito
ne dei servomotori da installare sulle parti
in plastica tramite le viti presenti nelle sca-
tole dei servomotori.
Utilizzando la stampante 3D, occorre
stampare tutti componenti meccanici di
Figura 3. Il file STL è scaricabile dal link a
fine articolo. I componenti vanno stampati
usando del PLA del diametro di 1,75 mm;
il tempo necessario per stampare le parti
che compongono il Robot ARM è di circa
Elettronica & Maker n° 13 - 2020 • 17
Figura 2: Schema elettrico della scheda di controllo del Robot ARM
18 • Elettronica & Maker n° 13 - 2020
28 ore e 30 minuti e la lunghezza del PLA
occorrente è di circa 86 metri, risultato che
si ottiene tenendo il Fill Density (densità di
riempimento interna del pezzo) al 20% sul
proprio Software di Slicer.
Finita la stampa dei componenti, siamo
pronti per assemblare il Robot ARM.
Iniziamo dalla base rotante su cui va fissa-
to il primo servomotore MG996R usando le
viti incluse nella confezione del servomo-
tore. Quindi sull'albero del servo va fissata
la base rotante con la squadra tonda.
Ora è possibile montare il servomotore del-
la spalla, sempre un MG996R.
È una buona idea inserire negli appositi
ganci tra base rotante e la spalla una sorta
di molla: nel nostro caso abbiamo usato un
elastico per dare un po' di aiuto al servo
MG996R, perché questo servo porta anche
tutto il peso del resto del braccio come ca-
rico totale. Allo stesso modo si procede a
montare il resto del braccio del robot come
è visibile in Figura 10. Per quanto riguar-
da il meccanismo di presa, abbiamo usato
sette dadi autobloccanti e sette viti da 3
per 25 millimetri. Le viti vanno posiziona-
te come rappresentato in Figura 10 e non
devono essere strette troppo, ma lasciate
libere di ruotare nella loro sede.
Se i cavi dei servomotori sono corti e non
riescono ad arrivare alla base rotante come
visibile in Figura 1, è consigliabile utilizzare
delle prolunghe per servo motori facilmen-
te reperibili online. È opportuno mantenere
il cablaggio ordinato e nelle apposite sedi
come in Figura 1, così da evitare attorci-
Figura 3: Componenti meccanici da realizzare in 3D
Elettronica & Maker n° 13 - 2020 • 19
gliamenti dei cavi durante la movimenta-
zione del braccio robotico. Nel prossimo
paragrafo descriveremo la realizzazione
della parte elettronica.
REALIZZAZIONE DELLA SCHEDA
Passiamo adesso alla costruzione della
scheda che si propone sufficientemen-
te semplice: la basetta è del tipo doppia
faccia e si prepara a partire della traccia
di Figura 5. Ottenuto il circuito stampato,
montate (seguendo il piano di montaggio
figura 6) i componenti richiesti dall’“Elen-
co componenti”, partendo dalle resisten-
ze R1 e R2, dal diodo D1 e lo zoccolo per
l’integrato IC1, quindi proseguendo con i
condensatori, prima i non polarizzati e poi
gli elettrolitici, e infine con il quarzo Y1, gli
strip, il pulsante S1 e il connettore J8.
Finito il montaggio della scheda, potete
fissare la scheda su una base di nobilitato
30 per 20 centimetri tramite viti autofilet-
tanti da 3 mm, successivamente fissare il
braccio alla base sempre con viti autofi-
lettanti, come visibile in Figura 1. Eseguite
il collegamento dei servocomandi come è
raffigurato in Figura 7.
A questo punto potete passare alla pro-
grammazione del modulo Bluetooth e del
microcontrollore come spiegato nella pros-
sima sezione.
IL FIRMWARE E PROGRAMMAZIONE
DEL HC-06
Il firmware dell’ATMEGA328P è stato scrit-
to in linguaggio C, ambiente di program-
mazione IDE Arduino UNO.
Se siete interessati alla realizzazione di
questo progetto, ecco la procedura da se-
guire per programmare correttamente Ar-
duino con il firmware presente nel file com-
presso fruibile al link a fine articolo.
Figura 4: Scheda dello Smart Robot ARM
Questo è solo un estratto dell'articolo.
Per continuare la lettura,
vieni a conoscerci sul Web: potrai,
visitare il sito, registrarti e scaricare
gratuitamente i numeri completi della
nostra rivista, oltre a poter consultare
molti progetti di applicazione comune.
Ti aspettiamo!
Il nome e logo Microchip, e il logo Microchip sono marchi industriali registrati di Microchip Technology Incorporated negli U.S.A. e altri Stati. Tutti gli altri marchi industriali appartengono ai rispettivi titolari.© 2019 Microchip Technology Inc. Tutti i diritti riservati. DS30010185A. MEC2229Ita01/19
Più velocità di progettazione con il nostro completo ecosistema Abbiamo ciò di cui hai bisogno, quando ne hai bisogno
Cerchi il percorso più veloce, più semplice e a basso rischio, dal prototipo alla produzione? Microchip ti offre un completo supporto alla progettazione per ogni stadio di avanzamento del tuo progetto, grazie ad un completo ecosistema di sviluppo.
• Realizza rapidamente prototipi con un intuitivo ambiente di progettazione e debug • Avvia rapidamente il tuo progetto con schemi di riferimento e hardware
application-specific • Riduci i rischi con strumenti collaudati e software testato professionalmente
Qualunque siano le tue esigenze, ti offriamo un completo supporto alla progettazione, qualunque sia lo stadio della progettazione.
Avvia subito il tuo sviluppo su www.microchip.com/Ecosystem
28 • Elettronica & Maker n° 13 - 2020
di Giovanni [email protected]
Sanificatore UV-C perMaschere di Protezione
Il dilagare di questa pandemia ha colto impreparato il Mondo, con tutte le immaginabili conseguenze, tra cui la carenza generalizzata dei più elementari mezzi di protezione, mascherine incluse. Di questi tempi costituiscono un bene raro e prezioso: perché quindi non sanificarle con una fonte di luce battericida? In questo articolo vi spieghiamo il da farsi.
PREMESSA
La redazione di E&M nonché l’Autore pre-
cisano che il contenuto dell’articolo se-
guente ha il puro scopo divulgativo-in-
formativo sulle modalità di realizzazione
veloce di un semplice dispositivo per la
disinfezione, mediante raggi UV, di ma-
scherine e oggetti vari non più classifi-
cabili come “sterili” dopo il primo uso.
Non intende fornire informazioni di tipo sa-
nitario (come quelle relative alle intensità
d’irraggiamento o ai tempi di esposizione)
che sono e restano retaggio della comuni-
tà scientifica competente, alla quale riman-
diamo i lettori che volessero approfondire.
In tal senso, la redazione e l’autore decli-
nano ogni responsabilità, delegando ai let-
tori e a quanti vorranno realizzare questo
dispositivo, l’onere di acquisire le informa-
zioni necessarie e sufficienti a un uso cor-
retto e consapevole del dispositivo stesso.
Elettronica & Maker n° 13 - 2020 • 29
Mascherina posizionata prima della chiusura del contenitore e dell'inizio del trattamento
La realizzazione di questo progetto è nata
da un’idea che mi è venuta leggendo che
i raggi ultravioletti sono in grado di alte-
rare il dna dei virus e li rendono innocui.
Lo stesso vale per altri microorganismi,
come batteri e protozoi. Perché l’uso de-
gli UV abbia una validità scientifica, oc-
corre conoscere altre informazioni come
l’intensità delle radiazioni UV e il tempo
di esposizione necessario per eliminar-
li. Documentatevi in tal senso. In questi
tempi di isolamento forzato, ho pensato
di riutilizzare la lampada di un vecchio
cancellatore di eprom (Erasable Pro-
grammable Read-Only Memory) che ave-
vo in casa. Questi chip di memoria non
volatile avevano una finestrella di quarzo
fuso per cancellarle esponendole a una
speciale lampada ultravioletta per qual-
che decina di minuti.
LA LAMPADA
Il tempo di esposizione raccomanda-
to per le eprom era di 20-30 minuti con
una lampada UV con lunghezza d’onda
di 253.7 nm con una intensità di almeno
15W/cm2 e alla distanza di circa 2.5 cm.
La lampada del mio cancellatore, mostra-
ta in Figura 1, potrebbe avere caratteristi-
che simili.
Essa è un tubo fluorescente trasparente,
non avendo il rivestimento di fosfori in-
Questo è solo un estratto dell'articolo.
Per continuare la lettura,
vieni a conoscerci sul Web: potrai,
visitare il sito, registrarti e scaricare
gratuitamente i numeri completi della
nostra rivista, oltre a poter consultare
molti progetti di applicazione comune.
Ti aspettiamo!
Elettronica & Maker n° 13 - 2020 • 33
34 • Elettronica & Maker n° 13 - 2020
di Roberto Vallini
UN PO' DI STORIA
Nel 1995, John Gage, direttore dello “Scien-
ce Office” di Sun Microsystems insieme a
Marc Andreessen, cofondatore e vicepre-
sidente di Netscape Corporation, annun-
ciarono alla SunWorld™ che Java non era
un mito e che, a breve, Netscape Naviga-
tor avrebbe integrato questa nuova tecno-
logia nel suo web browser. Fino ad allora,
la rete era fatta essenzialmente di numeri,
molto poco funzionale ai cosiddetti utenti
"Home". Serviva qualcosa di semplice, per
dare agli acquirenti di un PC la possibilità
di navigare senza corsi, magari, con diffici-
li manuali da studiare. Si era quindi, giun-
ti ad una tappa fondamentale nella storia
dell’informatica: Java. Nel 1994 nacque un
browser interamente in Java, con il quale
divenne lampante l’idea che avrebbe le-
gato il nuovo linguaggio alla evoluzione
La diffusione sempre più ampia di Arduino ha stimolato i vari progettisti del mondo a ricercare una veste grafica accattivante per le proprie release. Questo accade, ad esempio, nell’ambito delle installazioni artistiche, ma non solo. Nel mio tutorial rivolto ai neofiti dell’elettronica di processo, ci si avvicina, passo dopo passo e con esempi applicativi, all’uso di Processing, un programma che, se sincronizzato con la scheda nata ad Ivrea, può dare risultati non solo graficamente eccelsi, ma soprattutto personalizzabili.
Processing eArduino
Elettronica & Maker n° 13 - 2020 • 35
di Internet: le applet, piccole applicazioni
che attraverso un browser potevano esse-
re distribuite ed eseguite come mai prima.
Attraverso accordi di tipo tecnico-com-
merciale con la Netscape Corporation, ed
arrivando ad avere il supporto per le applet
nel Navigator, nel 1995 Sun garantì una ra-
pida diffusione a Java. Netscape Navigator
fu il primo web browser grafico di succes-
so della storia dell'informatica.
Negli anni novanta fu per un periodo il
browser con le percentuali di utilizzo più
elevate; successivamente queste percen-
tuali si ridussero notevolmente fino a far
registrare, nel 2002, la sua quasi scom-
parsa. Seguirono varie vicissitudini, fino
all'avvento di Internet Explorer e di altri
Browser, non di proprietà di Bill Gates,
come Linux/Ubuntu. Occorre evidenzia-
re che esistono due denominazioni, cor-
rispondenti ad altrettante tipologie: una
Java e l’altra Javascript. Spesso vengono
confuse. Nell’ambito della programmazio-
ne, le differenze tra questi due linguag-
gi sono però molteplici. Una la possiamo
certamente trovare nell’utilizzo che se ne
può fare. Java di per sé è un linguaggio di
programmazione definito “orientato verso
gli oggetti”. Attraverso di esso è possibile
creare diversi programmi per il computer.
Invece Javascript, nonostante sia a sua
volta un linguaggio della stessa tipologia
di Java, può essere utilizzato solamente
per la creazione di alcuni script nelle pa-
gine web sviluppate con linguaggio Html.
L'ambiente di sviluppo integrato (IDE) di
Arduino è un'applicazione multi-piattafor-
ma in Java, ed è derivata dall'IDE creato
per il linguaggio di programmazione Pro-
cessing e per il progetto Wiring.
36 • Elettronica & Maker n° 13 - 2020
È stata creata da Massimo Banzi, David
Cuartielles, Tom Igoe, Gianluca Martino
e David Mellis, per iniziare alla program-
mazione i neofiti e chiunque fosse digiuno
nella pratica dello sviluppo di software.
Per permettere la stesura del codice sor-
gente, l'IDE include un editore di testo
dotato, tra l’altro, di alcune particolarità
come il "syntax highlighting", il controllo
delle parentesi e l'indentazione automati-
ca. L'editor è inoltre in grado di compila-
re e caricare sulla scheda Arduino il pro-
gramma eseguibile.
L'ambiente di sviluppo integrato di Ardu-
ino è fornito di una libreria software C/
C++, chiamata "Wiring" (dall'omonimo
progetto Wiring): la disponibilità della li-
breria rende molto più semplice imple-
mentare via software le comuni operazio-
ni di input/output. I programmi di Arduino
sono scritti in linguaggio derivato dal C/
C++, ma l'utilizzatore, per poter creare un
file eseguibile, è facilitato dalla presenza
di librerie già pronte, algoritmi, chiamati
Sketch, facilmente fruibili su piattaforme
open source, che gli permettono di rea-
lizzare velocemente i propri progetti har-
dware. Molti di quest’ultimi, realizzati con
Arduino, richiedono una visualizzazione
grafica. Questo solitamente avviene tra-
mite comunicazione attraverso la porta
seriale la quale, mediante il comando ap-
posito sull’IDE, apre una nuova finestra
che può essere il serial monitor oppure,
a seconda della release, il serial plotter.
Ma se volessimo visualizzare i dati prove-
nienti da una nostra console?
Magari costruita con sensori di vario tipo?
Poniamo ad esempio un semplice poten-
ziometro, oppure una foto-resistenza, o
altri input di diversa origine.
Programmatori, maker, “smanettoni”, o
addirittura artisti, i quali desiderassero
incorporare facilmente i dati delle proprie
release, sarebbero molto più soddisfatti
nel vedere in tempo reale degli effetti gra-
fici del tutto superiori a quelli del Serial
Monitor di Arduino.
Questi ultimi, otterrebbero così, una visio-
ne, ancora più chiara e leggibile, come la
variazione di una tensione la quale, diver-
rebbe, sicuramente, più interessante.
PANORAMICA
Una breve introduzione al software di
elaborazione.
Negli ultimi sedici anni, Processing, che
di fatto è una Fondazione, ha promosso
l'alfabetizzazione del software.
Questo processo è avvenuto nell'ambi-
to delle arti visive e nella diffusione vi-
siva all'interno della tecnologia elettro-
nica. Inizialmente creato per fungere da
sketch-book software e per insegnare le
basi della programmazione in un contesto
visivo, Processing si è evoluto anche in
uno strumento di sviluppo per i professio-
nisti. Il software di elaborazione è gratuito
è open source e funziona su piattaforme
Mac, Windows e GNU/Linux.
Elettronica & Maker n° 13 - 2020 • 37
L'elaborazione continua ad essere un'al-
ternativa agli strumenti software pro-
prietari con licenze costose, rendendola
accessibile a scuole e singoli studenti.
Il suo stato open source incoraggia la
partecipazione e la collaborazione della
comunità che è vitale per la crescita di
Processing. I collaboratori condividono
programmi, contribuiscono con il codice
e creano librerie, strumenti e modalità per
estendere le possibilità del software.
La comunità di elaborazione ha scritto
più di cento librerie per facilitare la visio-
ne computerizzata, la visualizzazione dei
dati, la composizione musicale, il networ-
king, l'esportazione di file 3D e l'elettroni-
ca di programmazione. In Figura 3 trovate
un esempio di visualizzazione delle varia-
zioni di resistenza di un potenziometro.
PRIMI PASSI NECESSARI
Innanzitutto, per chi non lo avesse già sul
proprio PC, è necessario scaricare l'IDE
di Arduino. Andando sul sito ufficiale del-
la scheda che sta spopolando, troverete
la versione idonea al vostro sistema ope-
rativo, sia che si tratti di Linux 32- 64 bit
-Linux ARM -Linux ARM 64, Mac OS X,
oppure Windows, qui troverete la versio-
ne idonea al vostro sistema. Il link è il n°2.
Vi consiglio di scegliere una versione suc-
cessiva alla 1.6.XX, visto che è dotata di
alcune funzionalità accessorie utili ai pro-
getti che andrò ad illustrare. Successiva-
mente andremo a fare la medesima opera-
zione con Processing, il quale si presenta,
graficamente, in maniera molto simile alla
release nata a Ivrea. Il link per il Download
è il Link 1. Anche in questo caso, dovrete
selezionare la versione idonea al sistema
installato sul PC del vostro laboratorio.
Figura 1: Schermata di Processing
Questo è solo un estratto dell'articolo.
Per continuare la lettura,
vieni a conoscerci sul Web: potrai,
visitare il sito, registrarti e scaricare
gratuitamente i numeri completi della
nostra rivista, oltre a poter consultare
molti progetti di applicazione comune.
Ti aspettiamo!
46 • Elettronica & Maker n° 13 - 2020
Il microcontrollore ATtiny85 ha 8k di me-
moria FLASH, 512 byte di RAM e altret-
tanti di EEPROM, 6 bit di I/O configurabili
in vari modi, tra cui 4 canali analogici a 10
bit, 2 uscite PWM, interfaccia seriale, etc.
Questo interessante piccolo microcon-
trollore ha 8 pin di cui la Figura 1 mostra i
collegamenti. Il pin 1 è destinato al reset,
anche se può fare altre cose, il pin 4 e 8
sono rispettivamente la massa e la Vcc di
alimentazione.
Rimangono 5 pin multifunzionali, come
evidenziato anche in Tabella 1.
Il chip ATtiny85 ha quattro ingressi ana-
logici e un comparatore, come si evince
dalla Tabella 2 nell'articolo.
In realtà esiste anche un quinto canale
ADC4 che legge il sensore di temperatura
del chip, ma questo è accessibile solo con
programmazione specifica.
I pin AIN0 e AIN1 sono utilizzabili come
Realizziamo un economico e semplice voltmetro digitale unipolare con un ATtiny85 e un modulo display a LED con TM1637. Questo strumento ha un fondoscala che si può adattare meglio alle nostre applicazioni ottenendo una migliore risoluzione.
di Giovanni Carrera
Un Voltmetrocon ATtiny85
Figura 1: Collegamenti del microcontrollore
Elettronica & Maker n° 13 - 2020 • 47
nominazioni dei pin usa-
ti come digitali da quelli
usati come ingressi ana-
logici, ad esempio il pin 7
di ATtiny85 se usato come
digitale è 2 mentre se usa-
to come ADC1 è 1.
Quindi, per evitare pro-
blemi causati da numeri
uguali, non si possono de-
finire delle assegnazioni
ma inserire la costante ‘1’
direttamente:
val = analogRead(1);
LA PROGRAMMAZIONE
Esistono anche dei piccoli moduli AT-
tiny85 con interfaccia USB e boot-loader,
che rendono più facile lo sviluppo e la
programmazione ma lo spazio della me-
moria flash, già molto ridotto, si riduce a
circa 5,2 k come anche i pin di I/O utiliz-
zabili. Per cui ho preferito usare il chip
e programmarlo via ISP (In-System-Pro-
grammer), allo stesso modo usato per
Il prototipo con il circuito di programmazione
Tabella 1
comparatore analogico ma non sono sup-
portati dalla libreria su Arduino. Il pin ADC0
è usato come reset. Per l’ingresso analo-
gico ho usato ADC1 (pin 7 di ATtiny85).
Nelle prime prove del programma si leg-
geva sempre zero, ossia sembra che la
funzione analogRead() non dia risultati,
almeno sul canale ADC1. Guardando sui
vari forum su internet e i sorgenti dei pro-
grammi, ho visto che sono distinte le de-
48 • Elettronica & Maker n° 13 - 2020
caricare il boot-loader su un chip vergine
di ATmega328.
Questo lo si può fare usando una scheda
Arduino Uno/Nano, appositamente pro-
grammata, oppure un economico e molto
compatto programmatore ISP tipo quello
illustrato in Figura 2.
In questo articolo descrivo come utiliz-
zare questa seconda soluzione. Per chi
volesse usare la prima, negli esempi
dell’IDE si trova il programma ArduinoI-
SP e in rete si trovano numerosi tutorial
per programmare con Arduino.
IL MODULO POLOLU AVR
PROGRAMMER
Per sviluppare i programmi e per pro-
grammarlo ho usato la IDE di Arduino,
dopo aver aggiunto la libreria per gestire
questo microcontrollore, come descri-
verò più avanti. Occorre prima scaricare
dal sito Pololu il programma di configu-
razione con i driver.
Una volta che Windows lo ha installato,
ho fatto girare il programma “Pololu AVR
programmer v2 Configuration Utility” e
ho abilitato la tensione in uscita (VCC
output) a 5V (Regulator mode), come si
vede dalla schermata di Figura 3. Nel mio
caso la “Programming port” è la COM29
e devo stare attento che
questa sia selezionata
nella IDE. Per program-
mare il chip e per svi-
luppare diverse appli-
cazioni ho realizzato un
semplice circuito, il cui
schema è visibile in Fi-
gura 4.
La foto del prototipo è
mostrata in Figura 5. Si
noti il connettore a 6 pin
per la programmazione.
Il programma di test è il
classico led blink.
Tabella 2
Figura 2
https://raw.githubusercontent.com/da-
mellis/attiny/ide-1.6.x-boards-manager/
package_damellis_attiny_index.json
Una volta fatto questo, nel menu ‘Stru-
menti/Scheda’, selezionare la scheda ‘AT-
tiny25/45/85’ e il processore ‘ATtiny85’.
byte ledpin = 3;//il led è
sul pin 2 di ATtiny85
void setup() {
pinMode(ledpin, OUTPUT);
}
void loop() {
//led on-off ogni mezzo se-
condo
delay(500);
digitalWrite(ledpin,
HIGH);
delay(500);
digitalWrite(ledpin, LOW);
}
Il led è collegato al pin 2 se metto un
ponticello tra i pin 4 e 5 di J2.
Il chip ATtiny85 non fa parte della libreria
di Arduino, quindi occorre aggiungere la
scheda dal menu ‘File/Impostazioni’ occor-
re, nella voce ‘URL aggiuntive per il Gesto-
re schede’ e immettere il seguente link:
Figura 4
Figura 3
Questo è solo un estratto dell'articolo.
Per continuare la lettura,
vieni a conoscerci sul Web: potrai,
visitare il sito, registrarti e scaricare
gratuitamente i numeri completi della
nostra rivista, oltre a poter consultare
molti progetti di applicazione comune.
Ti aspettiamo!
56 • Elettronica & Maker n° 13 - 2020
Oggi l'architettura Arm domina gli ambiti dell’ elaborazione dati e del settore embedded. Negli ultimi decenni ha fatto molta strada, iniziando negli anni '80 sotto forma di processore per computer di casa, per poi diventare, negli anni '90, la base dei telefoni cellulari
Oggi sono pochi i segmenti tecnologici
di mercato in cui Arm non rappresenti
un contendente serio. In molti settori si è
affermato come la scelta numero uno per
l'elaborazione a 32 o 64 bit. Grazie a que-
sta proliferazione, ora ci sono migliaia di
varianti basate sull'architettura Arm. Com-
prendere come questi core differiscano
l'uno dall'altro è una parte importante del
processo di selezione.
È stato nel 2004, alla creazione delle pri-
me famiglie Cortex, che si è visto divergere
l'architettura Arm in tre gruppi di prodotti
principali, ciascuno destinato a un diverso
tipo di applicazione. Il primo a passare al
silicio è stato il Cortex-M, che è diventato il
pilastro dell'ecosistema di microcontrollori
basati su Arm (MCU). Sebbene la famiglia
Cortex-M abbia debuttato con core basati
su un'architettura in versione 7, le edizioni
Conoscerei Core Arm
di Mark Patrick
Mouser Electronics
Elettronica & Maker n° 13 - 2020 • 57
aggiunte successivamente, rivolte a dispo-
sitivi a basso costo (ovvero M0, M0 + e M1),
si basavano sull'architettura precedente in
versione 6. Tutti i processori Cortex-M ese-
guono solo il set di istruzioni Thumb.
Le altre due famiglie sono state proget-
tate per supportare sia il set di istruzioni
Thumb sia il Full A32.Sin dal suo lancio,
Cortex-M3 ha visto l'adozione da parte di
molti rivenditori MCU, aiutandoli a definire
le loro offerte di prodotti a 32 bit. Gli esem-
pi ora disponibili includono MCU relativa-
mente semplici ma altamente convenienti,
come i Silicon Labs EFM Tiny Gecko, de-
stinati ai sistemi low-power, e il PSoC5 sy-
stem-on-chip di Cypress Semiconductor,
che combina periferiche MCU tradizionali
con funzioni analogiche programmabili, al-
tamente flessibili. Nel momento in cui le
applicazioni per MCU hanno iniziato a ri-
chiedere prestazioni superiori per l'elabo-
razione digitale del segnale (DSP), Arm ha
risposto con il Cortex-M4. Quest'ultimo ha
fornito l'opzione del supporto del calcolo
con virgola mobile, che molti fornitori han-
no abbracciato calorosamente. Una confi-
gurazione piuttosto comune consiste nel
combinare il core del potente Cortex-M4F
con i più semplici Cortex-M0 o Cortex-M0+
– che si presentano agli utenti con una ge-
stione estremamente efficace dei consumi
e un'allocazione efficiente delle risorse.
Nei dispositivi quali il Cypress PSoC6 o
l’NXP LPC5411x, il core M0+ può gestire
gli interrupt, lasciando gli M4 o M4F liberi
Evoluzione della famiglia Arm Cortex
58 • Elettronica & Maker n° 13 - 2020
nologia proprietaria dell'acceleratore ART
(la quale consente l'esecuzione di calcoli
in condizione zero-wait-state dalla memo-
ria Flash).
CORTEX-A
Nel 2005, Arm ha lanciato il primo membro
della famiglia Cortex-A, uno che ha ricono-
sciuto la natura mutevole del business dei
telefoni cellulari mentre si spostava verso
smartphone e tablet. Cortex-A è stato pro-
gettato per fornire una serie di funzionalità
personalizzate per i processori di applica-
zioni. Ha anche spianato la strada per l'im-
plementazione del core Arm nei server e in
altri sistemi di elaborazione di fascia alta.
Una grande differenza tra i processori Cor-
tex-A e quelli di altre famiglie è il supporto
per un'unità di gestione della memoria pa-
ginata (MMU). Una MMU è necessaria per
Linux e sistemi operativi simili, in quanto
fornisce la possibilità di mappare nella me-
di gestire i task DSP senza alcuna interru-
zione, massimizzando così il throughput.
Questa divisione di responsabilità con-
sente anche al più potente core dell’M4 di
rimanere in condizione sleep per intervalli
di tempo più prolungati tra i vari burst di
attività. Durante i periodi di attività relativa-
mente più modesta, il dispositivo a consu-
mo ridotto M0+ può prendersi carico della
gestione dei task di sistema più semplici.
Nel 2014, Arm ha spinto a un livello supe-
riore le prestazioni del Cortex-M con il lan-
cio dell’M7. Questo core vanta una pipeline
superscalare a sei stadi con il supporto del
completamento in fuori servizio e si avvan-
taggia della presenza di un'unità a virgola
mobile. L’STM32F730x8 realizzato da ST-
Microelectronics combina un core M7 con
un'ampia varietà di periferiche e con la tec-
Figura 1: EFM Tiny Gecko di Silicon Labs.
Elettronica & Maker n° 13 - 2020 • 59
istruzioni contemporaneamente in esecu-
zione fuori-servizio, il ché semplifica la pia-
nificazione ottenendo la massima efficien-
za.
La seconda grande innovazione della fa-
miglia Cortex-A, introdotta nel 2011, è rap-
presentata dal framework big.LITTLE. Ciò
rispecchia l'accoppiamento di diversi core
Cortex-M che hanno accompagnato l'in-
troduzione di M4 ma nello spazio dell'ap-
plicazione del processore e con ulteriori
miglioramenti che supportano le esigenze
dei processori di applicazione.
Con big.LITTLE, Arm ha adottato l'approc-
cio di combinare core di fascia bassa (come
A5 o A7) con implementazioni ad alte pre-
stazioni, spesso superscalari. Ogniqual-
moria reale i programmi e i rispettivi dati in
spazi ad indirizzo virtuale diversi.
Ciò fornisce un certo grado di protezione
dalla possibilità che i dati utilizzati da più
task diversi si possano corrompere, oltre a
consentire la gestione della memoria fisica
come se fosse una cache di grandi dimen-
sioni. Inoltre, evita i problemi causati dalla
frammentazione della memoria, poiché i
programmi vengono caricati e scaricati in
modo dinamico. Un potenziale svantaggio
con l'uso di indirizzi di paging virtuali è che
interferiscono con il funzionamento in tem-
po-reale, quindi la MMU viene utilizzata nei
processori Cortex-A ma non nelle famiglie
con una più forte vocazione all’utilizzo sui
sistemi embedded. Un'innovazione chiave
dell'architettura Cortex-A, dal suo inizio,
è stata TrustZone. Questa implementa un
livello di sicurezza rinforzato median-
te hardware che, in mancanza del-
le credenziali di sicurezza richieste,
consente a un hypervisor di negare a
qualsiasi attività l'accesso a parti del
processore e della memoria.
TrustZone inserisce operazioni critto-
grafiche e altre operazioni sensibili in
un processore virtuale protetto da un
firewall hardware.
In termini di core, la gamma si estende
dal relativamente semplice Cortex-A5
fino ai processori superscalari ad alte
prestazioni, come il Cortex-A72. Ciò
combina la capacità di emettere tre Figura 2: Il PSoC6 di Cypress.
60 • Elettronica & Maker n° 13 - 2020
una routine di interrupt di servizio o da un
task in tempo reale. La famiglia Cortex-R
risolve questo problema con il suo suppor-
to per banchi di memoria Tightly Coupled
Memory (TCM).
In questo modo è possibile archiviare in-
formazioni critiche durante il funzionamen-
to e, essendo gestiti dal software, si evita
il rischio che istruzioni e dati vengano so-
stituiti da un sottosistema di gestione della
memoria cache.
Dall'introduzione del Cortex-R4 originale,
la famiglia si è evoluta. I core Cortex-R5 e
R7 erano dotati di porte periferiche a bas-
sa latenza. La maggior parte dei core sono
progettati per funzionare con un bus on-
chip, come il bus hardware Arm (AHB) o,
nei core più recenti, il framework AXI (Ad-
vanced eXtensible Interface).
La porta a bassa latenza collega il core di-
rettamente alle periferiche importanti, for-
nendo l'accesso senza dover arbitrare per
l’uso del bus o attendere il completamento
di altre attività di accesso al bus stesso.
Per supportare un funzionamento altamen-
te affidabile, le cache, i TCM e i bus di si-
stema sui prodotti Cortex-R possono uti-
lizzare la codifica di correzione degli errori
per correggere in modo trasparente errori
a singolo bit e rilevare errori a doppio bit.
Poiché la ridondanza modulare è una parte
fondamentale dei sistemi critici per la sicu-
rezza, i core della famiglia Cortex-R sono
progettati per essere in grado di funziona-
re in modo sincronizzato con delle copie.
volta è possibile, il sistema operativo tenta
di mantenere attivo a bassa energia il solo
processore, il più a lungo possibile, per poi
attivare il core di potenza superiore quan-
do il carico di lavoro supera una determi-
nata soglia.
Contrariamente alle architetture dual-core
convenzionali, i task possono migrare da
un processore a un altro a seconda delle
condizioni del sistema. Con l’aumentare
della domanda di prestazioni, un numero
sempre crescente di implementazioni Cor-
tex-A ruota attorno all'uso di quattro core
di fascia alta in un complesso di processo-
ri. Questa disposizione consente di rispar-
miare energia disattivando uno o più core
durante i periodi di pausa della domanda.
CORTEX-R
La terza grande famiglia Arm, la Cortex-R,
ha fornito un percorso per supportare una
nuova generazione di complessi sistemi
automotive e cyber-fisici attraverso l'im-
piego di funzionalità real-time altamente
affidabili. La necessità di prestazioni de-
terministiche nelle applicazioni di destina-
zione significa che l’impiego delle memorie
cache, che vengono spesso utilizzate per
accelerare l'elaborazione in altri processori
Arm, non è sempre consigliabile.
Poiché una cache sostituisce in modo di-
namico istruzioni e valori di dati con le voci
utilizzate più di recente, esiste la possibilità
che le informazioni critiche non siano pre-
senti nella cache quando sono richieste da
Elettronica & Maker n° 13 - 2020 • 61
Se un monitor su chip rileva una differenza
in uscita, può segnalare l’esistenza di un
problema in modo che il software possa
intraprendere le opportune azioni corretti-
ve. Un esempio della famiglia Cortex-R at-
tualmente in produzione è la serie di MCU
Cypress Traveo S6J33xx. Questa accoppia
il core Cortex-R5F, che funziona fino a 240
MHz, con periferiche ottimizzate per il pilo-
taggio di gruppi di strumenti nei cruscotti
automotive.
ARM V8
Una seconda serie di modifiche all'offerta
core di Arm è arrivata nel 2011, con la cre-
azione dell'architettura versione 8, che ha
aggiunto la possibilità di far funzionare le
applicazioni in modalità 64-bit, ampliando
notevolmente lo spazio di memoria massi-
ma indirizzabile per i processori di applica-
zioni. I processori Arm v8 con funzionalità
a 64 bit hanno la capacità di funzionare in
modalità a 32 o 64 bit. La prima fornisce
la compatibilità con le versioni precedenti,
per le applicazioni scritte per i processori in
versione 7. A causa della loro destinazione
alle applicazioni MCU, i processori in ver-
sione 8 della famiglia Cortex-M non sup-
portano l'indirizzamento a 64 bit. Tuttavia,
offrono una serie di istruzioni e funzionalità
aggiuntive che aumentano le prestazioni e
migliorano la sicurezza di funzionamento.
Un miglioramento significativo è stato dato
dalla rielaborazione dell’unità di protezio-
ne della memoria (MPU), consentendo una
gestione più flessibile delle aree. Un altro
Figura 3: Esempio di MCU SAML11 di Microchip.
Questo è solo un estratto dell'articolo.
Per continuare la lettura,
vieni a conoscerci sul Web: potrai,
visitare il sito, registrarti e scaricare
gratuitamente i numeri completi della
nostra rivista, oltre a poter consultare
molti progetti di applicazione comune.
Ti aspettiamo!
Hai la passione dell'elettronica e della
sperimentazione?
Ti senti anche piuttosto portato a
"mettere nero su bianco" i tuoi progetti
ed esperimenti in forma chiara e
comprensibile? Ti piacerebbe pubblicare un
tuo articolo su queste pagine e sul sito web
di EM?
Scrivi a
indicando i tuoi campi d'interesse e
allegando un elaborato sull'argomento
d'elettronica preferito: ci risentiremo!
DIRETTORE
Roberto Armani
Art Director
Shylock-58
Hanno collaborato a questo
numero:
Giuseppe La Rosa
Mark Patrick, Roberto Vallini,
Giovanni Carrera, Mario Rotigni
AVVERTENZE
Chiunque decida di fare uso
delle nozioni riportate in questi
articoli o decida di realizzare
i circuiti esposti, è tenuto a
prestare la massima attenzione
in osservanza alle normative
in vigore sulla sicurezza. Gli
Autori di Elettronica&Maker
sopracitati, che hanno collaborato
alla realizzazione degli articoli
pubblicati in questo numero,
declinano ogni responsabilità
per eventuali danni causati a
persone, animali o cose derivante
dall'utilizzo diretto o indiretto del
materiale, dei dispositivi o del
software presentati. Si avverte
inoltre che quanto riportato
negli articoli viene fornito così
com'è, a solo scopo hobbistico,
senza garanzia alcuna di
correttezza e di funzionamento
certo. L'editore e gli autori
ringraziano anticipatamente per
la segnalazione di ogni eventuale
errore.
Su Elettronica & Maker
Elettronica & Maker è una
testata pubblicata in formato
esclusivamente elettronico, in
formato portable sfogliabile
elettronicamente, diffusa
esclusivamente per via telematica,
non soggetta all'obbligo di
registrazione presso il Tribunale,
su sito web https://www.
elettronicaemaker.it ed in fné al
R.O.C. né agli obblighi dell'AgCom
n° 666/08 del 26/11/08, a fronte
del D.L. n° 63 del 18 Maggio
2012.
© Copyright
Tutti i diritti di riproduzione o di
traduzione degli articoli pubblicati
sono riservati. Manoscritti, disegni
e fotografie sono di proprietà di
E&M
È vietata la riproduzione anche
parziale degli articoli salvo
espressa autorizzazione scritta
dell’editore. I contenuti pubblicitari
sono riportati senza responsabilità,
a puro titolo informativo.
Collaborare con
Elettronica & Maker
Le richieste di collaborazione
vanno indirizzate all’attenzione
di Roberto Armani (r.armani@
elettronicaemaker.it e
accompagnate, se possibile,
da una breve descrizione delle
vostre competenze tecniche e/o
editoriali, oltre che da un elenco
degli argomenti e/o progetti che
desiderate proporre.
ElettronicaMaker&