Table des matières:

Plume de localisation UWB : 6 étapes
Plume de localisation UWB : 6 étapes

Vidéo: Plume de localisation UWB : 6 étapes

Vidéo: Plume de localisation UWB : 6 étapes
Vidéo: Будущее за сверхширокополосным доступом 2024, Juillet
Anonim
Plume de localisation UWB
Plume de localisation UWB

L'Ultra-WideBand Feather intègre le module Decawave DWM1000 et un ATSAMD21 ARM Cortex M0 dans le facteur de forme de plume Adafruit. Le module DWM1000 est un module sans fil conforme IEEE802.15.4-2011 UWB capable d'un positionnement intérieur de précision et de débits de données élevés, ce qui rend cette carte parfaite pour les projets de robotique où la localisation est requise.

Caractéristiques:– Decawave DWM1000 pour un suivi de précision– ARM Cortex M0 pour des applications rapides et puissantes– Compatible Adafruit Feather pour s'intégrer à un large écosystème existant– Interface SWD pour la programmation et le débogage des applications– Connecteur USB-C– Chargeur de batterie LiPo intégré

Pour la description complète du projet et les mises à jour, consultez ce projet sur mon site Prototyping Corner à prototypingcorner.io/projects/uwb-feather

Le matériel et les logiciels sources de ce projet sont disponibles dans le référentiel GitHub.

Étape 1: Conception du matériel

Conception de matériel
Conception de matériel
Conception de matériel
Conception de matériel
Conception de matériel
Conception de matériel

Comme mentionné dans l'introduction, l'UWB Feather se compose d'un ATSAMD21 ARM Cortext M0+ pour le cerveau et d'un module Decawave DWM1000 pour le sans fil ultra-large bande, au format plume. La conception est relativement simple et consiste en 20 éléments BoM sur un PCB à 2 couches. Le brochage est compatible avec Adafruit M0 Feather

La charge LiPo est gérée par le contrôleur de gestion de charge à cellule unique MCP73831 entièrement intégré. La tension de la batterie peut être surveillée sur D9, mais si l'accès à toutes les E/S est requis, JP1 peut être coupé pour libérer cette broche. La régulation de 3,3 volts est réalisée par le régulateur linéaire à faible chute AP2112K-3.3, fournissant jusqu'à 600 mA.

Pinout est entièrement compatible avec la gamme de plumes Adafruit M0 pour une portabilité facile du code. Les lignes IO du DWM1000 sont connectées au bus SPI et aux broches numériques 2, 3 et 4 pour RST, IRQ et SPI_CS respectivement (qui ne sont pas exposées via l'en-tête). D13 est également connecté à la LED intégrée, comme c'est le cas parmi de nombreuses cartes compatibles Arduino.

La programmation peut être préformée sur l'en-tête SWD ou via USB si elle est chargée avec un chargeur de démarrage correspondant tel que le uf2-samdx1 de Microsoft. Voir le micrologiciel pour en savoir plus.

Remarque sur la V1.0

Il y a un problème avec le connecteur USB-C sur la version 1 de cette carte. L'empreinte que j'ai utilisée n'incluait pas la découpe requise pour la méthode de montage de découpe de ce composant.

La version 1.1 inclura un correctif pour cela ainsi que l'ajout d'un connecteur micro-b pour ceux qui le souhaitent. Voir les considérations de la version 1.1 ci-dessous.

Pour les considérations de conception de la nomenclature et du matériel de la version 1.1, voir la rédaction du projet.

Étape 2: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée

Avec seulement 20 éléments de BoM et la plupart des composants n'étant pas plus petits que 0603 (les 2 condensateurs à cristal étaient 0402), l'assemblage manuel de cette carte était facile. J'ai fait fabriquer le pochoir PCB et soudure par JLCPCB en noir mat avec finition de surface ENIG.

Le coût total pour 5 planches (bien que 10 n'aient pas eu de différence de prix) et le pochoir était de 68 $ AUD, mais 42 $ de ce montant étaient expédiés. La première commande de JLCPCB et les planches étaient de très haute qualité avec une belle finition.

Étape 3: Firmware: Programmation du Bootloader

Micrologiciel: programmation du chargeur de démarrage
Micrologiciel: programmation du chargeur de démarrage
Micrologiciel: programmation du chargeur de démarrage
Micrologiciel: programmation du chargeur de démarrage
Micrologiciel: programmation du chargeur de démarrage
Micrologiciel: programmation du chargeur de démarrage

Le micrologiciel peut être chargé sur le connecteur SWD à l'aide d'un programmeur tel que le J-Link de Segger. Ci-dessus, le J-Link EDU Mini. Pour commencer à programmer la carte, nous devons charger notre bootloader puis configurer notre chaîne d'outils.

J'utiliserai Atmel Studio pour flasher le bootloader. Pour ce faire, branchez le J-Link et ouvrez Atmel Studio. Sélectionnez ensuite Outils > Programmation de l'appareil. Sous Outil, sélectionnez le J-Link et définissez l'appareil sur ATSAMD21G18A, puis cliquez sur Appliquer.

Connectez le J-Link à l'en-tête SWD en plume et appliquez l'alimentation via USB ou via la batterie. Une fois connecté, sous Signature de l'appareil, cliquez sur Lire. Les zones de texte Device Signature et Target Voltage doivent se propager en conséquence. S'ils ne vérifient pas les connexions et réessayez.

Pour flasher le bootloader, nous devons d'abord désactiver le fusible BOOTPROT. Pour ce faire, sélectionnez Fusibles > USER_WORD_0. NVMCTRL_BOOTPROT et passez à 0 octet. Cliquez sur Programmer pour télécharger les modifications.

Nous pouvons maintenant flasher le bootloader en sélectionnant Memories > Flash et définir l'emplacement du bootloader. Assurez-vous que Effacer Flash avant la programmation est sélectionné et cliquez sur Programmer. Si tout se passe bien, D13 sur le tableau devrait commencer à pulser.

Vous devez maintenant régler le fusible BOOTPROT sur la taille du chargeur de démarrage de 8 Ko. Pour ce faire, sélectionnez Fusibles > USER_WORD_0. NVMCTRL_BOOTPROT et passez à 8192 octets. Cliquez sur programme pour télécharger les modifications.

Maintenant que le bootloader a été flashé, D13 devrait clignoter et s'il est branché via USB, un périphérique de stockage de masse devrait apparaître. C'est là que les fichiers UF2 peuvent être téléchargés pour programmer la carte.

Étape 4: Firmware: Code clignotant avec PlatformIO

Firmware: code clignotant avec PlatformIO
Firmware: code clignotant avec PlatformIO
Firmware: code clignotant avec PlatformIO
Firmware: code clignotant avec PlatformIO

Le firmware peut être téléchargé via le protocole UF2 ou directement via l'interface SWD. Ici, nous utiliserons PlatformIO pour sa facilité et sa simplicité. Pour commencer, créez un nouveau projet PIO et sélectionnez Adafruit Feather M0 comme carte cible. Lors du téléchargement sur SWD avec un J-Link, définissez le upload_protocol dans platformio.ini comme indiqué ci-dessous.

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

Vous pouvez maintenant programmer la carte avec la simplicité du framework Arduino.

Étape 5: Firmware: Flasher l'ancre

Micrologiciel: clignotement de l'ancre
Micrologiciel: clignotement de l'ancre
Micrologiciel: clignotement de l'ancre
Micrologiciel: clignotement de l'ancre

Les modules DWM1000 peuvent être configurés pour être des ancres ou des balises. En général, les ancres sont conservées à des emplacements statiques connus et les balises utilisent des ancres pour obtenir une position relative par rapport à elles. Pour tester le module DWM1000, vous pouvez télécharger l'exemple DW1000-Anchor depuis le référentiel GitHub.

Pour flasher ce programme avec PlatformIO, depuis PIO Home, sélectionnez Ouvrir un projet, puis recherchez l'emplacement du dossier DW1000-Anchor dans le référentiel GitHub. Cliquez ensuite sur le bouton de téléchargement PIO et il trouvera automatiquement la sonde de débogage attachée (assurez-vous qu'elle est connectée et que la carte est alimentée).

Le micrologiciel du tag devra être téléchargé sur une autre carte. Ensuite, le résultat peut être visualisé dans un terminal série.

Étape 6: Aller plus loin

Aller plus loin
Aller plus loin

D'autres améliorations à ce projet incluront le développement d'une nouvelle bibliothèque DW1000, la carte V1.1 change d'autres projets qui utilisent cette technologie de télémétrie. S'il y a un intérêt suffisant, j'envisagerai de fabriquer et de vendre ces planches.

Merci d'avoir lu. Laissez vos pensées ou critiques dans les commentaires ci-dessous et assurez-vous de consulter le projet sur Prototyping Corner

Conseillé: