יום שני, 24 בדצמבר 2018

איך מכיילים את ה Ultimaker 3?

איך מכיילים את ה Ultimaker 3? מתי צריך לכייל אותה?

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

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

מתי עושים כיול?

יום ראשון, 23 בדצמבר 2018

לצייר לב ב Oscilloscope

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

השלב הראשון היה ציור של לב:


יום שלישי, 18 בדצמבר 2018

לצייר ב Oscilloscope בעזרת ארדואינו

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

מוכנים?

רכיבים:

  • ארדואינו Uno
  • מטריצה 
  • מספר חוטים 
  • 2 נגדים בערך של 10KΩ
  • 2 קבלים בערך של 0.1uF
  • מכשיר Oscilloscope
בשלב הראשון נבנה את המעגל על פי התרשים הבא: 



יום ראשון, 16 בדצמבר 2018

ארדואינו - PWM

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

נר LED עם שימוש ב PWM

טנק נשלט על ידי בלוטוס

אז מה זה בעצם אומר?

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

פקודת ה HIGH אמורה להוציא מתח של 5V, פקודת ה LOW אמורה להוציא מתח של 0V. ואם אני רוצה להוציא 3V? 2.5V? באופן עקרוני אני יכול להשתמש בנגד שיתן לי את המתח הרצוי אולם אין פקודה שגורמת לארדואינו להוציא מתח נמוך יותר.

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

שימו לב שרק היציאות בארדואינו שמסומנות בסימון ~ מסוגלות לספק כתיבה אנלוגית - analogWrite, כלומר, יציאות מספר 3,5,6,9,10,11.

בואו נראה איך זה נראה:

כתיבה של analogWrite 0 - תתן לנו קו ישר של 0V, דומה מאד לפקודת ה digitalWrite LOW:


יום חמישי, 13 בדצמבר 2018

Anet A8 - הרכבה חלק ג'

Anet A8 - חלק ראשון

Anet A8 - חלק שני

Anet A8 - שדרוגים 

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



יום חמישי, 29 בנובמבר 2018

הפתעות תכנותיות (Easter eegs)

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


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


     =rand.old() 

    ולאחר מכן נלחץ על Enter

    ונקבל דברים אחרים...

    אגב, יש לכם מושג מה מיוחד במשפט הזה?

יום שבת, 24 בנובמבר 2018

תכנות רחפן Tello באמצעות המחשב

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

איך מטיסים באמצעות המחשב ולמה זה טוב?

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

מוכנים להתחיל?

כדי לתכנת את ה Tello בבלוקים תצטרכו:

  • רחפן Tello
  • מחשב עם חיבור ל Wifi
  • דפדפן כרום 
איך עושים את זה? 

מחנות האפליקציות של כרום, מורידים את האפליקציה של ה Tello. באפליקציה שהורדתם, Drone blocks, מתחילים לסדר את הבלוקים לפי סדר הגיוני. התחילו ב Take off וסיימו את התכנית ה Land. באמצע שימו את המשימות, הלולאות וכל מה שתרצו.

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

בסיום סידור הבלוקים, התחברו לרשת ה Wifi שמייצר ה Tello ולחצו על Launch Mission כדי להתחיל להעיף... 

מצרף לכם סרטון קצר שמדגים את השלבים השונים וממחיש את התכנות של ה Tello באמצעות בלוקים: 





אם אינכם מצליחים לצפות בסרטון - לחצו כאן >>>



יום שבת, 3 בנובמבר 2018

Anet A8 - הרכבה חלק ב' - שדרוג מאוורר

הרכבת ה Anet A8 - חלק א'



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

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

לפני שנסביר את השדרוג - נראה את ההדרכה המקורית:



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

יום רביעי, 31 באוקטובר 2018

Anet A8 - הרכבה חלק א'

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

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




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

יום רביעי, 17 באוקטובר 2018

תחילת עבודה ב Octave ופרויקט לדוגמא - עיבוד תמונה

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

בחיפושי התחלתי לבדוק את Matlab שעושה רושם שמיועדת בדיוק לדברים האלו אולם הסתבר שמחיר של רשיון לצרכן הפרטי הוא בסביבות 2500$ לרשיון בודד... :-(למוסדות לימוד יש הנחה...). התחלתי לבחון חלופות ומצאתי את Octave. Octave אמורה להיות כמעט כפילה של Matlab. אני משוכנע של Matlab תהיינה המון הסתייגויות מההשוואה אבל לצורך העניין - לקחתי פרויקט Matlab והרצתי אותו על Octave והוא רץ עם שינויים קטנטנים (פרטים בהמשך). המטרה היתה להתחיל להכיר את Octave ולראות איך עושים בו שימוש למטרות של עיבוד מסד נתונים גדול כמו גלי מוח.

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

נתחיל?...

בשלב הראשון יש להוריד את ה Octave מכאן. אני בחרתי באפשרות Windows - בחרו במערכת ההפעלה שמתאימה לכם. ההתקנה של ה Octave די פשוטה (ביחס להתקנה של ה Matlab בה אתם נדרשים לחתום ולהצהיר על כל מיני דברים - על מנת להתקין גרסת נסיון ל 30 יום...) ולאחר ההתקנה תראו שתי תוכנות: Octave CLI ו Octave GUI. הכנסו בבקשה ל Octave GUI.

בחלון שיפתח לכם תוכלו לראות את הממשק של Octave הכולל את שורת הפקודה - Command window ואת חלונית הקוד - Editor. בלשוניות שבתחתית העמוד תוכלו להחליף ביניהם.


נסו לשחק מעט בחלונית הפקודה:

כתבו "1" והקישו Enter
נסו "1+1" ולחצו על Enter
נסו להגדיר משתנים שונים ולחשב איתם. הגדרה תסתיים ב ; לפני ההקשה על ה Enter.

ראו כמה דוגמאות קטנטנות בסרטון:



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

עכשיו תשמרו רגע על פוקוס - צריך להתקין את הספריה וגם לטעון אותה כדי שהכל יעבוד:

1. אל תחלצו את הספריה - העבירו אותה אל שולחן העבודה (סתם בשביל הנוחות).

2. חפשו את הספריה על שולחן העבודה דרך החלון שבצד שמאל של ה Octave.


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

pkg install 'image-2.8.0.tar.gz' 

אצלכם זה עשוי להראות קצת שונה בהתאם לגירסה של ה image שהורדתם.

לאחר ההורדה - חכו מעט, זה עשוי לקחת דקה או קצת יותר. לאחר שה command window ישחרר לכם את הבמה כדי לכתוב משהו חדש - כתבו pkg load image.

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

בשביל הדוגמא, לקחתי תמונה מהאתר הזה וחתכתי אותה באמצעות "צייר". התמונה שהתקבלה היא:


האם ה Octave יצליח להוציא את המידע הרלוונטי מהתמונה?...

העליתי את הקוד של ה Octave  לחלונית העורך - ה Editor:




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

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




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




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



זהו להיום...

זו התנסות ראשונית ב Octave ויש עוד המון מה ללמוד אבל זו ההתחלה...

בהצלחה!

יום שני, 1 באוקטובר 2018

שימוש ב RTC עם ארדואינו

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

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

השתמשתי ברכיב שנקרא Tiny RTC וכולל סוללה מסוג CR2032:
  • את ה 5V ברכיב ה RTC - נחבר ל 5V בלוח הארדואינו
  • את ה GND ברכיב ה RTC - נחבר ל GND בלוח הארדואינו 
  • את ה SDA ברכיב ה RTC - נחבר לכניסה A4 בלוח הארדואינו
  • את ה SCL ברכיב ה RTC - נחבר לכניסה A5 בלוח הארדואינו. 



אחרי שחיברנו הכל והכנסנו את הסוללה לרכיב ה RTC, נוריד את הספרייה מכאן

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





שימו לב רק לכמה דברים:

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


בהצלחה!!

(קרדיט: נעזרתי המון באתר הזה. תודה!)

יום שבת, 22 בספטמבר 2018

נר LED

רוצים לדעת איך יוצרים נר LED בשביל האווירה? זה ממש פשוט...

רכיבים:

  • לוח ארדואינו
  • נורת לד
  • נייר לבן פשוט לעטוף את הנורה
בדוגמא הזאת השתמשתי בנורות LED משורשרות שנמכרות לפני סוכות. במקור, הנורות היו מחוברות לשתי סוללות AA, כלומר, סה"כ 3V. הארדואינו כמובן יכול להחליף את הסוללות ללא שום בעיה וכמובן לספק חשמל משתנה על פי תכנית במקום החשמל הקבוע שאמורות לקבל הנורות מהסוללות. 

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





אחרי שהעליתם את הקוד - חברו את הרגל החיובית של הלד אל יציאה מס' 10 ואת הרגל השלילית אל ה GND:


אגב, אם תרצו תוכלו להשתמש ביציאות אחרות של הארדואינו אבל בהסתייגות: תוכלו להשתמש רק ביציאות שתומכות בכתיבה "אנלוגית" או ליתר דיוק כתיבה דיגיטלית שמדמה כתיבה אנלוגית. בעזרת השיטה הזאת ניתן לשלוט על עוצמת המתח החשמלי ולא רק לספק 0/1 כמו ביציאות דיגיטליות. השיטה נקראת PWM ותומכות בה יציאות 3,5,6,9,10,11 בלבד (ומסומנות בסימן ~). לכן, תוכלו להשתמש ביציאה אחרת (וכמובן לעשות את השינוי בקוד) אולם השתמשו רק ביציאות התומכות ב PWM. 


התוצאה הסופית אמורה להראות בערך כך:



ושרשרת הנורות לסוכה מוכנה!

בהצלחה!!

יום שבת, 15 בספטמבר 2018

מדפי PLA

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

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

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



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


(בתמונה: המדפים מנוסרים וגלילי PLA בצבע לא ידוע מסתתרים בתוך קופסאות במגדלים אין סופיים...)



השלב הבא היה כמובן להרכיב את המדפים וליצור את ארונית ה PLA:



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

וככה זה נראה משתלב בפינת העבודה:



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

יום ראשון, 5 באוגוסט 2018

חדר בריחה - אקזיטרום/ אתגר בריחה בשער בנימין

אחרי כמה שבועות שלא הייתי זמין - אני יכול לספר לכם את הסיבה: הייתי ב Mode של בריחה..





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

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

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

זה נראה בערך ככה: 


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

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


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

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

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




אז למה אתם מחכים?!

יום שישי, 13 ביולי 2018

טיל בריחה

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

איך בונים את הטיל?

רכיבים:

  • ארדואינו אונו
  • מקלדת לארדואינו Keypad
  • רמקול קטן 
  • פס לדים - LED strip RGB מסוג adressable 
  • חוטים... 
נסביר קצת על פס הלדים: פס לדים יכול להיות פס של צבע אחד ופס של RGB כמו למשל הפס שהשתמשנו בו כאן. גם בתוך פסי ה RGB צריך לעשות חלוקה: פס RGB שניתן לשלוט על כולו בו זמנית ופס RGB מסוג adressable, כלומר, ניתן לפנות אל כל נורה בנפרד ולתת לה פקודה להדלק בזמן מסוים ולהגדיר את הצבע בו תדלק. בפרויקט הזה נשתמש בפס לדים עם ארבעה חיבורים: GND, VCC, DATA, CLOCK. 

נתחיל בבניית המעגל: 



כמה דגשים:

  1. שימו לב שאם אתם משתמשים ברמקול זעיר מסוג Buzzer, יתכן שתצטרכו לחבר נגד של 100Ω בין ה GND שלו ובין הארדואינו. אני השתמשתי ברמקול קטן וללא נגד. 
  2. שימו לב שאתם מתחברים לצד הנכון של פס הלדים. בעיקרון ניתן לחבר פס נוסף לקצה הפס הראשון ולכן יש חיבורים בשני הצדדים. על גבי פס הלדים יש חיצים קטנטנים שאמורים להסביר את כיוון החיבור: החץ מורה על סיום פס הלדים. 



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

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

נעלה את הקוד: 


השורה:


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

חשוב מאד!!

שתיים ורבע השורות האלו:


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

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

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

בהצלחה!!



יום חמישי, 10 במאי 2018

עריכת קובץ Python לטיפול בשגיאת EggBot

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

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

ראשית, עושים חיפוש בתיקיית ה Inkscape ומחפשים את הקובץ "ebb_serial". יש שם שני קבצים בלי שם כזה ואנו צריכים את הקובץ בעל הסיומת py ולא סיומת של pyc. אצלי הקובץ נמצא בכתובת הבאה: 


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



חפשו את השורה:


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

 

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

בהצלחה! 

יום ראשון, 6 במאי 2018

בניית ותכנות EggBot - רובוט לשרטוט על ביצה

איך מרכיבים EggBot ומה זה בכלל?!

ה EggBot הוא מכשיר לציור על ביצים מבוסס ארדואינו. המכשיר עובד בדומה מאד למכונת חיתוך לייזר: ציר ה x וציר ה y נקבעים על ידי מנועי צעד (step motor) ובמקום חיתוך בלייזר - אנו נעזרים בטוש דק לציור על הביצה. 

לפני שנתחיל, נתאר את השלבים השונים בקווים כלליים: 
  1. בניית המכשיר
  2. הורדת הקוד לארדואינו
  3. הורדת תכנת שרטוט למחשב
  4. תכנון השרטוט / שימוש בקובץ מוכן
  5. פקודה דרך התכנה לארדואינו


נתחיל לפרט: 

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

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



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




2. הורידו מכאן את הקוד לארדואינו או מכאן. חלצו את התיקייה למקום הנכון - אצלי זה כאן:


ורק לאחר מכן פתחו את תכנת הארדואינו (אם היא היתה פתוחה - סגרו ופתחו שנית). 
חפשו בדוגמאות את ה EggBot ופתחו את הקובץ.



הגדירו פתחה / פורט והעלו את הקוד לארדואינו. 

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

חלצו את התיקייה, חפשו בתוכה את היישום Inkscape והפעילו אותו. 

4. התחילו ללמוד להשתמש בתוכנה בעזרת המדריך. המדריך הוא חינמי ולא כולל את כל האפשרויות. המדריך המלא - בתשלום (והתכנה חינמית לחלוטין על כל מאפייניה!!). 

אפשר גם להוריד מכאן דוגמאות מוכנות לשימוש ב EggBot.

בכל מקרה, הקובץ צריך להיות מותאם לגודל של ביצה. 

5. כעת, אם הכל מוכן ובנוי - אפשר להתחיל בניסיון הראשון:

  • מרכיבים את הביצה במקומה (או כדור פינג פונג, ביצת פלסטיק או אובייקט אחר...)
  • מחברים את לוח הארדואינו למחשב בכבל ה USB - כבל ה USB חייב להיות מחובר עד לסיום העבודה!!!
  • מחברים את הטוש ל EggBot. 
  • מפעילים את ה EggBot דרך ההרחבה הייעודית בתכנת ה Inkscape: לוחצים על הרחבות >>> EggBot >>> ובתפריט שנפתח לוחצים על EggBot Control. 


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



הכל עובד? כן!!

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

יום רביעי, 18 באפריל 2018

חיבור Esp8266 לרשת ה wifi הביתית

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

רכיבים:

נתחיל לבנות את המעגל: 
  • את ה GND במתאם - נחבר ל GND בלוח הארדואינו
  • את ה VCC במתאם - נחבר ל 5V בלוח הארדואינו (יציאת 3.3V לא תספק את המתח הרצוי)
  • את ה TX במתאם - נחבר ליציאה מספר 10 בלוח הארדואינו. 
  • את ה RX במתאם - נחבר ליציאה מספר 11 בלוח הארדואינו.
נוסיף עוד שלוש נורות לד על פי התרשים הבא:





לאחר שבנינו את המעגל, יש להעלות את הקוד:





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

בשורה הזאת:



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

בנוסף, בשורה הזאת:



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

ומה עכשיו?

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


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

כעת, כל מה שנותר לעשות הוא לשלוח פקודות ללוח הארדואינו. הדרך הקלה ביותר שמצאתי היא דרך אפליקציית Serial WiFi Terminal. לאחר ההורדה וההתקנה פתחו את האפליקציה ועברו ל Devices.


הוסיפו את ה Esp8266 שלכם על ידי לחיצה על הפלוס: 


במסך שיפתח, הכניסו את ה IP שלכם ואת הפורט. ה IP שלכם אמור להופיע במסך הסיריאלי (זוכרים?) והפורט הוא 80: 


כעת, אשרו את הפרטים ועברו לטרמינל. התחברו למכשיר שלכם על ידי לחיצה על ה"מצלתיים" שעל יד הפח. חכו שתיים - שלוש שניות, הקישו את הספרה 5 / 6 / 7 ושלחו לארדואינו: 



אגב, בלחיצה ארוכה על מקשי ה M, תוכלו "לתכנת" אותם לשלוח משהו מסוים לטרמינל בעת לחיצה עליהם. אני בחרתי כצפוי לתכנת את M5 לשלוח את הספרה 5, את M6 לשלוח את הספרה 6 ואת M7 לשלוח את הספרה 7. 

זהו... סיימנו! 

ואם נותר בכם כח - עוד כמה דברים קטנים: 

  1. בגלל תקשורת לא מדויקת, לפעמים מתקבל מספר שונה בארדואינו מהמספר שנשלח. אני מניח שהבעיה היא בלוח Esp שלי ויתכן שעם לוח אחר - הבעיה תיפתר לחלוטין. כרגע זה עובד ב 90 ומשהו אחוז מהפעמים וזה מספיק לי כרגע...  
  2. הטרמינל שולח ספרה אולם הארדואינו מקבל את ה ASCII שלה, לכן, אני שולח את הספרה 5 ואילו בקוד של הארדואינו הגדרתי 53. 
  3. כאשר ניסיתי לעבוד עם יציאות 2,3,4 בארדואינו זה עבד לא טוב, בעיקר הספרה 2 שעשתה קצת בעיות שנפתרו ברגע שעשיתי שינוי בקוד ל 4,5,6. אני לא חושב שזה קשור ליציאה בארדואינו אלא לקוד ה ASCII שקצת עשה בעיות. 
  4. כמובן שאפשר להחליף את נורות ה LED ב Relay ואז כל האפשרויות פתוחות... 
בהצלחה!!


יום שלישי, 17 באפריל 2018

עבודה עם Esp8266

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

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


לאחר החיבור של הרכיב למתאם, הכל נהיה הרבה יותר פשוט: 
  • את ה GND במתאם - נחבר ל GND בלוח הארדואינו
  • את ה VCC במתאם - נחבר ל 5V בלוח הארדואינו (יציאת 3.3V לא תספק את המתח הרצוי)
  • את ה TX במתאם - נחבר ליציאה מספר 10 בלוח הארדואינו. 
  • את ה RX במתאם - נחבר ליציאה מספר 11 בלוח הארדואינו. 

נחבר עוד שלוש נורות על פי התרשים הבא:



לאחר מכן, העלו את הקוד ללוח הארדואינו:




כמעט סיימנו...

התנתקו מרשת ה wifi שלכם וחפשו רשת אלחוטית AI-THINKER:


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

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

לחיצה על הלחצנים תכבה / תדליק את הנורות השונות:

כמובן שבשלב הבא תוכלו להחליף את הנורות בממסר ולחבר כל מכשיר חשמלי שתרצו אל הארדואינו. השלב הבא יהיה לחבר את ה Esp8266 לרשת ה wifi הביתית וכך לשלוט על הארדואינו ללא צורך בחיבור לרשת האלחוטית שמייצר ה Esp8266.

(קרדיט: בעבודה על ה Esp8266 נעזרתי המון באתר הזה. תודה!!)

יום ראשון, 15 באפריל 2018

מסך OLED בגודל של 0.91" - חלק ב'

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

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



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

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

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



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



נבחר את הקובץ שיצרנו, נגדיר את הגודל שלו (ובכל מקרה, לא יותר מ 128X32 - גודלו של המסך...), נסמן HEX output ונלחץ על Submit. הממיר יכין לנו את הקוד שלנו שאנחנו צריכים לשבץ בארדואינו.





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

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

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

נחפש את השורות הבאות בקוד (או דומות להן..):



ונשנה את השורה הראשונה:

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

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

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

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

הקוד המלא ליום העצמאות כאן לפניכם: