Sommario:

Piuma di localizzazione UWB: 6 passaggi
Piuma di localizzazione UWB: 6 passaggi

Video: Piuma di localizzazione UWB: 6 passaggi

Video: Piuma di localizzazione UWB: 6 passaggi
Video: ULTRA WIDE BAND (UWB) // localizzare oggetti, persone e muletti in tempo reale // R.T.L.S. (AXC #3) 2024, Novembre
Anonim
Piuma di localizzazione UWB
Piuma di localizzazione UWB

L'Ultra-WideBand Feather incorpora il modulo Decawave DWM1000 e un ATSAMD21 ARM Cortex M0 nel fattore di forma della piuma Adafruit. Il modulo DWM1000 è un modulo wireless conforme a IEEE802.15.4-2011 UWB in grado di eseguire un posizionamento interno di precisione e velocità di trasmissione dati elevate, rendendo questa scheda perfetta per progetti di robotica in cui è richiesta la localizzazione.

Caratteristiche:– Decawave DWM1000 per tracciamento di precisione– ARM Cortex M0 per applicazioni veloci e potenti– Compatibile con Adafruit Feather per l'integrazione con un ampio ecosistema esistente– Interfaccia SWD per applicazioni di programmazione e debugging– Connettore USB-C– Caricabatteria LiPo integrato

Per la stesura completa del progetto e gli aggiornamenti, visualizza questo progetto sul mio sito Prototyping Corner su prototypingcorner.io/projects/uwb-feather

L'hardware e il software di origine per questo progetto sono disponibili nel repository GitHub.

Passaggio 1: progettazione dell'hardware

Progettazione hardware
Progettazione hardware
Progettazione hardware
Progettazione hardware
Progettazione hardware
Progettazione hardware

Come accennato nell'introduzione, l'UWB Feather è costituito da un ATSAMD21 ARM Cortext M0+ per il cervello e un modulo Decawave DWM1000 per il wireless a banda ultra larga, nel fattore di forma piuma. Il design è relativamente semplice e consiste in 20 elementi BoM su un PCB a 2 strati. Pinout è compatibile con Adafruit M0 Feather

La ricarica LiPo è gestita dal controller di gestione della carica a cella singola MCP73831 completamente integrato. La tensione della batteria può essere monitorata su D9, tuttavia è necessario l'accesso a tutti gli IO, JP1 può essere tagliato per liberare questo pin. La regolazione a 3,3 volt è eseguita dal regolatore lineare a bassa caduta di tensione AP2112K-3.3, che fornisce fino a 600 mA.

Pinout è completamente compatibile con la linea di piume Adafruit M0 per una facile portabilità del codice. Le linee IO DWM1000 sono collegate al bus SPI e ai pin digitali 2, 3 e 4 rispettivamente per RST, IRQ e SPI_CS (che non sono esposti tramite l'intestazione). D13 è anche collegato al LED di bordo, come è standard tra molte schede compatibili con Arduino.

La programmazione può essere eseguita tramite l'intestazione SWD o tramite USB se caricata con un bootloader corrispondente come uf2-samdx1 di Microsoft. Vedere il firmware per ulteriori informazioni.

Nota sulla V1.0

Si è verificato un problema con il connettore USB-C sulla versione 1 di questa scheda. L'ingombro che ho usato non includeva il ritaglio richiesto per il metodo di montaggio del ritaglio di questo componente.

La versione 1.1 includerà una correzione per questo oltre all'aggiunta di un connettore micro-b per coloro che lo desiderano. Vedere le considerazioni sulla versione 1.1 di seguito.

Per le considerazioni sulla progettazione della distinta materiali e della versione hardware 1.1, vedere il resoconto del progetto.

Passaggio 2: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Con solo 20 elementi BoM e la maggior parte dei componenti non inferiori a 0603 (i condensatori a cristallo 2x erano 0402), l'assemblaggio manuale di questa scheda è stato facile. Ho avuto il PCB e lo stencil per saldatura prodotti da JLCPCB in nero opaco con finitura superficiale ENIG.

Il costo totale per 5 schede (anche se 10 non avevano alcuna differenza di prezzo) e lo stencil era di $ 68 AUD, tuttavia $ 42 di questi erano di spedizione. L'ordine per la prima volta da JLCPCB e le schede erano di altissima qualità con una bella finitura.

Passaggio 3: firmware: programmazione del bootloader

Firmware: programmazione del bootloader
Firmware: programmazione del bootloader
Firmware: programmazione del bootloader
Firmware: programmazione del bootloader
Firmware: programmazione del bootloader
Firmware: programmazione del bootloader

Il firmware può essere caricato tramite il connettore SWD utilizzando un programmatore come J-Link di Segger. Sopra è mostrato il J-Link EDU Mini. Per iniziare a programmare la scheda, dobbiamo caricare il nostro bootloader, quindi impostare la nostra catena di strumenti.

Userò Atmel Studio per eseguire il flashing del bootloader. Per fare ciò, collega J-Link e apri Atmel Studio. Quindi selezionare Strumenti > Programmazione dispositivo. In Strumento selezionare J-Link e impostare Dispositivo su ATSAMD21G18A, quindi fare clic su Applica.

Collega il J-Link all'intestazione SWD Feather e applica l'alimentazione tramite USB o tramite la batteria. Una volta connesso, in Firma dispositivo fare clic su Leggi. Le caselle di testo Firma dispositivo e Tensione target dovrebbero propagarsi di conseguenza. Se non controllano le connessioni e riprovano.

Per flashare il bootloader dobbiamo prima disabilitare il fusibile BOOTPROT. Per fare ciò selezionare Fusibili > USER_WORD_0. NVMCTRL_BOOTPROT e passare a 0 Byte. Fare clic su Programma per caricare le modifiche.

Ora possiamo eseguire il flashing del bootloader selezionando Memories > Flash e impostando la posizione del bootloader. Assicurarsi che Cancella Flash prima di selezionare la programmazione e fare clic su Programma. Se tutto va bene D13 sulla scacchiera dovrebbe iniziare a pulsare.

Ora dovrai impostare il fusibile BOOTPROT sulla dimensione del bootloader da 8 kB. Per fare ciò selezionare Fusibili > USER_WORD_0. NVMCTRL_BOOTPROT e passare a 8192 Byte. Fare clic su programma per caricare le modifiche.

Ora che il bootloader è stato flashato, D13 dovrebbe lampeggiare e, se collegato tramite USB, dovrebbe apparire un dispositivo di archiviazione di massa. Qui è possibile caricare i file UF2 per la programmazione della scheda.

Passaggio 4: firmware: codice lampeggiante con PlatformIO

Firmware: codice lampeggiante con PlatformIO
Firmware: codice lampeggiante con PlatformIO
Firmware: codice lampeggiante con PlatformIO
Firmware: codice lampeggiante con PlatformIO

Il firmware può essere caricato tramite il protocollo UF2 o direttamente tramite l'interfaccia SWD. Qui useremo PlatformIO per la sua facilità e semplicità. Per iniziare, crea un nuovo progetto PIO e seleziona Adafruit Feather M0 come scheda di destinazione. Quando si carica su SWD con un J-Link, impostare upload_protocol in platformio.ini come mostrato di seguito.

[env:adafruit_feather_m0]platform = scheda atmelsam = adafruit_feather_m0 framework = arduino upload_protocol = jlink

Ora puoi programmare la scheda con la semplicità del framework Arduino.

Passaggio 5: firmware: lampeggiamento dell'ancora

Firmware: lampeggiamento dell'ancora
Firmware: lampeggiamento dell'ancora
Firmware: lampeggiamento dell'ancora
Firmware: lampeggiamento dell'ancora

I moduli DWM1000 possono essere configurati per essere ancoraggi o tag. Generalmente le ancore vengono mantenute in posizioni statiche note e i tag utilizzano le ancore per ottenere una posizione relativa ad esse. Per testare il modulo DWM1000 puoi caricare l'esempio DW1000-Anchor dal repository GitHub.

Per eseguire il flashing di questo programma con PlatformIO, da PIO Home, selezionare Open Project, quindi trovare la posizione della cartella DW1000-Anchor nel repository GitHub. Quindi fare clic sul pulsante di caricamento del PIO e troverà automaticamente la sonda di debug collegata (assicurarsi che sia collegata e che la scheda sia alimentata).

Il firmware del tag dovrà essere caricato su un'altra scheda. Quindi il risultato può essere visualizzato in un terminale seriale.

Passaggio 6: andare oltre

Andare avanti
Andare avanti

Ulteriori miglioramenti a questo progetto includeranno lo sviluppo su una nuova libreria DW1000, la scheda V1.1 cambia altri progetti che utilizzano questa tecnologia. Se c'è un interesse sufficiente, prenderò in considerazione la produzione e la vendita di queste schede.

Grazie per aver letto. Lascia qualsiasi pensiero o critica nei commenti qui sotto e assicurati di dare un'occhiata al progetto su Prototyping Corner

Consigliato: