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

NeoClock: 7 שלבים (עם תמונות)
NeoClock: 7 שלבים (עם תמונות)

וִידֵאוֹ: NeoClock: 7 שלבים (עם תמונות)

וִידֵאוֹ: NeoClock: 7 שלבים (עם תמונות)
וִידֵאוֹ: neoClock 2024, יוני
Anonim
Image
Image

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

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

שלב 1: עיצוב השעון

עיצוב השעון
עיצוב השעון
עיצוב השעון
עיצוב השעון
עיצוב השעון
עיצוב השעון
עיצוב השעון
עיצוב השעון

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

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

שלב 2: עיצוב האלקטרוניקה

עיצוב האלקטרוניקה
עיצוב האלקטרוניקה
עיצוב האלקטרוניקה
עיצוב האלקטרוניקה
עיצוב האלקטרוניקה
עיצוב האלקטרוניקה
עיצוב האלקטרוניקה
עיצוב האלקטרוניקה

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

  • טבעות ניאופיקסל (60 ספירות ו -24 ספירות)
  • ארדואינו (המוח)
  • ויסות השעון (ארדואינים לא שומרים על זמן טוב)
  • ניהול צריכת חשמל

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

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

  1. יש צורך בקבל של 1000uF כדי למנוע מהטלטל הנוכחי הראשוני לפגוע בפיקסלים.
  2. יש צורך בנגד 470ohm בפיקסל הראשון של טבעת 60 הספירות (נגד זה מובנה בתוך טבעת 24 הספירות)

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

שמירה על זמן על השעון היא בעיה נוספת. השעון המובנה בארדואינו אינו מספיק כדי לשמור על זמן טוב לאורך פרקי זמן ארוכים. בעיה גרועה יותר היא כי ייתכן שיהיה צורך לאפס את הזמן על הארדואינו בכל פעם. מחשבים פותרים את הבעיה באמצעות סוללה קטנה בשבב השעון כדי לשמור על זמן בין הפסקת חשמל. בעבר הייתי משתמש במשהו כמו ChronoDot מ- Adafruit. אבל במקרה זה רציתי תירוץ להשתמש ב- DS3234 (DeadOn RTC) מ- SparkFun. אתה יכול גם לשמור מידע על תאריכים ב- DeadOn RTC אם אתה רוצה לשלב את זה בשעון.

לבסוף, ניהול החשמל נזקק לשיקול דעת. כבר ידעתי שהכל צריך להיות 5V אבל כמות הזרם הדרושה נראתה בגדר תעלומה. ווסת מתח נפוץ ברוב הפרויקטים הוא ה- L7805. זה יידרש למתח של עד 24V וזרם מרבי של עד 1.5A. ידעתי שיש לי שורש קיר של 12V 1.5A ולכן החלטתי שזה יהיה ווסת המתח המושלם (והזול!) לפרויקט.

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

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

בניית האלקטרוניקה
בניית האלקטרוניקה
בניית האלקטרוניקה
בניית האלקטרוניקה
בניית האלקטרוניקה
בניית האלקטרוניקה

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

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

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

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

  • מתגי ה- Mode ו- Set יצטרכו נגדים למטה. השתמשתי בנגדים 2.21Ohm שהיו לי בשכיבה אבל כל נגד קטן יעבוד (רצוי לא פחות מ -1 קאוהם). זה מייצב את סיכות הכניסה של Arduino המחוברות כך שכאשר הן יעלו גבוה ניתן להבחין בו מהרעש.
  • הגל המרובע (SQW) ב- DS3234 מקורקע מכיוון שהוא אינו בשימוש.
  • הכוח מה- L7805 מוכנס לתוך ה- Arduino Mini בסיכת RAW. הכנס תמיד את הכוח שנכנס ל- Arduino ל- RAW.
  • לפיקסל הראשון של טבעת 60 הניאופיקסל יש נגד של 470Ohm כדי להפחית את כל הנזק לפיקסל הראשון כתוצאה מדוקרני נתונים. זו לא אמורה להיות בעיה מכיוון שלנאו -פיקסל של 24 ספירות יש כבר נגד מובנה לזה, אבל עדיף לבטח מאשר להצטער.
  • מתגי ה- Mode ו- Set הם מתגי כפתור לחיצה רגעיים של SPST

צבעי החוט הם:

  • אדום: +5VDC
  • שחור: טחון
  • ירוק: נתונים
  • צהוב, כחול, לבן: חוטים מיוחדים ל- DS3234

אם זו הפעם הראשונה שאתה משתמש ב- neopixels עליך לזכור שאפשר לראות בהם שרשרת ארוכה. אז אולי נראה מוזר לדבר על "פיקסל ראשון" בזירה, אבל למעשה יש התחלה וסיום לכל שרשרת בטבעות. בפרויקט זה 24 הפיקסלים של הטבעת הקטנה במקום הראשון ו -60 הפיקסלים של הטבעת הגדולה יותר אחריו. זה באמת אומר שיש לי שרשרת של 84 ניאופיקסלים.

לחיווט על מיני Arduino:

  • DS3234 מתחבר לפינים 10 - 13
  • מתגי המצב וההגדרה נמצאים בפינים 2 ו -3
  • נתוני הניאופיקסל מגיעים מסיכה 6.

אני ממליץ גם לשים את 6 הכותרות בתחתית ה- Arduino Mini כך שתוכל לתכנת אותו באמצעות כבל FTDI.

הערה חשובה לגבי הזרם: שעון זה דורש הרבה. אני בטוח שיכולתי לפתור את זה אבל הניסיון הפרקטי שלי הוא שכל דבר שווה או פחות מ 500mA יגרום בסופו של דבר לחום חום. זה בא לידי ביטוי כשהשעון מהבהב צבעים מטורפים ואינו שומר זמן. שורש הקיר האחרון שלי הוא 12V ו -1.5A ומעולם לא היה לי חום עם זה. עם זאת, 1.5A הוא הגבול שייקח וסת המתח (וחלקים אחרים). אז אל תעלה על הסכום הזה.

שלב 4: קידוד השעון

קידוד השעון
קידוד השעון

הקוד המלא של השעון ניתן למצוא בקוד NeoClock ב- GitHub. צירפתי את הקובץ כאן אך כל שינוי יקרה במאגר.

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

  • https://github.com/adafruit/Adafruit_NeoPixel
  • https://github.com/zeroeth/time_loop
  • https://github.com/sparkfun/DeadOn_RTC

ניתן למצוא קוד דוגמה ממאגרים אלה במדריך דוגמאות הקוד שלי

סדר הפעולות בו השתמשתי כדי לבנות את הקוד הלך בערך כך:

  • ודא ש- neopixels עובדים עם דוגמת בדיקת Strand
  • נסה להפעיל שעון עם קוד לולאת הזמן
  • שנה את השעון כך שיעבוד על שתי טבעות במקום אחת בלבד
  • הוסף את DS3234 כדי לשמור זמן באמצעות דוגמא RTC של DeadOn
  • הוסף את המצב והגדר מתגים
  • הוסף קוד Debounce בעזרת מדריך Debounce Arduion
  • הוסף כמה נושאי צבע עבור נוריות השעון
  • הוסף כמה אנימציות לציון 0, 15, 30 ו -45 דקות
  • הוסף נקודות מצפן לשעון לכיוון 0, 15, 30 ו -45 דקות

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

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

  • setColorBlue
  • setColorRed
  • setColorCyan
  • setColorOrange

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

  • setColorPrimary
  • setColorRoyal
  • setColorTequila

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

  • 15 דקות: צבע את הטבעות באדום
  • 30 דקות: צבע את הטבעות בירוק
  • 45 דקות: צבע את הטבעות בכחול
  • ראש השעה: עשו קשת על פני שתי הטבעות

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

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

שלב 5: עיצוב הקבצים לחיתוך לייזר

עיצוב הקבצים לחיתוך לייזר
עיצוב הקבצים לחיתוך לייזר
עיצוב הקבצים לחיתוך לייזר
עיצוב הקבצים לחיתוך לייזר
עיצוב הקבצים לחיתוך לייזר
עיצוב הקבצים לחיתוך לייזר
עיצוב הקבצים לחיתוך לייזר
עיצוב הקבצים לחיתוך לייזר

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

  • 1x פורניר MDF - אגוז
  • 1x פורניר MDF - דובדבן
  • 1x אקריליק - אפור בהיר
  • 1x אקריליק - אופל

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

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

השתמשתי ב- InkScape כדי לצייר על התבנית שסיפקה Ponoko. לאחר שציירתי את גוף השעון החזרתי לצייר את העץ ביד. לא יכולתי לייבא את התמונה המקורית שנתנה לי השראה אבל זה לא היה נורא להבין איך לעשות משהו דומה בעצמי.

עלות החומרים הייתה כ- $ 20 בלבד אך עלות החיתוך הסתכמה בכ- $ 100 יותר. שני דברים תרמו לכך:

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

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

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

שלב 6: בניית השעון

בניית השעון
בניית השעון
בניית השעון
בניית השעון
בניית השעון
בניית השעון
בניית השעון
בניית השעון

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

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

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

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

באשר לפיקסל שהקוד מציין כ"טופ "לכל טבעת, עליך לערוך מעט את הקוד. יש לי שני ערכים בקוד שלי בשם "inner_top_led" ו- "outer_top_led". בשעוני "פנימנית_חלקה" הייתה 11 פיקסלים מתחילת הטבעת הקטנה ו"חלקה החיצוני "הייתה 36 פיקסלים מתחילת הטבעת הגדולה. אם במקרה היית מכוון את הטבעות אחרת, היית משנה את הערכים האלה כך שיהיו אלה מהכיוון שלך. קצת ניסויים ותמצא את הערך הנכון די מהר.

בשלב זה בדקתי שהכל עובד כצפוי.

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

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

שלב 7: מחשבות אחרונות

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

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

תודה שקראת דרך ההנחיה הזו. אני מקווה שתכין משלך או פרוייקט ניאופיקסל משלך ותשתף אותו איתי. בניין שמח!

מוּמלָץ: