Ana içeriğe geç

Telemetry

Bu Sayfada Ne Anlatıyoruz?

Robot kodundan driver station'a anlık veri göndermeyi ve bu verileri web arayüzünde görüntülemeyi öğreniyoruz. Telemetry, hata ayıklama ve saha testlerinde hayat kurtarır.

Telemetry Nedir?

Telemetry, robotun iç durumunu (motor güçleri, sensör değerleri, state bilgisi vb.) driver station'a gönderen basit bir metin tabanlı sistemdir. Serial monitöre benzer ama WiFi üzerinden çalışır; böylece robota kablo bağlamadan canlı veri izleyebilirsiniz.

Temel Kullanım

Include

#include <probot.h>  // telemetry otomatik dahil
// veya doğrudan:
// #include <probot/telemetry/telemetry.hpp>

API

Fonksiyon Açıklama
probot::telemetry::print(msg) Metin yazdır (satır sonu yok)
probot::telemetry::println(msg) Metin yazdır + satır sonu
probot::telemetry::printf(fmt, ...) Formatlı yazdırma (C printf stili)
probot::telemetry::clear() Buffer'ı temizle

Örnek: Motor Değerlerini İzleme

#define PROBOT_WIFI_AP_PASSWORD "TakiminizIcinGuv3nliBirSifre"

#include <probot.h>
#include <probot/io/joystick_api.hpp>
#include <probot/devices/motors/boardoza_vnh5019_motor_controller.hpp>

static probot::motor::BoardozaVNH5019MotorController leftMotor(1, 2, 3, -1, -1);
static probot::motor::BoardozaVNH5019MotorController rightMotor(4, 5, 6, -1, -1);

void robotInit() {
  leftMotor.setPower(0.0f);
  rightMotor.setPower(0.0f);
}

void teleopInit() {
  probot::telemetry::clear();
  probot::telemetry::println("Teleop basladi");
}

void teleopLoop() {
  auto js = probot::io::joystick_api::makeDefault();
  float leftPower = js.getLeftY();
  float rightPower = js.getRightY();

  leftMotor.setPower(leftPower);
  rightMotor.setPower(rightPower);

  // Her döngüde telemetry güncelle
  probot::telemetry::clear();
  probot::telemetry::printf("Sol: %.2f\n", leftPower);
  probot::telemetry::printf("Sag: %.2f\n", rightPower);

  delay(20);
}

void autonomousInit() {}
void autonomousLoop() { delay(1000); }

Driver Station'da Görüntüleme

Telemetry verileri, driver station web arayüzünde otomatik olarak görüntülenir. http://192.168.4.1 adresine bağlandığınızda, telemetry panelinde robot kodunuzdan gönderilen metinleri göreceksiniz.

İpuçları

Buffer Boyutu

Telemetry buffer'ı 256 karakter ile sınırlıdır. Uzun mesajlar kesilir. Her döngüde clear() çağırıp güncel veriyi yazmak iyi bir pratiktir.

Performans

Telemetry çağrıları hafiftir ve robot döngüsünü yavaşlatmaz. Ancak çok sık ve uzun mesajlar WiFi trafiğini artırabilir.

Hata Ayıklama

Saha testlerinde telemetry, Serial monitörün yerini alır. Joystick değerleri, motor çıkışları ve state geçişlerini izleyerek hataları hızlıca bulabilirsiniz.

// State machine debug örneği
probot::telemetry::clear();
probot::telemetry::printf("State: %d\n", currentState);
probot::telemetry::printf("Hedef: %.1f mm\n", targetPosition);
probot::telemetry::printf("Gercek: %.1f mm\n", actualPosition);
probot::telemetry::printf("Hata: %.1f\n", targetPosition - actualPosition);

Serial ile Farkı

Özellik Serial Telemetry
Bağlantı USB kablo WiFi
Mesafe Kabloya bağlı ~30m
Görüntüleme Serial monitör Driver station web
Kullanım Geliştirme Saha testi

Geliştirme sırasında Serial, sahada Telemetry kullanın. İkisi birlikte de çalışabilir.

İlerleme

Ana Robot İlerleme: %89