קוביית RGB LED עם אפליקציית Bluetooth + אנימציה יוצר: 14 שלבים (עם תמונות)
קוביית RGB LED עם אפליקציית Bluetooth + אנימציה יוצר: 14 שלבים (עם תמונות)

וִידֵאוֹ: קוביית RGB LED עם אפליקציית Bluetooth + אנימציה יוצר: 14 שלבים (עם תמונות)

וִידֵאוֹ: קוביית RGB LED עם אפליקציית Bluetooth + אנימציה יוצר: 14 שלבים (עם תמונות)
וִידֵאוֹ: פיתוח אפליקציות באמצעות App inventor - אפליקצית צייר - שיעור 2 2025, יָנוּאָר
Anonim
קוביית LED RGB עם אפליקציית Bluetooth + AnimationCreator
קוביית LED RGB עם אפליקציית Bluetooth + AnimationCreator

זוהי הוראה כיצד לבנות קוביית LED 6x6x6 RGB (Common Anodes) הנשלטת על ידי אפליקציית Bluetooth באמצעות Arduino Nano. כל ההרכבה ניתנת להתאמה בקלות לקוביית 4x4x4 או 8x8x8. הפרויקט הזה בהשראת GreatScott. החלטתי ללכת על בנייה מתוחכמת יותר באמצעות נוריות גדולות יותר (8 מ מ), עם פחות מרחק + הוספת תקשורת Bluetooth מה שהופך את הוספת פונקציות חדשות לקלות הרבה יותר וגם מוסיף את היכולת לבנות אפליקציה לשליטה בקובייה. זה גם מאפשר לי למשל. קוד משחק נחש (סרטון ראווה שלישי בסוף). נוסף על כך הוספתי מצב Audio Visualizer המאפשר לקוביה לדמיין קלט AUX למשל. מוזיקה באמצעות MSGEQ7 (סרטון ראווה בסוף). בנוסף כתבתי יישום AnimationCreator בג'אווה עם ממשק משתמש נוח ליצירה והכוונה של אנימציות, כך שכל אחד יכול לבנות אנימציות מותאמות אישית מהר מאוד. כך שאפליקציית Sketch + Bluetooth מספקת מסגרת לכל תצורה של קוביית LED ועם יוצר האנימציה אינך צריך לדאוג ליישום הנפשות מותאמות אישית.

קישורים לאפליקציית Sketch ו- Bluetooth של Arduino:

RGBCube_Arduino Sketch (Github)+Animation Creator.jar

אפליקציית Bluetooth Bluetooth (Github)

רשימת החלקים של הקובייה:

  • 216x RGB LED (Anode Common) (8 מ"מ) (AliExpress / Ebay)-> 6x6x6 = 216
  • כבל סרט (1 מ '40 פין אמור להספיק) (AliExpress / Ebay / Amazon)
  • כותרות נקבות וגברים (לפחות 4x40 פינים כל אחת) (AliExpress / Ebay / Amazon)
  • חוט נחושת / כסף בכלי 0.8 מ"מ (~ 25 מטר) (AliExpress / Ebay / Amazon)
  • צינור כיווץ (AliExpress / Ebay / Amazon)

רשימת חלקים ללוחות הבקרה:

  • 7 x נהג LED TLC5940 (Ebay / AliExpress)
  • 6 x IRF 9540 P-Channel MOSFETs (אמזון / eBay / AliExpress)
  • 8 x 10 קבלים uF (אמזון / eBay / AliExpress)
  • 3 x 1000 קבלים uF (אמזון / eBay / AliExpress)
  • נגדי 14x 2.2kOhm (אמזון / eBay / AliExpress)
  • 1 x 1kOhm נגד (אמזון / eBay / AliExpress)
  • 7 x 28 פינים שקעי IC (אמזון / eBay / AliExpress)
  • 1 x Arduino Nano (אמזון / eBay / AliExpress)
  • 1 x 1N4001 דיודה (כל דיודה נפוצה) (אמזון / eBay / AliExpress)
  • קבלים 8 x 0.1uF (Ebay)
  • 1 x DC Jack Jack Mount (אמזון / eBay / AliExpress)
  • 1 x מודול Bluetooth HC-05 (אמזון / eBay / AliExpress)

שלב 1: תיאוריה

תֵאוֹרִיָה
תֵאוֹרִיָה

אם אינך מעוניין בתיאוריה על ריבוב, קפוץ לשלב 2 לתחילת הבנייה בפועל

מכיוון שהחומרה והתוכנה הם חלקים גדולים באותה מידה בפרויקט זה, בואו נסתכל קודם כל על התיאוריה.

מוח הקוביה הוא ננו ארדואינו. הוא מספק מספיק קלט/פלט כדי לקיים אינטראקציה עם מנהלי ההתקנים הנלווים של LED וכן ליצור חיבור בלוטות 'למודול HC-05 וחומרת בקרה אחרת. אם הסתכלת על מבני LED Cube אחרים, תדע שרוב האנשים משתמשים ברשמי Shift פשוטים לאחסון ערכי בהירות של הצבעים של נוריות הלדים הבודדות. מבנה זה אינו משתמש ברישומי Shift, אלא במקום זאת נקרא מנהלי התקני LED "TLC5940". כפי שנראה מאוחר יותר זה חוסך לנו הרבה זמן, כמו גם טונות של חומרה נוספת (למשל נגדים).

הפונקציונליות הבסיסית של שליטה בקובייה משתמשת בריבוי כפולות. במקרה זה אנו מרבבים את 6 שכבות הקוביה, כלומר כל האנודות (+) של כל הלדים בשכבה מחוברים, ואילו הקתודות הבודדות של כל הלדים באותה עמודה מחוברות כלפי מטה. זה אומר שאם אתה רוצה להאיר את הנורית במיקום x = 1, y = 2, z = 3, color: green אתה צריך לספק 5V באנודה של שכבה 3 ולחבר את GND לקתודה של העמודה המתאימה ל- סיכה ירוקה של x = 1, y = 2. כך שבמציאות בנקודת זמן אחת, רק שכבה אחת של הקוביה מופעלת למעשה, אך כפי שתראו בהמשך הקוד אנו מכבים ועוברים על השכבות הבודדות כל כך מהר, שהעין שלנו חושבת שהקוביה כולה דולקת.

כדי לשלוט בדברים כגון בהירות, אנימציות וכן הלאה אנו משתמשים במודול Bluetooth HC-05 המחובר ל- Arduino Nano. זה מאוד פשוט להשתמש במודול עם Arduino מכיוון שאתה צריך רק חיבור 4 פינים ויכול פשוט ממשק את המודול באמצעות ברירת המחדל הסידורי של Arduino. לקראת סיום ההוראה תראה כמה קל לכתוב אפליקציית Bluetooth משלך לשלוט בקוביה.

הערה

בתרשים שלי של לוח Arduino מעגל אתה יכול גם לראות סכמטה קטנה לממשק תהליך MSGEQ7 chipto קלט שמע, זה ממש לא הכרחי לקובייה בפועל וזו רק פונקציונליות נוספת שהוספתי, מכאן שתוכל פשוט להתעלם מהסימון הסכימטי. עם "MSGEQ7"

שלב 2: חומרה: בניית קוביית LED

חומרה: בניית קוביות LED
חומרה: בניית קוביות LED
חומרה: בניית קוביות LED
חומרה: בניית קוביות LED
חומרה: בניית קוביות LED
חומרה: בניית קוביות LED

אז בואו נסתכל איך לבנות את הקובייה עצמה, לפני שנדבר על מעגל הבקרה סביב הארדואינו ננו.

רשימת החלקים לבניית הקוביה:

  • 216x RGB LED (Anode Common) (AliExpress / Ebay)-> 6x6x6 = 216
  • כבל סרט (1 מ '40 פין אמור להספיק) (AliExpress / Ebay / Amazon)
  • כותרות נקבות וגברים (לפחות 4x40 פינים) (AliExpress / Ebay / Amazon)
  • חוט נחושת / כסף בכלי 0.8 מ"מ (~ 25 מטר) (AliExpress / Ebay / Amazon)
  • צינור כיווץ (AliExpress / Ebay / Amazon)

הדבר הראשון שצריך לעשות, ואני עכשיו זה מייגע אך הכרחי, עלינו לבדוק את נוריות הלדים. לשם כך, אנו פשוט מחברים ספק כוח, למשל בלוק סוללה 9V עם קליפ ללוח. כפי שאתה יכול לראות בתמונה 3 הפין הארוך ביותר של נוריות הלדים הוא האנודה (+) כך שאתה מחבר את הסיכה הזו ל- +9V של הסוללה. כעת לפני חיבור GND לצבעים האישיים הקתודות (אדום, ירוק, כחול) הוסיפו לכל קתודה נגד של 220 אוהם כדי להגביל את הזרם. עכשיו תהנה לבדוק את כל הצבעים של כל 216 הלדים.

בשלב הבא נכין את הלדים הנבדקים כך שנוכל להרכיב אותם בקלות בטורים מאוחר יותר.

שלב 3: שורות LED

שורות LED
שורות LED
שורות LED
שורות LED
שורות LED
שורות LED

לפני שנוכל להלחים את הלדים לשורות שלהם, עלינו לכופף ולחתוך את המובילים.

כפי שאתה יכול לראות בתמונה הראשונה פשוט קידחתי חור של 8 מ"מ (עבור 8 מ"מ נוריות) לחתיכת עץ וקידחנו 3 מקדחות קטנות מאוד משמאל לחור הלד ועוד אחת מימין לחור. תרגילים אלה מהווים סמן לכיפוף נכון של המובילים וצריכים להיות במרחק של כ- 1 ס"מ ממרכז החור עבור ה- LED.

הטכניקה הזו בהשראת סטיב מנלי, אתה יכול למצוא סרטון שלו עושה את זה בווריאציה קלה ב- YouTube.

לפני שאתה חותך ומכופף את המוליכים סביב המקדחות כפי שניתן לראות בתמונה 2 ו -3, ודא כי כיוון המובילים תואם לתמונה 1 (כחול בחלק העליון לשמאל, ואז ירוק, ואז אנודה + ימינה, ו אדום שוב שמאלה). המעגל שהכפפת לתוך המוליכים צריך להיות בקוטר גדול מספיק כך שיתאים לחוט הנחושת המשומר (0.8 מ מ). שלב זה מקל להפליא על הלחמת הלדים במקום בצורה יפה.

כעת, כאשר כל הלדים מוכנים, אנו רוצים להרכיב אותם בשורות של 6 שבהן האנודות (+) מחוברות:

  1. בנו ג'יג קטן כפי שניתן לראות בתמונה 6, קדחו 6 חורים (קוטר 0.8 מ"מ) עם מרחק של 2.5 ס"מ לחור הבא. זה מאפשר לנו להתאים 6 נוריות בכל פעם לג'יג
  2. כדי לחבר את האנודות אנו זקוקים לחתיכת חוטי נחושת משופרת ישר באורך ~ 16 ס מ (עם קצת שוליים נוספים). כדי שהחוט יהיה יפה וישר אפשר לחבר קצה אחד של החוט למקדח חשמלי למשל, לאבטח כ -2 מ 'חוטים בכל פעם על שולחן, ולאחר מכן להחזיק את המקדחה כך שהחוט נמתח והדוק ולהפעיל את המקדחה. למשך מספר שניות כשהוא מיישר את החוט מהר מאוד. לאחר מכן תוכל לחתוך את החוט בדיוק במקום בו אבטחת את היצירה. אתה יכול גם להשתמש בשני צבת ולהדק חתיכות קטנות יותר של חוט בכל פעם, אבל זה הרבה יותר מייגע
  3. ברגע שיש לך חוטים באורך 16 ס"מ, אתה מכוון אותם דרך חורי האנודה (+) של נוריות הלוח במזנון ומלחם את סיכות האנודה לחוט (תמונה 7)

לכל הקוביה נצטרך 6x6 = 36 משורות LED אלה

שלב 4: הרכבת שכבות

הרכבת שכבות
הרכבת שכבות
הרכבת שכבות
הרכבת שכבות
הרכבת שכבות
הרכבת שכבות

כפי שציינתי בעבר, נכפיל את שכבות הקוביה, אך עבור ההרכבה קל יותר לבנות 6 קירות של 6x6 נוריות ולאחר מכן להרכיב אותן זו ליד זו ופשוט להריץ חוט נחושת אחד משומר המחבר את האנודות של שורות בשכבה יחד.

שימו לב כי שלב זה לוקח הרבה זמן וסבלנות לעשות את זה נכון, בסך הכל תצטרכו להלחם כ -1000 מפרקי הלחמה לבנייה אז קחו את הזמן!

לבניית קיר LED:

  1. לג'יג: אנו זקוקים לחתיכת עץ עם 6 קווים מגולפים כך שתתאים ל -6 שורות זו מעל זו כדי לבנות קיר. אתה יכול לראות את הג'יג עצמו בתמונה 2 (מרחקים בין השורות: 2.5 ס"מ)
  2. אתה מכניס את 6 שורות הלדים לתוך הגילופים, כאשר חוט האנודה פונה כלפי מטה אל הקו המגולף, כך ש -3 הקתודות (R, G, B) פונות כלפי מעלה
  3. כדי לחבר את הקתודות הממוקמות זו מעל זו (ראו תמונה 2) אנו זקוקים לעוד חוט (אז שוב אנו 6 עמודים x 3 קתודות x 6 קירות = 108 חתיכות תיל משומרות כמתואר בשלב האחרון (2.) (באותו אורך גם כן))
  4. החלק את חתיכות התיל מתחתית העמוד דרך חורי הקתודות לשורה העליונה והלחם את החוט במקומו בכל LED

אתה עושה את זה 6 פעמים כדי לקבל 6 קירות של נוריות LED.

כעת אנו יכולים למעשה להרכיב את הקירות לקובייה עצמה. אבל כדי להחזיק את הקוביה, עלינו לבנות איזשהו מטוס קרקע. לשם כך פשוט השתמשתי בכמה דיקט דק וקדחתי לתוכו חורים קטנים של 0.8 מ"מ, כך שיתאימו לחוטים התלויים משורות ה- LED הנמוכות ביותר (לכל 6 קירות הלד). המדידות לחורי נורית LED אחת מתועדות בשלב 3 והמרחקים בין כל נורית הם 2.5 ס"מ.

כשהחורים במקום אנו לוקחים כעת את הקיר הראשון ומתמרנים אותו לתוך החורים ממש משמאל לדיקט. שורת ה- LED בתחתית צריכה לשבת ממש על העץ, כך שבסופו של דבר כל הקירות מיושרים זהים.

המשך לעשות את אותו הדבר עם שאר קירות הלד, אך זכור כי האנודות של הקירות פונות תמיד לאותו כיוון. (בתמונה 3 כל האנודות של הקירות פונות לשמאל)

לאחר שהקובייה כולה במקומה, עלינו להלחם את האנודות של כל שכבה יחד. לשם כך אנו לוקחים עוד חתיכת ישר ~ 16 ס מ ומניחים אותה על גבי השכבה הראשונה, כך שהחוט יגע בכל חוטי האנודה של 6 הקירות בשכבה אחת. היזהר כי החוט החדש אינו נוגע באחת הקתודות. הלחם את החוט במקומו וחזור על אותו הדבר עבור 5 השכבות הנותרות.

שלב 5: חיווט קוביות

לוח נהגים LED
לוח נהגים LED
לוח נהגים LED
לוח נהגים LED
לוח נהגים LED
לוח נהגים LED

חלקים ללוח הנהגים LED:

  • 7 x TLC5940
  • קבלים 6/7 x 10 uF
  • 2 x 1000 קבלים uF
  • נגדים 7x 2.2kOhm
  • 7 x 28 פינים שקעי IC
  • קבלים 7 x 0.1uF
  • כבל סרט

במעבר למעגלים השולטים, ראשית נסתכל על לוח הנהג LED. כפי שצוין קודם לכן אנו זקוקים לשבעה TLC5940 המחוברים ל- Arduino Nano. כל שבבי TLC5940 כבולים בחינניות, כלומר כל סיכות הבקרה של מנהלי ההתקן מחוברים זה לזה (למשל סיכת BLANK של ה- TLC הראשונה מחוברת ל- BLANK של השני, השלישי, הרביעי, … TLC) וכולם מחוברים ל- Arduinowith. אותם חוטים, למעט ה- Serial In אשר מתחבר לראשונה מסיכה דיגיטלית של Arduino ל- TLC הראשון, ואז סיכת Out Out של TLC הראשון מחוברת לסיכת SIN של ה- TLC השני וכן הלאה (ראה תמונה 4) …

כך שהסכימה של לוח TLC פשוטה למדי כפי שניתן לראות בתרשים המצורף.

(אם אתה רוצה לחרוט את קפיצת הלוח לשלב 8)

צירפתי גם צילום מסך של הסכימה ב- frizz הכולל תוויות סיכה וגם קבצי GIMP.xcf עם שכבות עבור כל חיבור Pin Pin המופרד.

התחל בהלחמה של כל שקעי ה- IC במקום, ולאחר מכן הוספת קבלים 100nF לכל TLC, ואחריו הנגדים 2.2kOhm ל- IREFand GND והכותרת 7 פינים בפינה הימנית העליונה.. לאחר מכן תוכל פשוט לעקוב אחר קובץ ה- xcf על ידי החל מ"שכבת SIN "בקובץ Gimp המציג כיצד לחבר את סיכות הכניסה/OUT הסידורי של מנהלי ההתקן באמצעות כבלי סרט, ולאחר מכן לאפשר את שכבת CLK ב- GIMP וכן הלאה. וודא שיש לך חיבורים טובים של הסיכות + ו- - לסיכה כותרת בפינה השמאלית העליונה שאר התרשים צריך להסביר את עצמו אך הקפד להוסיף מספיק קבלים של 1000uF ו- 10uF ללוח. זה לא כל כך רלוונטי היכן בדיוק אתה ממקם אותם.

לאחר סיום הלוח הזה תוכל לעבור ללוח ה- Arduino בשלב הבא.

שלב 7: לוח הבקרה Arduino + Bluetooth

לוח בקרה Arduino + Bluetooth
לוח בקרה Arduino + Bluetooth

חלקים ללוח הבקרה:

  • 6 x IRF 9540 ערוצי MOSFET
  • קבלים 1 x 10 uF
  • קבלים 1 x 1000 uF
  • נגדים 7 x 2.2kOhm
  • 1 x 1kOhm נגד
  • 2 x 14 כותרת סיכה נקבה
  • 1 x ארדואינו ננו
  • 1 x 1N4001 דיודה
  • קבלים 1 x 0.1uF
  • 1 x DC Jack Jack הר
  • 1 x מודול בלוטות 'HC-05
  • 1 x 3.5 מ"מ שקע שמע

לוח הבקרה של ארדואינו מטפל בעיקר גם בכפולות המספקות את עמיתו של כותרת הסיכה של לוח הנהג LED.

הלחמה על פרבורד:

  1. הצב שתי כותרות נקבות נקבות כדי לשמש כארץ עבור הארדואינו באמצע הלוח.
  2. שים את 6 MOSFETs ברציפות זה ליד זה בצד ימין של הארדואינו (הצד עם הסיכות האנלוגיות) והוסף נגד 2.2kOhm בין הסיכה הראשונה לסיכה האחרונה כל אחת.
  3. כעת הניחו את כותרת 6 הפינים מול ה- MOSFETs (אמצע השורה) וחברו את 6 סיכות ה- DRAIN של ה- FETs (סיכה אמצעית) לכותרת ואת סיכות ה- GATE (הסיכה השמאלית) של ה- FETs לסיכות האנלוגיות Arduino המתאימות..
  4. לאחר מכן, הלחם את כותרת 7 הפינים לחיבור LEDDriver בצד השני של הארדואינו, השאר קצת מקום לכבלים והלחם את כל החיבורים מהארדואינו לכותרת הסיכה.
  5. הוסף כמה קבלים (1-2 1000uF, 1 10uF, 100nF ליד Arduino) לניקוז זרם אפשרי.
  6. הלחם כותרת בעלת 4 פינים לצד הצד האחורי של הארדואינו למודול HC-05 וביצעו את 4 החיבורים ל- VCC, RX, TX, GND ואל תשכחו ליצור מחלק מתח מהפין RX של ה- HC-05 ו- סיכת TX של הארדואינו (ראה כאן)
  7. הנח את שקע ה- DC על כל קצה הלוח עם מתג ליד וחבר את הפין הימני של המתג ל- + סיכה של שקע DC
  8. לבסוף בצע את כל חיבורי החשמל הדרושים מהפין GND של שקע DC והסיכה הימנית של המתג (VCC) ל- Arduino, MOSFETs, קבלים ו- HC-05 כפי שניתן לראות בתרשים. זכור להוסיף את הדיודה המעניקה רק את הכוח מסיכת ה- VCC של המתג כדי לזרום לסיכה 5V של Arduinos, לא להיפך. (זה מגן על הארדואינו בעת תכנותו באמצעות חיבור USB)

עבור חיבור החשמל השתמשתי בשקע חשמל DC עם מתג פשוט, תוכל גם להשתמש במחבר USB אם תרצה. הוצאתי את מחבר החשמל למיקור חוץ למעגל קטן אחר כך שיתאים היטב למארז העץ שלי, אך תוכל פשוט לשים אותו ישירות על לוח ארדואינו. כפי שצוין בשלב הראשון יש גם מעגל חיבור MSGEQ7 בסכימה אך פשוט התעלם מכך שאם אינך משתמש ב- MSGEQ7. (למידע נוסף על הפונקציונליות של MSGEQ7 לחץ כאן)

אל תשכח ליצור עוד כבל סרט 7 פינים עם כותרות סיכה גבריות בכל קצה לחיבור לוח Arduino עם לוח הנהג

שלב 8: אופציונלי: חריטת לוחות המעגלים

אופציונלי: חריטת לוחות המעגלים
אופציונלי: חריטת לוחות המעגלים
אופציונלי: חריטת לוחות המעגלים
אופציונלי: חריטת לוחות המעגלים
אופציונלי: חריטת לוחות המעגלים
אופציונלי: חריטת לוחות המעגלים

אז אם אתה לא אוהב הלחמה של הרבה כבלים כמובן שאתה יכול גם לחרוט את הלוחות הדרושים אם אתה מעדיף את זה.

בקוביה שלי לוח ה- Arduino ולוח המחברים Power/Audio שניהם לוחות חריטים באמצעות הקבצים הסכמטיים/EAGLE המצורפים. בפעם הראשונה טעיתי בסכימה ולכן נאלצתי לבצע מחדש את לוח הנהג LED כמו שעשיתי בשלב האחרון. אין יתרונות עצומים לחרוט את הלוח במקום להשתמש בלוח, אז אל תהסס לחרוט את הלוח או להלחם אותו על לוח לוח.

בקובץ ה- zip המצורף תוכלו למצוא גם קובץ BOARD וגם קובץ SCHEMATIC.

שימו לב כי עקבות השכבה העליונה (אדומה) אמורות להיות גשרי תיל (מכיוון שאני לא יכול לחרוט בבית שני לוחות צדדיים). העקבות הלא מנותקות מציגות את החיבורים שיש לבצע באמצעות כבלים עבור כותרות הסיכה הנשיות.

הסכימה כוללת את תכונת MSGEQ7, אותה תוכל פשוט להשמיט על ידי מחיקת הקטע של סכמטי המסומן "(MSGEQ7)" בצילום המסך של סכמטי.pdf.

שלב 9: חיבור הקובייה

חיבור הקובייה
חיבור הקובייה
חיבור הקובייה
חיבור הקובייה
חיבור הקובייה
חיבור הקובייה

כדי לחבר את כל חלקי הקוביה, התחל בחיבור כבל 7 פינים ללוח ה- Arduino ולוח הנהג (ודא כיוון הכיוון נכון!). חבר לאחר מכן את מודול HC05 לכותרת 4 פינים וחבר את לוח החשמל אם הוא מופרד.

כדי לחבר את כותרות הסיכה 7x16 של הקוביה הקפד להתחיל עם ה- TLC הראשון (זה שסיכת ה- SIN שלו מחוברת ישירות ל- Arduino). מצא את הכבל הנכון 16 פינים מהקוביה וחבר אותו לכותרת הסיכה הראשונה של TLC (ודא שהכבל עבור קתודה מס '0 מתחבר לפין TLC OUT0 הראשון!). המשך וחבר את שאר כבלי 16 הפינים לכותרות ה- TLC המתאימות בסדר הנכון.

אחרון חביב, חבר את כבל 6Pin לאנודות מהקוביה לכותרת 6Pin בלוח הבקרה שליד ה- MOSFET.

לסיום הקובייה הוספתי קירות למארז עם עוד דיקט עם צבע שחור עליו והדבקתי אותם.

כעת סיימנו עם כל החומרה הנדרשת לבנייה כולה!

שלב 10: תוכנה: מחזור ריבוב

תוכנה: מעגל ריבוב
תוכנה: מעגל ריבוב

כעת בתיאוריה הארדואינו מבצע באופן קבוע את המחזור הבא:

  1. אם שכבת השכבה חלפה, טען את הערכים של השכבה הבאה ל- TLCs, כבה את השכבה הנוכחית, הפעל את השכבה הבאה, אפס את שכבת השכבה, הקצה את הערכים החדשים ל- TLCs
  2. אם FrameDuration חלף, טען את המסגרת החדשה של האנימציה הנוכחית על ידי אחסון הערכים של כל הנורות והצבעים במאגר ValueLed , אפס את FrameDuration
  3. אם נתוני Bluetooth זמינים, הגיב עליהם (שנה אנימציות, בהירות, …) (מידע נוסף בהמשך)

כפי שאתה יכול לראות המוקד העיקרי של הקוד הוא מהירות. חשוב שהזמן לשינוי השכבה יהיה מינימלי.

ככל שתפעיל/יכבה את השכבות מהר יותר תקבל יותר "מסגרות". עבור קוביית LED 6x6x6 RGB כזאת הבנתי שמשך שכבה של 1700 microSec. הוא מספיק טוב כדי להמשיך להבהב במינימום ויש להשאיר אותו בערך זה. FrameDuration שולט יותר על מהירות האנימציה כך שניתן לשנות אותה לאנימציות שונות.

בשלב הבא נבחן כיצד אנו יכולים למעשה לכתוב אנימציות משלנו.

שלב 11: הנפשות מותאמות אישית

אנימציות בהתאמה אישית
אנימציות בהתאמה אישית
אנימציות בהתאמה אישית
אנימציות בהתאמה אישית

כדי ליישם אנימציה עלינו להגדיר את מאגר ה- ValueLed לערכים אותם אנו רוצים למסגרת הבאה בכל פעם ש- FrameDuration עברה. אנו עושים זאת על ידי קריאת פונקציית המאקרו "SETLED (x, y, z, COLOR, Brightness)"

x, y, z הם הקואורדינטות של הלד שברצוננו להגדיר וצבע (אדום, ירוק או כחול) הוא הצבע שברצוננו להגדיר והבהירות היא הערך בפועל לצבע המסוים הזה שהגדרנו.

אז למשל ליישם אנימציה שפשוט מציגה צבע אדום, ירוק וכחול באופן אקראי על פני כל הקוביה, תוכלו פשוט לעשות זאת:

void randomLedsFull () {

עבור (uint8_t j = 0; j <CUBE_SIZE; j ++) {עבור (uint8_t x = 0; x <CUBE_SIZE; x ++) {עבור (uint8_t y = 0; y <CUBE_SIZE; y ++) {uint8_t rand = random8 (3); SETLED (x, y, j, rand, maxBright); }}}}

שיטה זו נקראת בכל פעם ש- FrameDuration חלפה ונבחרת מתוך הפקודה switch-case בלולאה (). אם אתה כותב אנימציות חדשות אתה יכול להוסיף אותן פשוט על ידי הוספתן למארז המתג.

שלב 12: נוסף: AnimationCreator

נוסף: AnimationCreator
נוסף: AnimationCreator

בנוסף כתבתי אנימציה יוצר באמצעות JavaFX ו- Java3D.

זה מקל מאוד על יצירה ועריכה של אנימציות מותאמות אישית על ידי מתן ממשק משתמש קל להבנה.

אתה יכול ליצור, לערוך, לשנות את השם ולהגדיר מחדש אנימציות עבור קוביות LED 4x4x4, 6x6x6 או 8x8x8

כדי ליצור אנימציה חדשה פשוט הקש על קובץ> חדש, תחת "קוביה" תוכל לבחור את גודל הקוביה, כדי להגדיר את הצבע של נורית LED בחר את הצבע הרצוי עם בוחר הצבעים בצד שמאל ולאחר מכן לחץ לחיצה שמאלית על הנורות שאתה רוצה. הצבע הזה למסגרת ההיא. כדי להוסיף מסגרת נוספת לחץ על "הבא" או "+". שאר פקדי ממשק המשתמש מסבירים את עצמם למדי, תיבות הסימון שליד שכבות הקוביות נועדו לבדוק אילו שכבות צריכות להיות מושפעות משינוי ו- "שמור מסגרת". פשוט בדוק את זה ותבין הכל תוך זמן קצר.

בנוסף כדי לדמות את האנימציה תוכל ללחוץ על כפתור "הצג תלת מימד" אשר פותח חלון נוסף עם דגם Java3D של הקובייה. אתה יכול לסובב את המצלמה תוך לחיצה ממושכת על לחצן העכבר השמאלי (לחץ על R כדי לאפס את המצלמה). כדי להפעיל/להשהות את האנימציה לחץ על מקש P, כדי לאפס את להיט האנימציה ש. שדה הטקסט מתחת לחצן "הצג תלת -ממד" מציין את הזרם הנוכחי FrameTime, הרף את מהירות האנימציה שלך.

כשתסיים עם האנימציה תן לו שם ולחץ על קובץ> שמור בשם … ושמור את האנימציה באותה תיקייה שבה נמצא הסקיצה Cubo_Control.ino.

כדי לכלול אותך אנימציה חדשה בסקיצה, פתח את Cubo_Control.ino והוסף את הקוד הבא על גבי הסקיצה:

#כלול "RGBit.h" // החלף

גלול מטה אל BTEvent () והוסף משפט משפטי למקרה המתג של האנימציות

switch (curAnim) {

… מקרה 10: אנימציה = & ani_cubesmove [0] [0]; FRAME_TIME = ANI_CUBESMOVE_FRAMTIME; maxCount = ANI_CUBESMOVE_FRAMES; לשבור; מקרה 11: // אנימציה החדשה שלך אנימציה = & ani_rgbit [0] [0]; FRAME_TIME = RGBIT_FRAMETIME; maxCount = ANI_RGBIT_FRAMES; לשבור; }

שלב 13: אפליקציית Bluetooth

אפליקציית בלוטות '
אפליקציית בלוטות '

כדי לשלוט בפועל על הקובייה, הודות למודול HC-05 זה די פשוט לבנות אפליקציית Bluetooth לחיבור הטלפון שלך לקובייה.

קישור לאפליקציה: Github

האפליקציה היא קוד פתוח אז אל תהסס להוסיף אנימציות/תכונות נוספות בעצמך.

  • הפעל את האפליקציה, הוא מבקש ממך להפעיל את Bluetooth
  • לחץ על "חפש" ותופיע רשימה של חיבורי Bluetooth זמינים. זהה את מודול HC-05 מהקוביה ולחץ עליו.
  • אם יש שגיאה בעת ניסיון להתחבר לקוביה, נסה להתאים את מודול HC-05 בהגדרות Bluetooth באופן ידני
  • לאחר חיבור האפליקציה עוברת למסך הבקרה וחיבור ה- Bluetooth נוצר

בקרות

  • מהירות ובהירות: שנה את ערכי המחוון כדי להאיץ/להאט את האנימציה או לשנות את הבהירות
  • אנימציות: לחץ על כפתור כדי לשנות את האנימציה, כברירת מחדל האנימציות לולאות (החל משמאל למעלה הכפתור מתאים ל- currAnim)
  • גלילת טקסט: לחץ על כפתור "טקסט" המביא תיבת דו -שיח להזין טקסט כלשהו שיגלול דרך הקוביה
  • פקודה: תוכל להזין פקודות באופן ידני באמצעות Command TextField (בדוק את שיטת BTEvent () של Cubo_Control.ino לקבלת תחביר)
  • נחש: משחק נחש קלאסי (אדום: תפוח, ירוק: ראש נחש, כחול: זנב זנב) (פקדים: 4 לחצני כיוון, למעלה ולמטה מופעלים על ידי סיבוב הטלפון קדימה (למעלה) או אחורה (מטה))
  • Audio Visualizer: MSGEQ7 המשמש לדמיית 6 רצועות שמע משקע AUX (לחצן לאנימציה 7)

שלב 14: חלון ראווה