Tüm dokümanlar

Probot Core

Probot Core, ESP32 kartında robotun WiFi ağını açan, tarayıcıda çalışan Driver Station'ı sunan ve kumanda verisini robota taşıyan Arduino kütüphanesidir.

Kütüphanenin Arduino IDE'deki adı probot. Bu sayfalar 0.3.0 sürümünü anlatır. Probot Blocks'un ürettiği kod da bu sürümle derlenir.

Kaynak kod: github.com/probot-studio/probot-core

Kimin için

Neyi yapar, neyi yapmaz

Probot Core yapar Probot Core yapmaz
Robotta bir WiFi erişim noktası açar. Ağın adını, şifresini ve kanalını kodda sen verirsin: Robotun WiFi ayarlarını yap. Robotu okulun ya da evin WiFi ağına bağlamaz. Robot kendi ağını yayınlar.
Driver Station'ı robotun içinden sunar. Tarayıcıda http://192.168.4.1 adresinden açılır: Driver Station arayüzü. Telefona ya da bilgisayara uygulama kurdurmaz. İnternet de gerekmez.
Maçı yönetir: Init, otonom süresi, otonomdan teleopa geçiş, Stop ve acil durdurma: Maç akışına göre fonksiyonları yaz. Kumandayı robota doğrudan bağlamaz. Kumanda, Driver Station'ı açtığın cihaza bağlanır: Kumanda verisini oku.
Kumanda verisini robota taşır. Bağlantı kesilirse çubukları ve düğmeleri sıfırlar. Motor ya da servo sınıfı vermez. Motoru ve servoyu kendi kodunla sürersin: Motoru sür, Servoyu sür.
Kodundan Driver Station'daki Telemetry paneline yazı yazar. Kodu derlemez, karta yüklemez. Bunu Arduino IDE yapar: Arduino IDE'yi Probot için kur.
Karttaki durum LED'ini maç durumuna göre yakar: Durum LED'ini kullan. LED'e elle renk verdirmez. LED'in rengi hep maç durumunu gösterir.
Blok kodlama yapmaz. Bloklarla kod üretmek için: Blocks.

Nasıl çalışır

Robot açılınca kendi WiFi ağını yayınlar. Telefon, tablet ya da bilgisayar bu ağa bağlanır ve tarayıcıda Driver Station'ı açar. Kumanda da bu cihaza bağlanır; tarayıcı kumanda verisini WiFi üzerinden robota iletir.

Bir maç iki bölümden oluşur. Otonom bölümünde robot kumandasız, yalnız kodla hareket eder. Süre dolunca teleop başlar ve sürücü robotu kumandayla kontrol eder. İkisini de Driver Station'dan başlatır ve durdurursun.

Kodda Arduino'nun setup() ve loop() fonksiyonları yazılmaz; onları kütüphane tanımlar. Sen bunların yerine maçın anlarına karşılık gelen altı fonksiyonu yazarsın. Altısı da zorunludur, içleri boş kalabilir.

Fonksiyon Ne zaman çalışır
robotInit() Driver Station'da Init'e basınca, bir kez
autonomousInit() Start'a basınca, Autonomous açıksa, bir kez
autonomousLoop() Otonom boyunca, tekrar tekrar
teleopInit() Teleop başlarken, bir kez
teleopLoop() Teleop boyunca, tekrar tekrar
robotEnd() Stop'a basınca ve acil durdurmada, bir kez

Loop fonksiyonu bitince kütüphane 20 ms bekler ve onu yeniden çağırır. Bu yüzden loop saniyede en çok 50 kez çalışır. Ayrıntı: Maç akışına göre fonksiyonları yaz.

Dikkat

Bağlantı kopmalarının önemli bir kısmı koddan değil robotun donanımından gelir. Robotu kurmadan önce Sinyal kalitesini artır sayfasını oku.

Başla

Kur

Kodu yaz

Otonom

Donanım

Rehber

Başvuru

Sözlük

Terim Anlamı
Driver Station Robotun sunduğu, tarayıcıda açılan maç kontrol ekranı. Adresi http://192.168.4.1.
Erişim noktası (AP) Robotun yayınladığı WiFi ağı. Adı SSID'dir.
SSID Robotun WiFi ağının adı. PROBOT_WIFI_AP_SSID ile verilir.
Kanal Robotun ağının yayın yaptığı 2,4 GHz kanalı, 1-13 arası. Yan yana çalışan robotlar farklı kanal kullanır.
Karşılama sayfası Robotun ağına bağlanınca kendiliğinden açılan küçük sayfa (captive portal). Driver Station'ı Aç düğmesini taşır.
Makro #define ile yazılan ayar satırı. Probot makroları #include <probot.h> satırından önce gelir.
Init Robotu maça hazırlayan komut. robotInit() çalışır, robot hareket etmez.
Start Maçı başlatan komut. Autonomous açıksa önce otonom, sonra teleop çalışır.
Stop Maçı durduran komut. O anki loop turu bitince robotEnd() çalışır.
Otonom Robotun kumandasız, yalnız kodla hareket ettiği bölüm. Süresi Autonomous Duration'dır.
Teleop Sürücünün robotu kumandayla kontrol ettiği bölüm.
Acil durdurma EMERGENCY STOP düğmesi. Kodu anında keser, robotu yeniden başlatılana kadar kilitler.
Loop turu teleopLoop() ya da autonomousLoop() fonksiyonunun bir kez çalışıp bitmesi. Bir tur 2 saniyeyi geçmemelidir.
Telemetri Kodun probot::printf ile Driver Station'daki Telemetry paneline yazdığı yazılar.
Ölü bölge Çubuğun ortasındaki küçük alan. Bu alandaki değerler 0 okunur; varsayılan 0,08.
Bu sayfada
Kimin içinNeyi yapar, neyi yapmazNasıl çalışırBaşlaKurKodu yazOtonomDonanımRehberBaşvuruSözlük