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

יום חמישי, 1 בינואר 2015

טיימר צחצוח שיניים - rgb לד עם attiny85



מצאתי קוד ברשת ל- attiny85 שאיתו הוא יכול לשלוט בלד RGB.


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

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

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


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

קשה להראות טוב את האור...

אגב נראה שגם עם שתי סוללות המעגל עובד, למרות שתיאורטית ה- ATTiny85 אמור לקבל 5V.
צחצוח נעים!

הקוד ב- gitthub.

יום ראשון, 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. (המקור בוויקיפדיה)

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



יום שני, 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?...

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

יום שבת, 12 באוקטובר 2013

מד לאסלה, או "איך הבן שלך יישמח ללכת לעשות פיפי בשירותים"

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

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

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

העדפתי ליצור את המשחק מחלקים שיש לי כבר, ולא עם בקר כלשהו.  החלטתי להשתמש ב- 555, ו- 595 shift register. להסבר מעולה (באנגלית) על ה- 595, הציצו כאן.
המשחק עובד כך:
באסלה יהיו שני חיבורים חשופים קרובים מאוד. כשפוגע בהם פיפי, או שהם יגעו אחד בשני ישירות, או שהפיפי עצמו יסגור ביניהם מעגל (בזכות המוליכות של הפיפי - אני עוד צריך לבדוק את הנושא). זה המתג הראשי של המעגל.
המתג הזה מחבר את הסוללות (4 של AA) למעגל. במעגל יש זמנן (555) שמתפעל אוגר (595). בכל שניה, הזמנן דוחף לאוגר עוד ביט גבוה. לכן הפלט של האוגר יהיה 00000000 בהתחלה, 00000001 אחרי שניה, 00000011 אחרי עוד שניה, וכך עד 11111111.
היציאות של האוגר יהיו מחוברות ללדים, אז אני אקבל את האפקט של המודד. בחלק מהיציאות אני אחבר לדים רגילים, ובחלק את הצעצועים הזולים. בצורה זו זה לא סתם שורת לדים שנדלקת, אלא יש גם "נק' ציון" בדרך, שהן קצת יותר מעניינות.
בניתי את המעגל הבסיסי, ובדקתי אותו:

החיבור לRPI הוא רק לקבל 5V. בנוסף השתמשי ב- 556 במקום 555
(556 הוא שני 555 בצ'יפ אחד, אבל השתמשתי רק באחד מהם).

כיוון שהייתי השבוע בהרצאה על Eagle ב- XLN, של אלון רייזמן, החלטתי לשלוח להדפסה סנונית ראשונה. בניתי את המעגל בתוכנה ושלחתי להדפסה ב- OSH Park. באתר אפשר להזמין הדפסה של מעגל אבל לפחות 3 העתקים, במחיר של 5$ לכל אינץ' רבוע, המשלוח חינם. עלה לי 70 ש"ח - אני מקווה שעוד שבועיים שלושה אעלה פוסט עם המשחק עובד.

הסבר על המעגל

במעגל יש 555 astable שמוציא גל ריבועי כל שניה, ובו המצב הגבוה נמשך כמעט שניה (רק כמה מילישניות של נמוך).
באוגר, רגל ה- serial data מחוברת ל- Vcc, כלומר תמיד נדחף ביט גבוה. ה- clock מחובר למעגל גזירה פשוט של קבל ונגד. הוא גוזר את הפלט של הזמנן, כלומר בכל פעם שהפלט עולה לגבוה (פעם בשניה) מקבלים pulse רגעי. ה- RCK מחובר לנגד pull-up ולטרנזיסטור, כך שהוא מקבל בדיוק את ההופכי של הפלט (כשהפלט גבוה, הוא נמוך, וההיפך).

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

רגלי ה- output יהיו מחוברות ללדים, ושלושה מהם (מס' 5, 10 ו- 16) יהיו מחוברים למעגלים של הצעצועים. כיוון שרציתי להפריד בין המעגלים, יציאות 5, 10 ו- 16 הן דרך טרנזיסטור, כך שהמעגלים מהצעצועים יוכלו להיות מחוברים לסוללות משלהם.

שרטוט המעגל:


להורדה של ספריית ה- Eagle של הפרויקט

יום ראשון, 6 באוקטובר 2013

שימוש ב- SIS-2 כדי לשלוט על מעגל מכמעט כל שלט IR



נתקלתי ב- IC בשם SIS-2 שנמכר במקור ע"י sparkfun (אפשר לקנות אותו גם בארץ, יחסית זה לא שבב זול - 50 ש"ח). זהו שבב שמקבל מידע מחיישן IR (כזה לדוג'), ויודע לנתח את אותו ע"י פרוטוקול נפוץ של שלטים (לדברי החברה, 99% מהשלטים יעבדו איתו). בנוסף, הוא זוכר שני קודים ספציפיים (שניתנים לתכנות) וכך אפשר להוסיף לכל מעגל שליטה מ-2 כפתורי שלט.

לשבב כמה מצבי עבודה:
  • לימוד - במצב זה מלמדים את השבב שני כפתורים כלשהם משלט כלשהו.
  • רגיל - ברגע שמגיע אות שמתאים לאחד מהקודים שנלמדו, השבב מרים את אחת הרגליים שלו למצב "גבוה" (יש שתי רגלי output, אחת לכל קוד).
  • Discrete Button - דומה לרגיל, אבל בסוג של "on/off". לחיצה בשלט גורמת לרגל ה-output לעלות ולהשאר שם. לחיצה נוספת מורידה אותה חזרה ל- "נמוך".
בעמוד באתר של sparkfun יש קישור ל- datasheet שמסביר בדיוק הכל - וזה די פשוט.

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

הנה הדגמה חיה:


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

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

שרטוט:
שרטוט ב- fritzing אפשר להוריד מפה.

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

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

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



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

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