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

קטגוריית 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. זה אינו כיול לכלי פיזי.
צילום ומצב ללא כיוון חזית
| בלוק | קוד |
|---|---|
| מצב ללא כיוון חזית | drone.set_headless(True) |
| צילום תמונה | drone.take_photo() |
| התחלת הקלטה | drone.start_recording() |
| עצירת הקלטה | drone.stop_recording() |
במתאם APEX של הסימולטור ארבע הפעולות האלה מדפיסות הודעה בלבד. הן אינן יוצרות תמונה או סרטון ואינן משנות את כיוון התנועה. בחומרה הן תלויות ביכולות ובהוראות הרחפן; אל תשתמשו בהודעת הצלחה מדומה כהוכחת צילום.
סוללה
רמת הסוללה הוא בלוק ערך מעוגל, שמכניסים לשקע בבלוק אחר, למשל הדפסה או השוואה.
print(drone.get_battery())הקריאה היא תמונת מצב ברגע ההפעלה. בלולאה צריך לקרוא שוב בכל סיבוב, ולא לשמור קריאה אחת לפני הלולאה ולהניח שהיא מתעדכנת.

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