יום רביעי, 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 יעדכן את השעה שלו מהמחשב. לאחר מכן, תוכלו להעלות לארדואינו את הקוד "הישן" חזרה. 


בהצלחה!!

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