מדריך תכנות FTC Java & Blockly
(תמונות Blockly יגיעו בקרוב!)
ודאו שקראתם את מדריך התחלה מהירה לתכנות FTC.
Javadoc: [קישור ל-Javadoc יגיע בקרוב]
מאגר דוגמאות מלא: מאגר דוגמאות Limelight FTC
טיפים להצלחה
- עשו את הדבר הפשוט תחילה. ב-FRC, למדנו שצוותי התוכנה הטובים ביותר משתמשים לעתים קרובות בגישות הפשוטות ביותר. לדוגמה, קבוצת FRC 2056 בשנת 2024 השתמשה בצינור צבע סטנדרטי של 90FPS במקום ברשת נוירונים כדי לעקוב אחר חלקי המשחק.
הנה דוגמה לסוג השאלה שיש לשאול כשאתם מתחילים לתכנת: בטלאופ, האם אתם צריכים לדעת את מיקום הרובוט שלכם בשדה, או שאתם פשוט צריכים להסיט עד שהכוונת שלכם ממורכזת על תג ספציפי (strafeSpeed = result.getTx()*.03)?
מושגי מפתח
1. אתחול
אנחנו צריכים להגדיר את Limelight3A בקוד הרובוט שלנו.
import com.qualcomm.hardware.limelightvision.LLResult;
import com.qualcomm.hardware.limelightvision.LLResultTypes;
import com.qualcomm.hardware.limelightvision.LLStatus;
import com.qualcomm.hardware.limelightvision.Limelight3A;
Limelight3A limelight;
@Override
public void init() {
limelight = hardwareMap.get(Limelight3A.class, "limelight");
limelight.setPollRateHz(100); // זה קובע כמה פעמים אנחנו מבקשים מידע מ-Limelight (100 פעמים בשנייה)
limelight.start(); // זה אומר ל-Limelight להתחיל להסתכל!
}
2. ניהול צינורות
צינורות הם כמו תוכניות קטנות, הניתנות להחלפה מיידית, המשנות את האופן שבו Limelight מסתכל על העולם. אתם יכולים להגדיר 10 צינורות שונים בממשק האינטרנט של Limelight, כל אחד למשימה שונה. הנה כיצד עוברים ביניהם:
limelight.pipelineSwitch(0); // עבור לצינור מספר 0
זוהי פעולת "שגר ושכח". Limelight ישנה את הצינור שלו תוך אלפיות שנייה, אך הקוד שלכם לא ימתין לכך לפני שימשיך. אם ברצונכם לבדוק את אינדקס הצינור הנוכחי, קראו ל-
result.getPipelineIndex()