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

HALO: מנורת Arduino שימושית Rev1.0 W/NeoPixels: 9 שלבים (עם תמונות)
HALO: מנורת Arduino שימושית Rev1.0 W/NeoPixels: 9 שלבים (עם תמונות)

וִידֵאוֹ: HALO: מנורת Arduino שימושית Rev1.0 W/NeoPixels: 9 שלבים (עם תמונות)

וִידֵאוֹ: HALO: מנורת Arduino שימושית Rev1.0 W/NeoPixels: 9 שלבים (עם תמונות)
וִידֵאוֹ: CS50 Live, серия 003 2024, סֶפּטֶמבֶּר
Anonim
Image
Image
HALO: מנורת Arduino שימושית Rev1.0 W/NeoPixels
HALO: מנורת Arduino שימושית Rev1.0 W/NeoPixels
HALO: מנורת Arduino שימושית Rev1.0 W/NeoPixels
HALO: מנורת Arduino שימושית Rev1.0 W/NeoPixels

במדריך זה אראה לך כיצד לבנות HALO או מנורת Arduino Handy Rev1.0.

HALO היא מנורה פשוטה, המופעלת על ידי Arduino Nano. יש לו טביעת רגל כוללת של כ 2 "על 3", ובסיס עץ משוקלל ליציבות קיצונית. הצוואר הגמיש ו -12 NeoPixels בהירים במיוחד מאפשרים לו להאיר בקלות כל פרט על כל משטח. HALO כולל שני לחצני לחיצה למעבר בין מצבי אור שונים, מתוכם 15 תוכנות מראש. בשל השימוש ב- Arduino Nano כמעבד, יש לך את האפשרות לתכנת אותו מחדש עם תכונות נוספות. פוטנציומטר יחיד משמש לכוונון הבהירות ו/או המהירות שבה מוצג מצב. מבנה מתכת פשוט הופך את HALO למנורה עמידה מאוד, המתאימה לשימוש בכל סדנה. קלות השימוש מורכבת מווסת הכוח המשולב של ננו, כך שניתן להפעיל את HALO באמצעות USB או שקע החבית הרגיל בגודל 5 מ"מ מאחור.

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

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

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

שלב 1: איסוף חומרים

איסוף חומרים
איסוף חומרים
איסוף חומרים
איסוף חומרים
איסוף חומרים
איסוף חומרים
איסוף חומרים
איסוף חומרים

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

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

חלקים:

1x Arduino Nano Nano - al

1x 10k פוטנציומטר רוטרי 5 חבילות 10k פוטנציומטרים - al

שקע חבית 1x5 מ מ (שלי ממוחזר מ Arduino Uno מטוגן) ג'ק חבית נקבה (חבילה 5) - al

כפתורי לחיצה רגעיים 2x2 פינים 10 יחידות SPST לחצן מתג-al

12x NeoPixels מחוט 60 LED/מטר (כל שווה ערך, למשל WS2812B, יעבוד) Adafruit NeoPixels

יריעה באלומיניום 0.5 מ מ

הצוואר הגמיש ממצית פלקס ישן

טבעת הכיסוי העליונה מנורת ארונית LED "Stick and Click" LED ארונות LED - אל

יריעה קטנה של דיקט 1/4 אינץ '

משקל מתכת כבד ושטוח במידות (בערך) 1.5 "על 2.5" על.25"

חוט חשמלי ליבה תקוע

כלים:

אקדח ודבק חם

מלחם והלחמה

מקדחה חשמלית אלחוטית ומגוון פיסות טוויסט קטנות

סכין X-acto (או סכין כלי)

חשפניות חוטים

צְבָת

חותכי חוטים/חותכים

מספריים כבדים

אם אין לך משקל מתכת שטוח, אתה גם צריך:

גליל אחד של הלחמה זולה (לא החומר בו תשתמש בהלחמה) הלחמה זולה ללא עופרת

נר אלכוהול (או מבער בונסן)

צלחת פלדה מוקשחת קטנה שלא אכפת לך להרוס (או כור היתוך קטן אם יש לך)

חצובה לתבשיל/כור ההיתוך (אני הכנתי את שלי מחוט פלדה של 12 מד)

צלחת צמחי חימר (אחד הדברים האלה שעובר מתחת לסיר)

קצת רדיד אלומיניום

הערה: אם יש לך ערכת ריתוך או מדפסת תלת מימד, ייתכן שלא תזדקק לכל הכלים המפורטים כאן.

שלב 2: ביצוע המשקל

ביצוע המשקל
ביצוע המשקל
ביצוע המשקל
ביצוע המשקל
ביצוע המשקל
ביצוע המשקל

זהו צעד די קשה, ועליך לנקוט בזהירות יתרה בביצועו. אם יש לך משקל מתכת כבד או מגנט ניאודימיום שטוח בגודל 2.75 "על 1.75" על 0.25 ", הייתי ממליץ להשתמש בזה במקום (והמגנט אפילו יאפשר לך למקם את המנורה הצידה על משטחי מתכת!).

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

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

ראשית, יוצרים תבנית קטנה מנייר אלומיניום או מחימר רטוב, כ -2 3/4 אינץ 'על 1 3/4 אינץ' על 1/4 אינץ 'במידות הפנים. זה יכול להיות צורה ביצית כמו שלי, או מלבן. השתמש במספר שכבות של נייר כסף או שכבות עבות של חימר.

מניחים את התבנית בצלחת הקרמיקה, וממלאים את התבנית וגם את המגש במים קרים.

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

מומלץ ללבוש כפפות עור, שרוולים ארוכים, מכנסיים ארוכים, נעליים סגורות והגנה על העיניים בזמן ביצוע השלבים הבאים

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

המשך להאכיל את הלחמה לתוך המנה עד שאחרונה ממסה.

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

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

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

לאחר שההלחמה התקררה לגמרי (כ -20 דקות ליתר ביטחון), הוציאו אותה מתבנית נייר הכסף.

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

שלב 3: בניית דיור האלקטרוניקה, שלב 1

בניית דיור האלקטרוניקה, שלב 1
בניית דיור האלקטרוניקה, שלב 1
בניית דיור האלקטרוניקה, שלב 1
בניית דיור האלקטרוניקה, שלב 1
בניית דיור האלקטרוניקה, שלב 1
בניית דיור האלקטרוניקה, שלב 1
בניית דיור האלקטרוניקה, שלב 1
בניית דיור האלקטרוניקה, שלב 1

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

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

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

אם אתה מתאסף מגיליון כמוני, הנה מה שאתה צריך לעשות:

שלב 1: צלחות פנים

חותכים שתי צורות זהות של חצי עיגול בגובה של 1.5 אינץ 'ורוחב 3 . (שלחתי את שלי בצורה חופשית, כך שהם נראים קצת כמו החלק הקדמי של קופסת ג'וקים).

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

שלב 2: כריכה מקושתת

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

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

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

עכשיו כשיש לנו את החלקים למעטפת, השלב הבא הוא להוסיף אלקטרוניקה ולחבר אותו!

שלב 4: בניית דיור האלקטרוניקה, שלב 2

בניית דיור האלקטרוניקה, שלב 2
בניית דיור האלקטרוניקה, שלב 2
בניית דיור האלקטרוניקה, שלב 2
בניית דיור האלקטרוניקה, שלב 2
בניית דיור האלקטרוניקה, שלב 2
בניית דיור האלקטרוניקה, שלב 2
בניית דיור האלקטרוניקה, שלב 2
בניית דיור האלקטרוניקה, שלב 2

כעת נוסיף את הכפתורים ואת הפוטנציומטר, ונרכיב את הכל יחד.

שלב 1: כפתורים וברגים

נתק את האומים משושה מהכפתורים והפוטנציומטר שלך. מתחת לאום צריך להיות מכשיר טבעת אחיזה, השאר את זה במקומו.

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

שלב 2. להגמיש צוואר

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

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

שלב 3: מכלול מעטפת (אינו חל על מעטפת מודפסת תלת -ממדית)

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

כעת, כאשר יש לנו את המעטפת, נוכל להמשיך להוסיף את כל סיבי המעגל.

שלב 5: הוספת אלקטרוניקה

הוספת אלקטרוניקה
הוספת אלקטרוניקה
הוספת אלקטרוניקה
הוספת אלקטרוניקה
הוספת אלקטרוניקה
הוספת אלקטרוניקה

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

הערה: אם ל- Nano שלך כבר יש כותרות סיכות, הייתי ממליץ להסיר אותן לפרוייקט הזה, הן רק יפריעו.

יש תרשים בתמונות למעלה, תוכל לעקוב אחריו אם תרצה.

שלב 1: ממשק

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

הלחם חוט מהפין המרכזי של הפוטנציומטר ל- A0 בננו.

הלחם חוט מהסיכה הבלתי מחוברת של כל אחד מהמעברים ל- A1 בננו.

הלחם חוט מהסיכה הלא מחוברת במתג השני ל- A2 בנאנו.

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

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

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

הלחמה זה הצטרף קצה 5V על ננו.

שלב 2: חוטי תצוגה והספק

חותכים 2 אורכי חוט באורך 4 סנטימטרים מהצוואר הגמיש, ומפשטים את שני הקצוות.

בעזרת Sharpie, סמן את הקצוות של כל חוט, חוט אחד עם 2 קווים, ואחד עם 3.

הלחם את החוט עם 2 קווים לפין דיגיטלי 9 בנאנו.

על שקע החבית שלך בגודל 5 מ מ, הלחם חוט מהסיכה המרכזית (חיובית) ל- Vin on the Nano.

הלחם חוט נוסף לסיכה צדדית (קרקעית/שלילית) של שקע החבית.

סובב את החוט הארוך עם 3 קווים יחד עם החוט מהסיכה הצדדית של שקע החבית.

הלחם את החוטים לסיכת ה- GND הפתוחה בננו.

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

שלב 3: חיתוך חורים (רק בגרסת המתכת, אם הדפסת את הכריכה בתלת מימד אתה אמור להיות בסדר)

בעזרת מקדח ו X-acto או סכין כלי, בצע בזהירות חור בצד המכסה ליציאת ה- USB של ה- Nano.

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

שלב 4: רכיבי הרכבה

הזן את שלושת החוטים הארוכים דרך הצוואר הגמיש והחוצה מהצד השני.

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

שוב באמצעות הרבה דבק חם, הרכיבו את ה- Nano במקומו, כאשר כפתור האיפוס פונה כלפי מטה ויציאת ה- USB בחריץ שלו. עשיתי "גשר דבק חם" בין שקע הקנה לננו, מה שגורם לכל אחד לשמור על השני במקום.

כעת נוכל להמשיך ולהכין את הבסיס המשוקלל!

שלב 6: בסיס משוקלל

בסיס משוקלל
בסיס משוקלל
בסיס משוקלל
בסיס משוקלל
בסיס משוקלל
בסיס משוקלל

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

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

שלב 1: עץ

מגליון של דיקט 1/4 אינץ ', חותכים בסיס כ -3 אינץ' על 2 אינץ '.

משייפים את הקצוות כדי להחליק אותם והסירו קורים.

שלב 2: משקל

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

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

שלב 3: בסיס

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

ודא שהמשקל אינו מפריע לאלקטרוניקה

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

כעת, לאחר שקיבלנו את תיבת הבקרה כולה, בואו נעבור לאורות.

שלב 7: טבעת הילה NeoPixel

טבעת הילה NeoPixel
טבעת הילה NeoPixel
טבעת הילה NeoPixel
טבעת הילה NeoPixel
טבעת הילה NeoPixel
טבעת הילה NeoPixel
טבעת הילה NeoPixel
טבעת הילה NeoPixel

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

שלב 1: הלחמה

חותכים רצועת NeoPixels באורך 12 נוריות LED.

הלחם את סיכת ה- GND לחוט מצוואר הגמישות הכולל 3 קווים.

הלחם את סיכת דין לחוט בעל 2 קווים.

הלחם את סיכת 5V לחוט בעל קו אחד.

שלב 2: בדוק את האורות

הורד והתקן את ספריית Adafruit_NeoPixel, ופתח את קוד "מבחן החוט".

שנה את מספר ה- PIN הקבוע ל- 9.

שנה את הקו שבו מוגדרת הרצועה כך שתוגדר עבור 12 נוריות LED.

העלה את הקוד ל- Nano וודא שכל נוריות LED שלך פועלות כהלכה.

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

שלב 3: צלצול

קח את הטבעת העליונה מנורת "מקל ולחץ" וחתך את כל תושבות הבורג בשפה הפנימית.

חותכים חריץ קטן בקצה החוטים מהרצועה.

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

השתמש בדבק חם כדי לאבטח היטב את קצוות הרצועה

לאחר שהדבק התקרר לגמרי, בדוק שוב את הפיקסלים. זה כדי לוודא שאף אחד לא מתלבט לגבי החום והתלתל (כמה שלי היו).

שלב 4: הר

חותכים שני מלבנים קטנים מעץ בגודל 1/4 אינץ ', בערך בגובה הטבעת ורוחב פי 2/3.

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

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

שלב 6: סיום

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

כעת נוכל להמשיך לסיים את הקוד הסופי!

שלב 8: קודים ובדיקות

קודים ומבחנים
קודים ומבחנים
קודים ומבחנים
קודים ומבחנים

אז כל שעלינו לעשות הוא לתכנת את המנורה ולבדוק אותה. מצורפת גרסת הקוד הנוכחית (rev1.0), בדקתי את הקוד הזה בהרחבה והוא עובד טוב מאוד. אני עובד על rev2.0 שבו הכפתורים מוגדרים כהפרעות חיצוניות, כך שניתן יהיה לעבור ביתר קלות בין מצבים, אך גרסה זו היא באגית וטרם מוכנה לשחרור. עם הגרסה הנוכחית עליך להחזיק את הכפתור עד להריצת לולאת Debounce ולזהות את שינוי המצב, מה שעלול להטריד בלולאות ה"דינמיות "הארוכות יותר. להלן הקוד עם כמה הסברים כתובים (ישנם אותם הסברים בגרסה להורדה).

#כלול #ifdef _AVR_ #כלול #endif

#הגדר PIN 9

#הגדר סיר A0 #הגדר כפתור 1 A1 #הגדר כפתור 2 A2

// פרמטר 1 = מספר הפיקסלים ברצועה

// פרמטר 2 = מספר סיכה Arduino (רובם תקפים) // פרמטר 3 = דגלי סוג פיקסל, הוסיפו יחד לפי הצורך: // NEO_KHZ800 800 KHz bitstream (רוב מוצרי NeoPixel w/WS2812 נוריות) // NEO_KHZ400 400 KHz (קלאסי ' v1 '(לא v2) פיקסלים של FLORA, מנהלי התקנים של WS2811) // NEO_GRB הפיקסלים מחוברים ל- bitstream GRB (רוב מוצרי NeoPixel) // NEO_RGB הפיקסלים מחוברים לזרם סיביות RGB (פיקסלים v1 FLORA, לא v2) // NEO_RGBW הפיקסלים מחוברים עבור Bitstream של RGBW (מוצרי NeoPixel RGBW) Halo Adafruit_NeoPixel = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// ועכשיו, הודעת בטיחות מחברינו ב- Adafruit:

// חשוב: כדי להפחית את הסיכון לשחיקה של NeoPixel, הוסף קבלים של 1000 uF לרוחב

// מוביל חשמל לפיקסל, הוסף נגד 300 - 500 אוהם על קלט הנתונים של הפיקסל הראשון // וצמצם את המרחק בין Arduino לפיקסל הראשון. הימנע מחיבור // במעגל חי … אם עליך, תחבר תחילה את GND.

// משתנים

int buttonState1; int buttonState2; // הקריאה הנוכחית מסיכת הקלט int lastButtonState1 = LOW; // הקריאה הקודמת מסיכת הקלט int lastButtonState2 = LOW; מצב int; // מצב האורות שלנו, יכול להיות אחת מתוך 16 הגדרות (0 עד 15) int brightVal = 0; // הבהירות/ המהירות, כפי שנקבע על ידי הפוטנציומטר

// המשתנים הבאים ארוכים מכיוון שהזמן, הנמדד באלפיות השנייה, // יהפוך במהירות למספר גדול יותר ממה שניתן לאחסן ב- int. long lastDebounceTime = 0; // בפעם האחרונה שסיכת הפלט הוחלפה debounceDelay ארוך = 50; // זמן ההפלה; להגדיל אם התפוקה מהבהבת

ניפוח ריק () {

// לקרוא את מצב המעבר למשתנה מקומי: int reading1 = digitalRead (BUTTON1); int reading2 = digitalRead (BUTTON2); // אם אחד הלחצנים השתנה, עקב רעש או לחיצה: if (קריאה 1! = LastButtonState1 || קריאה 2! = LastButtonState2) {// אפס את טיימר הניתוק LastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// אם מצב הלחצן בהחלט השתנה עקב לחיצה/שחרור: if (reading1! = buttonState1) {buttonState1 = קריאה 1; // הגדר אותו כקריאה אם הוא השתנה אם (buttonState1 == LOW) {// אלה מוגדרים כמצבים של מתגים נמוכים פעילים ++; אם (mode == 16) {mode = 0; }}} if (reading2! = buttonState2) {buttonState2 = קריאה 2; אם (buttonState2 == LOW) {mode = mode - 1; אם (mode == -1) {mode = 15; }}}}} // שמור את הקריאה לפעם הבאה דרך הלולאה LastButtonState1 = reading1; lastButtonState2 = קריאה 2; }

void getBright () {// הקוד שלנו לקריאת הפוטנציומטר, מוציא ערך בין 0 ל- 255. משמש להגדרת בהירות במצבים מסוימים ומהירות באחרים.

int potVal = analogRead (POT); brightVal = map (potVal, 0, 1023, 0, 255); }

// להלן מצבי הצבע שלנו. חלק מאלה נגזרים מהדוגמה למבחן הגדילי, אחרים מקוריים.

// מלאו את הנקודות בזו אחר זו בצבע (מחיקת צבע, הנגזרת ממבחן קווצות)

void colorWipe (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i

// פונקציות קשת (נגזרות גם ממבחן גדילים)

קשת חלל (uint8_t המתן) {

uint16_t i, j;

עבור (j = 0; j <256; j ++) {עבור (i = 0; i

// קצת שונה, זה הופך את הקשת לחלק שווה לכל אורך

void rainbowCycle (uint8_t wait) {uint16_t i, j;

עבור (j = 0; j <256*5; j ++) {// 5 מחזורים של כל הצבעים על הגלגל עבור (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, גלגל (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); עיכוב (המתנה); }}

// הזן ערך 0 עד 255 כדי לקבל ערך צבע.

// הצבעים הם מעבר r - g - b - חזרה ל- r. uint32_t גלגל (בייט WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {retour halo. Color (255 - WheelPos * 3, 0, WheelPos * 3); } אם (WheelPos <170) {WheelPos -= 85; return halo. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; להחזיר הילה.צבע (WheelPos * 3, 255 - WheelPos * 3, 0); }

הגדרת בטל () {

// זה מיועד ל- Trinket 5V 16MHz, תוכל להסיר את שלושת השורות האלה אם אינך משתמש ב- Trinket #if מוגדר (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // סוף קוד תכשיט מיוחד PinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, OUTPUT); Serial.begin (9600); // ניפוי דברים halo.begin (); halo.show (); // אתחל את כל הפיקסלים ל'כבוי '}

לולאת חלל () {

debounce ();

//Serial.println (מצב); // באגים נוספים //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);

אם (מצב == 0) {

getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, brightVal)); // הגדר את כל הפיקסלים ללבן} halo.show (); }; if (mode == 1) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0)); // הגדר את כל הפיקסלים לאדום} halo.show (); }; if (mode == 2) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // הגדר את כל הפיקסלים לירוק} halo.show (); }; if (mode == 3) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // הגדר את כל הפיקסלים לכחול} halo.show (); }; if (mode == 4) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // הגדר את כל הפיקסלים ל- cyan} halo.show (); }; if (mode == 5) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // הגדר את כל הפיקסלים לסגול/מג'נטה} halo.show (); }; if (mode == 6) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0)); // הגדר את כל הפיקסלים לכתום/צהוב} halo.show (); }; if (mode == 7) {// עכשיו המצבים הדינאמיים getBright (); colorWipe (halo. Color (brightVal, 0, 0), 50); // אדום}; if (mode == 8) {getBright (); colorWipe (halo. Color (0, brightVal, 0), 50); // ירוק }; if (mode == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // כחול}; if (mode == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // לבן }; if (mode == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // כתום צהוב }; if (mode == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // טורקיז }; if (mode == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // סגול/מג'נטה}; אם (mode == 14) {// שני האחרונים הם בקרת מהירות, מכיוון שהבהירות היא דינמית getBright (); קשת (brightVal); }; if (mode == 15) {getBright (); rainbowCycle (brightVal); }; עיכוב (10); // אפשר למעבד לנוח מעט}

שלב 9: הגמר הגדול

הגמר הגדול
הגמר הגדול

ועכשיו יש לנו מנורה קטנה וסופר בהירה!

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

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

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

אנא אל תשכח להצביע אם אתה אוהב את זה!

כמו תמיד, אלה הם הפרויקטים של חומר נפץ מסוכן, משימתו לכל החיים, "לבנות באומץ את מה שאתה רוצה לבנות, ועוד!"

את שאר הפרויקטים שלי תוכל למצוא כאן.

תודה שקראתם, ושמחה!

מוּמלָץ: