Sei sulla pagina 1di 73

Elettronica

&
Maker n° 2 - 2018

Braccio Robotico
antropomorfo con ATMEGA

Capacimetro digitale
con Arduino

Realizza
il tuo primo PCB!

Arduino...
alimentato a batteria

... e molto altro!

I Prototipi:
Tutte le Tecniche di Costruzione
Elettronica
&
Maker EDITORIALE r.armani@elettronicaemaker.it

Connessioni
La concretezza è indubbiamente una delle caratteristiche positive e distintive
dei tecnici che però, d'altro canto, spesso cedono anche alle lusinghe della
fretta. Concretizzare un progetto significa, tra l'altro, dover costruire un prototipo
quantomeno funzionante. Chiunque abbia spaziato negli sconfinati campi di
applicazione del bit&Byte o delle grandezze analogiche, sa bene che dovrà andare
incontro all'assemblaggio, fase "dolorosa ma necessaria", che inevitabilmente
si frappone tra il progetto in versione cartacea e il prototipo che vivrà finalmente
di vita propria, con il consueto pulsare di LED e il succedersi delle informazioni
sul display. Chi può dire di non aver realizzato, almeno una volta, un obbrobrioso
collegamento "in aria" tra componenti discreti, solo per ansia e (appunto...) fretta
ingovernabili che spingevano verso una soluzione veloce ma disordinatissima
e raffazzonata? Sono proprio queste disgraziate esperienze a condurre lo
sperimentatore verso tecniche di collegamento razionali, disciplinate e, proprio
per questo, funzionali e affidabili. La copertina di E&M di questo numero illustra
qualcosa di non troppo familiare per i lettori più giovani e non mancherà certo
di scatenarne la curiosità: i collegamenti "Wire-Wrap" rappresentano un vero
caposaldo nell’evoluzione delle tecniche di cablaggio dei circuiti a basso livello
di integrazione, prevalentemente digitali. In uso fino agli albori degli anni '80,
sono stati sostituiti da sistemi più pratici ed economici, anche se non sempre più
n° 2 - 2018

24
affidabili. Oggi si dispone di ben 30
altro e in questo numero della
rivista se ne parla ampiamente in un 40
articolo di Mario Rotigni. A chi poi 52
volesse davvero cimentarsi nel fare
"il grande passo", Girolamo D'Orio
racconta, da vero "Maker", come
realizzare in modo autonomo il
primo circuito stampato con risultati 62
di assoluto rilievo!

Buona Lettura.
Roberto Armani

70
74
Tecniche di
Costruzione di Prototipi
di Mario Rotigni
m.rotigni@elettronicaemaker.it

Nell’iter progettuale, la fase


sicuramente più coinvolgente è
proprio quella della realizzazione
I n questo articolo passeremo in rassegna
le principali tecniche costruttive di circuiti
elettronici amatoriali (e non). Per ciascuna
vera e propria del prototipo. delle tecniche introdotte si descriveranno
È il momento nel quale il risultato brevemente pregi e difetti. Qualunque sia la
del nostro lungo lavoro, ovvero tecnica costruttiva scelta, prima di mette-
idee, disegni, pseudo-schemi, re mano ai componenti fisici è necessaria
variazioni, revisioni e molto altro, una accurata attività di preparazione. Anzi-
prendono finalmente forma e tutto va sempre steso lo schema elettrico,
sostanza, diventando qualcosa di seguendo alcune elementari norme che ne
fisico e (si spera...) funzionante! aumentano la chiarezza e facilità di lettura.
Tutti gli ingressi devono essere sulla sini-
stra del foglio, le uscite sulla destra. Pre-
feribilmente le connessioni all’alimentazio-
ne positiva devono essere verso l’alto e le
connessioni a massa verso il basso.
Resistori condensatori ed induttori vanno
disegnati in verticale o orizzontale. I bloc-
chi elementari costituenti lo schema devo-
no essere chiaramente individuabili, ren-
dendo evidente il percorso dei segnali dagli

4 • Elettronica & Maker n° 2- 2018


ingressi alle uscite. Qualora lo schema sia BREADBOARD
stato ricavato da sorgenti terze ed alcune Pur essendo disponibili da vari decenni
di queste regole non siano rispettate, si le breadboard hanno conosciuto un nuo-
raccomanda di copiare lo schema secondo vo picco di popolarità sull’onda del movi-
il formato suggerito. Questo servirà anche mento maker e della diffusione di Arduino.
a meglio comprendere il funzionamento del Possiamo considerare le breadboard come
circuito. Una volta completato lo schema è una matrice di contatti elettrici a molla con
necessario stendere un piano di cablaggio, alcune connessioni precostituite. Il passo
disegnando i vari componenti e le loro inter- della matrice è convenientemente pari a un
connessioni nel modo più ordinato e pulito decimo di pollice, 2,54 mm il passo stan-
possibile. Gli incroci tra le connessioni do- dard dei circuiti integrati dual in line, che
vrebbero essere in questa fase minimizzati. risultano quindi direttamente inseribili sul-
Come vedremo, oggi tutta questa attività di la breadboard senza necessità di ulteriori
preparazione viene grandemente semplifi- zoccoli.
cata dall’uso di programmi su pc. La figura 1 mostra una breadboard sol-

Copertina: esempio di cablaggio complesso con la tecnica Wire-Wrap, lavori in corso, non tutte
le connessioni sono completate. Notare l'ordine nella disposizione dei fili.

Elettronica & Maker n° 2 - 2018 • 5


der-less, figura 2 rende evidenti le con- disegnato a mano e curando di minimizzare
nessioni disponibili. Le righe esterne sono lunghezza delle connessioni ed incroci. Si
tipicamente riservate alla distribuzione di iniziava realizzando tutte le connessioni di
massa e alimentazione. I componenti ven- massa, poi tutte le connessioni di alimen-
gono inseriti direttamente nella matrice, tazione, curando di colorare sullo schema
curando di non creare cortocircuito tra i elettrico i collegamenti eseguiti ed usando
terminali, le interconnessioni sono poi com- fili di colore diverso per il positivo, massa e
pletate con filo rigido o semi-rigido, sco- segnali. Quest’ultimo accorgimento facilita
perto dall’isolante per pochi millimetri alle in seguito l’ispezione finale, eventuali mo-
due estremità. Lavorando ordinatamente difiche e correzione di errori. Si passava poi
il montaggio procede in modo semplice e alle interconnessioni tra i componenti, rea-
spedito. lizzando quindi le connessioni di segnale. Il
Il grande vantaggio di questo metodo di co- lavoro era terminato quando tutte le maglie
struzione e che non richiedere alcuna sal- dello schema elettrico risultavano colorate.
datura. Un altro grande vantaggio è il fatto Oggi il lavoro è ulteriormente semplificato
che una volta finite le prove, il circuito può dalla disponibilità di programmi come Frit-
essere completamente smontato e la brea- zing, che consentono di disegnare lo sche-
dboard può essere riutilizzata per realizzare ma elettrico e poi direttamente il cablaggio
circuiti completamente diversi. Tradizional- su un’immagine della breadboard, mante-
mente si stampava uno schema elettrico nendo il collegamento allo schema con le
del circuito da realizzare. Si piazzavano tut- connessioni evidenziate come “elastici”
ti i componenti attivi e passivi sulla bread- http://fritzing.org/home/.
board, seguendo il piano di assemblaggio Ne consegue che le connessioni tra com-

Figura 1: La breadboard catturata dal programma Fritzing prima di iniziare piazzamento di


componenti e collegamenti.

6 • Elettronica & Maker n° 2 - 2018


Figura 2: La breadboard in Fritzing con evidenziati i collegamenti interni tra le righe esterne
(tipicamente usate per le alimentazioni) e le semi-colonne, tipicamente usate per l'inserzione
dei componenti attivi e passivi e le loro interconnessioni (tutte le semicolonne hanno le
medesime connessioni interne, solo le due più a sinistra sono evidenziate).

ponente e componente sono predefinite megahertz. Tipiche applicazioni possono


rendendo praticamente nulla la possibilità essere circuiti digitali, interfacce con micro
di errori. È buona norma collegare tra posi- controllori, prototipizzazioni veloci di inter-
tivo nell’alimentazione e massa un ohmetro facce con sensori preamplificati. Non risulta
con cicalino prima di iniziare il cablaggio. invece adatta quando si voglia lavorare con
Diventa in questo modo immediato identi- segnali analogici a basso livello, frequen-
ficare un eventuale cortocircuito creato per ze elevate, radiofrequenza ed in generale
errore, cosa che sarebbe molto più difficol- per circuiti sensibili al rumore elettrico. Un
tosa con il circuito completamente mon- altro limite nell’applicazione deriva dall’af-
tato. La breadboard si presta per verifiche fidabilità della matrice di contatti. Questa
veloci di piccoli circuiti mentre non è intesa è determinata anzitutto dalla qualità dei
costituire una soluzione duratura a causa materiali impiegati ma i ripetuti inserimenti
della sua fragilità meccanica. La lunghezza ed estrazioni inevitabilmente comportano
non ottimizzata dei fili, le capacità ed indut- uno stress meccanico con degrado del-
tanze parassite intrinseche in questa strut- la stabilità di contatto. Questo fenomeno
tura costituiscono uno dei maggiori limiti può facilmente essere esasperato dall’uso
all’applicabilità. Questo fa sì che la bread- di fili di sezione non adatta o dai terminali
board sia meglio adatta a circuiti con livelli dei componenti di sezione troppo ampia.
di segnale almeno dell’ordine delle centina- È impossibile, malgrado gli svantaggi pre-
ia di millivolt e frequenze limitate a pochi sentati, sconsigliare l’uso della breadboard

Elettronica & Maker n° 2 - 2018 • 7


risultando questa troppo pratica e veloce gressivo degrado o danneggiamento per-
nella verifica di sotto circuiti. Si raccoman- manente delle mollette di contatto. Spesso
da anzitutto una selezione accurata prima sono disponibili presso lo stesso fornitore
dell’acquisto, evitando di riferirsi al prezzo della breadboard confezioni di fili preta-
come unico parametro, ma verificando an- gliati a varie lunghezze e spellati opportu-
che la disponibilità di un minimo di dati tec- namente. Una sorgente alternativa di filo
nici. È opportuno in particolare informarsi adatto a basso costo è costituita dai cavetti
circa la qualità e tecnologia del contatto e telefonici multipolari usati per il cablaggio
la sezione dei fili raccomandata, curando in edifici (controllate sempre la sezione del
di farne buona provvista. Si raccomanda di filo ottenuto prima di utilizzarlo).
rispettare sempre la sezione massima sug-
gerita, evitando di forzare l’inserimento di MILLEFORI PUNTO-PUNTO
conduttori o terminali di componenti trop- Tecnica definita in vari modi, probabil-
po grandi, cosa che risulterebbe in un pro- mente la definizione punto-punto è quella
che rende meglio l’idea
nella nostra lingua. Tutte
le connessioni in questo
caso sono eseguite con
filo saldato, a partire da
una scheda circuito stam-
pato su cui è riportata una
trama di connessioni pre-
definite, simile alla brea-
dboard, in vari formati. La
base isolante può essere
realizzata in vari materia-
li, dalla economica ba-
chelite alle stesse resine
FR4 utilizzate per i circu-
Figura 3: Un circuito stampato per cablaggio punto-punto iti stampati. Il formato più
compatibile con la breadboard di Fig. 1 e 2. Potrebbe essere semplice è una matrice di
una soluzione di montaggio più duraturo e robusta, una volta piazzole con foro centrale,
verificato il funzionamento del circuito sulla breadboard. Il spaziate di un decimo di
cablaggio può essere anche in questo caso guidato dalla pollice (2,54mm) per le ra-
documentazione stampata da Fritzing. gioni già viste, o del dop-

8 • Elettronica & Maker n° 2 - 2018


pio (circa 5 mm), utile qualora si utilizzino mo numero. Ciascuno sviluppa la tecnica
componenti discreti di una certa potenza di cablaggio che gli è più congeniale, l’au-
dissipata, più che circuiti integrati. Tutto tore preferisce realizzare come prima cosa
quanto detto per quanto riguarda la fase di una solida distribuzione di massa e alimen-
preparazione di schema e piano di assem- tazione, dopo aver piazzato tutti i compo-
blaggio restano validi. Avendo a che fare nenti attivi e passivi, sotto la guida di un
con saldature il detto inglese “check twice disegno in scala 1:1. Anche in questo caso
solder once” (verifica due volte e salda una Fritzing si rivela molto utile. I terminali dei
sola) deve sempre guidare la realizzazione componenti possono essere ripiegati lato
pratica. Insistendo troppo con il saldatore rame ed utilizzati per corte connessioni
su piazzole di piccole dimensioni, è possi- verso i componenti vicini, in generale però
bile infatti causarne il distacco dal suppor- sarà necessario tagliare un filo della misu-
to isolante, con danno irreparabile. ra minima richiesta e spellarne le estremità
L’errore umano è inoltre sempre in aggua- per scoprire pochi millimetri di conduttore
to. L’immediato vantaggio rispetto alla bre- nudo e procedere poi a saldatura.
adboard consiste nella maggiore robustez- I fili possono essere anche di sezione mol-
za meccanica ed elettrica, cosa che rende to diversa, naturalmente in funzione delle
il metodo applicabile per realizzare l’ap- correnti che devono sopportare, rendendo
plicazione finale, naturalmente nel caso il cablaggio adatto anche ad applicazioni
in cui si preveda un esemplare singolo o relativamente ad alta corrente. Il tempo ri-
comunque una riproduzione in limitatissi- chiesto per un assemblaggio è sicuramen-
te maggiore rispetto alla breadboard, in
particolare a causa della massiccia attività
di spellatura fili richiesta. Qualcuno trova
conveniente l’uso di filo auto-spelante sot-
to l’azione del calore generato dal salda-
tore. Si deve fare attenzione a non toccare
l’ isolante con la punta del saldatore per
evitare di sporcarla, rischiando poi di com-
promettere le corrette saldature dei con-
duttori. Un conduttore scoperto erronea-
mente dal calore espone anche al rischio
Figura 4: Circuito stampato "mille-fori" di creare cortocircuiti indesiderati.
per cablaggio punto-punto, senza alcuna Nel caso si abbia a che fare con tensioni
connessione pre-definita. relativamente elevate è consigliabile au-

Elettronica & Maker n° 2 - 2018 • 9


mentare la distanza di isolamento rimuo- Usare un saldatore di piccola potenza, con
vendo piazzole di rame intermedie per punta di dimensioni adeguate a compo-
evitare il rischio di scariche superficiali. È nenti e piazzole da saldare.
importante utilizzare fili di colore diverso, Utilizzare lega saldante in filo sottile con
ad esempio nero per la massa, rosso per anima disossidante. Mantenere la punta
l’alimentazione positiva, blu per il segnale del saldatore ben pulita, fare in modo che
principale e così via. Questo rende l’ispe- la lega saldante venga fusa dal calore tra-
zione finale e le quasi inevitabili modifiche smesso da piazzole e terminali da connet-
più facili. Questo sistema di montaggio in tere e non direttamente dalla punta del sal-
generale non è adatto a circuiti radiofre- datore.
quenza, a causa della mancanza di un dif- Nel caso di componenti a montaggio su-
fuso piano di massa. perficiale non si deve mai toccare il com-
Prima di rinviare il lettore a uno dei tanti ponente con la punta del saldatore.
tutorial sulla saldatura disponibili in rete, Una piccola quantità di lega va depositata
ricordiamo qui brevemente le regole auree. sulle piazzole e poi fusa toccando la piaz-
zola in modo da non trasferire
eccessive quantità di calore ai
microscopici componenti smd.
Usare in ogni caso la quantità
minima di lega saldante, rimuo-
vere il saldatore solo dopo aver
permesso alla lega di distribuirsi
fluidamente sul giunto di salda-
tura ed al disossidante di com-
pletare la sua azione di pulizia.
Questo richiede normalmente di
mantenere il contatto tra la pun-
ta del saldatore ed il giunto da
saldare per uno o due secondi.
Figura 5: Altra variante di Circuito stampato "mille-fori" Ricordiamoci di ventilare l’area
con righe interconnesse. Risulta semplice interrompere le di saldatura perché non è mol-
connessioni orizzontali seguendo le esigenze del proprio to salutare respirare i fumi che
cablaggio, servendosi di un taglierino o di un trapano a si sviluppano. Una variante del
bassa velocità con punta svasate per rimuovere il rame metodo punto - punto è il co-
allargando i fori dove richiesto. siddetto “dead bug”. In questo

10 • Elettronica & Maker n° 2 - 2018


caso le saldature sono fatte direttamente già indovinato). In passato apparecchiatu-
tra i terminali dei componenti, mantenen- re prodotte in serie limitate sono state rea-
do le connessioni cortissime. Il nomignolo lizzate con questa tecnica.
deriva dall’abitudine di montare i circuiti Gli utensili manuali erano in tal caso so-
integrati con i piedini verso l’alto, posizio- stituiti sulla linea di montaggio da utensili
ne che ricorda appunto un insetto defunto. elettro-pneumatici. Il wrappino spesso in-
Ad un più veloce assemblaggio, fanno ri- clude uno spelafili per rendere più pratico
scontro maggiore difficoltà nelle modifiche e veloce il cablaggio. Il link seguente pre-
e nella gestione di circuiti con numerosi senta una sintetica ma chiara spiegazione
componenti. della tecnica wire-wrapping, con illustra-
zioni che mostrano le fasi del cablaggio e
WIRE-WRAP gli utensili utilizzati
Tecnica forse un po’ desueta, ma interes- https://www.jameco.com/Jameco/work-
sante se non altro per ragioni storiche, è un shop/TechTip/wirewrap.html
metodo di cablaggio punto-punto che non Occorre dire che sia il filo che zoccoli ed gli
fa uso di saldature. Tutti i componenti sono utensili risultano piuttosto costosi.
montati su zoccolo particolare, con lunghi
terminali a sezione quadra-
ta con spigoli vivi. Le con-
nessioni sono fatte con filo
sottile strettamente avvolto
sui terminali degli zocco-
li con un apposito utensi-
le (familiarmente chiamato
wrappino). L’avvolgimento
risulta molto compatto ro-
busto prestandosi anche
alla realizzazione di circuiti
di una certa complessità. In Figura 6 Altro esempio di cablaggio Wire-Wrap. Alcuni
caso di errori risulta sem- componenti passivi (condensatori di filtraggio delle
plice srotolare il filo e pro- alimentazioni) sono saldati direttamente ai pin degli zoccoli
cedere alla correzione, ser- destinati a ricevere circuiti integrati digitali. La saldatura è
vendosi di un altro utensile fatta prima di iniziare il cablaggio a filo. Le piccole etichette
apposito (swrappino, come bianche sul circuito di destra identificano il circuito integrato
il lettore avrà certamente in accordo con lo schema elettrico, aiutando ad evitare errori.

Elettronica & Maker n° 2 - 2018 • 11


PCB foratura potrebbe essere evitata.
Il circuito stampato, in inglese Printed Cir- Accenneremo solo al fatto che il circuito
cuit Board da cui la sigla PCB comune- stampato può essere costituito da molti
mente usata, è certamente la tecnica co- layer, alternando strati di isolante a layers
struttiva più prossima allo stato dell’arte, conduttori, permettendo la costruzione di
tra quelle disponibili per l’amatore. applicazioni compatte e complesse, ripro-
Si accennerà qui soltanto brevemente a ducibili in serie con prestazioni ripetibili.
questa tecnica in quanto Elettronica & Il circuito stampato permette una elevata
Maker ritornerà presto sull’argomento in qualità di interconnessione anche per se-
modo più ampio e dettagliato. Il circuito gnale di basso livello ed elevata velocità,
stampato è sostanzialmente un supporto grazie alla possibilità di realizzare diffuse
isolante su cui sono incollati fogli sottili in distribuzioni di alimentazione e massa.
materiale conduttore, tipicamente rame, Induttanze e capacità parassite non sono
comunemente identificati con il termine in- affatto assenti ma hanno il vantaggio di
glese layer (strato). essere predicibili, attraverso software di
L’isolante può essere economica bachelite simulazione, mantenendo valori prossimi
o le più pregiate “vetroniti”, sostanzialmen- tra un esemplare e l’altro del circuito stam-
te fibre di vetro annegate in resine. Isolanti pato. Non basta naturalmente realizzare un
più pregiati e costosi sono disponibili per circuito stampato invece che un cablaggio
applicazioni ad alta frequenza ed alta tem- filo per avere buone prestazioni elettriche.
peratura. In ogni caso, sia le piazzole di Viceversa è necessario un accurato studio
connessione dei terminali dei componenti, del posizionamento dei componenti e delle
sia le connessioni tra di loro sono riportate interconnessioni.
su ogni layer con inchiostri resistenti alla Anche se questo processo è oggi grande-
corrosione. Il layer è poi esposto all’azione mente assistito da programmi su PC, an-
di agenti chimici che rimuovono il rame ri- che open source, il tempo richiesto è cer-
masto scoperto, lasciando le sole impronte tamente sensibile. Questo rende il circuito
di metallo richieste per le interconnessioni e stampato sicuramente la soluzione prefe-
le saldature, il “circuito stampato”, appun- ribile nel caso di produzione in più esem-
to. In generale, un’operazione di foratura è plari, piccole medie o grandi serie o quan-
poi necessaria per permettere l’inserimen- do siano necessarie buone caratteristiche
to dei componenti con terminale passante. elettriche in termini di basso rumore ed
Nel caso di un circuito a singolo layer, ove elevate frequenze operative. La robustezza
si utilizzino solo componenti a montaggio meccanica e la durabilità, unite all’aspet-
superficiale (smd), teoricamente la fase di to professionale nella realizzazione, certa-

12 • Elettronica & Maker n° 2 - 2018


Confronto tra le diverse tecniche costruttive, con vantaggi e svantaggi secondo il giudizio
soggettivo dell'autore

mente lo rendono molto attraente anche CONCLUSIONI


nel settore hobbistico. Dobbiamo notare Abbiamo visto alcune tra le principali tecni-
che componenti compatti come circuiti in- che costruttive di prototipi di circuiti elettro-
tegrati in contenitore Ball Grid Array sono nici alla portata di hobbisti e maker, cercan-
unicamente utilizzabili con tecniche circui- do di fare una classificazione che ne evidenzi
tostampato, non essendo accessibili benefici e svantaggi, aiutandoci così nella
i terminali. scelta della tecnica più adatta al circuito che
abbiamo in lavorazione.
PCB ‘DA ASPORTO’ Naturalmente questo non esaurisce l’argo-
Una variante della tecnica PCB, utile quan- mento, invitiamo anzi i lettori a descrivere le
do si lavori con soli componenti a montag- loro tecniche di realizzazione preferite. Notia-
gio superficiale, consiste nel partire da una mo che contaminazioni sono possibili e con-
piastra circuito stampato e realizzare attra- venienti tra una tecnica e l’altra. Ad esempio
verso fresatura le separazioni invece che le le connessioni punto-punto su una basetta a
connessioni, lasciando intatte aree di rame passo di foratura standard si prestano bene
su cui saranno poi saldati i componenti smd. per integrare circuiti stampati preesisten-
Questa tecnica è ben descritta nel tutorial di- ti, ad esempio Arduino e le sue schede di
sponibile in espansione, con circuiti disegnati ad hoc per
https://www.maximintegrated.com/en/ realizzare le funzioni di nostro interesse.
app-notes/index.mvp/id/1110 .

Elettronica & Maker n° 2 - 2018 • 13


Alimentiamo
Arduino a batteria
di Giovanni Carrera

g.carrera@elettronicaemaker.it

Spesso, per esigenze pratiche,


sentiamo la necessità di affrancare
il nostro progetto dai vincoli
L a capacità dei power bank, ormai
molto diffusi e reperibili anche a costi
bassi, è molto alta, comunemente mag-
imposti dai cavi d’alimentazione giore di 2000mAh, anche se alcuni co-
da rete. Una soluzione semplice struttori cinesi stampano valori poco ve-
ed economica è quella di usare un ritieri, come accade per le batterie in essi
‘mobile power bank’ per alimentare contenute.
Arduino o altri circuiti a 5v. Questo tipo di alimentazione è particolar-
mente adatto per sistemi portatili e molto
compatti, e fornisce un’autonomia di pa-
recchie ore. Io uso questi dispositivi già
da qualche anno.

IL POWER BANK
Esso serve per dare energia ai nostri
smartphone o tablet, quando hanno le
batterie scariche e non siamo vicino a
una presa rete. Questi dispositivi incor-
porano, in un piccolo volume, una o più
batterie ricaricabili ai polimeri di Litio, un
caricabatteria (da 5 V a 4,2V) e un alimen-

24 • Elettronica & Maker n° 2 - 2018


tatore switching step-up per produrre i 5V 1 o 2 A, ormai diventato uno standard per
in uscita dai 3,6-3,7 V della batteria. La i telefoni cellulari e tablet di recente ge-
figura 1 mostra lo schema funzionale di nerazione.
un tipico power bank.Normalmente esso Solitamente essi sono forniti di uno o più
è dotato di due connettori USB femmina: cavetti per adattarsi ai cellulari e tablet,
un’uscita di tipo A per alimentare il cellu- tipicamente con connettore USB micro o
lare o tablet e uno di tipo micro USB per con standard IPhone. Col cavetto termi-
caricare la batteria interna, a esso si con- nante con USB micro, possiamo alimen-
nette un normale alimentatore a 5-5,5V da tare diverse schede, tra cui Arduino Due,
Yun e Teensy. Arduino Nano richiede un
connettore USB mini mentre per Arduino
Uno occorre un comune cavo USB A/USB
B, tipo quello usato per le stampanti.
In molti casi tutto è fatto da un solo circu-
ito integrato che richiede solo pochi altri
componenti. Le immagini di figura 2 mo-
strano lo schema e l’aspetto di un power
bank realizzato con il chip HT4921.
Questo circuito, che ho trovato nei si-
Figura 1: Schema funzionale del power bank stemi più economici, ha qualche difetto.

Elettronica & Maker n° 2 - 2018 • 25


Dopo diverso tempo di inutilizzo, la bat- acquisita già da qualche anno, posso
teria si scarica completamente, diventan- suggerire di utilizzare preferibilmente
do spesso non più ricaricabile. Questo è quelli che hanno un interruttore di alimen-
dovuto al fatto che esiste una corrente di tazione, possibilmente non elettronico.
auto-scarica non tanto della batteria ma Costano di più ma non hanno un auto-
degli stessi circuiti, in alcuni casi ho mi- consumo che riduce notevolmente l'auto-
surato fino a 2 mA. Occorre sapere che nomia della batteria.
le batterie agli ioni di litio non devono Molti power bank, solitamente quelli più
essere scaricate completamente, come performanti, hanno anche un sistema
quelle al piombo. Altrimenti intervengono di autospegnimento: si spengono dopo
fenomeni elettrochimici irreversibili e si qualche decina di secondi se il consumo
deve sostituire la batteria. Per risolvere il è al di sotto di una certa soglia. Questo
problema io ho dovuto modificare alcuni purtroppo diventa un difetto se alimen-
power bank economici, come quello esa- tiamo circuiti che consumano solo pochi
minato, inserendo un interruttore esterno, milliampere, quindi, dobbiamo scegliere
in serie alla batteria. quelli privi di autospegnimento per ali-
Con l'esperienza d'uso dei power bank mentare circuiti a basso consumo.

Figura 2 Schema e aspetto di un tipico power bank

26 • Elettronica & Maker n° 2 - 2018


Figura 3 Esempio di caricabatteria a 1 cella al litio

SE NON CI SERVONO I 5 VOLT corrente. Se volessimo ridurre la corren-


Per motivi di risparmio energetico, oggi te massima di carica occorre rimuovere
molti sistemi a microcontrollore sono ali- questo resistore e sostituirlo con uno di
mentati a tensioni più basse, valore tipico maggiore resistenza secondo la formula:
3,3 V. In questo caso basta usare un mo- RPROG =R4 = VPROG●1200/ IB =1200/ IB
dulo caricabatteria per batterie agli ioni di Dove R4 è la resistenza di programmazio-
litio e una batteria di adeguata capacità. ne in ohm, la corrente IB è in ampere e
La figura 3 mostra lo schema e l’aspetto VPROG = 1V. Nella foto, questo resistore
di un tipico esempio di questi caricabat- è vicino al bordo sinistro, in centro.
teria. Il chip TP4056 è un carica batteria Il pin 1 dovrebbe essere collegato a un
adatto per una singola cella agli ioni di termistore NTC a contatto della batteria,
litio. Esso è di tipo lineare a corrente co- ma qui non è usato. Ci sono due led di
stante, nella fase di carica iniziale, e pas- stato: quello collegato al pin 7 (CHRG)
sa a tensione costante a 4,2 V nella parte ha l’intensità luminosa proporzionale alla
finale. Il resistore R4 regola la corrente di corrente di carica e si spegne alla fine e
carica, per R4=1,2k come da schema, si l’altro led (STDBY) si accende a fine cari-
raggiunge una corrente ideale di carica di ca e la mantiene. Se la batteria è assente
1 A, in realtà ci sono problemi dissipativi o difettosa o se la tensione in ingresso è
se la batteria richiedesse a lungo questa troppo bassa, entrambi i led sono spenti.

Elettronica & Maker n° 2 - 2018 • 27


che ha una tensione di drop-out di soli
210 mV a 500mA di corrente. Lo sche-
ma di figura 4 è un esempio applicativo
di questo regolatore. Io già da qualche
anno preferisco usare le batterie agli ioni
di litio e litio polimero (LiPo) per alimen-
tare i miei sistemi, sono più leggere di
quelle NiMH (nichel metal-idrato), di se-
guito alcune caratteristiche positive:
• non hanno memoria chimica;
• hanno una densità energetica elevata;
Figura 4: Schema di alimentazione con • non perdono carica alle basse tempe-
batteria a 3,3 V rature e hanno poca autoscarica;
• possono erogare forti correnti di sca-
Questo circuito ha un’uscita che varia da rica;
3,7V (scarica) a 4,2V (carica batteria). I • si caricano in tempi relativamente
circuiti a 3,3V, solitamente, non accettano brevi.
questi valori, per cui è necessario usare Naturalmente hanno anche degli aspetti
un regolatore a bassa caduta, detto LDO negativi:
(Low Drop Out) che accetti in ingresso • richiedono un caricabatteria più com-
tensioni di questi valori, ossia anche con plesso;
soli 300 mV di caduta. La maggior par- • richiedono circuiti di protezione abba-
te dei regolatori LDO con uscita a 3,3V stanza sofisticati, spesso incorporati
sono fatti per lavorare con 5 V in ingres- nel pacco batteria perché misurano
so e non funzionano con cadute inferiori anche la temperatura delle celle;
al volt. • non devono scaricarsi completamen-
Io ho utilizzato il chip smd MCP1825S-3302 te;
• costi relativamente maggiori.
Il fatto che ormai sono diffusissime su
molti dispositivi portatili come cellulati,
tablet, computer laptop, elettro-utensili,
evidenzia che i pregi sono superiori ai di-
fetti.
Figura 5 - Esempio di circuito di protezione per Per applicazioni dove si richiede una
due celle. notevole energia accumulata come ad

28 • Elettronica & Maker n° 2 - 2018


traddistinti da ulterio-
ri sigle, ha due soglie,
una di sovra-tensione e
una di sotto-tensione al
di fuori di queste sono
aperti i rispettivi mo-
sfet. Per esempio il chip
MM3220H03NRH ha una
soglia superiore di 4,25V
e una inferiore di 3,20 V
(per ogni cella), con iste-
Figura 6: Esempio di circuito di protezione per due celle. resi e ritardi noti.
Il circuito si collega, per
esempio veicoli elettrici, mezzi di solle- esempio, con due batterie tipo 18650 (18
vamento etc., sono ora disponibili batte- mm di diametro e 65 di lunghezza) come
rie al litio-ferro-fosfato (LiFePO4 ). in figura 7. Esistono numerosi chip di
protezione adatti per una o più celle.
CIRCUITI DI PROTEZIONE DELLE Alcuni sono in grado anche di misurare e
BATTERIE AL LITIO controllare la corrente di carica e la tem-
Per le considerazioni viste è bene pro- peratura delle batterie, mediante termi-
teggere le batterie con appositi circuiti. stori. Questi sono solitamente usati nei
Nei battery pack spesso sono già pre- pacchi batterie dei computer.
senti questi circuiti. Essi proteggono le
batterie ricaricabili agli ioni di litio o ai
polimeri di litio da tensioni eccessive di
carica e di scarica scollegando le batte-
rie mediante i mosfet a canale N.
Un tipico circuito di protezione per due
celle è quello di figura 5. Nel circuito sono
usati due chip, ciascuno dei quali ha due
mosfet messi in parallelo per aumenta-
re la corrente, e il costruttore indica 3 A
come corrente massima sopportata.
In figura 6 è mostrato lo schema elet- Figura 7 - Collegamento del circuito di
trico Il chip MM3220, nei vari tipi con- protezione.

Elettronica & Maker n° 2 - 2018 • 29


Gestire segnali I.R. con
Java e Arduino
di Emanuele Paiano
e.paiano@elettronicaemaker.it

Molti sistemi di domotica, fanno


uso di apposite interfacce
hardware/software, che
I n questo articolo, verrà esposto un pro-
getto basato su Arduino e su una libreria
Java, per consentire la gestione di segnali
consentono la connessione di infrarossi, oltre che l'eventuale elaborazio-
vari dispositivi ad un sistema di ne all'interno di uno o più thread Java. In
elaborazione centrale, come ad questo modo, si potrebbe pensare all'inte-
esempio un sistema embedded o grazione di tale applicazione all'interno di
un apposito server che ne permette una comoda interfaccia basata su Swing/
la supervisione da remoto. AWT, JavaEE oppure su un'applicazione
In alcuni casi, si sente la necessità Android.
di interfacciare con tali sistemi,
anche dispositivi non smart, dotati STRUTTURA DEL PROGETTO
della sola interfaccia ad infrarossi, Il progetto è composto da due parti, come
la quale permette la ricezione dei illustrato in Figura 2:
comandi inviati da un telecomando. • un modulo hardware formato da un sen-
sore e un trasmettitore IR, gestiti da un
microcontrollore (come Arduino), che si
occupa di inviare o ricevere i segnali IR
in base ai comandi ricevuti sulla porta
seriale;
• un modulo software che si occupa di

30 • Elettronica & Maker n° 2 - 2018


MODULO HARDWARE
(IRDUINO)
Per tale modulo, verrà uti-
lizzato Arduino, noto mi-
crocontrollore low-cost
impiegato da molti maker
per la prototipazione rapi-
da di progetti homebrew.
L'idea generale consiste
nel combinare gli sche-
Figura 1: Prototipo del circuito completo. mi elettrici di due proget-
ti (reperibili su Adafruit e
far comunicare il microcontrollore con mostrati in seguito) per la ricezione e la tra-
l'applicazione, grazie ad un protocollo smissione dei segnali IR, tramite la libreria
(applicativo) realizzato ad hoc, il quale si IRLib2 di Chris Young, mentre lo sketch di
appoggia su un collegamento seriale di Arduino sarà realizzato con un protocollo
tipo Usb, Wifi o Bluetooth; ad hoc per la comunicazione con la com-
La componente software è composta dalla ponente software. Come vedremo dopo, la
futura applicazione Java, e dalla libreria che libreria Java mette a disposizione delle in-
si interfaccia con la componente hardware, terfacce per essere estesa e supportare al-
come mostrato in Figura 2: quest'ultima è tri tipi di sketch Arduino o librerie IR, grazie
composta dal microcontrollore, ricevitore e ai vantaggi offerti dalla programmazione a
trasmettitore ad infrarossi. oggetti.
Circuito di ricezione
La realizzazione di questo
circuito è piuttosto semplice:
nell'articolo originale, spiega
come collegare il ricevitore
TSOP38238, possiamo uti-
lizzare collegamenti analoghi
per altri tipi di ricevitori IR.
Solitamente, tali ricevitori di-
spongono di 3 pin:
• VCC, ossia il pin di ali-
Figura 2: Struttura del progetto mentazione che va collegato

Elettronica & Maker n° 2 - 2018 • 31


verso il diodo IR. Il collegamento avviene
nel modo seguente:
• la base del transistor va al pin 3 di Ardu-
ino, piazzando una resistenza nel mez-
zo;
• il collettore del transistor va al catodo
Figura 3: Il fotorecettore IR ed i rispettivi del diodo (ovvero al piedino più corto);
collegamenti • l'anodo del Diodo va collegato con il pin
5V di Arduino;
all'alimentazione o all'uscita 5V di Ardu- l'emettitore del transistor va al pin GND di
ino; Arduino.
• GND, ossia la massa che va collegata Tale collegamento è illustrato in Figura 4:
ad un'uscita GND di Arduino; se abbiamo collegato tutto a modo, è pos-
• OUT, ossia il pin su cui viaggiano i dati sibile verificare il funzionamento di entram-
in input al microntrollore, tale pin va col- bi i circuiti, facendo delle prove tramite gli
legato al pin 2 di Arduino. sketch di esempio presenti nella libreria
Il collegamento generale è illustrato in Fi- IRLib2. Maggiori dettagli si possono trova-
gura 3 ed è possibile trovare maggiori det- re nell'articolo originale di Adafruit (https://
tagli nell'articolo originale di Adafruit goo.gl/zcFBpj).
(https://goo.gl/HRyiZa). Nota: Collegando il circuito all'alimentazione a 5V
Circuito di invio (Vcc), sarebbe anche opportuno limitare la corren-
Tale circuito è leggermente più comples- te di picco del LED durante i periodi di conduzio-
so del precedente: in un primo momento ne del transistor. A questo scopo si può collegare
si potrebbe pensare di collegare il diodo
IR direttamente al pin del microcontrollore
ed inviare il segnale. Poichè i pin di I/O di
Arduino non sono in grado di erogare una
corrente sufficiente per poterli collegare di-
rettamente al diodo, è opportuno utilizzare
la linea di alimentazione a 5V di Arduino.
Nel prelevare tale tensione, si fa uso di un
transistor 2N2222, la cui base va collegata
ad un Pin 3 di Arduino tramite una resisten-
za da 470 ohm, ottenendo come risultato Figura 4: Il LED IR collegato mediante un
un interruttore che apre e chiude il circuito transistor 2N2222

32 • Elettronica & Maker n° 2 - 2018


una resistenza da 4,7 ohm 1/2W in serie a LED1 senza l'implementazione di un'apposita in-
Protocollo e Sketch terfaccia software che semplifichi l'utilizzo.
Realizzato e testato il circuito, si necessita
di un protocollo applicativo, ovvero un'in- MODULO SOFTWARE (JIRDUINO)
sieme di regole che stabiliscono i coman- A questo punto è possibile descrivere la li-
di che l'applicazione Java dovrà inviare al breria Java che mette a disposizione classi
microcontrollore, oltre alle risposte con- e metodi per interagire con il microcontrol-
tenenti l'esito delle operazioni. Per motivi lore, sfruttando il collegamento seriale.
di spazio, ci si limita alla sola descrizione La libreria in questione si chiama jIRDuino,
del protocollo, mentre lo sketch lo si può è ancora in via di sviluppo ma già utilizza-
scaricare già pronto da github all'indirizzo bile: attualmente è composta da diversi
https://goo.gl/3UxRmQ. package e classi, tra cui quelle per la con-
Per le istruzioni da inviare al microcontrol- versione dei segnali trasmessi da alcuni te-
lore, si è pensato di introdurre un set di lecomandi IR, oltre che le classi di base per
istruzioni con lo stesso numero di campi l'invio e la ricezione dei segnali. Per que-
separati da virgole, ovvero stioni di spazio, in questa sede verranno
opcode, param1, param2, param3 descritte solo le classi di base, con il solo
dove opcode rappresenta il codice dell'o- collegamento seriale tramite usb (jIRDuino,
perazione, mentre tutti gli altri sono i para- con l'aggiunta di alcune classi, supporta
metri che specificano gli argomenti. Nello anche collegamenti wireless con Arduino).
sketch sono presenti gli oggetti irSender e Chi non mastica Java, può saltare questa
irReceiver che rappresentano
rispettivamente il trasmetti-
tore ed il ricevitore infrarossi.
Dalla porta seriale vengono
lette le istruzioni che vengono
interpretate in modo tale da ri-
chiamare le rispettive funzio-
ni. Alcune di queste istruzioni
sono elencate in Tabella 1 e
si possono inviare aprendo il
monitor seriale dell'IDE di Ar-
duino, impostando la ricezio-
ne a 9600bps. Tuttavia tale
dispositivo è poco efficiente Tabella 1: Serie di istruzioni e azioni correlate

Elettronica & Maker n° 2 - 2018 • 33


parte e sfruttare alcune funzionalità tramite dicare il comando 0xE0E040BF;
irduino-tools: si tratta di un tool da riga di • un parametro bits che rappresenta il nu-
comando che implementa alcune funzioni mero di bit utilizzati dal protocollo spe-
di jIRDuino. cificato.
Segnali IR in Java Per esempio, per istanziare un oggetto
Sono rappresentati dalle classi racchiuse rappresentante il comando 0xE0E040BF
nel package org.jirduino.core, contenente: con protocollo NECx, si usa:
• la classe Signal che istanzia gli oggetti Signal poweroff=new Signal(Proto-
che rappresentano un generico segnale cols.NECx, "E0E040BF", 32);
IR; instanziando così l'oggetto poweroff che
• la classe Protocols che contiene delle può essere passato alla classe responsa-
costanti rappresentanti i vari protocolli bile per l'invio del segnale. Tale comando
(supportati da IRLib2). simula la pressione del tasto power su al-
Il costruttore della classe Signal, prevede cune TV Samsung.
tre parametri in ingresso: Nell'immagine di Figura 5 sono illustrate le
• un parametro id, ovvero un intero rap- interazioni tra le varie componenti hardwa-
presentante il tipo di protocollo utiliz- re e software.
zato, che può essere un campo della Invio e ricezione dei segnali
classe Protocols (come ad esempio Nel package org.jirduino.drivers si trova-
Protocols.NECx); no le entità coinvolte nella comunicazione
• un parametro value che rappresenta il con il microcontrollore: l'interfaccia IRDe-
comando esadecimale da inviare in for- vice che rappresenta il dispositivo IR su cui
mato stringa, ovvero E0E040BF per in- sono definiti i metodi principali come send-
Data() e receiveData();
la classe IRLib2Device
che rappresenta l'im-
plementazione con-
creta di IRDevice, la
quale comunica con
lo sketch descritto pri-
ma, il quale è basato
sulle librerie IRLib2;
la classe IRDriver-
Sample rappresenta
Figura 5: interazioni tra le varie componenti hardware e software. la struttura base una

34 • Elettronica & Maker n° 2 - 2018


ComLinkDevice por-
t=new ComLinkDevi-
ce(port, speed);

/* istanza */
IRDevice irDevi-
ce=new IRLib2Devi-
ce(port);

Figura 6: invio di un segnale IR /* apri la connes-


sione ad Arduino */
futura implementazione di un driver alter- irDevice.init();
nativo (come ad esempio, uno non basato ed inizializzarlo con il metodo init(). Un modo
su IRLib2 o uno che interagisca con altri alternativo per ottenere la porta, riguarda
sketch, protocolli o altri microcontrollori l'uso del metodo statico ComLinkDevice.
diversi da Arduino); Il costruttore dell'og- getPorts() che restituisce la lista delle porte
getto IRLib2Device (che è anche un og- disponibili sul sistema, mentre con Com-
getto IRDevice), richiede un parametro di LinkDevice.getPortByName(String name) è
tipo LinkDevice: consiste in un'interfaccia possibile ottenere il percorso completo (tra
(appartenente alla libreria SerialDuino - ht- quelle restituite da getPorts()) dando una
tps://goo.gl/sq5NJZ) che è estesa dalla stringa in input, come ttyUSB0 al posto di /
classe ComLinkDevice. dev/ttyUSB0.
Questa realizza un collegamento COM o Per l'invio del segnale, basta utilizzare il
USB tra l'oggetto di tipo IRDevice e Ardui- metodo sendData() e passare l'oggetto
no. Se ad esempio, si usa un sistema Linux poweroff istanziato precedentemente:
con Arduino connesso sulla porta /dev/ Signal poweroff=new Signal(Proto-
ttyUSB0, è possibile istanziare l'oggetto cols.NECx, "E0E040BF", 32);
IRDevice con irDevice.sendData(poweroff);
String port="/dev/ttyUSB0"; Una rappresentazione grafica della proce-
dura di invio è illustrata nella Figura 6.
/* Velocità porta */ Per la ricezione dei segnali, possiamo uti-
int speed=ComLinkDevice.BAUDRA- lizzare il metodo receiveData() dopo aver
TE_9600; abilitato il ricevitore con setReceiverE-
nabled():
/* creazione porta */ /* Attiva ricezione */

Elettronica & Maker n° 2 - 2018 • 35


irDevice.setReceiverEnabled(true); Adrs:0 (12 bits)
Decoded Sony(2): Value:5E6 Adrs:0
/* Attendi un segnale IR */ (12 bits)
Signal in=irDevice.receiveData(); Decoded Sony(2): Value:5E6 Adrs:0
(12 bits)
/* Stampalo sulla console */ o leggermenti differenti, in base al protocol-
System.out.println("Il segnale ri- lo utilizzato dal trasmettitore. Se viene re-
cevuto è "+in); stituito un segnale zero, allora il protocollo
il valore del comando ed il protocollo del utilizzato dal telecomando non è supporta-
segnale possono essere recuperati con i to da IRLib2 (quindi nemmeno da IRDuino).
metodi getValue() e getProtocol() della clas- In Figura 7 viene illustrata la procedura di
se Signal. Se il protocollo non è supportato ricezione di un segnale IR.
da jIRDuino, verrà restituito il segnale nullo Traduzione di segnali
(con tutti i valori impostati a zero). Un'altra interessante caratteristica di tale
È possibile fare una prova utilizzando il te- libreria, è la possibilità di ricevere un se-
lecomando della propria tv. Impostando la gnale in ingresso e tradurlo in un altro (an-
modalità sniffer, ed utilizzando il metodo che di protocollo differente). Ciò è permes-
waitResponse() in un ciclo, possiamo ve- so dalle classi definite nel package org.
dere tutti i comandi inviati dal telecomando jirduino.translators.
al televisore: SignalRule, rappresenta una regola di tra-
irDevice.setPassiveSnifferMo- duzione del segnale. Permette di associa-
de(true); re un segnale di ingresso a uno di uscita,
ovvero effettuare una traduzione. Inoltre
/* Attiva ricezione */ contiene il campo delay che specifica il
irDevice.setReceiverEnabled(true); numero di secondi in cui attendere prima

/* stampa su console i se-


gnali ricevuti */
while(true)
System.out.printl-
n(ir.waitResponse());
premendo i tasti sul telecoman-
do, si dovrebbero notare valori
del tipo
Decoded Sony(2): Value:1E6 Figura 7: ricezione di un segnale IR

36 • Elettronica & Maker n° 2 - 2018


dell'invio del segnale tradotto. questo sistema è possibile usare Arduino
SignalRuleTable permette di istanziare una come un bridge di protocolli, ovvero come
“tabella” contenente una lista di SignalRu- un “convertitore IR”, oltre che mappare e
le, ovvero una tabella delle traduzioni; convertire tutti i tasti di un telecomando
SignalConverter, è l'implementazione del non ufficialmente supportato dal disposi-
thread che, dopo aver ricevuto un segna- tivo IR (per esempio è possibile utilizza-
le in input, utilizzerà la SignalRuleTable per re il telecomando dell'impianto Hi fi sulla
la traduzione. Tale classe implementa l'in- vecchia TV). Sono comprese delle classi
terfaccia Runnable di Java, ed il rispettivo che permettono di automatizzare il tutto
oggetto istanziato, sarà passato al costrut- (come JSONController e JSONConverter
tore della classe Thread. del package org.jirduino.config), definendo
Un esempio d'uso di tali classi è illustrato due file di configurazione in formato JSON,
nel seguente codice: contenenti i rispettivi tasti del telecomando
IRDevice ir=new IRLib2Device(port); reale e di quello che si vuole emulare. Un
ir.init(); esempio di questo tipo è possibile veder-
lo nella classe ConverterController.java del
SignalConverter converter=new Si- package org.jirduino.demo.
gnalConverter(new SignalRule- Shell e prompt: irduino-tools
Table(),ir); Qualora non si abbia dimestichezza con
Signal source=new Signal(Protocols. Java, è possibile testare alcune le fun-
NECx, "E0E040BF", 32); zionalità descritte direttamente da shell,
Signal target=new Signal(Protocols. grazie ad un'implementazione di jIRDuino
NEC, "E13650AF", 32); chiamata irduino-tools. Si tratta di un file
jar eseguibile che, accettando i vari para-
converter.addRule(source, target); metri in input, permette di inviare, riceve e
converter.setDebugModeOn(true); convertire i segnali IR. La directory “data/”
contiene i vari file di configurazione in for-
Thread T1=new Thread(converter); mato JSON di alcuni telecomandi, mappati
T1.start(); e testati dall'autore del progetto.
in questo caso, il segnale 0xE0E040BF Lanciando irduino-tools senza argomenti,
trasmesso con protocollo NECx viene tra- si ottiene la guida con alcune opzioni:
dotto in un segnale 0xE13650AF che vie- -------------------------
ne ritrasmesso con protocollo NEC, ma è IRDuino Tools 0.9.5
possibile aggiungere altre regole di con- -------------------------
versione, grazie al metodo addRule(). Con

Elettronica & Maker n° 2 - 2018 • 37


Use: java -jar irduino-tools.jar for command value (i.e. E13650AF).
<command> <port> [parametres]
- port, arduino-connected serial
Available commands: port (i.e. /dev/ttyUSB0)
> show-protocols show suppor- Supponiamo di avere un sistema linux
ted protocols con Arduino collegato sulla porta /dev/
> send send IR com- ttyUSB0. Per inviare il comando 0xE-
mand 0E040BF con protocollo NECx, basta
> sniff receive and print lanciare irduino-tools seguito dall'opzio-
IR signals ne send, dal numero di protocollo (usia-
> generate-json generate mo 7 per NECx), dal comando da inviare
json config for IR controller e dal numero di bit previsti dal protocollo:
> probe-json probe exists # java -jar irduino-tools.jar send
json config, by key pressing /dev/ttyUSB0 7 E0E040BF 32
> convert-signal con- per ottenere la lista dei protocolli sup-
vert single signal between diffe- portati, si usa l'opzione show-protocols:
rent protocols # java -jar irduino-tools.jar
show-protocols
Run java -jar irduino-tools.jar Supported IR Protocols:
<command> for advanced help
mentre specificando un singolo coman- id 0 for Unknown Protocol
do, si ottiene la guida relativa al coman- id 1 for NEC
do: id 2 for Sony
# java -jar irduino-tools.jar id 3 for RC5
sniff id 4 for RC6
id 5 for PANASONIC_OLD
Use: java -jar irduino-tools.jar id 6 for JVC
send <port> <id> <value> <bits> id 7 for NECx
id 8 for SAMSUNG36
where: id 9 for GICABLE
- id, integer id for infrared pro- id 10 for DIRECT_TV
tocol (i.e. 1 for NEC). See Pro- id 11 for RCMM
tocol.java. id 12 for CYKM
Se si vuole ricevere dei segnali e stam-
- value, integer in hex format parli a schemo, si ricorre al parametro

38 • Elettronica & Maker n° 2 - 2018


sniff anzicchè send: target's protocol (e.g. 2 for Sony)
# java -jar irduino-tools.jar sniff <target hex>: IR command target's
/dev/ttyUSB0 protocol (e.g. A90)
premendo un tasto sul telecomando, do- <target bits>: IR bits target's pro-
vrebbero apparire i segnali IR ricevuti da tocol (e.g. 12)
Arduino:
Decoded Sony(2): Value:1E6 Adrs:0 per fare un esempio, è possibile tradurre
(12 bits) il segnale A86 con protocollo Sony, in un
Decoded Sony(2): Value:5E6 Adrs:0 segnale 0xE13650AF con protocollo NEC:
(12 bits) $ java -jar irduino-tools.jar con-
Decoded Sony(2): Value:5E6 Adrs:0 vert-signal /dev/ttyUSB0 2 A86 12 1
(12 bits) E13650AF 32
Per la conversione dei tasti, si ricorre premendo i tasti sul telecomando, dovreb-
all'opzione convert-signal: be apparire la conversione:
$ java -jar irduino-tools.jar con- SUCCESS => Received: (2, A86, 12)
vert-signal SUCCESS => (2, A86, 12) resolved to
(1, E13650AF, 32)
Use: java -jar irduino-tools.jar SUCCESS => Sent: (1, E13650AF, 32)
convert-signal <port> <source> e il dispositivo IR interessato dovrebbe ri-
<target> spondere alla ricezione del comando.

options list: CONCLUSIONI


Tale libreria ci consente di gestire i segnali
<source> := <source protocols> IR direttamente all'interno di un'applica-
<source command hex> <source bits> zione Java, rendendo possibile l'integra-
<target> := <target protocols> zione con framework come Spring, dando
<target command hex> <target bits> la possibilità di gestire i vecchi dispositivi
IR con comandi RESTful, funzionalità utile
<source protocols>: IR command per chi si occupa dello sviluppo di interfac-
source's protocol (e.g. 1 for NEC) ce IoT o domotiche.
<source hex>: IR command source's Inoltre grazie alle sue interfacce Java, è
protocol (e.g. E13650AF) possibile estenderla aggiungendo il sup-
<source bits>: IR bits source's porto per nuovi sketch, o addirittura è pos-
protocol (e.g. 32) sibile farla interagire con microcontrollori
<target protocols>: IR command diversi da Arduino.

Elettronica & Maker n° 2 - 2018 • 39


LOGIN su WEB
con un Pulsante

di Antonello Della Pia


a.dellapia@elettronicaemaker.it
SECONDA PARTE

Un dispositivo delle dimensioni di


una chiavetta USB, che tramite
un unico pulsante ed un firmware
P assiamo ora ad analizzare il codi-
ce del progetto. Per la scrittura e la
compilazione del programma è stato uti-
personalizzabile, ricorda ed lizzato il classico ambiente di sviluppo in-
inserisce per noi le credenziali di tegrato (IDE) di Arduino, versione 1.6.12.
accesso (nome utente e password) La scheda da installare e selezionare è
ai siti e servizi Internet preferiti. In "Adafruit Trinket 16MHz", programmato-
questa seconda parte ci occupiamo re "USBasp".
del software L'impostazione dei fuse per l' ATtiny85 è:
L:0xF1, H:0xD5, E:0xFE.
Lo sketch è abbastanza lungo anche se
non particolarmente complesso, ma com-
pletamente commentato, per cui rimando
al codice stesso (allegato all'articolo) per
una spiegazione dettagliata. Focalizzere-
mo qui invece l'attenzione sulle sezioni
più originali e specifiche del progetto.
Si nota per prima cosa che lo sketch è di-
viso in due file, Login_con_un_pulsante.
ino, file principale, e form_data.ino.
L'intenzione è di separare per così dire il

40 • Elettronica & Maker n° 2 - 2018


"motore del programma" dai dati, sem-
plificando il compito all'utente che debba char* tagStrings[]={ "Elettronica e Maker", "eBay", "Subito.it",
"PostePay", "Gmail (Chrome)" };
modificare o aggiornare successivamen-
te i dati inseriti. Il file principale inizia con byte tagsNumber = 5;
l'inclusione della libreria utilizzata, la de- …………………………………………………………..

finizione del ruolo dei pin, la dichiarazio-


void loop(){
ne delle variabili necessarie.
unsigned long currentSeconds = millis()/1000
Troviamo poi due elementi chiave, un Ar- waitForUnlock();
ray di stringhe ed una variabile contenenti TrinketKeyboard.poll();

rispettivamente i nomi assegnati ai siti a if (lockedDevice == false){


buttonState = digitalRead(PIN_BUTTON_FILL_FORM);
cui vogliamo accedere ed il loro numero.
if (buttonState == LOW && buttonPressed == false){
I dati riportati sono ovviamente di esem- buttonPressSeconds = currentSeconds;
pio e possono essere personalizzati a buttonPressed = true;

piacere. Dopo setup() che inizializza in formFilled = false;


digitalWrite(PIN_LED, HIGH);
particolare le funzionalità USB della li-
}
breria, la funzione loop() principale, dopo if (buttonState == HIGH && buttonPressed == true){
la chiamata alla routine di sblocco, è oc- if (formFilled == false){

cupata principalmente dal codice di ge- if(buttonPressCounter == tagsNumber){


buttonPressCounter = 0;
stione degli input dal pulsante. Grazie
}
all'uso della funzione Millis() di Arduino e delTag();
di opportune variabili, riusciamo a capi- typeTag(tagStrings[buttonPressCounter]);

re se il pulsante è premuto brevemente


delay(100);
oppure a lungo e ad effettuare quindi la
buttonPressCounter = buttonPressCounter + 1;
chiamata alla funzione incaricata di com- }else{
pilare il form di login (come se stessimo buttonPressCounter = 0;

scrivendo e inviando le sequenze di tasti }


}
desiderate digitando sulla tastiera), fil-
if (buttonPressed == true && currentSeconds ==
lForm(buttonPressCounter(), (Listato 1, a buttonPressSeconds + 2){
destra). delTag();

Le funzioni che seguono il loop() sono if (buttonPressCounter > 0){


fillForm(buttonPressCounter);
state create per facilitare l'uso dei metodi
}
esposti dalla libreria, evitando continue buttonPressSeconds = 0;
ripetizioni e rendendo il codice più line- }

are, intuitivo e leggibile. Troviamo quin- if (buttonState == HIGH){buttonPressed = false;}


}
di switchKeyboardLayout() che invia la
}

Elettronica & Maker n° 2 - 2018 • 41


combinazione di tasti per il cambio del- …………………………………………………………..
la lingua, typeTag(char Tag[]), delTag() e
typeString(char Str[]) che rispettivamente void waitForUnlock(){

scrivono e cancellano l'etichetta del sito


if (lockedDevice == true){
e scrivono il nome utente e la password,
pressENTER() e pressTAB() che simulano digitalWrite(PIN_LED, HIGH);
la pressione dei relativi tasti e waitFo- ledStateLast = TrinketKeyboard.getLEDstate();

rUnlock() che all'avvio rimane in attesa di


if (ledStateLast != ledState){
gestire la procedura di sblocco.
Quest'ultima è forse la funzione più in- ledState = ledStateLast;
teressante e si basa sul metodo Trin-
if (ledState == 2){
ketKeyboard.getLEDstate(), in grado di
restituire lo stato dei classici LED indi- unlockNumber = unlockNumber + 2;
catori previsti normalmente sulle tastiere
per dare conferma visiva dell'attivazione if (unlockNumber == 6){

delle funzioni BLOC NUM, BLOC SCORR,


lockedDevice = false;
BLOC MAIUSC tramite i tasti relativi. digitalWrite(PIN_LED, LOW);
TrinketKeyboard.getLEDstate() restitui- }
sce un intero il cui valore dipende dalla }
}
combinazione dei tre tasti, secondo la
}
seguente tabella, dove il colore giallo in- }
dica che il corrispondente LED è acceso: …………………………………………………………..
Possiamo vedere come l'attivazione del
solo BLOC MAIUSC restituisca il valore 2.

La funzione waitForUnlock()
(Listato 2) tiene conto del nu-
mero di pressioni del tasto
nella variabile unlockNumber
e quando il relativo valore arri-
va a 6 (2 x tre pressioni) sbloc-
ca il dispositivo. La scelta del
numero sei è del tutto arbitra-
ria. Sarebbe stato possibile
Tabella 1 implementare anche combina-

42 • Elettronica & Maker n° 2 - 2018


zioni di sblocco più complesse e sicure, digitalWrite(PIN_LED, LOW);
ma ho scelto di utilizzare solo BLOC MA- }
IUSC per la massima compatibilità con i }
}
PC portatili dove non sempre gli altri due
}
tasti sono presenti.Il secondo file dello }
sketch, form_data.ino, è popolato dalle …………………………………………………………..
funzioni che contengono i dati da inserire Listato 3

nei form di login, una funzione per ogni


void formOneData(){ // --- Elettronica & Maker ----
sito al quale si vuole accedere. typeString("username");
Abbiamo quindi formOneData(), form- pressTAB();
TwoData(), formThreeData() e così via (Li- typeString("password"); pressTAB();
pressTAB(); pressENTER();
stato 3).
}
La routine fillForm(byte formNumber) ha …………………………………………………………..
il compito di indirizzare le richieste trami-
te una struttura di controllo switch-case. void formFiveData(){ // ----- Gmail (Chrome)--------
typeString("email");
Naturalmente al posto di "username" e
pressENTER();
"password" dovremo inserire le stringhe delay(1000);
reali relative ai vari siti. Il numero delle switchKeyboardLayout();
battute TAB (pressTAB()) va trovato spe- typeString("password");
pressENTER();
rimentalmente la prima volta in quanto
}
non è sempre uguale. Per esempio, per …………………………………………………………..
il login a Elettronica & Maker serve un
TAB per passare dal campo Nome uten-
te al campo Password e poi due TAB per
spostarsi sul tasto Login e dare ENTER,
volendo saltare la casella Ricordami. Un IL FUNZIONAMENTO
caso particolare è l'accesso a Gmail, ar- E' finalmente il momento di spiegare cosa
ticolato su due pagine, dove è stato ne- fa esattamente il dispositivo e come lo fa.
cessario inserire un ritardo di un secondo Sul computer che ospiterà la chiavetta è
o più (delay(1000)) per dar modo di cari- necessaria un'unica configurazione (par-
care la seconda pagina prima di digitare liamo di ambiente Windows). Tramite pan-
la password. nello di controllo oppure impostazioni del-
Con un po’ di sperimentazione dovrebbe la barra della lingua se già presente (icona
essere comunque possibile accedere alla IT in basso a destra, vicino all'orologio) va
maggior parte dei siti (Listato 3). aggiunta la lingua inglese con layout di ta-

Elettronica & Maker n° 2 - 2018 • 43


stiera Stati Uniti. Verificare quindi di poter operi sempre…in inglese U.S. Funziona,
passare da una lingua all'altra premendo e l'operazione risulta trasparente per l'u-
alternativamente la combinazione di tasti tente. Dopo la configurazione della lingua,
predefinita ALT+SHIFT (a sinistra in basso inseriamo la chiavetta e lasciamo il tempo
sulla tastiera). al sistema operativo di riconoscerla ed in-
Dovreste vedere l'icona IT cambiare in EN stallarla. Dovremmo avere a questo punto
e viceversa ad ogni pressione. Lasciate IT il LED rosso acceso.
perché d'ora in poi il cambio ed il ripristi- Significa che il dispositivo è in attesa di
no dell'impostazione sarà fatto dal nostro essere sbloccato e la pressione del pul-
software. Le modalità di configurazione sante non provoca nessun effetto. Ho pre-
variano leggermente in base alla versio- visto una semplice sequenza di sicurezza
ne di Windows. Il test è stato effettuato su (eventualmente personalizzabile) in modo
vari PC con hardware differente e sistema che i dati di login non siano accessibili a
operativo Windows 7 e 10. Ho pensato di chiunque. Per lo sblocco, accertarsi che
ricorrere a questa procedura per aggirare BLOC NUM sia disattivato, quindi preme-
un limite evidenziatosi nella libreria utiliz- re e rilasciare tre volte di seguito il tasto
zata ed in altre simili che permettono di BLOC MAIUSC (dovrete vedere accender-
implementare tastiere virtuali, limite dovu- si e spegnersi tre volte di seguito il relativo
to al fatto che nel mondo esistono troppi indicatore). Il LED della chiavetta diven-
tipi di tastiera! Mi spiego meglio. La libreria ta blu. A questo punto consiglio di NON
TrinketKeyboard è stata sviluppata per ta- premere il pulsante a desktop vuoto o con
stiere con layout americano. Se la utilizzo eventuali programmi in esecuzione! Sa-
per inviare il simbolo @ (at) al mio PC italia- rebbe come mettersi a pestare a caso sul-
no, ottengo " (doppio apice), perché sulla la tastiera, con effetti sgradevoli e impre-
tastiera U.S. per scrivere @ devo premere vedibili! Aprite invece il browser preferito
SHIFT+2 che su quella italiana restituisce, e la pagina di login di (un esempio a caso)
appunto, ". Questo accade per molti altri Elettronica & Maker. Cliccate sul campo
tasti, basta confrontare le tastiere (5). "Nome utente o indirizzo email" in modo
Poiché sarebbe effettivamente proibitivo che il cursore lampeggi.
scrivere una libreria che riesca a mappare A questo punto, premendo brevemente e
tutti i layout di tastiera esistenti, ho pen- ripetutamente il pulsante, vedrete apparire
sato di demandare al software stesso il in sequenza i nomi di tutti i siti che avete
compito di cambiare la lingua di sistema aggiunto nello sketch. Arrivati a Elettroni-
prima dell'invio della sequenza voluta e ca & Maker, premete e tenete premuto il
ripristinarla dopo, in modo che la libreria pulsante e vedrete i campi riempirsi con i

44 • Elettronica & Maker n° 2 - 2018


dati preventivamente inseriti nello sketch, da eseguire, nella sua memoria non vo-
il cursore spostarsi ed il login avvenire au- latile. USBasp è il nome di un piccolo ed
tomaticamente. Nel frattempo il LED di- economico dispositivo USB dedicato alla
venterà rosso e potreste anche notare l'i- programmazione delle MCU AVR Atmel,
cona della barra della lingua passare da IT che tramite sei collegamenti (MISO, MOSI,
a EN e ritornare a IT. SCK, RESET, GND e VCC) può stabili-
re un'efficace comunicazione tra la MCU
NON SOLO ARDUINO: USBASP, FUSE, ed un software installato sul PC. Questo
ARDUINO SOFTWARE (IDE), SCHEDE, progetto OpenSource e gratuito si deve
LIBRERIE. a Thomas Fischl. Possiamo trovare infor-
Ritengo che dichiarare a questo punto mazioni, driver per la prima installazione e
conclusa l'analisi del progetto, ringraziare supporto sul suo sito (6). Programmatori
ed augurare buon lavoro non sia corretto. basati su questo progetto si possono ac-
Come anticipato, alcune conoscenze sono quistare per pochi euro in rete. E' previsto
state date per scontate. che l'utente programmatore della MCU
Chiudere a questo punto significherebbe possa personalizzare un certo numero di
precludere ai lettori che non possiedono parametri, uno dei principali è la frequen-
tali nozioni sia la possibilità di realizzare il za ed il tipo di clock, rispetto alle impo-
progetto che quella di comprenderlo ap- stazioni "di fabbrica", per adattarli alle ri-
pieno. Cercherò quindi di colmare le lacu- chieste del codice e del progetto. Un caso
ne con informazioni comunque utili a chi tipico è Arduino Uno, che lavora a 16MHz
volesse impegnarsi più a fondo nella spe- con cristallo esterno, mentre la MCU AT-
rimentazione con i microcontrollori. mega328P prevede di default il clock in-
Se vogliamo realizzare un progetto utiliz- terno alla frequenza di 8MHz. Per definire
zando il solo microcontrollore (MCU), sen- tali parametri dobbiamo necessariamente
za una scheda di supporto (per esempio settare i cosiddetti fuse, cioè caricare nel-
un ATtiny85 senza Trinket come nel nostro la parte di memoria preposta allo scopo
caso, oppure un ATmega328P senza Ar- degli opportuni valori esadecimali, tramite
duino Uno) per motivi di costo, ingombro, un software apposito ed un programmato-
prototipazione su breadboard o altro, ma re come USBasp.
utilizzando sketch o librerie destinate alla Nel nostro progetto, dobbiamo fare in
scheda originale, dobbiamo essere in gra- modo che l'ATtiny85 funzioni a 16MHz con
do di verificare ed eventualmente modifi- oscillatore PLL interno, come se fosse una
care la configurazione della MCU stessa scheda Trinket. Andando a "curiosare"
e di "caricare" il firmware, cioè il codice nei file di configurazione di quest'ultima

Elettronica & Maker n° 2 - 2018 • 45


scopriamo che i fuse da impostare sono: guiamo nell'ordine: selezioniamo dal menù
L:0xF1, H:0xD5, E:0xFE. a tendina il programmatore USBasp 1),
Un software a mio avviso efficace, pratico clicchiamo Detect, dovremmo ottenere il
e utile allo scopo è AVRDUDESS, che è in corretto riconoscimento del microcontrol-
realtà un'interfaccia grafica (GUI) per il più lore 2) 3) 4), sostituiamo i valori presenti
noto tool a linea di comando AVRDUDE, con quelli indicati 5), clicchiamo Write 6)
presente anche in Arduino Software (IDE). e verifichiamo nella finestra in basso 4) la
E' disponibile gratuitamente per il downlo- corretta scrittura dei fuse, nel qual caso il
ad sul sito (7). A questo punto, se abbiamo nostro dispositivo sarà pronto per il cari-
completato l'hardware del nostro proget- camento dello sketch. Inoltre, cliccando
to, installato correttamente un program- su Fuse settings 7) si aprirà la pagina Web
matore USBasp, collegato il cavetto rela- relativa ad un configuratore online utilissi-
tivo e installato il software AVRDUDESS, mo per comprendere ed esplorare il mon-
aprendo quest'ultimo dovremmo vedere do dei fuse 8). Una cosa molto utile che
una schermata simile a quella di Figura 6: AVRDUDESS ci permette di fare con faci-
Per ottenere il risultato raffigurato, ese- lità, grazie all'interfaccia grafica, è la let-

Figura 6: GUI di AVRDUDESS

46 • Elettronica & Maker n° 2 - 2018


tura, ma soprattutto la scrittura di firmwa- una nuova cartella assegnandole il nome
re. Si trovano spesso progetti per i quali Portable e verifichiamo che il programma
viene fornito il file del firmware in formato si apra regolarmente. In caso affermati-
nomefile.hex. Se non siamo interessati a vo, abbiamo appena creato una versione
modificare o visualizzare il sorgente, cari- "portatile" di Arduino Software (IDE), una
cando semplicemente questo file (sezione modalità di lavoro poco conosciuta che
Flash – Write – Go) avremo la nostra MCU permette di avere tutti i file necessari in
programmata e funzionante. Dopo aver un'unica cartella indipendente che pos-
stabilito una comunicazione efficace con siamo spostare o copiare dove vogliamo e
la MCU, passiamo ad occuparci dell'am- che non interferisce con eventuali altre in-
biente integrato di sviluppo, cioè Arduino stallazioni e versioni del programma. Una
Software (IDE). Possiamo scaricare l'ultima volta completata la configurazione, potre-
versione del file Windows Zip dal sito (9) e mo riservare questa copia alla gestione
decomprimerla, per esempio sul desktop. del nostro progetto, tenendola eventual-
Nella cartella principale (quella che con- mente al riparo da occhi indiscreti, visto
tiene l'eseguibile Arduino.exe) creiamo che lo sketch contiene le nostre preziose

Figura 7: Arduino Software (IDE) installazione schede

Elettronica & Maker n° 2 - 2018 • 47


Figura 8: Elenco schede compatibili con Arduino Software (IDE)

Figura 9: Aggiunta URL pacchetto schede Adafruit

48 • Elettronica & Maker n° 2 - 2018


Figura 10: Installazione schede Adafruit

password. Con il programma chiuso, co- ries (contenuto in sketchbook) la cartella


piamo nel folder sketchbook (contenuto in TrinketKeyboard, la libreria utilizzata, en-
Portable), la cartella Login_con_un_pulsan- trambe allegate al progetto. Non rimane
te, contenente lo sketch e nel folder libra- ora che installare il pacchetto di supporto

Figura 11: Selezione della scheda e del programmatore

Elettronica & Maker n° 2 - 2018 • 49


Figura 12: Apertura dello sketch del progetto

Figura 13: Salvataggio e caricamento dello sketch

50 • Elettronica & Maker n° 2 - 2018


per la scheda Adafruit Trinket. Cliccare su CONCLUSIONI
File – Impostazioni, quindi su 1) e sul link Questa lunga esposizione illustra una so-
2). Si aprirà una pagina Web contenente luzione non convenzionale di gestione
un elenco (in continuo aumento) di schede delle password e del login sul Web. Ci ha
"di terze parti", cioè schede non ufficiali, permesso, come valore aggiunto, di appro-
cloni, o basate su hardware diversi, com- fondire alcuni aspetti della sperimentazio-
patibili con l'ambiente di programmazione ne con microcontrollori la cui conoscenza
di Arduino, che necessitano perciò dell'in- si dà spesso per scontata, che vanno oltre
stallazione di file specifici. il classico utilizzo di Arduino, pur essendo
Cerchiamo (Vedi Figura 8) e copiamo il link ad esso collegati. Sicuramente la realizza-
al pacchetto Adafruit 1) e (Figura 9) incol- zione è più complessa del semplice affi-
liamolo (CTRL+V) nello spazio apposito 1). darsi alla "memoria" del browser o del sito,
Confermiamo cliccando 2), 3). Riapriamo ma la sicurezza è maggiore, l'uso possibile
il Gestore schede (Figura 10) (Strumenti su più computer, e poi … vogliamo mette-
– Scheda – Gestore schede), ricerchiamo re il divertimento?
Adafruit 1), evidenziamo 2) e installiamo
3) Adafruit AVR Boards e confermiamo 4). LINK UTILI
Selezioniamo (Figura 11) la scheda "Ada- 1) https://www.adafruit.com/
fruit Trinket 16MHz" 1) e il programmatore 2) https://learn.adafruit.com/trinket-usb-key
"USBasp" 2). Apriamo lo sketch del pro- board?view=all
getto 1) (Figura 12), inseriamo i dati come 3) https://www.obdev.at/products/vusb/in-
precedentemente spiegato (nome e nu- dex.html
mero dei siti, nome utente e password, 4) http://www.beyondlogic.org/usbnutshell/
TAB) nel file principale e nel file form_dati. usb1.shtml
Salviamo (Figura 13) le modifiche 1) e cari- 5) https://en.wikipedia.org/wiki/Keyboard_
chiamo infine lo sketch 2). layout
Se avete avuto la pazienza di arrivare fin 6) http://www.fischl.de/usbasp/
qui e tutti i passaggi sono andati a buon 7) http://blog.zakkemble.co.uk/avrdu-
fine, siete pronti per collaudare la chiavet- dess-a-gui-for-avrdude/
ta e per piegare al vostro volere schede e 8) http://www.engbedded.com/fusecalc
microcontrollori. Troverete tutto il materia- 9) https://www.arduino.cc/en/Main/Software
le scaricabile utilizzando il pulsante a de-
stra a fondo pagina.
Buon login automatico a tutti!

Elettronica & Maker n° 2 - 2018 • 51


Capacimetro Digitale
con Arduino
di Stefano Lovati
s.lovati@elettronicaemaker.it

Questo progetto si rivolge non


soltanto a chi muove i primi
passi nell’affascinante mondo
I condensatori (di qualunque tipo, dimen-
sione o capacità essi siano) sono dei
componenti elettronici sempre presenti in
dell’elettronica, ma anche a un qualunque laboratorio dilettantistico e
chi desidera dotare il proprio praticamente in ogni progetto. Se per al-
laboratorio di uno strumento utile, cuni tipi (soprattutto gli elettrolitici) l’indi-
semplice da costruire e facile da viduazione del valore di capacità nominale
usare. Il progetto prevede infatti risulta abbastanza agevole, per altri mo-
la realizzazione di un economico delli di dimensioni più ridotte (si pensi ai
capacimetro digitale, con uscita ceramici o ai poliestere di piccolo valore) la
su display LCD e facilmente situazione si complica e la lettura del valo-
espandibile con l’introduzione della re a occhio nudo può risultare difficoltosa.
funzionalità autorange Inoltre, capita spesso di avere tra le mani
condensatori recuperati da precedenti
progetti, con diciture poco comprensibili e
di cui si vuole determinare con sufficien-
te precisione il valore di capacità. Lo stru-
mento che ci viene in aiuto per soddisfare
queste richieste è il capacimetro, magari
meno attraente dell’oscilloscopio ma sicu-
ramente altrettanto utile. Vediamo in que-

52 • Elettronica & Maker n° 2 - 2018


sto articolo come realizzare un capacime- caduta sulla scheda Arduino (modello
tro DIY basato su Arduino e con uscita su Uno rev. 3 o similari), una piattaforma di
display LCD. Il progetto proposto prevede prototipazione rapida largamente diffu-
inizialmente un’unica gamma di misura, sa e particolarmente semplice da pro-
ma come vedremo più avanti può essere grammare. Arduino dispone inoltre di
facilmente modificato ed esteso includen- un ambiente di sviluppo integrato (IDE)
do più gamme di misura. liberamente utilizzabile, che consente
di creare, compilare e scaricare sulla
IL PROGETTO board il programma (sketch) senza bi-
Lo schema a blocchi del capacimetro, visi- sogno di utilizzare un programmatore;
bile in Figura 1, comprende tre componenti • un display LCD 16x2 con interfaccia pa-
principali: rallela. Anche in questo caso siamo di
• un microcontrollore (MCU) sul quale fronte a un “classico” componente che,
viene eseguito il programma che cal- nonostante sia stato ormai soppiantato
cola il valore della capacità incognita e in molte applicazioni dai display gra-
gestisce la visualizzazione dei dati sul fici ad alta risoluzione, è solitamente
display. La scelta del dispositivo è ri- presente tra il corredo di componenti

Prototipo del capacimetro digitale durante una sessione di misura

Elettronica & Maker n° 2 - 2018 • 53


di ogni maker. Utilizzeremo la versio-
ne standard parallela del componente
(quindi non quella dotata di interfaccia
I2C), programmata tramite l’apposita
libreria LiquidCrystal già incorporata
nell’IDE Arduino;
• il circuito di misura (o, come si usa dire,
di condizionamento del segnale), rap-
presentato da un tradizionale circuito
RC serie. Figura 2: circuito serie RC per la carica di un
Oltre ad Arduino Uno e al display LCD, gli condensatore
altri componenti elettronici richiesti per la
realizzazione del progetto sono rappresen- millefori e includere il tutto in un comodo
tati da resistenze e materiale vario per re- contenitore.
alizzare i collegamenti (cavetti jumper/Du-
pont, boccole oppure pinzette a banana). PRINCIPIO DI FUNZIONAMENTO
Il prototipo del circuito è stato assemblato Anche se non è nostra intenzione annoiare
utilizzando una normale breadboard, men- troppo il lettore con formule matematiche
tre per la versione finale (tenendo conto più o meno complesse, dobbiamo richia-
che le tensioni e frequenze in gioco sono mare qualche semplice nozione di fisica (o,
bassissime) si può allestire una basetta più precisamente, di elettrotecnica) riguar-
dante il processo di carica di un conden-
satore. Si consideri a questo proposito il
circuito rappresentato in Figura 2, in cui il
condensatore C fa parte di un circuito RC
serie in cui, all’istante iniziale t0, viene ap-
plicata una tensione continua VCC. Inizial-
mente la carica accumulata dal condensa-
tore è nulla, ma questa (come la tensione ai
capi dello stesso) comincia a crescere non
appena la corrente fluisce nel circuito. Più
precisamente, la tensione VC ai capi del
condensatore varia nel tempo in funzione
di VCC, R e C secondo una legge espo-
Figura 1: schema a blocchi del circuito nenziale espressa dalla seguente formula

54 • Elettronica & Maker n° 2 - 2018


(si osservi la Figura3):

VC = VCC (1 – e-t/RC)

Il prodotto di R per C (RC) è la nota


“costante di tempo”, spesse volte in-
dicata anche come “tau” (τ). Il nume-
ro irrazionale “e” (noto anche come
numero di Nepero) è la base dei loga-
ritmi naturali e il suo valore è appros-
simativamente pari a 2,7182818284. Figura 4: andamento percentuale della tensione sul
Supponiamo ora di volere determina- condensatore in funzione del tempo
re il valore della tensione sul conden-
satore in un preciso istante di tempo, pari a 63,2% della tensione del generato-
ad esempio quando t è esattamente pari re utilizzato per eseguire la carica. Questo
alla costante di tempo RC. Eseguendo la valore è molto importante per i nostri sco-
sostituzione nella formula precedente, ot- pi, in quanto sarà proprio questa la formu-
teniamo: la impiegata per eseguire il calcolo della
VC = VCC (1 – e-RC/RC) = VCC (1 – e-1) = 0,63212 capacità incognita. Ovviamente è altresì
VCC = 63,2% VCC possibile calcolare il valore della tensione
Abbiamo così determinato che per t ugua- sul condensatore in corrispondenza di altri
le a τ la tensione sul condensatore è circa istanti di tempo, ottenendo un diagramma
simile a quello riportato in Figura 4. Il prin-
cipio utilizzato per eseguire la misura è a
questo punto facilmente comprensibile. In
pratica si utilizza un circuito RC serie com-
posto da una resistenza di valore noto R e
dal condensatore la cui capacità è incogni-
ta. Il circuito RC viene caricato utilizzando
un pin di I/O di Arduino programmato come
uscita, mentre la tensione ai capi del con-
densatore viene misurata tramite un canale
del convertitore analogico-digitale di Ardu-
Figura 3: andamento della tensione durante ino. Quando il valore letto dal canale ADC
la carica del condensatore raggiunge la soglia (numerica) corrispon-

Elettronica & Maker n° 2 - 2018 • 55


stesso o generare fastidiosi fenomeni di
sfarfallio. Nella Figura in apertura d'artico-
lo possiamo osservare il prototipo del ca-
pacimetro digitale, con la visualizzazione
prodotta a seguito della misura di un con-
densatore da 1 µF.

CIRCUITO DI MISURA
Lo schema del circuito RC utilizzato per la
misura è visibile in Figura 5. La tensione
Figura 5: circuito RC utilizzato per la misura utilizzata per la carica (+V) corrisponde alla
della capacità tensione di +5 V prelevata dai connettori
della board Arduino. La resistenza di carica
dente al 63,2% della tensione di carica il R ha valore noto (nel nostro caso è pari a
processo di carica viene interrotto, viene 10 kΩ), mentre la capacità di C rappresenta
letto il tempo T trascorso dall’inizio della l’incognita da calcolare. L’uscita viene ap-
carica e viene calcolato il valore della ca- plicata all’ingresso analogico A0 di Ardui-
pacità incognita CX applicando la formula: no: la lettura del valore prodotto dal con-
vertitore analogico-digitale ci consentirà di
CX = T / R determinare con esattezza il momento in
cui interrompere la carica (corrispondente
Dove CX è espresso in Farad, T in secon- al 63,2% di +V). Il metodo descritto sfrutta
di e R in Ohm. Eseguito il calcolo di CX, si la possibilità di Arduino di configurar i pin
provvede ad eseguire la scarica del con- di I/O in due stati distinti:
densatore tramite un altro pin di I/O di Ar-
duino (configurato come uscita e attivato
al valore logico basso) e una resistenza da
220 Ω. Il processo di scarica si può ritene-
re completato quando la lettura dell’ADC
restituisce il valore numerico 0. Le fasi di
carica, misura e scarica del condensatore
si ripetono in modo perpetuo. La visualiz-
zazione del valore di capacità sul display
LCD viene eseguita ogni secondo, in modo Figura 6: ingressi e uscite del circuito di
da non sovraccaricare eccessivamente lo misura

56 • Elettronica & Maker n° 2 - 2018


• stato di ingresso (configurabile tramite
il comando pinMode(pin, INPUT): il pin
si porta in uno stato di alta impedenza,
isolandosi quasi completamente dal re-
sto del circuito (la resistenza corrispon-
denza è molto elevata e quindi il pin
praticamente non assorbe corrente);
• stato di uscita (configurabile tramite il
comando pinMode(pin, OUTPUT): il pin
si porta in questo caso in uno stato di Figura 8: possibile soluzione per ampliare il
bassissima impedenza, in cui può forni- numero di gamme di misura
re fino a 40 mA di corrente di source (nel
caso di tensione positiva) o di sink (nel sa) per scaricare il condensatore. Il circuito
caso di tensione negativa). di misura, con evidenziati i collegamenti
I pin possono poi essere configurati nel- richiesti con la scheda Arduino, è visibile
lo stato logico alto (HIGH, corrispondente in Figura 6. Lo schema logico utilizzato nel
alla tensione di +5 V) per eseguire la carica programma (sketch) Arduino è articolato
del condensatore, oppure nello stato logi- sui seguenti passi:
co basso (LOW, corrispondente alla mas- • il pin di scarica (D6) viene configurato

Figura 7: esempio di output della misura prodotto su linea seriale

Elettronica & Maker n° 2 - 2018 • 57


come ingresso, in modo tale da non in- • il condensatore viene scaricato nel
terferire durante il processo di carica modo seguente:
del condensatore; 1. il pin di carica viene configurato come
• viene memorizzato il tempo, in millise- ingresso;
condi, di inizio del processo di carica 2. l pin di scarica viene configurato come
(tramite chiamata alla funzione millis()); uscita e impostato allo stato logico bas-
• il pin di carica (D7) viene configurato so;
come uscita e impostato allo stato lo- 3. l’ADC viene continuamente monitorato:
gico alto; quando la lettura è pari a 0, il condensa-
• viene continuamente monitorata la let- tore può essere ritenuto scarico.
tura del convertitore A/D, fino a quando • Il ciclo riparte con una nuova misura.
questa raggiunge un valore corrispon-
dente al 63,2% della tensione totale; COLLEGAMENTI ELETTRICI
• si determina (per differenza rispetto al I collegamenti elettrici diventano partico-
tempo corrente ottenuto sempre con la larmente semplici se, almeno per la realiz-
chiamata alla funzione millis()) il tempo zazione del prototipo, si utilizzano una bre-
totale richiesto dal processo di carica; adboard e cavetti jumper. Il display LCD
• il tempo totale di carica viene diviso per deve essere corredato del relativo pin hea-
il valore della resistenza di carica R, ot- der con connettore femmina.
tenendo il valore di capacità incognito; I collegamenti tra Arduino e il display LCD
• la misura di capacità viene emessa in sono riassunti nella seguente tabella: Per
modo continuo su linea seriale e visua- la regolazione del contrasto del display
lizzata ogni secondo sul display LCD; LCD occorre utilizzare un trimmer poten-
ziometrico da 10 kΩ. I termina-
li esterni vanno collegati a +5
V e GND, mentre il terminale
centrale va collegato al pin VO
del display LCD. Per attivare la
retroilluminazione (vivamente
raccomandata) occorre inserire
una resistenza da 220 Ω tra il pin
A del display e +5 V. Per quanto
riguarda il circuito di misura ri-
Tabella 1: elenco dei collegamenti tra la scheda Arduino e portato in Figura 6, i collegamen-
il display LCD ti da eseguire sono i seguenti:

58 • Elettronica & Maker n° 2 - 2018


• il pin di carica va collegato al pin D7 63,2% del full scale. Il valore di capacità mi-
di Arduino; surato viene dapprima convertito in micro
• il pin di scarica va collegato al pin D6 Farad: se il valore ottenuto è troppo picco-
di Arduino; lo, si provvede a convertirlo in nano Farad.
• l’uscita del circuito di misura va col- La procedura di visualizzazione sul display
legata al pin A0 di Arduino (ingresso ADC). LCD (outputLCD()), oltre al valore numerico
La resistenza R dovrebbe avere un valore da visualizzare, riceve come parametro una
più preciso possibile, quindi utilizzare pos- variabile che indica se la misura è espressa
sibilmente un componente con tolleran- in µF oppure in nF: nel primo caso, infatti,
za bassa. Eventualmente si può misurare occorre visualizzare il simbolo “micro” che
il valore di R a temperatura ambiente con richiede un trattamento particolare in quan-
un multimetro e ,se differisce sensibilmen- to non è compreso nell’alfabeto tradiziona-
te dal valore nominale di 10 kΩ, inserirne le ma nella tabella dei codici estesa (codice
il valore “cablato” nello sketch (variabile 0xE4 per l’esattezza).
resistorValue, attualmente posta uguale a In Figura 5 abbiamo visto un esempio di
10000.0F). output della misura sul display, mentre in
Figura 7 possiamo osservare un esempio di
IL PROGRAMMA output prodotto su linea seriale.
Lo sketch allegato all’articolo è liberamente
disponibile per il download al link indicato RANGE DI MISURA
a fondo articolo. Non ci soffermiamo molto Il circuito proposto nell’articolo dispone di
sulla descrizione del programma, in quanto un’unica scala di misura, determinata dal
è facilmente comprensibile e ampiamente valore della resistenza R, pari a 10 kΩ.
commentato. Una nota può riguardare la Per aumentare il range di misura dello stru-
soglia in corrispondenza della quale la cari- mento si possono prevedere delle scale ad-
ca va interrotta. Come si può dedurre ana- dizionali, inserendo altri valori di resisten-
lizzando il codice, questa soglia corrispon- za, ad esempio più piccoli di R, in modo da
de al valore 647 letto dall’ADC. poter misurare la capacità anche dei con-
Arduino dispone infatti di un convertito- densatori molto piccoli. Una possibile solu-
re ADC con risoluzione su 10 bit, pertanto zione per espandere le gamme di misura è
le letture dal medesimo saranno compre- mostrata in Figura 8.
se tra 0 e 1023 (210-1). Il valore 1023 (full In questo caso si utilizzano tre valori diffe-
scale dell’ADC) corrisponde alla tensione renti di resistenza (R1, R2 e R3) collegate
di riferimento (+5 V nel nostro caso) e, di a tre distinti pin di carica sulla scheda Ar-
conseguenza, 648 corrisponde a circa il duino (ad esempio D7, D8 e D9). La sele-

Elettronica & Maker n° 2 - 2018 • 59


zione di una tra le N resistenze disponibili IL PROTOTIPO
può poi essere eseguita a livello hardware Il prototipo è stato realizzato utilizzando
(ad esempio tramite dei jumper) oppure a una breadboard per il posizionamento dei
livello software. Nel secondo caso bisogna componenti discreti e cavetti jumper per
avere l’accortezza di mantenere attivo solo collegare tra loro le varie parti del progetto.
un pin di carica per volta, mentre gli altri Poichè l’assorbimento dell’intero sistema
andranno posti nello stato di alta impeden- (LCD incluso) è contenuto, l’alimentazione
za. Inoltre, cambierà il valore di resistenza può essere fornita direttamente dal cavo
da utilizzare nella formula di calcolo della USB della scheda Arduino collegato a un
capacità. La soluzione migliore in assoluto adattatore di rete o alla presa di un compu-
sarebbe quella di implementare una funzio- ter. Il prototipo è visibile in Figura 9.
ne di autorange, in grado di commutare au-
tomaticamente, volta per volta, sulla scala CONCLUSIONI
più adatta a eseguire la misura. Abbiamo visto in questo articolo come con
Chiaramente questa soluzione comporta pochi componenti di facile reperibilità sia
un aumento della complessità soprattutto a possibile realizzare un capacimetro digita-
livello software e potrebbe, eventualmente, le con indicazione della misura su display
essere oggetto di un progetto futuro. LCD. Il progetto può essere perfezionato
ed ulteriormente espanso aggiungendo
ulteriori gamme di misura, come indica-
to nell’articolo. La programmabilità resa
possibile dall’impiego di Arduino consen-
te inoltre di implementare una funzionalità
autorange, che al momento viene lasciata
come sviluppo futuro del progetto origina-
le. Come ulteriore documentazione allegata
al progetto riportiamo in Figura 10 lo sche-
ma dei collegamenti relativi al display LCD
16x2. Le connessioni sono quelle standard
previste dalla libreria LiquidCrystal.

Figura9: il prototipo assemblato

60 • Elettronica & Maker n° 2 - 2018


Figura 10: collegamenti tra Arduino e display LCD

Sono Stefano, nato a Milano nel 1963. Dopo aver


conseguito la laurea in Ingegneria Elettronica al
Politecnico di Milano, ho iniziato la mia attività
lavorativa come sviluppatore firmware e software.
Nel corso degli anni ho vissuto e "cavalcato" la
progressiva trasformazione del mondo embedded,
dai primi microprocessori a 8 bit programmabili
esclusivamente in assembler ai più recenti Soc,
FPGA, DSP e logiche programmabili con prestazioni e caratteristiche di
assoluto rilievo. Mi interesso di tecnologia ed elettronica a 360°, dedicando
parte del mio tempo libero allo studio di nuovi componenti e alla realizzazione
di piccoli progetti.

Elettronica & Maker n° 2 - 2018 • 61


Il Mio Primo
PCB
di Girolamo D'Orio
g.dorio@elettronicaemaker.it
PRIMA PARTE

Una guida alla creazione del


Circuito Stampato, che tratta le fasi
principali del procedimento di auto
costruzione di un PCB,utilizzando
H o deciso di scrivere questa guida per
permettere a chiunque, hobbista o
maker, che non si fosse mai cimentato in
attrezzature non professionali proposito, di realizzare dei PCB(Printed
reperibili ovunque. Circuit Board, o Circuito Stampato) a livel-
lo domestico. La prima domanda che ci
si deve porre è: Perché realizzare un PCB
Home-Made?
In questo articolo mi rivolgo a chi, anco-
ra oggi, continua a simulare la creazione
di circuiti stampati con vari “escamota-
ge” che per molti aspetti, oltre ad essere
poco pratici ed ingombranti, in alcuni casi
rischiano di compromettere il buon funzio-
namento dei circuiti stessi e possono an-
che rappresentare una perdita di tempo.
Scrivo soprattutto ai molti Maker che per
raggiungere il proprio obbiettivo insisto-
no, a forza di Shield uno sopra l’altro, nel
costruire una specie di “tramezzino” sopra

62 • Elettronica & Maker n° 2 - 2018


l’amata BreadBoard (qualunque sia...). Mi che a chi usa le basette mille-fori, dove le
rivolgo anche a chi “svolazza” tra un mo- piste di collegamento vengono realizzate
dulo e un altro con i collegamenti in aria con lo stagno, sfidandolo ed invitandolo, in
tramite fili, ponticelli e quant’altro, inseren- termini di tempo,ordine e pulizia, a realiz-
do alimentatore, scheda, moduli et similia, zare un pcb vero e proprio!
finché la propria realizzazione diventa un
groviglio inaudito, incomprensibile a chiun- MISSIONE PCB!
que, progettista compreso. Mi rivolgo an- Oggi, tramite servizi disponibili su web,
abbiamo la possibilità di
inviare il disegno del no-
stro PCB ad aziende che
con mezzi altamente
professionali , con una
spesa che generalmen-
te si aggira intorno a 50
euro, in meno di un mese
ci spediscono il circui-
to stampato realizzato,
pronto all’uso, completo
di foratura, soldermask
Quale dei due preferite? Lo stesso progetto, provocatoriamente a etc. etc, perfetto e pron-
confronto. In alto la versione prototipale, realizzata su breadboard. to da saldare ma...”cosi
In basso quella definitiva realizzata su stampato a singola faccia, sono capaci tutti!”...
con le dimensioni di un pacchetto di sigarette. Entrando nel dettaglio:
spendiamo circa 50 euro
per farci arrivare n copie
di un PCB entro un mese
(mentre ce ne serve uno
solo), quando con una
cifra più o meno simile
possiamo crearceli da
soli, con delle attrezza-
ture che nella maggior
parte dei casi abbiamo
già. Una volta sostenu-

Elettronica & Maker n° 2 - 2018 • 63


te queste prime spese, un PCB ci costerà libreria del componente che intendete uti-
un quinto! Cosa ci occorre quindi? Dove lo lizzare. Vi pare poco? Per esperienza per-
possiamo trovare, spendendo il meno pos- sonale vi posso dire che è un aspetto da
sibile? Come realizziamo il tutto? Sarà faci- non sotto valutare. Il programma è sempli-
le? Difficile? Impossibile? ce e intuitivo, offre numerose possibilità di
Certamente la fase di inizio facile non lo costruzione, che nell’uso scoprirete e non
sarà, ma certamente non impossibile. Con ci metterete molto a muovere i primi passi
questa guida vi prometto che sarete in gra- tra le diverse voci dei menù. In che modo
do di realizzare, complice un po’ d’espe- faremo uscire il nostro disegno dal PC per
rienza, anche dei circuiti a doppia faccia andare a realizzare il nostro primo PCB?
che saranno in grado di ospitare compo- La tecnica che vi propongo per realizzare
nenti SMD con package ostici come i TQFP PCB amatoriali, è quella della fotoincisio-
e DFN (parlo per esperienza personale. ne. In cosa consiste? Come si attua? Cosa
Sono un’Hobbista anch’io, non credete? occorre? La prima cosa importante è rea-
Ritenete impossibile saldare componenti- lizzare un master (il disegno del PC nel mi-
stica in smd con saldatore a stilo? Guarda- glior modo possibile, con i mezzi che ab-
te qui. Ma andiamo per gradi. biamo a disposizione.

IL SOFTWARE IL MASTER
Per prima cosa, occorre disegnare un PCB; Tutti certamente abbiamo almeno una
sul web ci sono molti software, professio- stampante a getto di inchiostro, anche
nali e non, con l’unica pecca della licenza modesta. Far uscire da tale stampante un
onerosa…. In fondo siamo hobbisti e tro- nero assoluto, che non permetta il passag-
vare qualcosa di gratuito, magari senza li- gio di luce non è facile; a questo proposito
mitazioni, aiuterebbe. Su questo ci viene in sarebbe meglio utilizzare una stampante
soccorso il software messo a disposizione laser o altre stampanti specifiche. Per in-
da RS. Il programma si chiama DesignSpark tenderci, dobbiamo arrivare ad un risultato
ed è scaricabile gratuitamente da qui dopo di stampa che garantisca livelli di anneri-
una registrazione sicura. Il software è gra- mento equivalenti a quelli riscontrabili sulle
tuito e non ha limitazioni di utilizzo, viene pellicole radiografiche o, meglio, su quelle
mantenuto continuamente aggiornato, le fotomeccaniche usate in fotolitografia.
librerie sono piuttosto complete e, inseren- Vediamo invece come ci si può avvicinare
do i codici d’ordine dei componenti, acqui- alla condizione di nero assoluto utilizzando
stabili sempre su RS, non avrete limiti nel una normalissima stampante a getto di in-
suo utilizzo; in pochi secondi troverete la chiostro. I classici fogli bianchi formato A4

64 • Elettronica & Maker n° 2 - 2018


ster, come il mio nome e il titolo del proget-
to. Tali iscrizioni ci fanno comodo anche
in questa fase di realizzazione: se stiamo
commettendo un errore nell’atto di sovrap-
porre i tre master, le scritte lo evidenziano
in modo particolarmente efficace. Riferen-
dosi solo a piste e piazzole, è più difficile
notare l’eventuale errore. Un paio di foto di
esempio nelle Figure 3 e 4 saranno d’aiu-
to per meglio comprendere il concetto. In
Figura 4 è illustrato il master creato con la
sovrapposizione dei medesimi. Con l’aiuto
di un normale nastro adesivo trasparente
applicato ai lati li sovrapponiamo. Come
vedete in questa foto, la pellicola traspa-
Figura 2: film utilizzato per la stampa ink-jet rente non fa passare la luce dove è stata

non vanno bene, ci occorrono fogli traspa-


renti gelatinati che siano idonei al tipo di
stampante ink-jet utilizzata. Nel mio caso,
per esempio, uso quelli rappresentati in Fi-
gura 2, che hanno un certo costo ma sono
veramente di qualità elevata.
Prima di tutto occorre impostare la stam-
pante in modo che stampi con la massi-
ma qualità, in modo da erogare più inchio-
stro possibile. Non trascurate la velocità di
stampa: selezionando la modalità più lenta
avremo un risultato migliore. Tutti questi
accorgimenti non sono comunque suffi-
cienti, nonostante queste impostazioni,
per avere un buon master per il nostro sco-
po. La mia tecnica è di stamparne tre copie
e di sovrapporle con precisione assoluta. Figura 3: stampa del circuito riprodotta tre
Inserisco sempre delle scritte nei miei ma- volte su unico foglio

Elettronica & Maker n° 2 - 2018 • 65


inchiostrata. Usando comunque un solo te con la bomboletta, non abbiamo mai la
foglio, noterete sempre, nelle aree o sulle percezione esatta della quantità di fotore-
piste, piccoli difetti di omogeneità dell’in- sist effettivamente applicata sulla lastra di
chiostro. Per il nostro scopo questo costi- rame. Per ovviare almeno a questo incon-
tuirebbe un vero problema. Ora abbiamo veniente, è sempre possibile ricorrere a ba-
un buon master, ma per proseguire ci oc- sette pre-sensibilizzate industrialmente con
correranno una basetta trattata con fotore- fotoresist positivo, come quelle reperibili su
sist positivo e un bromografo. Il fotoresist web cliccando qui. Così facendo abbiamo
(positivo o negativo) è una vernice foto- uno standard a disposizione, ed una vol-
sensibile, solitamente agli ultravioletti. Più ta trovato il giusto tempo di esposizione
avanti, in questo articolo, vedremo in det- non avremo nessun problema nel ripetere
taglio come funziona. il procedimento con i medesimi parametri
espositivi. Comunque, per chi volesse spe-
IL FOTORESIST rimentare anche la tecnica dello spray, tale
Trattare le basette con fotoresist spray non prodotto è reperibile qui. Il vantaggio di uti-
è una cosa banale come può sembrare. Po- lizzare la versione a spruzzo è quello di poter
tete essere bravi e precisi quanto vi pare, acquistare basette non trattate, che costa-
ma non riuscirete mai ad applicare ogni no meno e che, in caso di errore di sviluppo,
volta uno strato identico alle precedenti. si possono ritrattare con il medesimo spray,
Quindi, lo vedremo in seguito, la durate del per poi riutilizzarle. Consiglio sempre di pre-
tempo di esposizione non sarà mai la me- stare attenzione al suo utilizzo e di leggere
desima. Perché? Spruzzando manualmen- attentamente la scheda di sicurezza.

IL BROMOGRAFO
Il bromografo: cos’è,
come lo possiamo costru-
ire? Per chi non fosse un
amante del bricolage o del
fai da te esiste sempre la
possibilità di acquistarlo
già costruito qui.
Da veri Maker però, si può
costruire facilmente; molti
Figura 4: il master realizzato mediante la sovrapposizione di tre usano come contenitore
repliche identiche dello stesso tracciato un vecchio scanner. Nel

66 • Elettronica & Maker n° 2 - 2018


mio caso, per esempio, ho realizzato un posita soluzione alcalina. Il master non fa
contenitore in legno. Dalle foto probabil- altro che proteggere dalla luce le superfici di
mente non si vede, ma sopra i tubi è pre- fotoresist positivo destinate a rimanere sul-
sente un vetro trasparente, distante pochi la lastra; è quindi facile comprendere come,
centimetri. dopo la fase di sviluppo, la parte coperta
Perché ci serve il bromografo e da cosa è dalle parti in nero rimarrà disegnata dal-
composto? la basetta, a protezione del rame. Questa
1. Una serie di tubi fluorescenti a luce ul- parte di fotoresist impedirà alla soluzione
travioletta di incisione di attaccare e rimuovere il rame
2. Un timer sottostante, lasciando le nostre preziose
Il bromografo serve per esporre la basetta piste. Precedentemente vi avevo citato il
alla luce ultravioletta, in modo da trasferi- tempo di esposizione. Anche se la parte
re il disegno dello stampato sulla basetta nera del master copre il fotoresist destina-
stessa. Il fotoresist positivo è sensibile alla to alla permanenza, utilizzare tempi troppo
parte ultravioletta dello spettro luminoso: lunghi potrebbe compromettere l’integrità
quando viene esposto a questa luce, diven- del tracciato, erodendolo. Viceversa, un
ta solubile e nella successiva fase di svilup- periodo di esposizione troppo breve non
po potrà facilmente essere rimosso dall’ap- permetterebbe alla soluzione di sviluppo di

Figura 5: il bromografo in fase di costruzione, ricavato da una una scatola in legno

Elettronica & Maker n° 2 - 2018 • 67


rimuovere il fotoresist tra una traccia e l’al- 4m e 45s, un valore ricavato dopo innume-
tra, rischiando di “incollare” le tracce e di revoli prove, anche se tale durata potrebbe
creare corto circuiti non desiderati . anche non essere ottimale nel vostro caso,
Occorre trovare, appunto, il giusto com- potrebbe essere necessario addirittura di-
promesso. Dato che ci sono molti fattori mezzarla o raddoppiarla poiché, come si
che influenzano la durata dell’esposizione, diceva in precedenza, dipende tutto dall’in-
come per esempio la distanza tra la basetta tensità effettiva della sorgente luminosa e
e i tubi, la potenza dei tubi stessi e etc. etc. dal bromografo utilizzato. Dove possiamo
occorrerà fare delle prove sacrificando una reperire il materiale necessario? I tubi UV
scheda. Il procedimento è semplice. Fate che vi consiglio sono da 8W e devono es-
un master di prova, dove sono disegnate li- sere associati ai rispettivi reattori e starter,
nee di diverso spessore. di potenza adeguata. Non utilizzate reattori
Come primo approccio lasciate perdere li- non idonei, di potenza maggiore, in quan-
nee di 0,1 mm, sono un traguardo ambizio- to ridurreste soltanto la vita utile dei tubi.
so per chi comincia, a tale risoluzione arri- Li potete trovare presso qualsiasi negozio
verete con l’esperienza. che vende materiale elettrico per impianti,
Con un cartoncino scuro coprite parti di altrimenti qui. Il collegamento è semplice
questo master (chiaramente posizionato anche per i neofiti, come si vede in Figura 6.
sulla basetta pre-sensibilizzata) e fate espo- Il passo successivo è il taglio. Potete pro-
sizioni di 1, 2, 3, 4 minuti, traslando il car- cedere come preferite con quello che avete,
toncino di conseguenza. un seghetto da ferro va benissimo. Io uso
Dopo averlo sviluppato e inciso con le due un seghetto alternativo elettrico, con lama
soluzioni, sarete in grado di valutare auto- da ferro. L’unica accortezza e quella di non
nomamente il miglior tempo di esposizione. tagliarlo a misura precisa del master, ovve-
Avrete dei risultati da “linea di massima”e ro “a filo”. Perché? Vicino ad i bordi, un po’
in seguito, stampando altri pcb, affinerete di luce UV riesce quasi sempre a passare,
la tecnica andando a correggere lievemente quindi rischiereste di compromettere le pi-
questo tempo. La prima volta si può iniziare ste che si avvicinano molto al bordo.
anche senza timer oppure con qualche con- Lasciate 2-3 mm di margine in più, sarete
gegno riciclato, ma se avete notato un parti- sempre in tempo a eliminarli dopo l’incisio-
colare nel master nelle foto precedenti, nella ne. Prendiamo la basetta pre-sensibilizzata
prossima puntata ne realizzeremo uno: un e rimuoviamo delicatamente la pellicola pro-
Timer regolabile con display a 7 segmenti, tettiva che la ripara dalla luce. Una precisa-
con conto alla rovescia molto preciso! zione è d’obbligo: anche se non ci troviamo
Il tempo di sviluppo che adotto è di circa nella condizione di chi sta lavorando con

68 • Elettronica & Maker n° 2 - 2018


Figura 6: Semplice schema di collegamento tra tubo, starter e reattore

Legenda schema di collegamento protettiva di uno smartphone, per intender-


A = Tubo U.V. ci. Anche in questo caso le scritte ci saran-
B = Ingresso AC 220 V no d’aiuto; disegnate precedentemente al
C = Starter (include D ed E) PC a rovescio, adesso le dovremo leggere
D = Interruttore a ionizzazione correttamente, altrimenti il tracciato risul-
E = Condensatore di soppressione terà capovolto! Cerchiamo di posizionare la
F = Filamenti di riscaldamento scheda in modo simmetrico rispetto ai tubi,
G = Reattore in modo che possa ricevere un’esposizione
omogenea. Attiviamo il timer che provve-
una pellicola fotografica, che richiederebbe derà a spegnere le luci secondo le indica-
la camera oscura, è bene non esporre per zioni assegnate dalla prova di esposizione.
troppo tempo la basetta pre-sensibilizzata Se non possedete un timer o dubitate del-
a fonti luminose, specie se naturali, per non la sua precisione, cronometrate e gestite
rischiare di compromettere la qualità del la- manualmente le luci. Nella seconda parte
voro. A questo punto applicare il master sul dell'articolo, sul prossimo numero, ci oc-
pcb, fissandolo alle estremità con il nastro cuperemo di tutte le fasi relative al "dopo
trasparente. L’importante è che aderisca esposizione.
perfettamente alla basetta, dovrà essere Fine Prima Parte
steso come se si trattasse della pellicola

Elettronica & Maker n° 2 - 2018 • 69


Rilevatore Ultrasonico del

Livello dei Liquidi


di Angelo Lezza
a.lezza@elettronicaemaker.it
SECONDA PARTE

Un economico sistema di
rilevazione elettronica del livello dei
liquidi di un serbatoio,
N el precedente articolo avevo presen-
tato un circuito minimale, ancora in
fase embrionale, per la realizzazione di un
che nasce come soluzione ad un Rilevatore Ultrasonico del livello di liquidi
fastidioso problema personale di un serbatoio. La versione iniziale preve-
deva infatti l’utilizzo di un microcontrollore
PIC16f877 a 8 bit che a dire il vero, oltre ad
essere sin troppo performante quantomeno
dal punto di vista del numero dei pin a dispo-
sizione (40 pin totali – di cui n. 33 per porte
logiche), presenta un package di dimensioni
più che “ingombranti” per una applicazione
del genere ove, invero, viene effettivamente
richiesto un numero ridotto di porte logiche.
Il motivo che mi aveva spinto ad implemen-
tare tale configurazione era legato al fatto
di poter contare sull’utilizzo di una scheda
di sviluppo che uso spesso - Development
Board pic16f877 - reperibile in commercio
al costo di circa 10 Euro, che mi consente
di poter eseguire le fasi di debug del codice

70 • Elettronica & Maker n° 2 - 2018


assembly senza dover necessariamente re- due microcontrollori molto simili, tanto da
alizzare prima, e modificare poi, il prototipo. essere documentati dalla casa costruttrice
In questi due mesi ho però avuto più tem- Microchip nello stesso datasheet, i concetti
po per poter testare il firmware del pic e, base indicati nella prima parte dell’articolo
avendo superato la fase di debug ed otte- valgono ovviamente anche per questa se-
nuto esiti in tal senso positivi, ho disegnato conda parte.
il PCB con alcune piccole modifiche e mi- Le impostazioni principali del software ri-
gliorie al circuito, che di seguito vi illustro. mangono infatti invariate, occorre sempli-
La prima modifica che vorrei proporvi è quel- cemente fare attenzione alla configurazione
la di effettuare una migrazione tra microcon- dei registri delle porte logiche e all’eventua-
trollori: rimuovere il Pic16F877 inserendo il le differente utilizzo delle stesse; per il resto
fratello minore, ossia il Pic16F876, che pur quanto già esposto rimane valido! Ma an-
avendo la medesima potenza di calcolo e diamo con ordine ed analizziamo lo sche-
molti altri elementi in comune col primo, ha ma elettrico dello stadio microcontrollore,
dimensioni decisamente più ridotte: 28 pin come osservate in Figura 1.
contro i 40 del fratello maggiore. Essendo i Come potete notare la scheda del micro-
controllore è rimasta
più o meno la stessa
ad eccezione di alcu-
ne lievi modifiche che
di seguito sintetizzo:
1. Sostituzione del
microcontrollore, a
seguito delle motiva-
zioni indicate in pre-
messa;
2. Rimozione di due
resistenze da 330
ohm poste ai capi
degli indicatori Led;
3. Inserimento dei
condensatori a mas-
sa, sui pin del quarzo
del micro;
Figura 1: Schema circuito stadio microcontrollore Dallo schema potete

Elettronica & Maker n° 2 - 2018 • 71


anche notare l’inserimento di un connettore
per comunicazioni SPI, utile nel caso in cui
si volessero trasmettere eventuali dati attra-
verso dei moduletti wi-fi. Tale circostanza è
stata per il momento accantonata, seppur
non definitivamente esclusa per il futuro,
stante che i moduletti che avrei voluto uti-
lizzare sono giunti dal mercato orientale mal
funzionanti e tutto ciò non mi ha consentito
di testarli così come avrei voluto. Pur tutta- Schema circuito stadio riduttore/
via lascio nel PCB tale predisposizione, non stabilizzatore di tensione da 12 volt a 5 volt
si sa mai… Tra le modifiche più significative
al circuito elettronico vi è quella della im- sori. Tale decisione dipende dal fatto che
plementazione di un ulteriore stadio di ali- l’alimentazione stabilizzata a 5 volt riveste
mentazione (riduttore/stabilizzatore di ten- particolare importanza non solo per il circu-
sione), composto da un 7805 e pochi altri ito elettronico in sé, ma anche e soprattut-
componenti annessi, il quale mi consente di to per il modulo A/D del PIC il quale, come
alimentare la scheda direttamente a 12 volt. ricorderete, viene direttamente alimentato
Il riduttore infatti ha appunto il compito di dalla medesima tensione del circuito. Infatti,
ridurre la tensione di ingresso dai 12 volt ini- per la conversione A/D, mi sono avvalso (e
ziali e stabilizzarla ai 5 volt necessari al fun- a maggior ragione anche adesso mi avval-
zionamento del microcontrollore e dei sen- go) della possibilità di utilizzare la tensione
di riferimento interna al microcontrollore e
compresa tra Vss (0 volt) per
–VREF e VDD (5 volt) per +VREF, stante che
le prove effettuate in tal senso mi consento-
no una accettabile stabilità.

NUOVA CONFIGURAZIONE DELLE


PORTE DEL MICROCONTROLLORE E
PCB
La sostituzione del microcontrollore mi ha
permesso di realizzare un PCB di dimensio-
ni più ridotte (circa 58 mm x 58 mm) e dal
Rendering 3D del circuito costo più contenuto.

72 • Elettronica & Maker n° 2 - 2018


mittente)
RB1 = uscita alta – Led Giallo (troppo pie-
no = oltre il limite – allarme - suono buzzer
intermittente)
RB0 = uscita alta – Led Verde (situazio-
ne ideale – contenuto recipiente = 20% -
100%);
RC1 = TRIG > HC – SR04
RC2 = ECHO > HC – SR04
RC0 = Controllo per comunicazioni SPI
RC3 = SCK per comunicazioni SPI
PCB con serigrafia componenti RC4 = SDI per comunicazioni SPI
RC5 = SDO per comunicazioni SPI
Il nuovo PIC 16F876 viene utilizzato nella RC6 = Controllo per comunicazioni SPI
medesima configurazione del Pic16F877 RC7 = Controllo per comunicazioni SPI
ma le porte logiche impegnate con queste
modifiche risultano le seguenti: CONCLUSIONI
RA0 = AN0 – Porta analogica per conv. A/D Rimango a disposizione per eventuali chia-
sensore LM335 - temperatura rimenti che potrete eventualmente richie-
RB2 = uscita alta – Led Rosso (troppo vuo- dermi tramite il portale www.elettronicae-
to = 0 – 20% – allarme - suono buzzer inter- maker.it o tramite e-mail.

Lati superiore e inferiore del PCB

Elettronica & Maker n° 2- 2018 • 73


Robot
Antropomorfo V2.0
di Giuseppe La Rosa
g.larosa@elettronicaemaker.it

Questo articolo è la revisione


2.0 di uno dei miei progetti più
seguiti: un robot antropomorfo.
E sistono molti dispositivi simili in com-
mercio: perché proporne un altro an-
cora? Perché questo progetto si realizza
In questa nuova versione viene con un metodo innovativo che riduce qua-
controllato da computer attraverso si a zero l’impegno necessario alla realiz-
un’interfaccia USB. Il braccio è in zazione della parte meccanica e permette
grado di afferrare piccoli oggetti a chiunque di costruirsi un piccolo robot
disposti entro un raggio di circa antropomorfo, spendendo una cifra mo-
20 cm, i movimenti sono attuati desta.
tramite servomotori per modellismo In questo articolo spiegheremo come re-
pilotati da una scheda con un alizzare semplicemente questo braccio
ATMEGA328P, che colloquia con meccanico (figura 1) pilotabile da PC, ca-
il programma di controllo installato pace di sei diverse articolazioni.
nel PC.Il software può comandare E’ composto da una parte elettromecca-
il robot tramite tastiera, mouse o nica per eseguire i singoli movimenti, una
joystick. scheda di interfacciamento al PC e di un
software di controllo. Nel corso dell’arti-
colo descriveremo come realizzare le sin-
gole parti e come assemblarle nel modo
più semplice possibile.

74 • Elettronica & Maker n° 2 - 2018


IL CIRCUITO ELETTRICO lo spunto, potrebbe accadere di avere cali
I sei servocomandi e il LED situato vicino la temporanei di tensione in grado di produr-
pinza vengono gestiti da Arduino UNO, un re errori di trasmissione. Per alimentare i
ATMEGA328P (IC2), ed il circuito che ne ri- servocomandi e ovviare ai cali di tensione
sulta è molto semplice, come visibile nello improvvisi sono stati aggiunti condensatori
schema elettrico di figura 2. elettrolitici: C10, C11, C16 e C17. Il circuito
La scheda, deve essere alimentata con un è predisposto per il collegamento alla porta
semplice alimentatore stabilizzato da 2000 seriale del PC dalla quale riceve i coman-
mA in grado di erogare una tensione di 5 di per lo spostamento dei servocomandi e
volt. Il connettore J9 serve per la program- l’accensione o spegnimento del LED colle-
mazione In Circuit ed è utile per caricare il gato su connettore J7 l’ATMEGA328P che
Bootloader di Arduino UNO. Poiché i servo- deve solo interpretare i comandi in standard
comandi assorbono molta corrente durante RS232 e generare i segnali elettrici secondo
il formato previsto per i servocontrolli (con-
nessi ai connettori J1 a J6). Ai pin 11 (RX),
12(TX) e 15 (GND), originalmente destinati al
circuito integrato IC1 (non più utilizzato).
Al suo posto è stato connesso un conver-
titore USB a seriale UART (livelli 0 e 5 volt).
Sullo schema elettrico visibile in Figura 2
sono stati evidenziati (area grigia) tutti i com-
ponenti che non devono più essere installati
sulla scheda.

LA MECCANICA
Per realizzare la struttura meccanica abbia-
mo utilizzato quattro servocomandi qualsi-
asi, di tipo standard con ingranaggi in me-
tallo. Per costruire la chiusura e apertura e
la rotazione della pinza, abbiamo scelto due
mini servocomandi standard.
In questo modo si ottengono cinque gradi
di libertà, più un sesto movimento dedicato
alla presa degli oggetti. La struttura mecca-
Figura 1: Foto del robot completo nica è stata pensata per poter essere facil-

Elettronica & Maker n° 2 - 2018 • 75


mente realizzata da chiunque, anche se è costruttore, al momento della realizzazione
comunque necessario possedere un mini- dei supporti bisogna riportare le misure del-
mo di manualità nonché disporre degli stru- le proprie squadre sui supporti per eseguire i
menti adeguati. I materiali usati sono profi- fori.Per il taglio e la foratura dei vari elemen-
lati da alluminio a profilo L e a profilo piatto, ti fare riferimento alla figura 3. Ovviamente,
entrambi dello spessore di 3 mm. durante le fasi di montaggio, potrete esegui-
Facilmente reperibile nei negozi di fai da te, re tutte le modifiche che riterrete opportune
la base di appoggio è in multistrato con uno al fine di migliorare il progetto proposto.
spessore di 15 mm, la scatola in cui è anco-
rato il braccio robotico e in cui è alloggiata IL FIRMWARE
la scheda di controllo è una scatola a pareti Il firmware dell’ATMEGA328P è stato scritto
lisce 100x100 mm per derivazioni elettriche. in linguaggio C (Arduino UNO).Nel listato 1
In figura 4 possiamo vedere la pinza usata, è riportata una porzione di sorgente in cui
che potete trovare su internet, e le squadre sono riportate le variabili che possono es-
usate che collegano i servocomandi ai sup- sere cambiate, come la posizione minima,
porti, dato che le squadre hanno delle fora- massima e i gradi di rotazione. Le modifiche
ture diverse che cambiano da costruttore a vanno apportate in base alle aperture, chiu-

Figura 2: schema elettrico della scheda di controllo del braccio antropomorfo

76 • Elettronica & Maker n° 2 - 2018


sure e la rotazione che si vuole ottenere. Il rotazione dipende dalle variabili dichiarate
firmware riconosce la sequenza di caratteri nel sorgente come spiegato in precedenza.
riportata in tabella “Comandi seriali” come Per fare lampeggiare il LED è stato usato
si può vedere nelle due colonne “Incremen- un solo carattere in quanto lampeggia solo
ta” e “Decrementa” per ogni servocomando per un breve periodo. La trasmissione se-
ci sono due caratteri per fare ruotare il perno riale implementata del tipo 8-N-1 cioè dati
del servocomando in senso orario e antiora- a 8 bit, nessuna parità, 1 bit di stop con ve-
rio. L’incremento o il decremento in gradi di locità 57600 Bps.

Figura 3: piano di montaggio della scheda del Cubo a LED

Elettronica & Maker n° 2- 2018 • 77


int minPulse1 = 20; // posizione minima 0°
int maxPulse1 = 160; // posizione massima 180°
int turnRate1 = 5; // ruota di 5° alla volta
int minPulse2 = 10; // posizione minima 0°
int maxPulse2 = 100; // posizione massima 180°
int turnRate2 = 5; // ruota di 5° alla volta
int minPulse3 = 60; // posizione minima 0°
int maxPulse3 = 180; // posizione massima 180°
int turnRate3 = 5; // ruota di 5° alla volta
int minPulse4 = 20; // posizione minima 0°
int maxPulse4 = 100; // posizione massima 180°
int turnRate4 = 5; // ruota di 5° alla volta
int minPulse5 = 20; // posizione minima 0°
int maxPulse5 = 120; // posizione massima 180° Tabella 1: legenda comandi seriali
int turnRate5 = 20; // ruota di 20° alla volta
int minPulse6 = 20; // posizione minima 0°
int maxPulse6 = 100; // posizione massima 180°
int turnRate6 = 20; // ruota di 20° alla volta

Listato 1

REALIZZAZIONE DELLA SCHEDA E


COLLAUDO
Passiamo adesso alla costruzione della
scheda che si presenta abbastanza sempli-
ce, la basetta è del tipo mono faccia e si
prepara a partire della traccia di figura 5.
Ottenuto il circuito stampato montate (se-
guendo il piano di montaggio figura 5) i com-
ponenti richiesti dalla “Lista componenti”,
partendo dalle resistenze e dal diodo D1 e lo
zoccolo per l’integrato, quindi proseguendo
con i condensatori prima i non polarizzati e
poi gli elettrolitici, e in fine con il quarzo Y1,
gli strip, il pulsante S1, i LED. Finito il mon-
taggio della scheda potete fissare la scheda
dentro il contenitore tramite distanziali, suc-
cessivamente fissare il braccio alla scatola. Figura 4: Pinza per servocomandi

78 • Elettronica & Maker n° 2 - 2018


Figura 5: Piano di montaggio e master dello stampato (lato saldature).

Figura 6: Schema di collegamento

Elettronica & Maker n° 2- 2018 • 79


Eseguite il collegamento dei servocomandi, stra di nome “Hardware”, selezionate “Se-
del LED e del convertitore USB/UART tra- rial Interface”, cliccate su “Modify”. Si aprirà
mite cavi Dupont come è rappresentato in un'altra finestra in cui è possibile seleziona-
figura 6. A questo punto potete collegare la re la vostra porta “Com”; a questo punto
scheda alla seriale del PC o tramite conver- cliccate “OK”e cliccate “OK“ su “Hardwa-
titore USB a seriale, avviate il software per re”: la porta seriale è configurata! In figura
impartire i primi comandi di movimento. 7 possiamo vedere la schermata principale
del programma, i comandi a disposizione
IL SOFTWARE prevedono lo spostamento di ogni singolo
Prima cosa dovete installare il software “Ro- servocomando e il lampeggio del LED per-
bot ARM V2.0” scaricabile gratuitamente dal mettendo molteplici funzioni operative. Per
nostro sito insieme a tutti gli altri file neces- inviare un comando di spostamento è suffi-
sari per la realizzazione di questo progetto. ciente cliccare su uno dei pulsanti a forma
Durante l’installazione verrà creata un’icona di freccia. Il LED viene accesso in modalità
sul desktop per facilitare l’avvio del softwa- lampeggiante per un breve periodo di tem-
re la cui schermata iniziale si presenta come po, dal pulsante LED. Per pilotare il Robot
visibile in figura 7. Effettuata l’installazione, è anche possibile usare la tastiera, come
per prima cosa è necessario impostare la si può vedere i comandi sono indicati nella
porta di comunicazione utilizzata: per farlo schermata del software, inoltre è possibile
dovrete cliccare sull’icona a forma di spina usare un joystick che facilita molto la mo-
presente in alto a destra, si aprirà una fine- vimentazione del braccio robotico come si
può vedere dalla figura 7, an-
che per il joystick è indicato, in
base al movimento, il servoco-
mando che viene attivato.
Il joystick va scelto con queste
caratteristiche tre assi di movi-
mento, almeno quattro pulsan-
ti e collegamento USB, il mo-
dello usato in questo progetto
è costruito dalla “THRUSTMA-
STER” modello “USB joystick”
vedi figura 8, che potete trova-
re in qualsiasi negozio di infor-
Figura 7: Schermata principale del Software di controllo matica. Sono stati previsti an-

80 • Elettronica & Maker n° 2 - 2018


Lista componenti

R1÷ R2 470 Ω 1/4 W


R3 10 KΩ 1/4 W
R4 470 Ω 1/4 W
R5 390 Ω 1/4 W
C1÷ C2 100 nF poliestere
C5 100 µF 35 V elettrolitico
C6 22 pF ceramico
C7 ÷C8 100 nF poliestere
C9 22 pF ceramico
C10 ÷C11 1000 µF 25 V elettrolitico
C16 1000 µF 25 V elettrolitico
Figura 8: Joystick “THRUSTMASTER C17 220 µF 35 V elettrolitico
C18 100 nF poliestere
che dei LED che si accendono quando un D1 BY255 diodo
servocomando viene attivato ed inoltre ha IC2 ATMEGA328P
una funzione di test (pulsante TEST) che ac- J1÷ J7 Strip maschio 3 pin
cende in sequenza i servocomandi e il LED J8 Presa DC 90° c.s. 5,5x2,1 mm
posto sulla pinza. J9 Strip maschio 2x3 pin
LED1 Led 5 mm arancione
CONCLUSIONE LED2 Led 5 mm verde
Tutti i file per la realizzazione, come già è LED3 Led 5 mm giallo
stato detto, sono disponibili per download S1 Pulsante c.s.
sul nostro sito, cliccando sul pulsante in Y1 Quarzo 16MHz
fondo a destra. Come avete letto in prece- P1 Ponticello
denza le applicazioni non si limitano solo a P2 Ponticello
quelle descritte, ma sono molteplici. Il sor- N.1 Led 5 mm blu
gente del firmware è scritto in linguaggio N.1 Convertitore uUSB-CE5
C per Arduino UNO ed è facilmente modi-
ficabile e adattabile alle proprie esigenze.
Il software è stato sviluppato con “Profi-
Lab-Expert 4.0” anche esso adeguabile alle
proprie necessità.

Elettronica & Maker n° 2- 2018 • 81


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

redazione@elettronicaemaker.it

indicando i tuoi campi d'interesse e


allegando un elaborato sull'argomento
d'elettronica preferito: ci risentiremo!

82 • Elettronica & Maker n° 2 - 2018


Elettronica
Maker
&
DIRETTORE Su Elettronica & Maker
Roberto Armani
Elettronica&Maker è una

Art Director testata pubblicata in formato


Shylock-58 esclusivamente elettronico e
sfogliabile elettronicamente,
Hanno collaborato a questo
sul sito web https://www.
numero:
elettronicaemaker.it, diffusa
Giovanni Carrera
Antonello Della Pia esclusivamente per via telematica,
Girolamo D'Orio non soggetta all'obbligo di
Giuseppe La Rosa registrazione presso il Tribunale,
Angelo Lezza né al R.O.C. né agli obblighi
Stefano Lovati
dell'AgCom n° 666/08 del
Emanuele Paiano
26/11/08, a fronte del D.L. n° 63
Mario Rotigni
del 18 Maggio 2012.
AVVERTENZE
Chiunque decida di fare uso © Copyright
delle nozioni riportate in questi
Tutti i diritti di riproduzione o di
articoli o decida di realizzare
i circuiti esposti, è tenuto a traduzione degli articoli pubblicati
prestare la massima attenzione sono riservati. Manoscritti, disegni
in osservanza alle normative e fotografie sono di proprietà di
in vigore sulla sicurezza. Gli
E&M
Autori di Elettronica&Maker
È vietata la riproduzione anche
sopracitati, che hanno collaborato
alla realizzazione degli articoli parziale degli articoli salvo
pubblicati in questo numero, espressa autorizzazione scritta
declinano ogni responsabilità
dell’editore. I contenuti pubblicitari
per eventuali danni causati a
sono riportati senza responsabilità,
persone, animali o cose derivante
dall'utilizzo diretto o indiretto del a puro titolo informativo.
materiale, dei dispositivi o del
software presentati. Si avverte
Collaborare con
inoltre che quanto riportato
Elettronica & Maker
negli articoli viene fornito così
com'è, a solo scopo hobbistico, Le richieste di collaborazione
senza garanzia alcuna di vanno indirizzate all’attenzione di
correttezza e di funzionamento redazione@elettronicaemaker.
certo. L'editore e gli autori
it e accompagnate, se possibile,
ringraziano anticipatamente per
la segnalazione di ogni eventuale da una breve descrizione delle
errore. vostre competenze tecniche e/o
editoriali, oltre che da un elenco
degli argomenti e/o progetti che
desiderate proporre.

Potrebbero piacerti anche