Antennino: l’Arduino con l’antenna

Quando si parla di IoT, ci si riferisce normalmente a dispositivi alimentati a batteria sparsi nell’ambiente per acquisire e scambiare informazioni su vari parametri ambientali e non.

Per i dispositivi periferici sono importanti sia il consumo che la possibilità di aggiornare il firmware senza doverli disinstallare, cosa piuttosto scomoda soprattutto se i sensori sono stati alloggiati in posizioni anguste o difficilmente raggiungibili.

La possibilità di aggiornamento da remoto è un benefit anche se il dispositivo, per essere testato, deve trovarsi nella propria sede naturale.
Antennino, il progetto che descriviamo in questo post ha le caratteristiche suaccennate: implementa un’efficace controllo dei consumi e si aggiorna OTA (Over The Air).

Cos’è Antennino

Il dispositivo che vi proponiamo è un circuito Arduino-like (il nome Antennino è la combinazione di Antenna e Arduino) a basso costo e a bassa potenza basato su chip Atmel e quindi compatibile al 100% con il tradizionale IDE Arduino; la board integra sensori e bus di comunicazione per acquisire informazioni esterne, nonché un link wireless per comunicare con l’esterno.

Ma il bello di Antennino è che è multiruolo, nel senso che la stessa board, a seconda di come viene equipaggiata, può funzionare sia da modulo remoto che da collettore di informazioni (gateway).
Il cuore di Antennino è un microcontrollore ATmega328P (la P indica che si tratta di un chip che adotta la tecnologia PicoPower, indispensabile alla gestione energetica voluta nel progetto). La comunicazione con il mondo esterno avviene tramite un modulo transceiver RFM69 (www.hoperf.com) ricetrasmittente che opera nella banda di frequenza dei 433MHz e che supporta la crittografia AES a livello hardware.

A bordo di Antennino è stata prevista la presenza di una memoria Flash che può essere impiegata per memorizzare dati relativi alla lettura dei sensori (Data Logger) oppure per implementare la programmazione Wireless (OTA) del modulo antennino, un sensore di temperatura (DS18B20) e un fotoresistore. Per agevolare l’utilizzo di sensori esterni aggiuntivi sono presenti quattro connettori Groove: uno per la RS232, uno per l’I²C-Bus, un di I/O generici ed uno per input analogico.

Inoltre Antennino è predisposto per ospitare un piccolo display OLED, utilizzato se opera in modalità gateway. Antennino ha lo stesso processore di Arduino Uno e quindi in pratica potrebbe essere usato come sostituto dello stesso, ma vista la vocazione wireless del nostro modulo, l’impiego principale è quello di realizzare sensori o attuatori remoti che possano scambiare informazioni con un gateway. Potremmo realizzare sensori di temperatura, luminosità, sensori di allarme per porte e finestre, sensori di vibrazione, attuatori remoti per controllare un dispositivo, ecc. Questo è il funzionamento da modulo remoto.

Il gateway può essere un modulo Antennino (in modalità gateway), oppure, visto che di solito il gateway non è alimentato a batterie, potrebbe essere un’Arduino Uno dotata di modulo RFM69, oppure una Raspberry Pi, sempre corredata da un modulo RFM69. La soluzione con Raspberry Pi è quella che si rivela più adatta, perché permette di realizzare un sistema gestibile con un’interfaccia Web molto accattivante, con requisiti di sicurezza (https) ed impiegare un data-base per memorizzare o post elaborare i dati ricevuti.

Per quanto riguarda le opzioni di alimentazione, le possibilità sono:
• alimentare Antennino tramite due batterie AA alcaline standard da 1,5V oppure ricaricabili 1,2V (le clip per le batterie sono già presenti sul PCB);
• alimentare Antennino tramite una tensione esterna 3,6÷12 V;
• alimentare direttamente Antennino con una tensione di 3,3V, bypassando tutti i regolatori presenti a bordo della scheda.
In quest’ultima eventualità ricordatevi di non superare assolutamente la tensione di 3,3V altrimenti danneggerete il microcontrollore e i vari chip ad esso connessi.

La gestione LowPower dell’ATmega328 tramite librerie

Normalmente, quando si impiega un microcontrollore del tipo PicoPower la gestione della modalità basso consumo dello stesso avviene tramite librerie specifiche da includere nel firmware.

Sono presenti diversi livelli di profondità della modalità di basso consumo e in quella più profonda il chip è come ibernato ed è possibile svegliarlo solamente ricorrendo a un interrupt hardware esterno. Ma chiaramente se volessimo fare in modo che il nostro sensore remoto ci invii dei report periodici, questa soluzione non sarebbe percorribile.

Una modalità leggermente meno profonda è, appunto, quella che si impiega quando è necessario che il microcontrollore si risvegli periodicamente in modo autonomo dallo stato di riposo ed esegua qualche compito, per poi ritornare a “dormire”. Normalmente il timer che risveglia il microcontrollore ad intervalli regolari viene implementato tramite un timer interno al microcontrollore e quindi lo stesso non viene posto in uno stato di basso consumo completo, ma viene lasciato attivo quello che in gergo viene indicato con l’acronimo WDT (Watch Dog Timer). Ovviamente il fatto che ci sia un Timer e sia attivo viene scontato con un piccolo ma non trascurabile consumo di corrente che è di qualche μA.

Un’alternativa è quella adottata in Antennino, dove utilizziamo un gestore esterno di interrupt per il risveglio del microcontrollore. Questo concetto verrà esteso esaminando lo schema elettrico del circuito.

Schema elettrico di Antennino

Il cuore del sistema è il chip ATmega328p (U6) il cui timing viene fornito dal risuonatore a 16 MHz (Q1). Al micro sono stati collegati un pulsante di reset (P1) e un LED di notifica (DL1) che impegna il pin PB1. Il connettore CON8 è utilizzato per caricare il BootLoader, mentre il connettore CON7, abbinato ad un opportuno convertitore USB/RS232, serve per caricare normalmente gli sketch tramite l’IDE di Arduino. Abbiamo poi il connettore CON5 e CON6 che sono quelli che espongono i pin disponibili di I/O del microcontrollore e che permettono di applicare l’alimentazione esterna a 3,6-12 V oppure direttamente i 3,3V.

Al bus SPI sono stati collegati il chip della FLASH memory ed il transceiver RFM69. Su quest’ultimo notiamo la presenza del resistore di pull-up R14 che consente di mantenere la linea del chip select a livello alto, in modo da non interferire nella fase di caricamento del BootLoader. Sul Bus 1-Wire è collegato il sensore di temperatura DS18B20. L’ingresso analogico A1 è impegnato nella lettura del sensore di luminosità LDR1 mentre sul Bus I²C si affaccia il display OLED.

Come accennato nella parte introduttiva, sono presenti quattro connettori con standard di piedinatura Grove che permettono di collegare altrettanti sensori/attuatori esterni. I pin di questi connettori sono esposti anche con i connettori CON5 e CON6 e quindi nel caso siano stati già impegnati è chiaro che non possono esserlo nuovamente. Un discorso a parte è valido per il BUS I²C che permette di collegare più dispositivi sulle stesse linee.

Da notare la presenza del PMOS T4, controllato dal Pin PD4, il quale permette di togliere la tensione dai sensori interni DS18B20 e LDR1 ed esterni (Grove) quando viene portato al livello logico alto.
I connettori J7 e J8 ed i due partitori resistivi composti da R8-R12 e R9-R13 permettono di leggere la tensione della batteria interna o esterna da acquisire tramite il pin A/D A0. La presenza del condensatore C12 filtra eventuali segnali spurii. Il valore dei partitori resistivi deve essere valutato sulla base della massimizzazione della risoluzione e del fondo scala impostata nel convertitore A/D.

I Jumper J2-J3-J4 permettono di selezionare la fonte di alimentazione corretta e impostare quindi la modalità di gestione del risparmio energetico più consona.
R1, R2, T1, C1, J1 e U1 compongono il modulo che permette di risvegliare il chip TPL5110 ed innescare quindi una sorta di Interrupt per il microcontrollore.
Da notare la presenza dei condensatori di disaccoppiamento in prossimità di ogni singolo chip, messi per garantire la rimozione di eventuali disturbi e per sopperire ad eventuali richieste energetiche repentine.

Analizzando lo schema è evidente che alcuni piedini del chip ATMEL sono impegnati per scopi specifici, quindi non è possibile utilizzarli nei nostri progetti come normali Pin di I/O ed infatti alcuni (quelli esclusivi) non sono neppure stati attestati sui connettori esterni. La Tabella 1 riepiloga i piedini in questione.

Tabella 1

I piedini D11(MOSI), D12(MISO), D13(SCK) sono i segnali di controllo del protocollo SPI e quindi nel caso il vostro progetto preveda di utilizzare un dispositivo SPI (un particolare sensore, oppure un display) dovrete collegarlo a queste tre linee di segnale. Il Pin D10 è il piedino di ChipSelect relativo al protocollo SPI del Transceiver, mentre il D8 è il piedino di ChipSelect del modulo FLASH (opzionale). Il pin D2 (INT0) è l’Interrupt che viene generato dal modulo Transceiver quando riceve un pacchetto di dati per allertare il micro, mentre il pin D9 viene usato dal LED di bordo.
L’impiego del pin D2 (INT0) da parte del modulo Transceiver ne preclude la possibilità di utilizzo per altri scopi. Nel caso in cui si debba utilizzare un interrupt è necessario usare il pin D3 (INT1).

La gestione LowPower dell’ATmega328 tramite timer esterno

Una peculiarità di Antennino è quella di poter sfruttare la potenzialità del chip TPL5110 (Texas Instruments) che in pratica è un timer digitale con un intervallo di intervento nel range 100ms÷7.200s(2h) che in modalità standby assorbe circa 35nA (avete letto bene: solo 35 miliardesimi di ampere) e che permette di controllare la linea di alimentazione tramite un P-MOS escludendo tutto quello che ne è a valle. In questo caso, quindi, la strategia di riduzione di consumi è delegata completamente al chip TPL5110.

Il chip presenta un piedino di ingresso (DONE) che può ricevere un feedback dal microcontrollore allo scopo di disattivare immediatamente l’alimentazione se le operazioni che dovevano essere elaborate sono giunte a termine. Inoltre è presente un ulteriore pin di ingresso (DELAY/M_DRV) che dà la possibilità di forzare anticipatamente il risveglio del TPL5110 prima della scadenza naturale del timing impostato; questo permette di recepire un interrupt da una fonte esterna, gestirne le richieste e poi inviare un comando DONE al TPL5110 e tornare immediatamente in modalità LowPower, disattivando tutto tranne il TPL5110.

Fig. 1

 

In Fig. 1 è possibile vedere una schematizzazione dell’uso (derivata dall’Application Note dell’integrato) che si fa del chip TPL5110 ed in Fig. 2 riportiamo il timing degli eventi rilevanti nell’attività del chip.

Fig. 2

Nella Tabella 2 e nella Tabella 3 abbiamo elencato i valori dei resistori che determinano i ritardo di intervento del timer. Abbiamo tralasciato la tabella per tempi minori di 1s perché non attinenti all’utilizzo che faremo del TPL5110.

Tabella 2

 

 

Tabella 3

 

 

Come potete osservare, il valore resistivo per ottenere degli intervalli temporali precisi deve essere un valore particolare, ottenuto collegando in parallelo due valori commerciali di resistori. Noi abbiamo previsto la presenza dei due resistori in parallelo ed anche quella di un più pratico trimmer in serie. Quindi potrete inserire i due resistori per il determinare il valore minimo desiderato e poi ottenere altri valori agendo sulla regolazione del trimmer. Analizzeremo poi nel dettaglio l’implementazione Hardware e le implicazioni a livello Software di questa soluzione nel nostro modulo Antennino.

Dal datasheet del TPL5110 si evince che portando il pin che fa capo a DELAY/M_DRV a un livello di tensione alto si riesce ad anticipare il risveglio del timer e quindi ottenere il boot di Antennino; ma una volta svegliato Antennino, come facciamo a fargli capire che non si tratta di un risveglio programmato ma causato da un evento esterno per il quale vogliamo che venga intrapresa una azione particolare?

Fig. 3

Dalla Fig. 3 appare che per innescare l’evento abbiamo utilizzato un optoisolatore (U1) in modo che non ci sia la possibilità di mettere in contatto il timer con delle tensioni pericolose o di sottoporlo a dei disturbi di natura elettromagnetica (EMI).

L’anodo dell’optoisolatore è collegato alla tensione delle batterie tramite un resistore (R2) e quindi per mandare in conduzione il fotodiodo è sufficiente portare a massa il catodo dello stesso, questo comporterà il passaggio in saturazione del fototransistor collegato ad emettitore comune, quindi il suo collettore raggiungerà una tensione prossima allo zero, questo avrà due effetti: il primo sarà quello di mandare in conduzione il PMOS T2 portando quindi il pin DELAY/M_DRV alla tensione della batteria, innescando quindi il ciclo anticipato del timer TPL5110 ed il conseguente risveglio di Antennino. Il secondo effetto sarà quello di mandare in conduzione il PMOS T1 e questo comporterà il caricamento del condensatore C1 alla tensione delle batterie. Qui entra in gioco il ponticello J1 che mette in comunicazione il condensatore C1 con il pin analogico A2 di Antennino.

Quando Antennino eseguirà il Boot verrà letta la tensione presente ai capi del condensatore C1 ed essendo stato preventivamente caricato dal PMOS verrà letta una tensione maggiore di zero e questo informerà Antennino che si è risvegliato in seguito ad un evento esterno, piuttosto che in seguito ad un normale ciclo di timing programmato. Altro accorgimento sarà quello di provvedere via software a scaricare il condensatore appena effettuata la lettura della sua condizione di carica per fare in modo che al prossimo ciclo “normale” del timer il condensatore venga trovato scarico.

Il microcontrollore ATMEGA328P lavora a 3,3V e lo stesso dicasi per il modulo RF, la Flash Memory ed i vari sensori che andremo ad aggiungere al modulo. A bordo abbiamo la possibilità di utilizzare 2 batterie AA che nel caso di impiego di celle ricaricabili hanno una tensione nominale di 1,2V (1,5V per quelle alcaline) e quindi al massimo avremo a disposizione 2,4V (3V). Chiaramente nel caso di alimentazione a batteria, l’ideale sarebbe non dovere utilizzare alcun regolatore di tensione perché quest’ultimi pur avendo raggiunto dei livelli di efficienza veramente impensabili fino pochi anni fa, sono comunque dei dispositivi che hanno un rendimento inferiore al 100% e quindi interponendoli tra la fonte energetica e il circuito da alimentare inducono delle perdite seppur di piccola entità.

Quando l’esigenza è alimentare un sensore remoto tramite una batteria che dispone al massimo di un migliaio di mAh è chiaro che è necessario ponderare bene il codice che gira sul microcontrollore e la soluzione hardware da adottare. In Antennino, per ottenere i canonici 3,3V ci siamo orientati sul chip MAX856, un regolatore switching della Maximin-IC con delle buone performance. Il chip MAX856 accetta una tensione di ingresso da 0,8 a 3,3V e fornisce una tensione di uscita di 3,3 V con una corrente max di 125mA. Ha una corrente di riposo di soli 25µA e lavora con una frequenza di 500kHz e quindi permette di impiegare induttori di piccole dimensioni. La tensione minima per cui riesce a partire è di soli 0,8 V e quindi è in grado di sfruttare le 2 batterie AA in modo molto performante.

La durata della batteria con il LowPower

Se avessimo un sistema statico che assorbe sempre la stessa corrente il calcolo sarebbe molto semplice.
Considerata la capacità della batteria (C) in mAh e ipotizzando (ad esempio) un coefficiente correttivo dell’85% che tenga conto dell’autoscarica e dell’efficienza del convertitore switching, possiamo valutare l’autonomia del sistema.

Dato l’assorbimento medio del nostro dispositivo (A) possiamo determinare la durata della batteria, espressa in ore, come:

Durata = (C*0,85)/A=(2.400 mAh*0,85)/40 mA=51h

Fortunatamente il nostro dispositivo per la maggior parte del tempo è in condizioni di riposo e si risveglia ogni tanto per inviare dei pacchetti di dati e poi torna a dormire, quindi la formula che dovremo applicare è un poco più complicata.
Applicando la formula:

i cui parametri sono nella Tabella 4 e considerando:

C=2400 mAh, Sa=40 mA, Wa=35 nA (3,5×10-5 mA), Wph=60, Wt=10ms

Il calcolo ci restituisce un’autonomia di 3,49 anni!

Tabella 4

Selezione della fonte di alimentazione

Ora che abbiamo introdotto la gestione low-power vediamo nel dettaglio anche quali sono le possibili opzioni della scelta dell’alimentazione e come debbano essere impostati i vari ponticelli presenti sul PCB.

I ponticelli sul PCB permettono di selezionare la fonte di alimentazione corretta. I ponticelli coinvolti sono J1 per utilizzare il meccanismo di wake-up del TPL5110 e J2, J3, J4 per la selezione della fonte di alimentazione. Le opzioni possibili sono le seguenti.
1. alimentazione tramite batterie AA (a bordo) usando il regolatore switching MAX856 e la gestione LowPower TPL5110: J1 va chiuso, J2 va su 2-3, J3 su 1-2 e J4 su 1-2.
2. alimentazione tramite batterie AA (a bordo) usando il convertitore MAX856 e la gestione LowPower ATMEGA328P: J1 va aperto, J2 va su 2-3, J3 va aperto e J4 si chiude su 2-3.
3. alimentazione tramite tensione esterna (3,6-12V) usando il regolatore lineare MCP1703 applicata al pin del connettore esterno: J1 va aperto, J2 si chiude su 1-2, J3 e J4 vanno rimossi.
4. alimentazione diretta tramite tensione esterna 3,3V senza passare dai regolatori e gestione LowPower tramite ATMEGA328P: J1 va aperto, J2 dev’essere rimosso, come J3, J4.
5. alimentazione tramite batteria AA (onboard), nessun regolatore usato, gestione LowPower tramite ATMEGA328P (questa è una modalità particolare che richiede delle modifiche al bootloader): J1 va aperto, J2 va rimosso, J3 va chiuso tra 2 e 3 e J4 va rimosso.

Al fine di ridurre al minimo il consumo di corrente e quindi portare al massimo la vita utile della nostra preziosa fonte energetica, la regola aurea è quella di mettere in modalità basso consumo il dispositivo non appena terminata l’esecuzione della elaborazione da parte del microcontrollore e l’invio delle eventuali informazioni al gateway.

Nel caso di alimentazione tramite batteria è auspicabile monitorare lo stato di carica della stessa e quindi è necessario che il microcontrollore legga il livello di tensione della batteria tramite uno dei canali di conversione A/D.

Questa operazione di lettura va fatta con una frequenza che dipende dalla criticità della applicazione ma come indicato precedentemente non appena terminata l’acquisizione del valore e l’invio del dato, il dispositivo deve assolutamente entrare in modalità basso consumo disabilitando tutto quello che non è necessario. Per esempio è possibile disabilitare la sezione di conversione A/D del microcontrollore, le porte RS233 dello stesso, portare il modulo RF in modalità ricezione, rimuovere l’alimentazione ai sensori esterni.

Analogamente, quando il sensore riceve un Interrupt, deve gestire l’elaborazione delle informazioni e poi mettersi in modalità basso consumo il prima possibile. Per esempio, supponiamo che il modulo Antennino venga usato per rilevare l’apertura di una porta tramite un microinterruttore, il segnale proveniente dal micro interruttore dovrà essere applicato ad uno degli input digitali del modulo, al variare dello stato del pin verrà inoltrato un interrupt al microcontrollore, il quale uscirà dallo stato di basso consumo e invierà al gateway una notifica riguardante tale variazione di stato. Non appena terminato l’invio dell’informazione, il dispositivo deve essere riportato prontamente in modalità basso consumo.

Il modulo RFM69

Bene, esaurito l’argomento “gestione energetica” passiamo adesso alla sezione wireless: il modulo impiegato in Antennino lavora ad una frequenza di 433MHz, di libero utilizzo a patto di effettuare trasmissioni relativamente brevi. Per la nostra applicazione va bene, in quanto gateway e modulo remoto comunicheranno solo per scambiarsi informazioni sullo stato dei sensori.

Nelle ultime versioni delle librerie del transceiver RFM69 è stata introdotta la possibilità di autoregolare il livello della potenza di trasmissione tramite una funzionalità chiamata Automatic Transmission Control (ATC) che permette di ridurre ulteriormente il consumo del modulo Antennino durante la fase della trasmissione, negoziando automaticamente la minima potenza necessaria all’intercambio dei dati.

Fig. 4

 

Nella Fig. 4 vediamo il modulo RFM69 e la disposizione dei contatti impiegati per l’interfacciamento con il microcontrollore. è evidente che viene impiegato il protocollo SPI (seriale MISO, MOSI, SCK, RST) un pin di Chip Select (NSS) ed un pin (DIO0) di notifica Interrupt verso il microcontrollore più naturalmente, l’alimentazione e il pin per il collegamento dell’antenna esterna.

Antenna 433MHz

Come regola generale, sarebbe preferibile non utilizzare moduli RF privi di antenna, non solo perché questo pregiudica la portata utile del modulo, ma anche perché potrebbe provocare dei danni permanenti al modulo stesso.
Per realizzare un’antenna, la regola è quella che la stessa deve avere una lunghezza pari alla lunghezza d’onda (λ) o sottomultipla.
Considerando che il nostro modulo lavora a 433MHz, possiamo calcolare la lunghezza d’onda con la formula:

λ = C/f

Dove C è la velocità di propagazione nel mezzo di trasmissione, che nell’etere è pari alla velocità della luce, 300.000 Km/s, espressa in metri, e f è la lunghezza d’onda, in Hz.
Quindi per una frequenza sui 433 MHz si ha:

300.000.000/433.000.000=0,6928 m

Quindi 69,28 cm. Siccome spesso non è praticabile impiegare un’antenna pari alla lunghezza
di lambda, si ricorre alle frazioni di λ.
Nelle condizioni di utilizzo normali è sufficiente saldare un filo di rame di lunghezza adeguata per creare un’antenna monopolo di un ½ lunghezza d’onda (329,4 mm) oppure di ¼ di lunghezza d’onda (164.7 mm).

E preferibile che il filo adottato sia monopolare (esempio filo smaltato per avvolgimenti), inoltre le migliori performance si hanno se il filo viene mantenuto diritto.
Nel caso si renda necessario un guadagno elevato, Antennino prevede comunque un micro connettore U.FL per poter collegare un’antenna commerciale.

Il display OLED

Il PCB di Antennino permette di utilizzare un piccolo display OLED con interfaccia I²C-Bus. Da notare che sul mercato esistono numerose varianti di questo display che a prima vista sembrano tutte uguali, ma non lo sono affatto; quindi la prima cosa cui dobbiamo prestare attenzione è la piedinatura del componente che intendiamo montare, perché alcuni tipi hanno i contatti di alimentazione invertiti.

Fig. 5

La scheda Antennino può ospitare display che hanno la piedinatura che prevede i contatti VCC, GND, SLC, SDA disposti come mostra la Fig. 5. Nel caso il vostro display abbia una disposizione invertita, ossia GND, VCC, SLC, SDA, è sufficiente interrompere le due sottili piste sotto il connettore del display sul PCB di Antennino e saldare due ponticelli per alimentare in modo corretto il display stesso.
Risolto il problema della alimentazione, rimane da identificare il tipo di chip che il display utilizza.

Questa cosa è un poco più problematica, perché solitamente il rivenditore non dichiara affatto la tipologia di chip controller a bordo. A grandi linee possiamo affermare che esistono due soli tipi di chip: quello più performante è l’SSD1306 e poi esiste anche l’SH1106. Per quanto riguarda la libreria Arduino da utilizzare per pilotare il display, la scelta ricade sulla U8glib.h; questo perché richiede risorse limitate rispetto ad altre librerie che potremmo utilizzare.

Elenco componenti

C1, C4, C10: 10 μF ceramico (1206)
C2, C5, C8, C9, C11÷C13: 100 nF
ceramico (0805)
C3, C7: 1 μF ceramico (0805)
C6: 47 μF ceramico (1210)
R1, R10: 4,7 kohm (0805)
R2: 180 ohm (1206)
R3: 15 kohm 1% (1206)
R4: 44.2 kohm 1% (1206)
R5: Trimmer multigiri 150 kohm
R6: 1,5k (0805)
R7, R11, R14: 10 kohm (0805)
R8: 470 kohm (0805)
R9: 220 kohm (0805)
R12, R13: 1 Mohm (0805)
T1÷T3: SI2365ESD
U1: SFH618A-3X
U2: MCP1703T-3302E/CB
U3: TPL5110DDCT
U4: RFM69
U5: MAX856CSA+
U6: ATMEGA328P
U7: AT25F512B-SSH-B
U8: DS18B20+
P1: Microswitch SMD
L1: Bobina 47 μH
D1, D2: MBRA140TRPBF
B1, B2: Porta Batteria tipo AA
BCL92PC-AA
DISPLAY: Display OLED 0.96”
LD1: LED giallo (0805)
LDR1: Fotoresistenza 2-20k
Q1: Quarzo 16 MHz
Elenco Componenti:
Varie:
- Strip maschio 2 vie (2 pz.)
- Strip maschio 3 vie (5 pz.)
- Strip maschio 2x3 vie
- Jumper (7 pz.)
- Strip femmina 6 vie
- Strip femmina 12 vie (2 pz.)
- Conettore uFL
- Antenna Stilo uFL
- Connettore JST 2mm 4 vie verticale (4 pz.)
- Circuito stampato S1377 (109x50 mm)

Realizzazione Pratica

Passiamo adesso alla costruzione di Antennino: per ciascun modulo è necessario ottenere il PCB scaricando il file dalla sezione download in fondo all’articolo e ricavando da esso la pellicola necessaria a procedere con la fotoincisione.

Il PCB richiesto è a doppia ramatura ed essendo i componenti utilizzati di tipo SMD, la realizzazione richiede un minimo di esperienza e una certa attrezzatura, vale a dire:
• un saldatore a punta a fine da non più di 30W o una stazione saldante con stilo a punta fine; anche se la punta non è finissima, l’importante è che sia in buono stato (non ossidata) e che abbia la parte terminale corta, il che consente di trasferire velocemente calore dalla punta alla piazzola ed evitare di incappare in saldature fredde;
• della filo in lega saldante di stagno (preferibile Sn-Ag) con flussante, da 0,5 mm di diametro;
• una pinzetta per prelevare e posizionare i componenti sui loro pad;
• una trecciola dissaldante, molto importante nel caso in cui gocce di lega saldante creino cortocircuiti tra pin attigui dei componenti;
• della pasta flussante da spargere sui pad dei componenti prima di saldarli (aiuta a concentrare la lega saldante dove deve aderire e ad evitare cortocircuiti);
• una lente di ingrandimento, oppure, se ne avete la disponibilità, un microscopio USB.

Al solito, iniziate il montaggio dai componenti a basso profilo e proseguite in ordine di altezza; il microcontrollore conviene montarlo per primo, badando di non surriscaldarlo (alternate le saldature da un lato e dall’altro). Il montaggio degli SMD può essere condotto anche con una hot-air station, ma in questo caso è preferibile avere un piano riscaldato su cui appoggiare il circuito stampato.

Download

I Gerber per realizzare la board Antennino possono essere scaricati dopo aver effettuato il Login:

Il firmware è scaricabile dal repository Github

 

Conclusioni

In questa prima puntata abbiamo introdotto l’hardware e descritto la realizzazione del dispositivo. Nella prossima spiegheremo come caricare il bootloader su Antennino per fare in modo che il nostro modulo sia gestibile dalla IDE di Arduino.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Menu