תוכן עניינים:
- שלב 1: חומרה ל- BLE-LED-Stick
- שלב 2: הרכבה אלקטרונית
- שלב 3: כיצד ליצור את הגופנים?
- שלב 4: תוכנת בקרת BLE
- שלב 5: מבחן ראשון
- שלב 6: בחר את האנימציות
- שלב 7: בקרת RGB
- שלב 8: שירות טקסט_אנימציה ושירות אחסון מתמשך
- שלב 9: הפעל את אפליקציית Android
- שלב 10: כתוב הודעות בתמונות
וִידֵאוֹ: LED POVstick עם אנרגיית Bluetooth נמוכה: 10 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
מדריך זה מראה לך כיצד לבנות מקל לייטרייטר עם נוריות RGB הניתנות לשליטה באמצעות BLE מהטלפון שלך!
עכשיו כשהעונה האפלה מתחילה וצריך לצלם תמונות חשיפה ארוכה: בעזרת מקל זה תוכל לרשום את החתימה שלך לתמונה, או ציטוט מוטיבציה, או הצהרת אהבה, קוד QR, כתובת אינטרנט, או הרבה דברים אחרים…
הוא מכסה מספר נושאי פיתוח:
- בניית החומרה
- תכנות ערכת השבבים ברוש BLE עם סי
- צור אפליקציה משלך כדי לשלוט בה.
שלב 1: חומרה ל- BLE-LED-Stick
עבור המקל אתה צריך את הדברים הבאים:
- מודול BLE ברוש (CY8C4247LQI-BL583)
- רצועת WS2812b RGB-LED (64 נוריות מרצועה של 144 ליטר למטר)
- סוללת ליתיום עם מחזיק מתאים (18650)
- כפתור לחיצה
- חתיכת לוח לחם
החומרה של המקל עצמו פשוטה למדי.
מודול ברוש BLE מותקן על פיסת לוח ולדים, הכפתור ואספקת החשמל פשוט מחוברים ללוח הלחם הזה.
הכל מותקן, מודבק או מוברג לחתיכה קטנה של רצועת עץ, שהיא עצמה מוכנסת בחלקה לצינור פוליאקריל שקוף. אבל זה לא חובה. רציתי להרכיב הכל בתוך צינור, אבל לא מצאתי מתאים למודול BLE ולסוללה שהם די גדולים בהשוואה לנורות הלדים. לצורך זריקה ראשונה אין צורך בצינור האקריל.
שלב 2: הרכבה אלקטרונית
שלב זה מראה לך כיצד מותקן מודול ה- BLE ובאילו סיכות משמשות לאיזו מטרה.
כמו בכמה מההוראות שלי השתמשתי בערכת הפיתוח של ברוש BLE. מדריך להתחלה מהירה של CY8CKIT-042-BLE
אם אתה רוצה להפעיל את המודול בכוחות עצמו, כל מה שאתה צריך לחבר הוא מקורות החשמל והסיכות המשומשות.
לפרויקט שלנו אנו משתמשים רק בסיכה 3.5 להנעת רצועת ה- LED. אבל כמובן שאתה יכול לשנות את זה עם PSoC Creator.
כפי שניתן לראות בתמונת ה- PCB, הוספתי ראשי סיכות בכל פינות השבב אך דילגתי על סיכת ה- VREF.
כך המודול מותקן כראוי ואי אפשר לנתק את המודול בצורה לא נכונה.
שלב 3: כיצד ליצור את הגופנים?
ובכן, אני חושב שזו הייתה אחת הבעיות המעניינות ביותר שפתרתי במהלך הפרויקט הזה.
כמובן שאפשר פשוט לעצב פונט חדש ולכתוב אותו במערך, אבל זו באמת עבודה רבה!
אז מה עשיתי?
ידעתי שאני צריך איזושהי ASCII להמרת מפת סיביות. והיה לי מזל, כי לא הייתי הראשון עם הבעיה הזו!:-)
התוכנה "מחולל גופנים GLCD" עשתה בדיוק את הדבר הנכון:
מכיוון שרציתי להפיק את המרב ממקל ה- LED, ייבאתי את הגופן בגודל די גדול (~ 32 פיקסלים). אם אתה משתמש באותיות גדולות בלבד, אינך צריך לדאוג לעלייה, מה שיגדיל את גודל הגופן הנראה לעין עוד כמה פיקסלים. אבל בחרתי להשתמש באותיות גדולות ובאותיות קטנות. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
לאחר שתייבא גופן למחולל גופנים של GLCD תוכל לבחור לייצא אותו בפורמטים שונים.
ניסיתי לייצא אותו ישירות לכותרות וזה היה טוב, אבל לא מושלם. הייצוא המתקבל הוא מערך מכנסיים קצרים (16 ביט) עם ערכי בית-הקס עבור העמודות עבור כל תו של התו הראשון של 128-ascii. לא בדיוק מה שרציתי או שהייתי צריך…
אז ייבאתי את המערך לגליון עבודה פתוח של Office. לאחר מכן הסרתי את ה "0x" על שלושה מתוך ארבעה ערכים ושרשרתי אותם לערך אחד ארוך של 32 ביט. תיקנתי גם את הסיבולת הלא נכונה של בתים בודדים.
המערך המתקבל הוא מערך N*M של ערכים של 32 ביט. M הוא הדמות המתאימה ו- N הם העמודות המרכיבות את הצגת האות הזו. בטיוטה הראשונה לכל הדמויות יש אותו מספר עמודות, כלומר כל האותיות רחבות באותה מידה, כמו בגופן Courier הידוע. תווים קטנים כמו "i" או "t" נראים כאילו הם אבודים בחלל.
לכן הוספתי פרמטר חדש בתחילת כל תו כדי לספר, כמה עמודות יש לדמות הזו או עד כמה התו הזה רחב. זה חוסך זיכרון וגורם לטקסט להיראות טוב יותר!
שלב 4: תוכנת בקרת BLE
העיקרון של תוכנת BLE קל מאוד:
- בהתחלה זה פשוט לא עושה כלום.
- באמצעות BLE ניתן להגדיר הנפשות או טקסטים שונים שיוצגו.
- לאחר לחיצה על הכפתור, העמודות הבודדות של ההנפשה או הטקסט מוצגות.
- לאחר הצגת הטקסט, הוא ממשיך לחכות שוב.
פשוט ייבא את פרויקט הברוש ל- PSoC-Creator שלך ושנה אותו אם תרצה.
ל- PSoC-4 אין הרבה זיכרון RAM ופלאש בכדי להכיל תמונות RGB שלמות של הגופנים. לכן הייתי צריך דרך לייצר את תוכן ה- LED באופן דינמי מהטקסט. זה די פשוט, שום דבר מיוחד עד כה. מתוך טקסט בעל אותיות רבות, האלגוריתם לוקח אות אחת וממיר אותו למערך מפות סיביות בשחור-לבן. לאחר מכן הוא לוקח כל עמודה של מפת סיביות אחת באות אחת ובמקום לבן, היא כותבת את צבע ה- RGB הנוכחי למערך ה- LED. כך תוכלו ליצור טקסטים בצבע יחיד או על ידי פונקציה נוספת לשנות את הצבע אחרי כל עמודה, כל אות או אפילו אחרי כל פיקסל.
ניתן לאחסן "אות" במשתנה בתים בודד בעוד שיש לאחסן מפת סיביות בשחור ולבן במערך כלשהו.
מבנה הנתונים הוא זה:
String: newtext = "שלום";
גופן: uint32 characters = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn, … SecondCharacter_ColumnCount, SecondCharacter_FirstColumn, … … LastCharacter_ColumnCount, … LastCharacter_LastColumn}; צבע: uint32 rgbcolor = 0xHHBBGGRR; // בהירות, כחול, ירוק, אדום כל אחד כערך של 8 ביט
כדי להמיר מחרוזת לתצוגה אנו מבצעים את הפעולות הבאות:
getCharacter (): H (8 ביט)
getColumn (int i): עמודה (32bit) (i מתחיל בעמודה הראשונה, רץ עד האחרון.) אם (bit בעמודה הוא 1) LED ב- Strip מוגדר לצבע. מערך LED-Strip הוא 64 נוריות LED עם צבעים של 32 ביט כל אחת!
ואם העמודה הזו מוצגת אנו ממשיכים בעמודה הבאה.
זה קל כל כך.
שלב 5: מבחן ראשון
כעת, כשהתוכנה פועלת, אנו מוכנים לבדיקות הראשונות.
הדרך הקלה ביותר לבדוק את הפונקציה המוטבעת היא באמצעות אפליקציית בדיקת אנרגיה נמוכה של Bluetooth. כמו אפליקציות נורדיות או ברוש.
נורדי: nRF Connect לנייד
ברוש: CySmart
הפעל את ה- Pov-Stick וצפה כיצד מחרוזת ההדגמה תוצג. לאחר סיום זה הזמן להפעיל את האפליקציה. חפש במכשיר Povstick ולחץ על התחבר.
לאחר חיבור החיבור האפליקציה תגלה אוטומטית את כל השירותים והמאפיינים המוגדרים.
חפש את השירות הראשון (צריך להתחיל עם 0000 סמ ק …). לחץ עליו כדי לפתוח אותו ולהציג את המאפיין הראשון (מתחיל ב- 0000ccc1). לאחר מכן לחץ על כפתור הכתיבה (או העלה) וכתוב 01 למאפיין זה.
ברגע שתלחץ על שלח, ה- POVstick יתחיל את האנימציה של Color-Knight-rider המכונה סורק לארסון עם צבעים משתנים.
ברכות ששלחת את הערך הראשון שלך באמצעות BLE!
שלב 6: בחר את האנימציות
בתוכנה הגדרנו סיכום "e_Animation" עם הערכים הבאים:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, TextAnimation;
אלה הערכים שהם תקפים למאפיין ccc1. אם אתה רוצה לראות את CandyCane-Animation אתה צריך לכתוב 4, 5 או 6 למאפיין זה. הם שונים בצבעים.
שתי הנפשות מיוחדות הן RGB_Control ו- TextAnimation. אם בחרת להפעיל אותם, ברור שהמקל לא יראה כלום בהתחלה. אבל הוא מציע לך אפשרויות נוספות לשלוט במקל עם שאר השירותים.
שלב 7: בקרת RGB
ניתן לבדוק בקלות את ה- RGB-Control בעזרת אפליקציית CySmart מכיוון שהשתמשתי באותו UUID למאפיין זה כמו בהדגמת ברוש.
הפעל את אפליקציית CySmart והתחבר ל- Povstick. ראשית עליך לכתוב "0x0A" למאפיין ccc1.
0x0A הוא ערך ה- hex עבור 10, המהווה את האנימציה של RGB-Control במעמד.
לאחר מכן תוכל לעבור ללוח הבקרה RGB-LED באפליקציית CySmart. אולי עליך להפעיל מחדש את האפליקציה כדי להגיע למסך זה. לאחר מכן תוכל לשלוט על הצבע של כל הלדים באמצעות תרשים RGB זה.
כמובן שאתה יכול גם לכתוב את הערכים ישירות לתוך המאפיין.
שלב 8: שירות טקסט_אנימציה ושירות אחסון מתמשך
שירותים אלה אינם כה קלים לבדיקה.
מבחינה טכנית תוכל גם להשתמש באפליקציה הנורדית לשם כך, אך עליך לדעת אילו ערכים לכתוב לאיזה מאפיין.
אז אם אתה רוצה לבדוק את אלה, אתה צריך להסתכל על פרויקט PSoC, איזה מאפיין יש איזה UUID.
מאפיין חשוב הוא המאפיין "מהירות הגדרה". בעזרת מאפיין זה תוכלו לשלוט על מהירות האנימציות.
בעזרת המאפיין "Set_Animation" של PersistentStorageService תוכלו לשלוט בגופנים ובצבעים של מחרוזת הטקסט. הערכים התקפים מוגדרים ב- "povanimation.h", שני גופנים "מונו" ו"סריף "וצבע יחיד וצבעי קשת. הערכים 0 ו -1 מציגים את הטקסט בצבע קבוע, הניתן לשליטה באמצעות המאפיין RGB_Control. הערכים 2 ו -3 משנים את הצבע לכל עמודה ומעניקים למחרוזת קשת יפה.
"Write_Text_Service" שונה במקצת. אתה יכול לכתוב מחרוזת חדשה למכשיר על ידי כתיבת תווים בודדים למאפיין "Set_Character". בכל כתיבה תקבל הודעה על האורך הנוכחי של המחרוזת.
כדי להתחיל מחרוזת חדשה, כתוב "true" ל- "Clear_String".
זה לא היישום הטוב ביותר, אבל זה עובד עבור כל מחרוזת של עד 250 תווים מבלי לשנות את גודל MTU.
הצגת מחרוזת חדשה עם התחלה כאשר הלחיצה על ה- Povstick נלחצת.
שלב 9: הפעל את אפליקציית Android
זהו שלב חשוב, אך הרבה מעבר להיקף ההנחיות. מצטער על זה!
אולי אולי אעלה את אפליקציית הבדיקה שלי לחנות Play, אך היא עדיין לא הסתיימה או ניתנת לשחרור.
שלב 10: כתוב הודעות בתמונות
ובכן, זו הסיבה שבגללה אני בונה את האכסניה הזו מלכתחילה: לכתוב הודעות בתמונות.
אתה צריך חצובה, מצלמה עם פונקציית חשיפה ארוכה ומיקום טוב.
הגדר את המצלמה והתאם את זמן החשיפה ל -10 שניות לבדיקה ראשונה.
הפעילו את השחרור והתחילו לעבור בתמונה, התחילו את תצוגת הטקסט על המקל.
אט ווילה אנחנו כאן!
עם השילוב הנכון של בהירות LED, צמצם וזמן חשיפה אפשר אפילו לצלם עם עלות השחר.
שלוש התמונות בשלב זה מציגות את מכלול האפשרויות.
בראשון, נוריות ה- LED חשופות יתר ויוצרות זוהר קסום. אבל זו הסיבה שההשתקפויות בשטח גלויות והרקע די טוב.
התמונה השנייה נחשפת עבור נוריות הלדים, אך זה משאיר את הרקע שחור לגמרי.
והשלישית מציגה נוריות LED די עמומות זמן קצר לאחר השקיעה. נוריות הלדים בהירות כמו בתמונות האחרות, אך הסביבה הייתה כה בהירה שהייתי צריך להשתמש בצמצם נמוך ו- ISO נמוך כך שהנורות יראו כהות למדי.
פרס שני בתחרות זוהר זוהר 2018
מוּמלָץ:
יצירת מערכת מוסיקה Bluetooth נמוכה משלך: 5 שלבים (עם תמונות)
צור מערכת מוזיקה Bluetooth נמוכה משלך: בפרויקט זה אראה לך כיצד התמזגתי " מקלט מוזיקת בלוטות 'זול ועפר עם רמקול ישן שלי. המוקד העיקרי יהיה בעיצוב מעגל מגבר אודיו בעלות נמוכה סביב LM386 ו- NE5534. מקלדת הבלוטות
הדגמת אנרגיית אופניים (הוראות הפעלה): 4 שלבים
הדגמת אנרגיית אופניים (הוראות הפעלה): הוראה זו היא הוראת ההפעלה של הדגמת אנרגיית האופניים. הקישור לבנייה כלול למטה: https: //www.instructables.com/id/Bicycle-Energy-Demo-Build
הדגמת אנרגיית אופניים (בנייה): 7 שלבים
הדגמת אנרגיית אופניים (בנייה): מטרת מדריך זה הייתה ליצור הדגמה אינטראקטיבית לאנרגיית אופניים כדי לעורר עניין של הילד בהנדסה. הפרויקט עובד כדלקמן, כאשר ילד מדווש על האופניים מהר יותר, הוא מסוגל להפעיל יותר אורות בתצוגה
צג אנרגיית נורה: 9 שלבים (עם תמונות)
מוניטור אנרגיה לנורה: אני מבצע מחקר אנרגיה לעבודה היום יומית שלי. אז אין זה מפתיע שאני מאוד מעוניין לדעת כיצד אנו משתמשים באנרגיה בדירה שלנו. במהלך השנים, השתמשתי בצג אנרגיית יציאה יחיד (מד Kill-A-Watt) וכן במלואו
רדיומטר בעלות נמוכה בעלות נמוכה: 11 שלבים (עם תמונות)
רדיומטר בילי-לייט בעלות נמוכה: תוכנן על ידי גרג נוס ואדווית קוטצ'ה מטרתו של מדריך זה היא ייצור מכשיר בעלות נמוכה, נוחה ותחזוקה נמוכה למדידת היעילות של נורות פוטותרפיה דו-נורות לטיפול בהיפרבילרובינמיה. (כן