יום שלישי, 27 ביוני 2017

ארדואינו לאונרדו / Arduino Leonardo

ארדואינו לאונרדו הוא לוח ארדואינו עם חיבורים זהים לארדואינו אונו (UNO) ולמעשה ניתן להעלות את הקוד שהכנתם לאונו על גבי הארדואינו לאונרדו (לא בדקתי את כל הקודים אבל לא אמורה להיות בעיה). אז מה מיוחד בלאונרדו?

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

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



(ארדואינו לאונרדו - אותם יציאות, כבל ה USB שונה: כבל ה USB B הוחלף ב USB מסוג מיקרו)

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

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


(התערוכה של בית ספר 'דעת' - ברקע מצד ימין ניתן לראות את חדר הסימולציה מבחוץ) 

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

עד כאן, היה ניתן להשתמש בארדואינו רגיל, אולם עכשיו באה לידי ביטוי היכולת המיוחדת של הארדואינו לאונרדו: 

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

תראו קטע קטן מהקוד: 



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

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

כאשר נלחץ בעזרת העכבר במקום "ניטרלי" בעמוד, נוכל לחשב את מספר לחיצות ה Tab - במקרה שלנו - 8 לחיצות בדיוק. לכן, העכבר זז 2000 פעמים לצד שמאל, לוחץ לחיצה (Mouse.press) ואחר כך אנחנו מתחילים לספור 8 טאבים עד למצב הרצוי שאחריו מקש הרווח (spaca) יתן את הלחיצה על ה"שלח" והטופס ישלח..

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

כך נראית המערכת לפני החיבור למאוורר ולפרוז'קטור...:



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


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

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

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



ולסיום - תודה רבה לשמוליק שוורץ על העזרה עם הקוד של חדר הסימולציה!

עדכון: תוכלו לראות כאן את התרשים המלא ואת הקוד להרכבת המערכת

יום שני, 26 ביוני 2017

שמירת תכנית scratch כתכנית עצמאית

אז אחרי שעבדנו ועמלנו והשתדלנו - יש לנו תכנית מוכנה. ומה עכשיו? 

ברור שאנחנו רוצים שהתכנית תהיה עצמאית ונוכל להיכנס אליה גם ללא scratch. השלבים הבאים עשויים להיות מעט מסובכים אבל ננסה צעד אחר צעד להסביר אותם: 

1. שמירה של הקובץ מה scratch - שמירה של הקובץ מה scratch תתבצע על ידי לחיצה על "קובץ" ולאחר מכן על "שמור". כעת, הקובץ נמצא (אני מקווה שאתם יודעים היכן...) ואנחנו עוברים לשלב הבא. 

2. המרה של הקובץ מפורמט SB2 לפורמט SWF - זהו שלב ביניים ולצורך כך השתמשתי בתכנית הענן junebeetle. נכנסים לקישור ומעלים את הקובץ שלכם לתכנת הענן על ידי לחיצה על open scratch file


בוחרים את הקובץ שלכם ואז לוחצים על convert to swf:


כעת שימו לב לתת לקובץ סיומת של swf, לדוגמא: example.swf

3. היכנסו לקישור הזה והורידו את גרסת הניסיון חינם ל 30 ימים.  התכנה הזו אמורה לעשות את ההמרה בין swf ל exe. 

4. פתחו את התכנה והעלו את הקובץ שלכם: 


5. לאחר מכן, תתבקשו לקבוע היכן לשמור את הקובץ לאחר ההמרה: 


6. ואם הכל מוכן - תוכלו להמיר את הקובץ על ידי לחיצה על convert: 



זהו - התכנית שלכם מוכנה!

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

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

בהצלחה!! 





עבודה עם scratch / דביר

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

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

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

כעת ישלח אליכם עוד מייל ובו כמה קישורים. לחצו על "learn how to make a projekt" או לחצו כאן לתחילת ההתנסות בתכנה.

נתחיל?...

התוכנה נראית ככה:




כפי שאתם רואים יש כאן כמה חלקים עיקריים:

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


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





בהצלחה!