דילוג לתוכן
UAVProg
שפהhe
בלוקים

בלוקים

בלוקי הרחפן

פקודות APEX, התזמון שלהן והפעולות שאינן משנות את הסימולטור.

בקטגוריית APEX GD240 יש 12 בלוקי בסיס. שמות הקוד נשארים באנגלית גם כאשר הבלוקים מוצגים בעברית. קטגוריות ציוד נוספות מתוארות במעבר לבלוקי הבסיס.

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

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

התחלה וסיום

בלוקפעולהקוד
הפעלת טיסההפעלת המנועים לטיסהdrone.active_fly()
המראההמראה לגובה היעד של המתאם, כ־1 מטר בסימולטורdrone.takeoff()
נחיתהירידה ונחיתהdrone.land()

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

תוכנית התחלה קצרה: הפעלת טיסה, המראה ונחיתה. היא אינה כוללת תנועה אופקית.

תוכנית התחלה קצרה: הפעלת טיסה, המראה ונחיתה. היא אינה כוללת תנועה אופקית.

טיסה והמתנה

בלוק טיסה בוחר כיוון ומהירות: 1, 2 או עצירה. בסימולטור מהירות 1 היא פקודת 0.5 m/s, ומהירות 2 היא 1 m/s; התנועה בפועל מושפעת מהפיזיקה ומהסביבה.

נוצר מבלוקים
drone.fly('forward', 1)
time.sleep(2)
drone.fly_stop()
time.sleep(0.5)

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

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

בבלוק, קדימה הופך בקוד ל־'forward' ואחורה ל־'backward'. בחירה בעצירה מייצרת drone.fly_stop() ולא ערך טקסט בשם עצירה.

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

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

סיבוב

סיבוב בוחר שמאלה או ימינה ומהירות 1, 2 או עצירה. במתאם מהירות 1 מבקשת 0.5 rad/s, כ־29 מעלות לשנייה, ומהירות 2 כ־57 מעלות לשנייה.

נוצר מבלוקים
drone.rotate('right', 1)
time.sleep(3.2)
drone.rotate_stop()

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

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

קטע תנועה עם עצירה, ואחריו קטע סיבוב עם עצירה נפרדת. עצירה אופקית אינה עוצרת סיבוב.

קטע תנועה עם עצירה, ואחריו קטע סיבוב עם עצירה נפרדת. עצירה אופקית אינה עוצרת סיבוב.

מצערת וגובה

בלוק מצערת מקבל ערך מוקלד מ־0 עד 6. במתאם הוא מתורגם לפקודת מהירות אנכית: 0 לירידה, 3 להחזקה, 6 לעלייה. הוא אינו ערך מצערת מכויל לכל כלי פיזי.

נוצר מבלוקים
drone.set_throttle(4)
time.sleep(1)
drone.set_throttle(3)

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

קטע מצערת: ערך 4, המתנה של שנייה ואז חזרה לערך 3. זה אינו כיול לכלי פיזי.

קטע מצערת: ערך 4, המתנה של שנייה ואז חזרה לערך 3. זה אינו כיול לכלי פיזי.

צילום ומצב ללא כיוון חזית

בלוקקוד
מצב ללא כיוון חזיתdrone.set_headless(True)
צילום תמונהdrone.take_photo()
התחלת הקלטהdrone.start_recording()
עצירת הקלטהdrone.stop_recording()

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

סוללה

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

נוצר מבלוקים
print(drone.get_battery())

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

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

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

עצירת חירום

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

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

דרגות מהירות בתרגילים

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

ראו תזמון ולולאות, עיון בבלוקים ופתרון תקלות.