Localizzatore open source: come crearlo da soli

Come creare un localizzatore con supporto GPS, WiFi, Bluetooth, UWB e SIM card utilizzando componenti a basso costo. Le istruzioni sono fornite dall'autore del progetto.
Localizzatore open source: come crearlo da soli

Chi volesse esplorare in profondità il mondo dell’Internet delle Cose (IoT) e del monitoraggio a distanza delle risorse, troverà di grande aiuto il lavoro svolto dall’autore di FindMyCat, un localizzatore open source progettato originariamente per tracciare gli spostamenti di cani e gatti ma adattabile a qualunque tipo di utilizzo.

Il sito del progetto e il repository GitHub correlato contengono tutte le informazioni per realizzare il localizzatore in proprio. È detto open source perché l’autore fornisce tutto il materiale per realizzare il dispositivo portatile.

FindMyCat è la risposta a ciò che è disponibile sul mercato e che, per un verso o per l’altro, presenta delle criticità: autonomia della batteria non soddisfacente, comportamento inaffidabile, sorgente chiuso con l’impossibilità di applicare qualunque tipo di personalizzazione, costo elevato. Giusto per evidenziare i problemi più ricorrenti.

Come creare, allora, un dispositivo per il tracciamento a distanza che sia compatto e pratico da usare, abbia una batteria in grado di durare diversi mesi, possa funzionare sia all’aperto che al chiuso e offra il dato di posizionamento in tempo reale? Il risultato è proprio FindMyCat, partorito dopo circa 11 mesi di lavoro.

Le principali caratteristiche di FindMyCat, localizzatore “fai da te” a costo contenuto

La scheda elettronica che si può creare in autonomia e che sostiene il funzionamento di FindMyCat integra un chip GPS e uno slot per l’inserimento di una SIM card. In questo modo è possibile effettuare il monitoraggio ovunque, indipendentemente dalla posizione geografica.

Grazie al supporto per UWB (Ultra Wide Band) e Bluetooth, l’ingegnoso FindMyCat consente di stabilire con assoluta precisione la distanza e la direzione in cui si trova l’animale che si sta monitorando.

L’idea di Smart Tether, inoltre, fa sì che FindMyCat entri automaticamente in una modalità di “sonno profondo” quando l’animale domestico si trova al sicuro in casa. Nell’ambiente di residenza, il dispositivo si limita a inviare la posizione tramite WiFi; il monitoraggio più attento è abilitato outdoor con la ricezione di una notifica sulla smartphone.

Queste attenzioni, unite con l’utilizzo di un software ottimizzato e hardware a bassissimo consumo energetico, hanno permesso di ottenere una durata della batteria che arriva fino a 6 mesi con una singola operazione di ricarica. “Una vita” in confronto a tanti rilevatori commerciali che non vanno oltre i 5 giorni di autonomia.

Localizzatore economico FindMyCat

Come realizzare un localizzatore fai da te

Il dispositivo FindMyCat è basato su una scheda PCB che costituisce il cuore del sistema. È composta da quattro strati, presenta alcune componenti di tipo BGA (Ball Grid Array) e delle piste con impedenza controllata (50Ω) per le antenne. I componenti sono posizionati su entrambi i lati della scheda.

Le “piste con impedenza controllata” sono tracce conduttive sul circuito stampato (PCB) progettate in modo specifico per avere una resistenza caratteristica (impedenza) nota e costante lungo la loro lunghezza. È importante quando si lavora con segnali ad alta frequenza, come quelli utilizzati nelle antenne, per evitare problemi di riflessione del segnale e garantire che il segnale venga trasmesso in modo efficiente e senza degrado.

Per produrre la scheda, l’autore del progetto mette gratuitamente a disposizione i file Gerber. Questi ultimi sono un formato standard utilizzato nell’industria dell’assemblaggio elettronico e della produzione di circuiti su PCB per descrivere i dati di progettazione. Prendono il nome da Joseph Gerber, fondatore della Gerber Scientific, che ha sviluppato questo formato negli anni ’60.

I file Gerber sono essenzialmente un insieme di file ASCII che rappresentano diverse informazioni riguardanti il layout del circuito stampato, tra cui: strati di rame, maschere, fori e forature, codici di perforazione, piste, aperture.

Per realizzare FindMyCat, è inoltre disponibile lo schema PCB in formato PDF da utilizzare come riferimento. Tutte queste informazioni si trovano nella pagina FindMyCat PCB. Nella tabella in fondo all’articolo, inoltre, presentiamo l’elenco dei componenti elettronici utilizzati per realizzare il progetto. Complessivamente FindMyCat utilizza un set di condensatori, induttori, resistori, dispositivi RF, circuiti integrati, connettori e componenti passivi.

Pronti per la stampa 3D, ci sono anche i modelli in formato .STL per realizzare le parti superiori e inferiore del contenitore protettivo e lo chassis per il circuito stampato.

Posizione in tempo reale

FindMyCat: la parte software

Il versante software di FindMyCat si compone di tre “tessere”: outdoor-location-engine, indoor-location-engine e homestation. Sono tre differenti firmware, da “flashare” sulla scheda che si occupano di ottimizzare il funzionamento del dispositivo riducendo il consumo di batteria a seconda della modalità e dell’ambiente di utilizzo.

L’Outdoor Location Engine è un componente software che fa parte del sistema e utilizza l’nRF Connect SDK (basato su Zephyr) per gestire due principali responsabilità:

  • Ascolto e risposta a comandi esterni: il software resta in ascolto e risponde ai comandi provenienti dall’esterno del dispositivo.
  • Segnalazione della posizione al cloud: provvede a inviare la posizione istantanea del dispositivo al servizio cloud.

Indoor Location Engine è invece basato su nrf5 SDK e ha quattro principali responsabilità:

  • Annuncio di pacchetti BLE per HomeStation e applicazione installata su smartphone
  • Scansione BLE: esecuzione della scansione dei pacchetti provenienti dalla HomeStation. Quando i pacchetti della HomeStation non vengono più ricevuti dopo un certo periodo di tempo, invia un comando all’Outdoor Location Engine per disporne l’attivazione (PowerUp).
  • Controllo dell’Outdoor Location Engine: l’Indoor Location Engine ha il compito di comandare l’Outdoor Location Engine, indicandogli quando attivarsi (PowerUp) o disattivarsi (PowerDown) in base alla rilevazione della presenza della HomeStation.
  • Avvio di ranging con UWB: Indoor Location Engine si occupa anche di eseguire il cosiddetto ranging ossia la misurazione precisa della distanza. Questa funzionalità consente una localizzazione precisa all’interno di un ambiente indoor.

Cos’è la HomeStation

La HomeStation è il dispositivo che stabilisce una sorta di collegamento virtuale con il tracker. Quando questo collegamento è attivo, il tracker entra in uno stato di “deep sleep” (risparmio energetico profondo), con solo le funzioni Bluetooth Low Energy (BLE) ancora operative. Nel frattempo, la HomeStation si assume il compito di trasmettere la posizione del dispositivo tramite WiFi.

Nelle opzioni di configurazione, è possibile impostare alcune impostazioni relative al gateway MQTT (protocollo di messaggistica utilizzato per la comunicazione) e alle impostazioni WiFi. Le impostazioni consentono al tracker di comunicare tramite MQTT con un’istanza cloud e di connettersi alla rete WiFi domestica.

Le indicazioni di progetto contengono anche tutto il necessario per realizzare la HomeStation. Quest’ultima utilizza una combinazione di due microcontrollori (NRF 52833 + NRF 7002) mentre Outdoor Location Engine e Indoor Location Engine si servono, rispettivamente, di un NRF 9160 e di un NRF 52833.

Tutto il software e l’hardware del progetto sono offerti sotto licenza Creative Commons Attribution-NonCommercial-ShareAlike 4.0 alla quale gli utenti devono attenersi.

Lista dei componenti elettronici utilizzati nel progetto

ID Quantità Riferimenti Valore Produttore
1 7 C1, C14, C15, C18, C19, C20, C21 10uF Murata Electronics
2 5 C2, C4, C6, C10, C12 100nF Murata Electronics
3 2 C3, C9 15pF 1% Murata Electronics
4 2 C5, C11 47uF 20% Murata Electronics
5 1 C7 4.7uF 20% SAMSUNG
6 1 C8 4.7uF 10% SAMSUNG
7 1 C13 22pF Murata Electronics
8 2 C16, C17 4.7uF SAMSUNG
9 1 C22 10nF Murata Electronics
10 1 DWM3001C1 DWM3001C Qorvo
11 1 E1 NN03-310 Fractus Antennas
12 1 F1 0.7pf Murata Electronics
13 1 F2 15nH Murata Electronics
14 1 FB1 120R / 0.70A Murata Electronics
15 1 IC1 ADP5360ACBZ-2-R7 Analog Devices
16 2 IC2, IC4 TCK107AG,LF Toshiba
17 1 IC3 EMIF03-SIM02M8 STMicroelectronics
18 1 J1 105164-0001 Molex
19 2 J2, J3 MM8130-2600RA2 MURATA
20 1 J5 SF72S006VBDR2500 JAE Electronics
28 1 L1 47nH Murata Electronics
29 1 L2 NC Murata Electronics
30 2 L3, L4 4.7uH TDK
31 2 R1, R10 10k ROHM Semiconductor
32 1 R2 1k 1% ROHM Semiconductor
33 2 R3, R7 0R KEMET
34 1 R4 100k Panasonic
36 1 U1 ~ Nordic Semiconductor
37 1 U2 M20057-1 Antenova
38 1 Z1 2.4nH Murata Electronics
39 1 Z2 0.9pf Murata Electronics
40 1 Z3 1.5nH Murata Electronics
41 1 Z4 7.9nH Murata Electronics
42 1 Z5 36pF Murata Electronics
43 1 Z6 1pF Murata Electronics
44 1 Z8 2.2pF Murata Electronics

Le immagini nell’articolo sono tratte dal sito ufficiale del progetto FindMyCat.

Ti consigliamo anche

Link copiato negli appunti