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

שעון איש: 5 שלבים (עם תמונות)
שעון איש: 5 שלבים (עם תמונות)

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

וִידֵאוֹ: שעון איש: 5 שלבים (עם תמונות)
וִידֵאוֹ: אל תיגע לבחורה באיפור בחייםםם !!!! don't do that !!! 2024, יולי
Anonim
Image
Image
איסוף חלקים ועבודות עץ
איסוף חלקים ועבודות עץ

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

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

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

שלב 1: איסוף חלקים ועבודות עץ

איסוף חלקים ועבודות עץ
איסוף חלקים ועבודות עץ
איסוף חלקים ועבודות עץ
איסוף חלקים ועבודות עץ
איסוף חלקים ועבודות עץ
איסוף חלקים ועבודות עץ

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

פרויקט זה עשוי מאחת החתיכות של אותה משטח. (שאלתי את הבוס לפני שלקחתי אותו הביתה)

משמש גם:

  • טבעת LED 12 פיקסל ws2812b
  • מודול שעון בזמן אמת (RTC) (אני משתמש ב- DS3231 עם I2C)
  • תואם Arduino Nano v3.0
  • יריעת אקריליק (5 מ"מ)
  • חוט צבעוני

כלים

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

שיוף

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

סימון וחיתוך החורים

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

ניתוב וחורי כבלים

בעזרת הנתב שלי עם הסיביות 12 מ"מ ניתקתי שקע בתחתית הבלוק כדי להסתיר את ה- RTC והארדואינו. עומקו כ- 15 מ"מ ולא פחות מ -5 מ"מ מכל קצה. סימנתי את המרכז (ish) מלמטה וקידחתי בעזרת 10 מ"מ קצת בחצי הדרך כדי לאפשר את חוטי ה- LED. לאחר מכן בעזרת קצת 5 מ"מ קדחתי ממרכז השקע LED כדי לפגוש את החור של 10 מ"מ מלמטה.

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

שלב 2: מעגלי אקריליק

מעגלי אקריליק
מעגלי אקריליק
מעגלי אקריליק
מעגלי אקריליק
מעגלי אקריליק
מעגלי אקריליק

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

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

שלב 3: הלחמה

הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה

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

  • אדום עבור כוח (5v)
  • לבן לקרקע
  • צהוב לנתונים
  • ירוק לשעון

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

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

RTC

  • SCL (שעון) לפין אנלוגי 5
  • SDA (נתונים) לפין אנלוגי 4
  • VCC עד 5V
  • GND לכל GND ב- Arduino

טבעת לד

דין לפין דיגיטלי 6

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

שלב 4: הקוד

כעת אתה אמור להיות מסוגל להעלות את הקוד הזה ל- Arduino.

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

לסירוגין זה גם עובד ממש טוב לקביעת הזמן.

www.instructables.com/id/Setting-the-DS130…

חלק גדול מהקוד הזה שאלתי מספריית Adafruit NeoPixel וחלק מספריית RTC שמצאתי וחלק המצאתי לבד.

// כלול את קוד הספרייה: #include

#לִכלוֹל

#לִכלוֹל

// הגדר סיכות

#הגדר PIN 6

#define BRIGHTNESS 20 // הגדר בהירות מרבית

#הגדר r 5

#הגדר g 5

#הגדר ב 5

RTC_DS3231 rtc; // הקמת אובייקט שעון

רצועת Adafruit_NeoPixel = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // חפץ רצועה

הגדרת בטל () {

Wire.begin (); // בגין I2C

rtc.begin (); // התחל שעון

Serial.begin (9600);

// הגדר pinmodes

pinMode (PIN, OUTPUT);

if (rtc.lostPower ()) {

Serial.println ("RTC איבד כוח, מאפשר להגדיר את השעה!");

// השורה הבאה קובעת את ה- RTC לתאריך ושעה שסקיצה זו נערכה

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)));

// שורה זו קובעת את ה- RTC עם תאריך ושעה מפורשים, למשל להגדרה

// 21 בינואר 2014 בשעה 3:00 תתקשר:

// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));

}

strip.begin ();

strip.show (); // אתחל את כל הפיקסלים ל'כבוי '

DateTime theTime = rtc.now (); // לוקח בחשבון DST

בת secondval = theTime.second (); // קבל שניות

byte minuteval = theTime.minute (); // לקבל דקות

int hourval = theTime.hour ();

נקודה (רצועה. צבע (0, גרם, 0), 50);

}

לולאת חלל () {

// לקבל זמן

DateTime theTime = rtc.now (); // לוקח בחשבון DST

int minuteval = theTime.minute (); // לקבל דקות

int hourval = theTime.hour (); // לקבל שעות

int secondval = theTime.second ();

אם (דקות 0) {

strip.setPixelColor (0, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 9) {

strip.setPixelColor (1, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 14) {

strip.setPixelColor (2, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 19) {

strip.setPixelColor (3, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 24) {

strip.setPixelColor (4, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 29) {

strip.setPixelColor (5, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 34) {

strip.setPixelColor (6, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 39) {

strip.setPixelColor (7, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 44) {

strip.setPixelColor (8, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 49) {

strip.setPixelColor (9, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 54) {

strip.setPixelColor (10, r, 0, 0);

strip.show ();}

אחרת אם (דקות <= 59) {

strip.setPixelColor (11, r, 0, 0);

strip.show ();}

עיכוב (1000);

עבור (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();

}

if (hourval == 0) {

strip.setPixelColor (0, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 1) {

strip.setPixelColor (1, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 2) {

strip.setPixelColor (2, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 3) {

strip.setPixelColor (3, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 4) {

strip.setPixelColor (4, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 5) {

strip.setPixelColor (5, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 6) {

strip.setPixelColor (6, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 7) {

strip.setPixelColor (7, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 8) {

strip.setPixelColor (8, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 9) {

strip.setPixelColor (9, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 10) {

strip.setPixelColor (10, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 11) {

strip.setPixelColor (11, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 12) {

strip.setPixelColor (0, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 13) {

strip.setPixelColor (1, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 14) {

strip.setPixelColor (2, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 15) {

strip.setPixelColor (3, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 16) {

strip.setPixelColor (4, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 17) {

strip.setPixelColor (5, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 18) {

strip.setPixelColor (6, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 19) {

strip.setPixelColor (7, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 20) {

strip.setPixelColor (8, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 21) {

strip.setPixelColor (9, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 22) {

strip.setPixelColor (10, 0, 0, b);

strip.show ();}

אחרת אם (hourval == 23) {

strip.setPixelColor (11, 0, 0, b);

strip.show ();}

עיכוב (1000);

עבור (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();

}

// לניפוי באגים סדרתי

Serial.print (hourval, DEC);

Serial.print (':');

Serial.print (דקות, DEC);

Serial.print (':');

Serial.println (secondval, DEC);

}

נקודה בטלה (uint32_t c, uint8_t המתן) {

עבור (int j = 0; j <3; j ++) {

עבור (int i = 0; i <12; i ++) {

strip.setPixelColor (i, c);

strip.show ();

עיכוב (המתנה);

עבור (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();}

}

}

}

שלב 5: שמן דני

שמן דני
שמן דני
שמן דני
שמן דני
שמן דני
שמן דני
שמן דני
שמן דני

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

אתה יכול לצחצח אותו או שאני פשוט משתמש במטלית ישנה לנגב אותו.

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

מוּמלָץ: