V for Venta: מפסק משוכלל תוצרת בית

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

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

להמשיך לקרוא V for Venta: מפסק משוכלל תוצרת בית

ארדואינו למתחילים: גלאי קרבה אינפרה-אדום

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

להמשיך לקרוא ארדואינו למתחילים: גלאי קרבה אינפרה-אדום

ככה לא בונים חומרה

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

בעיקרון, חיבור CS (בחירת ג'וק, או Chip Select) אמור להיות "גבוה" כל הזמן, ולרדת רק למשך פעולת קריאה או כתיבה. הגישה ל-32K נעשית באמצעות כתובות בנות 15 ביטים (32,768 כתובות שונות, מ-0 ועד 32,767), והרעיון שלי היה לנצל את הביט הנוסף בטיפוס הנתונים int (בן 16 הביטים) כדי לבחור לאיזה משני הג'וקים להוריד את ה-CS, וכך להשיג טווח כתובות גדול פי שניים. על הדרך ניסיתי גם לחסוך בחוט ולבצע פעולות קלט ופלט על אותו קו כביכול. זה לא עבד, אבל השאר כן והנה ההוכחה:

להמשיך לקרוא ככה לא בונים חומרה

ארדואינו: סודות המשיכה

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

Input without Pull-down Resistor
מתג רפאים: למה האור דולק גם כשאיש אינו לוחץ?

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

פרויקט MBM: בעצם, WhySQL?

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

להמשיך לקרוא פרויקט MBM: בעצם, WhySQL?

פרויקט A-XO: איקס עיגול לארדואינו

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

לרוע המזל, תצוגות SSD לא מאפשרות הצגה של הסימן "X", אך אני בטוח שלא תהיה לכם בעיה אם, במקום זאת, ניצור משחק H-עיגול. נכון?

להמשיך לקרוא פרויקט A-XO: איקס עיגול לארדואינו

מה שבע, מה כמה: מונה עם ספרות מוארות

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

בינתיים, כדי להירגע קצת ולנקות את הראש, החלטתי לשחק עם רכיבי SSD שהגיעו אליי היום. לא, לא כונן מצב מוצק, אלא Seven-Segment Display – תצוגות פשוטות שמיועדות להצגה של נתונים מספריים (בעיקר), ומורכבות משבעה מקטעים: ארבעה אנכיים ושלושה אופקיים בסידור דמוי ספרת 8 ישרת-זוויות.  כל מקטע מכיל נורית LED סמויה, והדלקה סלקטיבית של הנוריות האלה יוצרת ספרות שונות, וכן כמה סימנים ואותיות.

בפוסט זה אסביר בקצרה מה עשיתי בפרויקט הנאה והמסודר שבתמונה:

SSD Counter

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

פרויקט 99: להתממשק עם המקלדת

מכיוון שהנסיבות (ודואר ישראל?) מעכבות מעט את ההתקדמות המעשית בפרויקט, אנצל את הפוסט הזה להסבר תיאורטי-למחצה של אופן פעולת המקלדת של ה-TI99/4A העתיק.

Keypad
לוח מקשים גנרי. התעלמו מהשרטוט שעל הנייר

להמשיך לקרוא פרויקט 99: להתממשק עם המקלדת

נא להפריע: פסיקות (Interrupts) בארדואינו

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

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

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

לא בת 16 (ביטים)

לפני ימים ספורים דיברתי על שבב הזיכרון הסריאלי והחמוד 23K356. הוא כל כך מצא חן בעיניי, שהחלטתי להזמין עוד כמה יחידות ממנו. הדבר היחיד שמעכיר את השמחה הוא העובדה שיש לו 32,768 כתובות, שניתן להגיע לכל אחת מהן באמצעות 15 ביטים – אבל בתקשורת איתו נשלחים 16 ביטים שהוא פשוט מתעלם מהראשון שבהם. תגידו, זה יחס, זה?

23K256
להוציא את המקסימום מכל ביט: מעגל משולב של זיכרון סריאלי

העובדה שהג'וק מתעלם מהביט הראשון לא אומרת שגם התוכנה שלי חייבת להתעלם ממנו. אני יכול לבודד אותו ולהשתמש בו, עוד לפני שלב הזנת הכתובת, כסוויץ' לבחירה של אחד מתוך שני שבבים זהים, וכך ליצור יחידת זיכרון עם מרחב כתובות אמיתי של 16 ביט – 65,536 כתובות שמנוצלות עד האחרונה שבהן. השאלה היא איך עושים זאת עם מינימום חיבורים לארדואינו (או לכל מיקרו-קונטרולר אחר, לצורך העניין).

להמשיך לקרוא לא בת 16 (ביטים)

בלוג אישי בנושאי מייקינג, תכנות, מיקרו-בקרים ואלקטרוניקה