תוכן עניינים:
- שלב 1: עיצוב חומרה
- שלב 2: הרכבה
- שלב 3: קושחה: תכנות מטעין האתחול
- שלב 4: קושחה: קוד מהבהב עם PlatformIO
- שלב 5: קושחה: מהבהב את העוגן
- שלב 6: התקדמות נוספת
וִידֵאוֹ: נוצה לוקליזציה של UWB: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
ה- Ultra-WideBand Feather משלב את מודול Decawave DWM1000 ו- ATSAMD21 ARM Cortex M0 לתוך גורם הטופס של נוצת Adafruit. מודול DWM1000 הוא מודול אלחוטי תואם UEEB IEEE802.15.4-2011 מסוגל UWB המסוגל למקם דיוק פנימי ושיעורי נתונים גבוהים, מה שהופך את הלוח הזה למושלם לפרויקטים של רובוטיקה שבהם נדרשת לוקליזציה.
תכונות:-Decawave DWM1000 למעקב מדויק-ARM Cortex M0 ליישומים מהירים וחזקים-Adafruit Feather תואם לשילוב עם מערכת אקולוגית רחבה קיימת-ממשק SWD לתכנות וניקוי באגים-מחבר USB-C-מטען סוללות LiPo משולב.
לעריכת הפרויקט ועדכוניו המלאים צפה בפרויקט זה באתר שלי פינת אב טיפוס בכתובת prototypingcorner.io/projects/uwb-feather
חומרת ותוכנת מקור לפרויקט זה זמינים ממאגר GitHub.
שלב 1: עיצוב חומרה
כפי שהוזכר בהקדמה, נוצת UWB מורכבת מ- ATSAMD21 ARM Cortext M0+ עבור המוח וממודול Decawave DWM1000 עבור הרשת האלחוטית הרחבה במיוחד, בצורת גורם הנוצה. העיצוב פשוט יחסית המורכב מ -20 פריטי BoM על לוח PCB דו-שכבתי. Pinout תואם את Adafruit M0 Feather
טעינת LiPo מטופלת על ידי בקר ניהול תא הטעינה MCP73831 חד-תאי מלא. ניתן לעקוב אחר מתח הסוללה ב- D9, אולם נדרשת גישה לכל IO, ניתן לחתוך JP1 כדי לפנות את הסיכה הזו. ויסות 3.3 וולט מבוצע על ידי הרגולטור הליניארי הנמוך של AP2112K-3.3, המספק עד 600mA.
Pinout תואם במלואו לקו הנוצות של Adafruit M0 לנוחות קוד קלה. קווי DWM1000 IO מחוברים לאוטובוס SPI ולפינים הדיגיטליים 2, 3 & 4 עבור RST, IRQ & SPI_CS בכבוד (שאינם נחשפים באמצעות הכותרת). D13 מחובר גם ללוד המשולב, כסטנדרט בקרב לוחות רבים התואמים Arduino.
ניתן לערוך תכנות מראש על פני כותרת ה- SWD או באמצעות USB אם הוא נטען עם מטען אתחול מתאים, כגון uf2-samdx1 ממיקרוסופט. עיין בקושחה למידע נוסף.
הערה ב- V1.0
יש בעיה במחבר USB-C בגרסה 1 של לוח זה. טביעת הרגל בה השתמשתי לא כללה את החיתוך הנדרש לשיטת ההרכבה של הרכיב של רכיב זה.
גרסה 1.1 תכלול תיקון לכך וכן הוספת מחבר micro-b למי שרוצה בכך. ראה שיקולי גרסה 1.1 להלן.
לשיקולי עיצוב חומרי הגלם וחומרה גרסה 1.1 ראו את כתב הפרויקט.
שלב 2: הרכבה
מכיוון שרק 20 פריטי BoM ורוב הרכיבים אינם קטנים מ- 0603 (קבלים הגביש 2x היו 0402), הרכבה ידנית של לוח זה הייתה קלה. יצרתי את הסטנסיל PCB והלחמה שיצרה JLCPCB בצבע שחור מאט עם גימור משטח ENIG.
העלות הכוללת עבור 5 לוחות (אם כי ל -10 לא היה הבדל במחירים) והסטנסיל היה 68 דולר אוסטרלי, אולם 42 דולר זה משלוח. הפעם הראשונה שההזמנה מ- JLCPCB ולוחות היו באיכות גבוהה מאוד עם גימור יפה.
שלב 3: קושחה: תכנות מטעין האתחול
ניתן לטעון קושחה מעל מחבר ה- SWD באמצעות מתכנת כגון J-Link מ- Segger. המוצג למעלה הוא J-Link EDU Mini. כדי להתחיל לתכנת את הלוח, עלינו לטעון את מטעין האתחול ולאחר מכן להגדיר את שרשרת הכלים שלנו.
אני אשתמש ב Atmel Studio להבהב את מטעין האתחול. לשם כך, חבר את ה- J-Link ופתח את Atmel Studio. לאחר מכן בחר כלים> תכנות מכשירים. תחת כלי בחר את J-Link והגדר את ההתקן ל- ATSAMD21G18A ולאחר מכן לחץ על החל.
חבר את ה- J-Link לכותרת ה- SWD הנוצה והפעל חשמל באמצעות USB או באמצעות הסוללה. לאחר החיבור, תחת חתימת ההתקן לחץ על קרא. תיבות הטקסט חתימת המכשיר ומתח היעד צריכות להתפשט בהתאם. אם הם לא בודקים את החיבורים ונסו שוב.
כדי להבהב את מטען האתחול עלינו קודם כל להשבית את נתיך BOOTPROT. לשם כך בחר נתיכים> USER_WORD_0. NVMCTRL_BOOTPROT ושנה ל- 0 בתים. לחץ על תוכנית כדי להעלות את השינויים.
כעת נוכל להבהב את מטען האתחול על ידי בחירה בזיכרונות> פלאש ולהגדיר את המיקום של מטען האתחול. ודא מחק פלאש לפני שנבחר תכנות ולחץ על תוכנית. אם הכל מסתדר D13 על הלוח צריך להתחיל לדופק.
עכשיו תצטרך להגדיר את הנתיך BOOTPROT לגודל מטען האתחול של 8kB. לשם כך בחר נתיכים> USER_WORD_0. NVMCTRL_BOOTPROT ושנה ל- 8192 בתים. לחץ על תוכנית להעלאת השינויים.
כעת, לאחר שמטען האתחול הבהב D13 אמור לפעום ואם הוא מחובר דרך USB, אמור להופיע התקן אחסון המוני. כאן ניתן להעלות קבצי UF2 לתכנות הלוח.
שלב 4: קושחה: קוד מהבהב עם PlatformIO
ניתן להעלות קושחה באמצעות פרוטוקול UF2 או ישירות באמצעות ממשק SWD. כאן נשתמש ב- PlatformIO לנוחותו ופשטותו. כדי להתחיל ליצור פרויקט PIO חדש ובחר Adafruit Feather M0 כ לוח המטרה. בעת העלאה באמצעות SWD עם J-Link הגדר את פרוטוקול ההעלאה ב- platformio.ini כפי שמוצג להלן.
[env: adafruit_feather_m0] פלטפורמה = atmelsam board = adafruit_feather_m0 framework = arduino upload_protocol = jlink
עכשיו אתה יכול לתכנת את הלוח בפשטות המסגרת של Arduino.
שלב 5: קושחה: מהבהב את העוגן
ניתן להגדיר את המודולים של DWM1000 לעוגנים או לתגים. בדרך כלל עוגנים נשמרים במיקומים סטטיים ידועים ותגים משתמשים בעוגנים כדי להשיג להם מיקום יחסי. כדי לבדוק את מודול DWM1000 תוכל להעלות את דוגמת DW1000-Anchor ממאגר GitHub.
כדי להבהב תוכנית זו באמצעות PlatformIO, מ- PIO Home, בחר פתח פרויקט ואז מצא את מיקומה של תיקיית DW1000-Anchor במאגר GitHub. לאחר מכן לחץ על כפתור ההעלאה של PIO והוא ימצא באופן אוטומטי את בדיקת איתור הבאגים המצורפת (ודא שהוא מחובר והלוח מופעל).
יש להעלות את קושחת התגים ללוח אחר. לאחר מכן ניתן לצפות בתוצאה במסוף סדרתי.
שלב 6: התקדמות נוספת
שיפורים נוספים בפרויקט זה יכללו פיתוח על ספריית DW1000 חדשה, לוח V1.1 משנה פרויקטים אחרים המנצלים טכנולוגיה מגוונת זו. אם יש מספיק עניין אשקול לייצר ולמכור לוחות אלה.
תודה שקראתם. השאר כל מחשבה או ביקורת בתגובות למטה והקפד לבדוק את הפרויקט על פינת אב טיפוס
מוּמלָץ:
צליל לוקליזציה של ראש בובה עם Kinect: 9 שלבים (עם תמונות)
צליל לוקליזציה של ראש בובה עם Kinect: הכירו את מרגרט, דמה בודקת למערכת ניטור עייפות של נהג. לאחרונה פרשה מתפקידיה ומצאה את דרכה לחלל המשרד שלנו, ומאז משכה את תשומת ליבם של אלה שחושבים שהיא 'מצמררת'. למען הצדק, אני
כיצד לבצע אנטנת BiQuade כפולה 4G LTE שלבים פשוטים: 3 שלבים
כיצד להפוך אנטנת 4G LTE BiQuade כפולה לשלבים קלים: לרוב לא עמדתי בפני, אין לי עוצמת אות טובה לעבודות היום-יומיות שלי. לכן. אני מחפש ומנסה סוגים שונים של אנטנות אבל לא עובד. לאחר בזבוז זמן מצאתי אנטנה שאני מקווה לייצר ולבדוק, כי זה עקרון הבנייה לא
עיצוב משחק בקפיצה ב -5 שלבים: 5 שלבים
עיצוב משחק בקפיצה ב -5 שלבים: פליק הוא דרך פשוטה מאוד ליצור משחק, במיוחד משהו כמו פאזל, רומן חזותי או משחק הרפתקאות
WIND - מאיץ פרויקטים עבור נוצה Adafruit: 9 שלבים (עם תמונות)
WIND - מאיץ פרויקטים עבור נוצה Adafruit: לאט לאט אספתי את מיקרו -בקרי Adafruit Feather השונים ולוחות החיישנים הזמינים ב- Adafruit. הם הופכים את אב טיפוס ובדיקות לסופר קלים, ואני מעריץ ענק של פריסת הלוח. מאז שמצאתי את עצמי משתמש
Intelligrill®, מופעל על ידי נוצה: 7 שלבים (עם תמונות)
Intelligrill®, מופעל על ידי נוצה: " Intelligrill ®, מופעל על ידי נוצה " הוא גריל מרחוק, מעשן ומד חום לתנור עם תכונה נוספת, המספקת עדכונים בזמן אמת של מתי " המנה העיקרית " יהיה מוכן להגשה. על ידי מעקב מתמיד