פז ארני

‫המטרה ללמד בקרה של מערכת הנדסית בזמן אמת‬
‫הכרות עם בקר ה‪NXT-‬‬
‫הכרות בסיסית עם ‪LABVIEW‬‬
‫עבודה עם ‪ LABVIEW‬כדי לתכנת בקר ‪NXT‬‬
‫מרצה‪ :‬פז ארני‬
‫אחראי אקדמי‪ :‬דר' ירון דופלט‬
‫מנהלת מל"מ‬
‫המרכז הישראלי לחינו מדעי טכנולוגי‬
‫ע"ש עמוס דה‪-‬שליט‬
‫משרד החינו‬
‫המזכירות הפדגוגית‬
‫האג לתכנו ולפיתוח תכניות לימודי‬
‫הטכניו מכו טכנולוגי לישראל‪,‬‬
‫מוסד הטכניו למו"פ‪,‬‬
‫המחלקה להוראת הטכנולוגיה והמדעי‬
‫‪3‬כניסות מנועים‬
‫ממוספרים מ‪ A-‬עד ‪C‬‬
‫כניסת ‪USB‬‬
‫מסך תצוגה‬
‫כפתור ‪ENTER‬‬
‫חצים לתזוזה בתפריטים‬
‫כפתור ‪BACK\ESC‬‬
‫‪ 4‬כניסות לחיישנים‬
‫ממוספרות מ‪ 1-‬עד ‪4‬‬
‫מנועים עם‬
‫חיישן סיבוב‬
‫מובנה‬
‫חיישן מגע‬
‫חיישן מרחק‬
‫‪Ultrasonic‬‬
‫חיישן אור‬
‫חיישן קול‬
?LabVIEW ‫מהי‬
Laboratory Virtual Instrumentation ) LabVIEW •
‫( היא פלטפורמה וסביבת‬Engineering Workbench
‫פיתוח לתכנות בשפה חזותית שפותחה על ידי חברת‬
.National Instruments
‫ מחולקת לשני חלונות עיקריים‬LabVIEW •
• Front Panel – ‫ממשק המשתמש‬
– Controls = Inputs
– Indicators = Outputs
• Block diagram – ‫התוכנה עצמה‬
FRONT PANEL
BLOCK DIAGRAM
‫• התכנות ב‪ LV‬מתבצע לא על ידי כתיבת שורות קוד‪,‬‬
‫אלא על ידי חיבור של 'חוטים' בין רכיבים‪:‬‬
‫• לדוגמא שורת הקוד הבאה‪:‬‬
‫‪• Y=x+4+4x‬‬
‫• תיראה ב‪ LV‬כך‪:‬‬
Front Panel Window
Block Diagram Window
Control
Terminals
Indicator
Terminals
LabVIEW – Hello World
‫• תרגיל ‪ -‬כתוב תוכנית שממירה ממעלות פארנהייט‬
‫לצלסיוס‪.‬‬
‫• נוסחא‪-‬‬
‫)‪C = 5/9(F-32‬‬
LabVIEW – basic
– ‫• סיכום‬
LV ‫– מהי‬
Front Panel –
Block Diagram –
Arithmetic gates –
Constants –
Control and indicators –
LV‫– תוכנית ראשונה ב‬
‫‪LabVIEW – Logic gates‬‬
‫– מהו שער לוגי?‬
‫– השערים הלוגים הבסיסים‪:‬‬
‫• ‪AND‬‬
‫• ‪OR‬‬
‫• ‪NOT‬‬
‫– המערכות האוניברסליות‪:‬‬
‫• ‪NOR‬‬
‫• ‪NAND‬‬
‫– מימוש השערים ב ‪Lab View‬‬
‫‪LabVIEW – Logic gates‬‬
‫• שער ‪OR‬‬
‫• הפעולה הבוליאנית ‪ OR‬מספקת במוצא '‪ '1‬כאשר‬
‫לפחות אחת הכניסות‪ ,‬במצב '‪.'1‬‬
‫‪A‬‬
‫‪B‬‬
‫פלט‬
‫– )מתוך ויקיפדיה(‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪LabVIEW – Logic gates‬‬
‫• שער ‪AND‬‬
‫• הפעולה הבוליאנית ‪ ,AND‬מספקת במוצא '‪ '1‬רק‬
‫כאשר כל הכניסות לשער‪ ,‬נימצאות במצב '‪.'1‬‬
‫– )מתוך ויקיפדיה(‬
‫‪LabVIEW – Logic gates‬‬
‫• שער ‪NOT‬‬
‫• הפעולה הבוליאנית ‪ NOT‬מספקת במוצא את ההפך‬
‫מערך הכניסה‪.‬‬
‫– )מתוך ויקיפדיה(‬
‫‪LabVIEW – Logic gates‬‬
‫• שער ‪Nor‬‬
‫• הפעולה הבוליאנית ‪Nor‬‬
‫מבצעת ‪ Or‬לוגי על שני‬
‫ערכי הקלט ולאחר מכן‬
‫מבצעת ‪ Not‬לוגי על ערך‬
‫הפלט‪.‬‬
‫– )מתוך ויקיפדיה(‬
‫ שער ‪Nand‬‬
‫ הפעולה הבוליאנית ‪Nand‬‬
‫מבצעת ‪ And‬לוגי על שני‬
‫ערכי הקלט ולאחר מכן‬
‫מבצעת ‪ Not‬לוגי על ערך‬
‫הפלט‪.‬‬
‫ )מתוך ויקיפדיה(‬
‫‪LabVIEW – Logic gates‬‬
‫• תרגיל –‬
‫– תכנן מערכת לנעילת כספת – לכספת ‪ 3‬מפתחות ‪X Y Z‬‬
‫)מפתח בשימוש יתן קלט '‪.('1‬‬
‫– ‪ – X‬מפתח המנהל ‪ Y Z ,‬מפתחות סגניו ‪.‬‬
‫– הכספת צריכה להיפתח רק אם המנהל משתמש במפתח‬
‫שלו וגם אחד מסגניו משתמש במפתח שלו‪.‬‬
‫– הכספת לא תפתח ללא המנהל‪.‬‬
‫‪LabVIEW – Logic gates‬‬
‫• סיכום –‬
‫– מהו שער לוגי ?‬
‫– השערים הלוגים הבסיסים‪:‬‬
‫• ‪AND‬‬
‫• ‪OR‬‬
‫• ‪NOT‬‬
‫– המערכות האוניברסליות ‪:‬‬
‫• ‪NOR‬‬
‫• ‪NAND‬‬
‫– מימוש השערים ב ‪Lab VIEW‬‬
‫‪LabVIEW – Comparison gates‬‬
‫• מהו שער השוואה?‬
‫– מהו שער בחירה?‬
‫‪LabVIEW – Comparison gates‬‬
‫• שערי השוואה מכילים בתוכם אופרטור והם יוציאו '‪'1‬‬
‫הקלט התחתון‬
‫הקלט העליון אופרטור‬
‫לוגי אם‪:‬‬
‫מתקיים‬
‫‪LabVIEW – Comparison gates‬‬
‫• שער בחירה הוא שער שבוחר איזה ערך להעביר על פי הנתון הבוליאני‬
‫שהוא מקבל בערך האמצעי‪.‬‬
‫• שער זה יעביר את הערך העליון אם יקבל '‪ '1‬לוגי בערך האמצעי‬
‫ויעביר את הערך התחתון אם יקבל '‪ '0‬בערך האמצעי‪.‬‬
LabVIEW – Executuion Control
Case Structure •
While Loop •
‫‪LabVIEW – Cases‬‬
‫• ‪ – Case Structure‬יבחר איזה קטע קוד לבצע‬
‫בהתאם לערך שנכנס אליו ‪.‬‬
‫• בניגוד לשער הבחירה‪ ,‬ל‪ CS‬יכול להכנס כל ערך ולא‬
‫רק ערך בוליאני‪.‬‬
‫‪LabVIEW – While Loop‬‬
‫• ‪ – While loop‬לולאה שמאפשרת ביצוע חוזר של‬
‫קטע קוד הלולאה תמשיך לרוץ כל עוד ה ‪Loop‬‬
‫‪ Condition‬שלה יקבל '‪ '0‬לוגי‬
LabVIEW – Shift Register
‫ – ערך שנשמר בין כל איטרציה של‬Shift register •
‫הלולאה‬
‫ ניתן להשתמש ב‪ LabVIEW-‬לתכנות בקרי ‪ NXT‬וכל מה‬
‫שדרוש הוא ‪ KIT‬מהאתר של ‪.NI‬‬
‫ העבודה על הבקר עובדת בשיטת תרשים זרימה‪,‬‬
‫לדוגמא‪ :‬אומרים למנוע ‪ C‬לפעול בעוצמה של ‪ 75%‬עד‬
‫ללחיצה של חיישן המגע‪.‬‬
‫תרגילים‪:‬‬
‫ כתוב תוכנית שאומרת לבקר לנסוע ישר עד שהוא קולט קו‬
‫שחור‬
‫ כתוב תוכנית שאומרת לבקר לנסוע ישר עד שהוא קולט‬
‫שהוא במרחק של ‪ 15‬ס"מ מהקיר‬
‫קיצורי מקשים‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪ Ctl+u‬מסדר את כל ה‪ Block diagram-‬של‬
‫התוכנית )ניתן לשלוט בגודל הרווחים בעזרת ה‪-‬‬
‫‪(OPTIONS‬‬
‫‪(OPTIONS‬‬
‫‪ Ctl+t‬מחלק את המסך לחצי ‪ BLOCK‬וחצי ‪FRONT‬‬
‫‪ Ctl+e‬מעבר בין ה‪ front‬ל‪block‬‬
‫‪ Ctl+h‬פותח את החלונית שמסבירה על הריבוע‬
‫אליו המתכנת מצביע‪.‬‬
‫תרגילים‪:‬‬
‫• כתוב תוכנית עוקבת קו שחור‬
‫• כתוב תוכנית שגורמת לרובוט לנסוע במבוך בלי‬
‫לגעת בקירות )‪(ULTRASONIC‬‬