Programı seç
Bu sayfada robotun çalıştıracağı FTC programını (OpMode) seçeceksin: Sim'in örnek programlarından
biri, Blocks'ta açık programın, bir .blk dosyası ya da Android Studio projendeki Java OpMode'ları.

Program seçimi ana sayfadaki Kod bölümünde ve çalışma alanındaki Kod panelinde aynıdır. Birinde seçtiğin program ötekinde de seçili olur.
Sim FTC Blocks programlarını ve Android Studio'da Java ile yazılmış OpMode'ları çalıştırır. Program
Control Hub'daki gibi koşar. Probot Blocks'un .ino ve .probot.json dosyaları Sim'de açılmaz.
Başlamadan önce
- Sim açık: probotstudio.com/sim.
- Kendi programını getireceksen program Blocks'un FTC Blocks modunda (Yeni FTC programı yaz) ya da Android Studio'da Java ile yazılmış olmalı.
Örnek programı seç
| Örnek | Tür | Hangi robot için |
|---|---|---|
| Starter Bot TeleOp (CRServo) | TeleOp | Starter Bot, sürekli servolu besleyici |
| Starter Bot otonom (CRServo) | Otonom | Starter Bot, atış ve park |
| Starter Bot TeleOp | TeleOp | Servo kapılı besleyicili Starter Bot |
| Starter Bot otonom | Otonom | Servo kapılı besleyicili Starter Bot, atış ve park |
| Mecanum Şasi TeleOp | TeleOp | WattOS mecanum şasi |
| Tank Şasi TeleOp | TeleOp | Omni şasi (tank sürüş, her yanda bir motor) |
OpMode listesinde her satırın sağında "Otonom" ya da "TeleOp" rozeti durur.
- Ana sayfada Robot bölümünün Kaynak listesinden örneğe uygun robotu seç, örneğin Starter Bot. Çalışma alanında aynı liste Robot panelindedir.
- Kod bölümüne in. Çalışma alanındaysan bunun yerine Kod panelinin sekmesine bas.
- OpMode listesinden bir program seç, örneğin Starter Bot otonom (CRServo).

Sonuç: Bölüm başlığının altındaki özette "Starter Bot otonom (CRServo) · Otonom" yazar. Ana sayfanın hazırlık listesinde "Kod: Starter Bot otonom (CRServo) (Otonom)" maddesi yeşil onaylıdır.
İpucu
Seçili program bir örnekse, hazır robot seçince Sim o robota uygun örneğe (varsa) kendiliğinden geçer. Blocks'taki ya da dosyadan açtığın program seçiliyse program değişmez. Bkz. Robotu seç.
Blocks'taki programı seç
Blocks ve Sim aynı tarayıcıda açıksa Sim, Blocks'ta açık FTC programını kendisi görür.
İpucu
Blocks'taki program listeye yalnız içinde runOpMode bloğu varsa gelir.
- Kod bölümünde Blocks'ta yaz'a bas (ya da Dosya > Blocks'u aç'ı seç). Blocks yeni sekmede açılır.

- Blocks'ta FTC Blocks sekmesinde programını yaz ya da aç.
- Sim sekmesine dön.
- OpMode listesinin başında "Blocks'ta açık FTC projesi" açıklamalı satırı seç.
Sonuç: Satırın adı Blocks'taki OpMode adıdır. Blocks'ta programı değiştirdikçe Sim listedeki programı yeniden okur.
.blk dosyasını aç
Dikkat
Listede aynı anda tek bir dosya programı durur. Yeni bir .blk açınca ya da sayfayı yenileyince önceki dosya programı listeden çıkar.
- Kod bölümünde Dosya aç (.blk, .java)'ya bas (ya da Dosya > Kod dosyası (.blk, .java) aç…'ı seç).

- Açılan pencerede
.blkdosyasını seç. Aynı pencerede.javadosyası da seçebilirsin: Android Studio projesini aç. - Aç'a bas.
Sonuç: Program "Dosyadan: <dosya adı>" açıklamasıyla listenin sonuna eklenir ve seçilir. Satırın adı,
.blk uzantısı olmadan dosyanın adıdır.
Dosyada runOpMode bloğu yoksa program yine listeye eklenir ama Kod bölümünde kırmızı kutuda "Programda runOpMode bloğu yok" yazar.
.blk dosyasını Blocks'tan indirirsin: Programı kaydet, aç ve Java'yı al.
Android Studio projesini aç
Android Studio'da Java ile yazdığın OpMode'ları da Sim'de çalıştırabilirsin. Sim projenin TeamCode
klasörünü okur ve @TeleOp ya da @Autonomous ile işaretli her sınıfı OpMode listesine ekler.
Java desteği deneyseldir: Sim'in tanımadığı bir sınıf ya da metot satır numaralı hata verir.
- Kod bölümünde Android Studio klasörü aç'a bas (ya da Dosya > Android Studio klasörü aç…'ı seç).
Tek tek dosya açmak için Dosya aç (.blk, .java)'ya bas; birden çok
.javadosyası seçebilirsin.
- Açılan pencerede Android Studio projendeki
TeamCodeklasörünü seç. - Tarayıcı klasörü okumak için izin isterse izin ver.
- OpMode listesinde "Java TeleOp" ya da "Java Otonom" rozetli bir satır seç.

Sonuç: Kod bölümünde "Android Studio: <klasör> · <sayı> Java dosyası · <sayı> OpMode." yazar. Java OpMode'ları listenin başına gelir; açıklamada dosya adı ve OpMode grubu yazar. İlk OpMode kendiliğinden seçilir. Proje bu tarayıcıda saklanır, sayfayı yenileyince de listede kalır.
Koddaki cihaz adları Blocks programındaki gibi porta bağlanır: Cihazları porta bağla.
Sim adları koddan okur; adı hardwareMap.get(DcMotor.class, "left_drive") gibi doğrudan metin ya da sabit olarak yaz.
Değişikliği Sim'e al
- Android Studio'da dosyayı kaydet.
- Sim'de Kod bölümüne in. "Android Studio: …" satırı projeyi nasıl yeniden okuyacağını söyler.

- Yeniden oku'ya bas (ya da Dosya > Java projesini yeniden oku'yu seç). Yeniden oku yalnız Chrome ve Edge'de, klasörü Android Studio klasörü aç ile açtıysan görünür. Sayfayı yenileyince proje listede kalır ama Yeniden oku kalkar. Öteki durumlarda satırda "klasörü yeniden aç" yazar; klasörü ya da dosyaları yeniden aç.
- Çalışma alanında TeleOp seçiliyse araç çubuğunda Başlat'a bas. Otonom seçiliyse koşu yeni kodla kendiliğinden yeniden başlar.
Sonuç: Seçili OpMode seçili kalır ve yeni kodla çalışır. Projeyi listeden çıkarmak için Java projesini kaldır'a bas; seçili program Java ise Sim robotun örnek programına döner.
Java'da ne çalışır
LinearOpModeveOpMode,hardwareMap, motorlar, servolar, sürekli servolar, IMU,gamepad1,telemetry,ElapsedTime,Range.- goBILDA Pinpoint ve SparkFun OTOS konumu, Sim'deki robotun konumundan okunur.
- Pedro Pathing 2.x kütüphanesini kullanan projeler çevrilir ve çalışır.
- Kamera (
VisionPortalile AprilTag ve renk işlemcileri) ve Limelight 3A sonuç verir. Görüntü işlenmez; sonuçlar sahadaki AprilTag etiketlerinin ve oyun elemanlarının yerinden hesaplanır. Kamera robotun önünde, 8 inç yüksekte ve ileri bakar. AprilTag için FTC sahası (boş) ya da Deneme sahası (engel bulunan)'nı seç: Sahayı seç. - Mesafe, renk ve dokunma sensörleri sabit bir değer okur; Driver Station'da sarı uyarı çıkar.
System.outçıktısı görünmez,telemetrykullan. Aynı anda çalışanThread'ler desteklenmez.build,.gradle,libs,resgibi klasörler okunmaz. Proje çok büyükse yalnızTeamCodeklasörünü seç.
Programın hangi blokları çalışır
- Motor (DcMotor), servo (Servo), sürekli servo (CRServo) ve Control Hub IMU blokları çalışır.
- Motor enkoderi okunur; tik/tur değeri motor ayarından gelir.
- Mesafe, renk ve dokunma sensörü blokları Sim'de yok; Blocks'un FTC modunda da bulunmaz. Bu blokları içeren bir
.blkdosyası (örneğin gerçek Control Hub'dan) açarsan kod çevrilmez ve program çalışmaz: Kod bölümündeki kırmızı kutuda içinde "Unknown block type" geçen bir hata, Hazırlık listesinde de "Kod çevrilemedi: …" yazar. - Sim'in çalıştıramadığı bir blokta program durur ve Driver Station'da "Sim bu bloğu henüz çalıştırmıyor: <blok>" hatası çıkar.
- Kumanda bloklarında Sim'in desteklemediği bir komut (örneğin titreşim) programı durdurmaz; komut atlanır. Driver Station'daki sarı kutuda "gamepad1.<komut> sim'de yok sayılıyor" uyarısı çıkar.
- Java çağıran özel bloklar (myBlocks) çalışmaz.
Programdaki her cihaz adı robottaki bir porta bağlanmalıdır: Cihazları porta bağla.
Sorun mu var?
- "Kod çevrilemedi: …" hatası: Bkz. Sorun giderme.
- "Programda runOpMode bloğu yok" yazıyor:
.blkdosyasında runOpMode bloğu yok. Blocks'ta programı FTC örneğinden başlat. Bkz. Sorun giderme. - "Bu dosya FTC Blocks (.blk) ya da Java (.java) değil." yazıyor: Bkz. Sorun giderme.
- "Sim bu bloğu henüz çalıştırmıyor: <blok>" yazıyor: Bkz. Sorun giderme.
- Java projesi açılmıyor ya da OpMode listede yok: Bkz. Java projesi açılmıyor.
- Blocks'taki program listede yok: Programda runOpMode bloğu olmalı, Blocks ile Sim aynı tarayıcıda açık olmalı. Bkz. Blocks'taki programı seç.