תוכן עניינים:

כיצד לבנות קוביית LED 8x8x8 ולשלוט בה באמצעות ארדואינו: 7 שלבים (עם תמונות)
כיצד לבנות קוביית LED 8x8x8 ולשלוט בה באמצעות ארדואינו: 7 שלבים (עם תמונות)

וִידֵאוֹ: כיצד לבנות קוביית LED 8x8x8 ולשלוט בה באמצעות ארדואינו: 7 שלבים (עם תמונות)

וִידֵאוֹ: כיצד לבנות קוביית LED 8x8x8 ולשלוט בה באמצעות ארדואינו: 7 שלבים (עם תמונות)
וִידֵאוֹ: פרויקט ארדואינו בית חכם RTC I2C LCD טביעת אצבע מקלדת בלוטוס LED IR חיישן מגנטי עמל חדרה 2024, יולי
Anonim
כיצד לבנות קוביית LED 8x8x8 ולשלוט בה באמצעות ארדואינו
כיצד לבנות קוביית LED 8x8x8 ולשלוט בה באמצעות ארדואינו
כיצד לבנות קוביית LED 8x8x8 ולשלוט בה באמצעות ארדואינו
כיצד לבנות קוביית LED 8x8x8 ולשלוט בה באמצעות ארדואינו

עריכה בינואר 2020:

אני משאיר את זה למקרה שמישהו ירצה להשתמש בו כדי לייצר רעיונות, אבל כבר אין טעם לבנות קובייה על פי הוראות אלה. מחשבי ה- IC של מנהלי ההתקן LED כבר אינם מיוצרים ושתי המערכונים נכתבו בגרסאות ישנות של Arduino ועיבוד ולא הופעלו עוד. אני לא יודע מה צריך לשנות כדי לגרום להם לעבוד. כמו כן, שיטת הבנייה שלי הביאה לבלגן מטומטם. ההצעה שלי היא לעקוב אחר ההוראות במדריך אחר או לקנות ערכה. קוביה זו עלתה בסביבות 50 $ בשנת 2011, אתה יכול לקנות ערכה ב- eBay בסביבות 20 $ כעת.

הקדמה מקורית:

יש הרבה קוביות LED על Instructables, אז למה לעשות עוד? רובם מיועדים לקוביות קטנות המורכבות מ- 27 או 64 נוריות LED, לעתים רחוקות גדולות יותר מכיוון שהן מוגבלות למספר היציאות הזמינות בבקר המיקרו. קוביה זו תהיה 512 נוריות LED, ותזדקק ל -11 חוטי פלט בלבד מהארדואינו. איך זה אפשרי? באמצעות מנהל ההתקן LED Allegro Microsystems A6276EA.

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

שלב 1: חומרים

חומרים
חומרים

כל החלקים הדרושים לך לבניית הקוביה: 1 Arduino/Freeduino עם שבב Atmega168 ומעלה 512 נוריות LED, הגודל והצבע הם בידייך, השתמשתי באדום 3 מ"מ אדום 3 A6276EA מ טרנזיסטורים של Allegro 8 NPN לשליטה על זרימת המתח., השתמשתי בטרנזיסטור BDX53B דרלינגטון 4 נגדים של 1000 אוהם, 1/4 וואט ומעלה 12 560 אוהם אום, 1/4 וואט ומעלה 1 קבלים אלקטרוליטיים של 330uF 4 שקע IC 24 פינים 9 שקעי IC 16 פינים 4 "(או גדולים יותר)) חתיכת פרבורד שתכיל את כל החלקים, מאוורר מחשב ישן כבל בקר ישן תקליטור ספק כוח ישן של מחשב הרבה חוט חיבור, הלחמה, ברזל הלחמה, שטף, כל דבר אחר כדי להקל על חייך תוך כדי ביצוע זה. פיסת עץ בגודל 7 "x7" (או גדול יותר) המשמשת לייצור הלוח הלדים למארז. מארז נחמד להצגת הקובייה המוגמרת שלי Arduino/Freeduino לבחירה הוא לוח עצמות חשופות (BBB) מאת www.moderndevice.com. הנורות נרכשו ב- eBay ועלו 23 $ עבור 1000 נוריות שנשלחו מסין. שאר האלקטרוניקה נרכשה מחברת Newark Electronics (www.newark.com) ואמורה לעלות בסביבות 25 $ בלבד. אם אתה צריך לקנות הכל, הפרויקט הזה אמור לעלות בסביבות 100 $ בלבד. יש לי הרבה ציוד מחשבים ישן אז החלקים האלה ירדו מהערימה.

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

הרכיבו את השכבות
הרכיבו את השכבות
הרכיבו את השכבות
הרכיבו את השכבות
הרכיבו את השכבות
הרכיבו את השכבות
הרכיבו את השכבות
הרכיבו את השכבות

איך להכין שכבה אחת (64 נוריות) של קוביית ה- LED הזו 512: הנורות שקניתי היו בקוטר 3 מ"מ. החלטתי להשתמש בנורות LED קטנות כדי לצמצם את העלות ולגרום לגודל הקוביה הסופי להיות קטן מספיק כדי לשבת על השולחן או המדף שלי מבלי להשתלט לגמרי על השולחן או המדף. ציירתי רשת 8x8 עם כ.6 אינץ 'בין השורות. זה נתן לי גודל קוביה בסביבות 4.25 אינץ 'לכל צד. מקדחים חורים בגודל 3 מ"מ היכן שהקווים נפגשים כדי ליצור ג'יג שיחזיק את הלדים בזמן הלחמת כל שכבה. A6276EA הוא מכשיר כיור נוכחי. המשמעות היא שהוא מספק נתיב לקרקע ולא נתיב למתח המקור. יהיה עליך לבנות את הקוביה בתצורת אנודה משותפת. רוב הקוביות בנויות כקתודה נפוצה. הצד הארוך של הלד הוא בדרך כלל האנודה, בדוק את שלך כדי לוודא. הדבר הראשון שעשיתי היה לבדוק כל LED. כן זה תהליך ארוך ומשעמם ותוכלו לדלג עליו אם תרצו. אני מעדיף להקדיש זמן לבדיקת הנורות מאשר למצוא נקודה מתה בקוביה שלי לאחר הרכבתה. מצאתי 1 LED מת מתוך 1000. לא נורא. חותכים 11 חתיכות חוט מוצק ולא מבודד ל -5 אינץ '. מקם 1 נורית אחת בכל קצה שורה בג'יג שלך ולאחר מכן הלחם את החוט לכל אנודה. כעת הנח את 6 הנורות הנותרות בשורה והלחם את האנודות לחוט. זה יכול להיות אנכי או אופקי, זה לא משנה כל עוד אתה עושה את כל השכבות באותו אופן. כשאתה מסיים כל שורה, גזור את העופרת העודפת מהאנודות. עזבתי בסביבות 1/8 ". חזור על הפעולה עד שתסיים את כל 8 השורות. כעת הלחם 3 חתיכות חוט חיבור לרוחב השורות שיצרת כדי לחבר את כולן ליצירה אחת. לאחר מכן בדקתי את השכבה על ידי חיבור 5 וולט. לחבר את סריג החוט דרך הנגע ונגע בכבל הקרקע לכל קתודה. החלף כל נוריות שאינן דולקות. הסר בזהירות את השכבה מהג'יג והנח אותה בצד. אם אתה מכופף את החוטים, אל תדאג, פשוט ליישר אותם הכי טוב שאתה יכול. קל מאוד להתכופף. כפי שאתה יכול להבין מהתמונות שלי, היו לי הרבה חוטים כפופים. ברכותיך, סיימת 1/8. בצע עוד 7 שכבות. אופציונאלי: לביצוע הלחמה. השכבות יחד (שלב 3) קלות יותר, בעוד שכל שכבה עוקבת עדיין נמצאת בג'יג לכופף את רבע האינצ 'העליון של הקתודה קדימה 45 עד 90 מעלות. זה יאפשר לראד להגיע סביב הלד שאליו הוא מתחבר ויגרום להלחמה רבה קל יותר. אל תעשה זאת לשכבה הראשונה שלך, נצהיר כי אחת היא השכבה התחתונה והלידים צריכים להיות s ישר.

שלב 3: הרכיב את הקובייה

הרכיבו את הקובייה
הרכיבו את הקובייה
הרכיבו את הקובייה
הרכיבו את הקובייה

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

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

בניית לוח הבקר
בניית לוח הבקר
בניית לוח הבקר
בניית לוח הבקר
בניית לוח הבקר
בניית לוח הבקר

כיצד לבנות את לוח הבקר ולצרף אותו ל- Arduino שלך: עקוב אחר התרשים ובנה את הלוח כפי שתבחר. הנחתי את שבבי הבקר במרכז הלוח והשתמש בצד השמאלי כדי להחזיק את הטרנזיסטורים השולטים בזרם לכל שכבה של הקוביה, והשתמשתי בצד הימני כדי להחזיק את המחברים שעוברים משבבי הבקר לקתודות של מצאתי מאוורר מחשב ישן בגודל 40 מ מ עם מחבר מולקס נקבה כדי לחבר אותו לחשמל. זה היה מושלם. כמות קטנה של זרימת אוויר על פני השבב שימושית ועכשיו יש לי דרך קלה לספק 5 וולט לשבבי הבקר ולארדואינו עצמו. במערך הסכימטי, RC הוא הנגד המגביל את הזרם עבור כל הנורות המחוברות לכל A6276EA. השתמשתי ב -1000 אוהם מכיוון שהוא מספק 5 מיליאמפר לאמד, מספיק כדי להדליק אותו. אני משתמש בהירות גבוהה, לא נוריות Super Brite, כך שהניקוז הנוכחי נמוך יותר. אם כל 8 נוריות LED בעמודה מוארות בבת אחת, זה רק 40 מיליאמפר. כל פלט של A6276EA יכול להתמודד עם 90 מיליאמפר אז אני נמצא היטב בטווח. RL הוא הנגד המחובר להגיון או מוביל לאותות. הערך בפועל אינו חשוב במיוחד כל עוד הוא קיים ואינו גדול מדי. אני משתמש ב -560 אוהם כי היו לי הרבה מהם זמינים. השתמשתי בטרנזיסטור כוח המסוגל לטפל בעד 6 אמפר כדי לשלוט בזרם העובר לכל שכבה של הקוביה. זה מוגזם לפרויקט זה, מכיוון שכל שכבה של הקוביה תמשוך רק 320 מיליאמפר כאשר כל נוריות הלדים דולקות. רציתי מקום לצמוח ואולי אשתמש בלוח הבקר למשהו גדול יותר מאוחר יותר. השתמש בטרנזיסטור בכל גודל שמתאים לצרכים שלך. קבל 330 uF על פני מקור המתח נמצא שם כדי לעזור להחליק כל תנודות מתח קלות. מכיוון שאני משתמש באספק כוח ישן למחשב, זה לא הכרחי, אבל השארתי אותו למקרה שמישהו ירצה להשתמש במתאם קיר של 5 וולט כדי להפעיל את הקוביה שלו. לכל שבב בקר A6276EA יש 16 יציאות. לא היה לי שום מחבר מתאים אחר אז הלחמתי מוליכים לכדי 16 שקעי IC ואשתמש בהם לחיבור לוח הבקר לקובייה. חתכתי גם שקע IC לשניים והשתמשתי בו לחיבור 8 החוטים המחברים את הטרנזיסטורים לשכבות הקוביה. חתכתי כ- 5 סנטימטרים מקצה כבל תקליטון ישן כדי להשתמש בו כמחבר לארדואינו. כבל התקליטון הוא 2 שורות של 20 סיכות, ללוח העצמות החשוף יש 18 סיכות. זוהי דרך זולה מאוד (בחינם) לחבר את הארדואינו ללוח. הורדתי את כבל הסרט בנפרד בקבוצות של 2 חוטים, הפשטתי את הקצוות והלחמתי אותם יחד. זה מאפשר לך לחבר את Arduino לשתי השורות של המחבר. עקוב אחר הסכימה והלחם את המחבר למקומו. אל תשכח להלחם את מוליכי 5 וולט וקרקע עבור המחבר כדי לספק כוח ל- Arduino. אני מתכוון להשתמש בלוח בקר זה לפרויקטים אחרים כך שהעיצוב המודולרי עובד יפה בשבילי. אם אתה רוצה לחבר את החיבורים, זה בסדר.

שלב 5: בנה את מארז התצוגה

בנה את מארז התצוגה
בנה את מארז התצוגה
בנה את מארז התצוגה
בנה את מארז התצוגה
בנה את מארז התצוגה
בנה את מארז התצוגה
בנה את מארז התצוגה
בנה את מארז התצוגה

לגרום למוצר הסופי שלך להיראות נחמד: מצאתי את חזה העץ הזה בלובי התחביב תמורת 4 $ וחשבתי שזה יהיה מושלם מכיוון שיש לו מקום בפנים להכיל את כל החוט ובנוסף שהוא נראה נחמד. כתמתי את הכתם הזה באדום, אותו השתמשתי על שולחן המחשב שלי כך שיתאימו. צייר רשת בגודל זהה לגודל של הרשת המשמשת לג'יג הלחמה (.6 אינץ 'בין השורות). מקדחים חורים כדי לאפשר את ההובלות דרך החלק העליון, וקדוח חור נוסף מאחורי הרשת עבור חוטי השכבה/המטוס (מהטרנזיסטורים בשלב 4). למדתי בדרך הקשה שניסיון ליישר קו 64 לידים לעבור דרך חורים קטנים מאוד קשה. לבסוף החלטתי לקדוח מחדש את כל החורים קצת יותר גדולים כדי שהתהליך יעבור מהר יותר. בסופו של דבר השתמשתי בערך בקידוח.2 עכשיו כשהקוביה יושבת על גבי התצוגה, כופפו את מוליכי הפינה כך שהקובייה תישאר במקומה בעת חיבור החוטים. הקפד לצרף את כל החוטים בסדר הנכון. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 וחבר את החוטים בין השכבות (שכותרתו 'מטוסים' בסכימה) לבין הטרנזיסטורים. הטרנזיסטור בסיכה 6 של ארדואינו היא השכבה העליונה של הקוביה. אם אתה טועה בחוטים, הוא ניתן לתיקון במקצת בתוך הקוד, אך הוא עשוי לדרוש הרבה עבודה, אז נסה לעשות אותם בסדר הנכון. אוקיי, הכל בנוי ומוכן לצאת לדרך, בואו נביא קוד וננסה אותו.

שלב 6: קוד

קוד
קוד

הקוד לקוביה זו מתבצע בצורה שונה מרוב, אני אסביר כיצד להתאים. רוב קוביית הקוביות משתמשת בכתיבות ישירות לעמודות. הקוד אומר שצריך להדליק עמודה X אז תנו לו קצת מיץ וסיימנו. זה לא עובד בעת שימוש בשבבי בקר. שבבי הבקר משתמשים ב -4 חוטים כדי לדבר עם ה- Arduino: SPI-in, Clock, Latch ו- Enable. הקרקעתי את הפין Enable (סיכה 21) דרך הנגד (RL) כך שהפלט תמיד מופעל. מעולם לא השתמשתי ב- Enable אז הוצאתי אותו מהקוד. SPI-in הוא הנתונים שנכנסים מהארדואינו, השעון הוא אות תזמון בין השניים בזמן שהם מדברים, ו- Latch אומר לבקר שהגיע הזמן לקבל נתונים חדשים. כל פלט לכל שבב נשלט על ידי מספר בינארי של 16 סיביות. לדוגמה; שליחת 1010101010101010 לבקר תגרום לכל נורית LED אחרת בבקר להידלק. הקוד שלך צריך לעבור על כל מה שצריך לתצוגה ולבנות את המספר הבינארי הזה, ואז לשלוח אותו לשבב. זה יותר קל ממה שזה נשמע. מבחינה טכנית זו חבורה של תוספת bitwise, אבל אני גרוע במתמטיקה bitwise אז אני עושה הכל בעשרוני. דצימלי עבור 16 הסיביות הראשונות הוא כדלקמן: 1 << 0 == 1 1 << 1 == 2 1 << 2 == 4 1 << 3 == 8 1 << 4 == 16 1 << 5 == 32 1 << 6 == 64 1 << 7 == 128 1 << 8 == 256 1 << 9 == 512 1 << 10 == 1024 1 << 11 == 2048 1 << 12 == 4096 1 << 13 == 8192 1 << 14 == 16384 1 << 15 == 32768 פירוש הדבר שאם אתה רוצה תאיר את יציאות 2 ו -10, אתה מוסיף את העשרוניות (2 ו -512) יחד כדי לקבל 514. שלח 514 לבקר ויציאות 2 ו -10 ידליקו. אבל יש לנו יותר מ -16 נוריות כך שיהיה קצת יותר קשה. עלינו לבנות מידע תצוגה עבור 4 שבבים. וזה קל כמו לבנות את זה עבור 1, פשוט עשה זאת 3 פעמים נוספות. אני משתמש במערך משתנים גלובלי כדי להחזיק את קודי הבקרה. זה פשוט יותר ככה. ברגע שיש לך את כל 4 קודי התצוגה מוכנים לשלוח, שחרר את הבריח (הגדר אותו ל- LOW) והתחל לשלוח את הקודים. עליך לשלוח את האחרון קודם. שלח את הקודים לשבב 4, ואז 3, ואז 2, ואז 1, ולאחר מכן הגדר את הבריח ל- HIGH שוב. מכיוון שהסיכה Enable תמיד מחוברת לקרקע, התצוגה משתנה באופן מיידי. רוב קוביית הקוביות שראיתי ב- Instructables, ובכלל האינטרנט, מורכבת מגוש קוד ענק שנקבע לביצוע אנימציה שהוגדרה מראש. זה עובד מצוין עבור קוביות קטנות יותר אבל צריך לאחסן, לקרוא ולשלוח 512 סיביות בינאריות בכל פעם שאתה רוצה לשנות את התצוגה תופסת הרבה זיכרון. הארדואינו לא הצליח להתמודד עם יותר ממספר מסגרות. אז כתבתי כמה פונקציות פשוטות להצגת הקוביה בפעולה המסתמכות על חישוב ולא על הנפשות שהוגדרו מראש. כללתי אנימציה קטנה כדי להראות כיצד זה מתבצע, אבל אשאיר לך לבנות תצוגות משלך. Cube8x8x8.pde הוא קוד Arduino. אני מתכוון להמשיך להוסיף פונקציות לקוד ואעדכן את התוכנית מעת לעת. Matrix8x8.pde היא תוכנית בעיבוד לבניית תצוגות משלך. המספר הראשון שניתן נכנס לתבנית 1 , השני לתבנית 2 וכו '. גליון הנתונים של A6276EA זמין בכתובת:

שלב 7: הצג את עבודת היד שלך

הצג את עבודת היד שלך
הצג את עבודת היד שלך

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

מוּמלָץ: