שעון מעורר בינארי מבוסס Arduino: 13 שלבים (עם תמונות)
שעון מעורר בינארי מבוסס Arduino: 13 שלבים (עם תמונות)
Anonim
Image
Image

ע י הנדסת מרתף עקוב אחר מאת המחבר:

דלפק אנשים לייזר DIY
דלפק אנשים לייזר DIY
בניית סירה לנהיגה עצמית (ArduPilot Rover)
בניית סירה לנהיגה עצמית (ArduPilot Rover)
בניית סירה לנהיגה עצמית (ArduPilot Rover)
בניית סירה לנהיגה עצמית (ArduPilot Rover)
מנורת המיטה המושלמת ועגינת הטלפון
מנורת המיטה המושלמת ועגינת הטלפון
מנורת המיטה המושלמת ועגינת הטלפון
מנורת המיטה המושלמת ועגינת הטלפון

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

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

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

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

תן לי לספר לך קצת על הסיפור שמאחורי הפרויקט הזה:

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

אז מה אתה עושה כשאתה רוצה להציג את הזמן עם כמה שפחות LED?

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

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

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

יש גם סרטון מפורט מאוד ב- YouTube, למקרה שלא תרצו לקרוא הכל.

שלב 1: קנה את הדברים שלך

קבל את הדברים שלך
קבל את הדברים שלך
קבל את הדברים שלך
קבל את הדברים שלך
קבל את הדברים שלך
קבל את הדברים שלך

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

מכשירי חשמל:

  • 18 נוריות Ws2811 ניתנות להתייחסות (למשל Neopixels) על רצועה עם 60 נוריות למד (ebay)
  • Arduino Nano (עם מעבד ATMega328) (ebay)
  • מודול RTC 1307 (ebay)
  • 4X לחצני מגע קיבוליים (ebay)
  • חיישן טמפרטורה דיגיטלי bs18b20 (ebay)
  • LDR (ebay)
  • רמקול נייד/סמארטפון או זמזם פיצו
  • טרנזיסטור NPN 2222A (או משהו דומה)
  • כותרות גבריות
  • כותרות נקבות זוויות (ebay)
  • נגד 1 קאוהם
  • נגד, 7kOhm
  • נגד 10kOhm
  • חוטים
  • 7x5 ס"מ אב טיפוס PCB 24x18 חורים (ebay)
  • חוט כסף (חוט תכשיטים) (ebay)
  • מתאם USB מיני 90 ° (eBay)

חומרים אחרים

  • עטיפת ויניל
  • 4X 45 מ"מ ברגי ראש אוגן m4 (ebay)
  • מכונות כביסה מתכת 32X m4
  • אגוז נעילה 4X m4
  • אגוז 28X m4
  • 4X 10 מ"מ m3 פליז PCB standoff (ebay)
  • בורג 8X 8 מ"מ m3 (ebay)
  • יריעת אלומיניום
  • דף 2 מ"מ אקריליק חלבי
  • דף 2 מ"מ אקריליק שקוף
  • 3 מ"מ גיליון MDF
  • קלטת דו צדדית

כלים

  • כבל מיני USB
  • מחשב שמריץ את Arduino IDE
  • מקדחה 3, 5 מ"מ
  • מקדחה 4, 5 מ"מ
  • מקדחה
  • סכין חיתוך
  • מסור התמודדות
  • יון הלחמה
  • מספריים לחיתוך מתכת
  • קוֹבֶץ
  • נייר זכוכית

תבניות (עכשיו עם מידות)

  • PDF
  • Libre Office Draw

קוד

  • סקיצות
  • ספריית לחצנים
  • ספריית טיימר
  • ספריית ג'וקבוקס
  • RTClib שונה
  • ספריית Adafruit Neopixel
  • Arduino-Temperature-Control-Library

שלב 2: חותכים את הלוח הקדמי והאחורי

חותכים את הלוח הקדמי והאחורי
חותכים את הלוח הקדמי והאחורי
חותכים את הלוח הקדמי והאחורי
חותכים את הלוח הקדמי והאחורי
חותכים את הלוח הקדמי והאחורי
חותכים את הלוח הקדמי והאחורי
חותכים את הלוח הקדמי והאחורי
חותכים את הלוח הקדמי והאחורי

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

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

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

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

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

שלב 3: סיים את הלוח האחורי

סיים את הלוח האחורי
סיים את הלוח האחורי
סיים את הלוח האחורי
סיים את הלוח האחורי
סיים את הלוח האחורי
סיים את הלוח האחורי
סיים את הלוח האחורי
סיים את הלוח האחורי

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

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

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

שלב 4: הפוך את לוח ה- LED

הפוך את לוח ה- LED
הפוך את לוח ה- LED
הפוך את לוח ה- LED
הפוך את לוח ה- LED
הפוך את לוח ה- LED
הפוך את לוח ה- LED

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

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

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

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

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

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

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

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

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

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

שלב 5: הכינו מדריך אור

הכינו מדריך אור
הכינו מדריך אור
הכינו מדריך אור
הכינו מדריך אור
הכינו מדריך אור
הכינו מדריך אור
הכינו מדריך אור
הכינו מדריך אור

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

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

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

שלב 6: צור את מסגרת הכפתור

צור את מסגרת הכפתור
צור את מסגרת הכפתור
צור את מסגרת הכפתור
צור את מסגרת הכפתור
צור את מסגרת הכפתור
צור את מסגרת הכפתור

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

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

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

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

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

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

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

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

שלב 7: הלחמה של ה- PCB הראשי

הלחם את ה- PCB הראשי
הלחם את ה- PCB הראשי
הלחם את ה- PCB הראשי
הלחם את ה- PCB הראשי
הלחם את ה- PCB הראשי
הלחם את ה- PCB הראשי

הבה נשאיר את המסגרת כפי שהיא כעת ונמשיך למחשב הלוח. אתה יכול לראות את פריסת ה- PCB בתמונה הראשונה.

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

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

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

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

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

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

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

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

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

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

שלב 8: הרכבת השעון

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

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

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

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

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

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

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

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

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

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

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

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

שלב 9: העלה את הקוד וכיול את חיישן האור

העלה את הקוד וכיול את חיישן האור
העלה את הקוד וכיול את חיישן האור
העלה את הקוד וכיול את חיישן האור
העלה את הקוד וכיול את חיישן האור
העלה את הקוד וכיול את חיישן האור
העלה את הקוד וכיול את חיישן האור

הגיע הזמן להעלות את הקוד שלנו.

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

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

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

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

הגיע הזמן לשחק עם הגאדג'ט החדש שלנו.

שלב 10: היכרות מהירה עם המערכת הבינארית

היכרות מהירה עם המערכת הבינארית
היכרות מהירה עם המערכת הבינארית
היכרות מהירה עם המערכת הבינארית
היכרות מהירה עם המערכת הבינארית
היכרות מהירה עם המערכת הבינארית
היכרות מהירה עם המערכת הבינארית
היכרות מהירה עם המערכת הבינארית
היכרות מהירה עם המערכת הבינארית

לפני שנמשיך אני רוצה לענות על שאלה אחת שככל הנראה כבר עברה בראשך, "איך אתה בכלל קורא את השעון הזה?"

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

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

כדי להציג מספרים שגדולים מ 9 בעשרוני, נוסיף ספרות נוספות. כל ספרה מגיעה עם מכפיל מסוים. הספרה הראשונה מימין מגיעה עם מכפיל 1 הבאה הבאה היא 10 והשנייה הבאה היא 100. עם כל ספרה חדשה המכפיל גדול פי עשר מזה של הספרה שלפני. אז אנחנו יודעים שהמספר שתיים מציב ספרה אחת משמאל, מייצג את המספר 20. בעוד שתי ספרות משמאל, הוא מייצג 200.

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

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

8 סיביות מכונות בתים, אז בואו נראה איזה מספר נקבל אם נמלא בתים שלמים.1+2+4+8+16+32+64+128 כלומר 255 שזה הערך הגבוה ביותר שיש לבייט אחד.

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

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

בסדר, ספר לי מה השעה בתמונה השישית, מאשר לדלג לתמונה האחרונה.. ….

בחלק השעות יש לנו 2+1 שזה 3 והסיביות של הערב פועלות כך שזה ערב. לאחר מכן הדקה 32+8, כלומר 40. לשניות יש לנו 8+4+2 שזה 14. אז השעה 15:40:14 אחר הצהריים או 15:40:14.

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

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

שלב 11: שימוש בשעון מעורר בינארי

שימוש בשעון מעורר בינארי
שימוש בשעון מעורר בינארי
שימוש בשעון מעורר בינארי
שימוש בשעון מעורר בינארי
שימוש בשעון מעורר בינארי
שימוש בשעון מעורר בינארי

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

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

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

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

  • פעם אחת לא אומרת עמעם.
  • פעמיים פירושו שהבהירות נשלטת על ידי חיישן האור.
  • שלוש פעמים והנורות כבות אוטומטית לאחר 10 שניות של חוסר פעילות.
  • ארבע פעמים ושני מצבי העמעם משולבים.

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

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

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

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

שלב 12: הבנת הקוד (אופציונלי)

הבנת הקוד (אופציונלי)
הבנת הקוד (אופציונלי)

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

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

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

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

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

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

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

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

האובייקט BinaryClock מנהל את הזמן ואת הגדרת האזעקה, כמו גם צפייה באזעקות. זה גם מקבל את הזמן ממודול rtc וממיר אותו למאגר מידע בינארי עבור ה- ledPanel.

ColorController מקיף את כל פונקציות אפקט הצבע ומספק את colorBuffer עבור ה- ledPanel. זה גם חוסך את המצב שלו ב- EEProm של Arduinos.

העמעם דואג לבהירות השעונים. יש לו מצבים שונים שהמשתמש יכול לעבור עליהם. המצב הנוכחי נשמר גם ב- EEProm.

ה- ledPanel מנהל מאגרים שונים עבור ערך הצבע, ערך הבהירות והמצב הבינארי של כל LED. בכל פעם שנקראת הפונקציה pushToStrip (), היא מעלה את אלה ושולח אותם לרצועת ה- LED.

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

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

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

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

שלב 13: מילים אחרונות

מילים אחרונות
מילים אחרונות

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

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

אשמח לשמוע מה אתם חושבים על השעון בתגובות למטה:).

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

כמו תמיד, תודה רבה על הקריאה ועל העשייה המאושרת.

תחרות LED 2017
תחרות LED 2017
תחרות LED 2017
תחרות LED 2017

סגנית תחרות LED 2017

מוּמלָץ: