‏הצגת רשומות עם תוויות תצוגת 7 מקטעים. הצג את כל הרשומות
‏הצגת רשומות עם תוויות תצוגת 7 מקטעים. הצג את כל הרשומות

יום ראשון, 20 ביולי 2014

פרויקט ביג-בן חלק ג׳: attiny85

פוסט קודם

השימוש ב- raspberry pi בפרויקט השעון הוא ללא ספק over-kill. יש יתרונות:
- הוספתי הצגה של שער הביטקוין העדכני פעם בכמה דקות - מחייב אינטרנט.
- אני שוקל להוסיף שעון מעורר. עם הפאי יש לי יציאה אודיו פשוטה.
- ואם כבר יציאת אודיו - למה לא שיהיה גם רדיו (אינטרנטי)?

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

attiny85 on spurkfun


בשעון הזה אני אשתמש ב- ATTiny85 כדי לשלוט ב- max7219. בנוסף יהיה גם רכיב RTC - רכיב שנותן קריאת זמן מדוייקת (למדי).

DeadOn RTC

קניתי לוח מוכן של DS3234 - זהו רכיב מדוייק מאוד והלוח כולל גם בית סוללה כדי שניתוק של המערכת מהחשמל (או מהסוללות) לא ייאפס את השעון. הבעסה היחידה היא העובדה שבית הסוללה מיועד לסוללת מטבע 1225 - לא פשוט למצוא ולא זול. בסוף מצאתי 1220 שנכנסה גם בלי בעיה - ההבדל הוא רק בגודל:

אם שאלתם את עצמכם ״מה זה המספרים האלה של הסוללות?״, אז הנה זה: שתי הספרות הראשונות הן הקוטר במ״מ, והשתיים הבאות הן הגובה בעשיריות המ״מ. כלומר: סוללת 2032 המצוייה, היא בקוטר 20 מ״מ ובגובה 3.2 מ״מ. במקרה שלי, בית הסוללה מתאים גם לסוללה יותר נמוכה מה- 1225, ולכן 1220 נכנסת גם היא בקלות. וכמובן שכולן באותו מתח - 3V. (המקור בוויקיפדיה)

מה שנשאר הוא לחווט - ועל כך בפוסט הבא.



יום שבת, 28 ביוני 2014

פרויקט ביג-בן חלק ב' - השעון באוויר

פוסט קודם

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

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

בפעם הבאה - ישר מזמין מעגל מודפס...

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


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

בשלב הבא הוספתי את 2 הספרות של השעה.

כשלב חומרתי אחרון, לקחתי מטען ישן של שקר כלשהו, וחיברתי אותו למייצב מתח 7805 (שפירקתי ממכשיר כלשהו) על הלוח:

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


והוספתי גם מפזר חום, וחוט:



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

והנה, השעון החדש שלנו במטבח / סלון:



חלק ג׳: ATTiny85

יום שישי, 27 בדצמבר 2013

פרויקט ניקסי - חלק א'


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

״אתה עולה ל-R392, לוקח ימינה ב-Q92, וזה מולך״

בולטים בלוח שלושה מעגלים משולבים. הימני המאונך, מר sn7114an. מדובר במקודד מבינארי לדצימלי. כלומר הוא מקבל ארבעה ביטים בארבע רגליים, ומדליק אחת מ-10 רגליים. נשמע מאוד הגיוני שהוא מקבל ספרה בבינארי ומדליק את הספרה המתאימה בניקסי.
משמאלו נמצא ה- 839. זהו מונה 16 בינארי, כלומר יש לו רגל אחת ככניסה, ו- 4 ביציאה. כל פולס שנכנס מוסף אחד למונה הפנימי, ומשנה את היציאות בהתאם (ייצוג בינארי של המונה).

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

המעגל השלישי הוא 862. הוא מכיל שלושה שערי NAND משולשים. על התפקיד שלו אני אשב בהמשך.

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

לא השתמשתי ב- eagle


אז החלטתי שפה אני נכנס. לפחות בשלב ראשון.

שני החוטים המאולתרים הם Vcc ו- Gnd

נגד מושך את הרגל ל- Gnd, הלחצן מחבר אותה ל- Vcc
למזלי המעגלים לא מולחמים אלא יושבים על תושבות. הוצאתי את ה- 839, וחיברתי את הרגליים המתאימות למטריצה שלי. הוספתי 4 כפתורי לחיצה (ממוחזרים ממכשיר כלשהו כמובן) - והפעלתי (בזהירות - המכשיר פתוח ומחובר לחשמל).


אכן הצלחתי לספור - אבל רק עד 7. הרגל הרביעית של ה- 839 לא הדליקה את הספרה 8 אלא את 4. אני מניח שכיוון שה- 839 מונה עד 15 אבל הספרות הן רק עד 9, יש כאן עניין יותר מסובך עם הביט העליון (הרביעי). מן הסתם זה קשור לעובדה שה- 862 מחובר לביט הנ״ל ולביט התחתון. בכל פעם שהם שניהם 1, ובהנחה שגם הכניסה השלישית ל-NAND הזה היא 1 כל הזמן, הוא מאפס את ה- 839 (1 בביט התחתון ובביט העליון נותנים 1001 שזה 9).

בפעם הבאה ננסה להבין איך לשלוט על כל ספרה בנפרד.

יום שני, 21 באוקטובר 2013

פרויקט ביג בן - חלק א2




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



השלבים הבאים:
  • אני מחכה ללדים RGB שצריכים להגיע, אשים אותם בתור נקודותיים.
  • צריך למצוא מקום ל- max7219. אחד יהיה בין 2 הספרות של השעות ואחד בין 2 הספרות של הדקות. ולחווט אותם.
  • להתחיל לכתוב קוד - שישלוט ב- max7219. לפני כמה שבועות כתבתי קוד Java שישלוט ב- 595 shift register, ומשום מה זה לא עבד טוב. השתמשתי בחבילת pi4j, ואולי היא עדיין בתולית מדי. אני אנסה שוב עם ה- max7219 ונראה איך יילך.
  • אני שוקל להוסיף יכולת השמעת רדיו אינטרנט בעזרת השעון. הוא יישב בפינת האוכל, ושם יש ביקוש לרדיו (בזמן שעובדים במטבח) ואין קליטה טובה של FM עם רדיו רגיל.
  • סיומים - צריך לארוז יפה את השעון. אין לי שום רעיון בכיוון הזה.

יום חמישי, 17 באוקטובר 2013

עוד מעט נהפוך לשעון מגניב - פרויקט Big Ben חלק א'


כבר היתה לי חבילה של לדים מ- dealextreme, וצריך להגיע max7219, לא נעשה איתם משהו יפה?

כן.



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

  • שימוש באפקטים שונים, כגון fade-out ו- fade-in, ריצה של לדים סביב הספרות, וכו', כך שצפייה בשעון תהיה קצת יותר מעניינת.
  • נוסיף כפתורים, למשל לחיצה על כפתור תראה את הטמפרטורה כרגע בחוץ או משהו כזה.
  • טיימר אולי? שעון מעורר? אפשר לחבר לוח ספרות שפירקתי מטלפון - רק נשאר לי לפענח איך משתמשים בו.
  • יש לי גם 10 לדים RGB שצריכים להגיע, אולי נשתמש בהם בנקודתיים בין הספרות?
  • אני אשמח לשמוע בתגובות עוד רעיונות.
את הלדים סידרתי כתצוגת 7 מקטעים, כשכל מקטע עשוי מ- 4 לדים בשורה.
את האפקטים אפשר לממש בעזרת ה- max7219 (קניתי 5 כאלה ב- 10 ש"ח באיביי). השבב יודע לתפעל מטריצה של עד 8 על 8 לדים, וכולל גם מפענח לתצוגת 7 מקטעים, כלומר אפשר לחבר אותו ישירות לתצוגה שכזו (קתודה משותפת) ופשוט לומר לו איזה מספר להציג, בין 1 ל-8 ספרות. יש לו גם אופציה לשלוט על העוצמה של התאורה (סוג של נגד דיגיטלי פנימי). בקיצור - אפשר ליצור הרבה התנהגויות שונות ומשונות לתצוגה איתו.

כמובן שמאחורי השעון יהיה רספברי פיי שייתפעל אותו. אני אצטרך לכתוב קוד שיידבר עם ה- max7219. יש קודים כאלו ברשת אבל כתובים בפייתון. אני אישית מעדיף לעבוד ב- Java, אז אולי ייצא מזה קוד פתוח לטובת הקהילה.
נ.ב.
היו אמורים להיות 100 לדים בחבילה, אבל היו בה רק 80. בכל מקרה, אני אצטרך 4לדים*7מקטעים*4ספרות = 112 לדים, אז אני צריך למצוא עוד כ-40. הבעיה היא למצוא לדים זהים. יש למישהו חבילה זהה שהוא הזמין מ dealextreme?...

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

יום חמישי, 3 באוקטובר 2013

מונה 0-99 בעזרת ic 4026

כהכנה לפרויקט הגדול שלי, מסילה עם כדורים מסביב לכל חדר המשחקים של הילדים, חשבתי על משהו פשוט שייערב תצוגת 7-מקטעים (7 segment display).
החלטתי להשתמש במעגל משולב 4026. מעגל זה יודע לספור מאפס עד 9, בכל פעם שהמתח ברגל ה-CLOCK שלו עוברת מ-"נמוך" ל-"גבוה". בנוסף, הוא גם ממפה את המספר לתצוגת 7 מקטעים - כך שאפשר לחברו ישירות לתצוגה שכזו. בעזרתו בניתי מונה מ-0 עד 99, שמופעל ע"י לחצן:



כדי לוודא שלחצן המנייה (count) עובד חלק ולא גורם ל- 4026 לספור פעמיים בטעות, ישנו קבל C1 שמחובר אליו במקביל ודואג שהמתח ירד לאט (יחסית) ע"י פירוקו לנגד R2, וכך "מחליק" את הפולסים שמגיעים מהלחצן.

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