/* embeddedTR — content data (real projects from ibrahimisikli.com + community placeholders) */

const WIX = "https://static.wixstatic.com/media/";

const PROJECTS = [
  {
    title: "STM32 ile Deneysel Anemometre",
    sub: "Lazer Tabanlı Anemometre",
    desc: "STM32 üzerinde lazer Doppler prensibiyle rüzgâr hızı ölçen deneysel anemometre tasarımı ve sinyal işleme.",
    mcu: "STM32", cat: "STM32",
    stars: 128, forks: 24, author: "İbrahim Işıklı", level: "İleri",
    img: WIX + "ce7d26_97024b5f9e764798879fe1e2daf2a964~mv2.jpg/v1/fill/w_620,h_440,al_c,q_85,enc_avif,quality_auto/Resim1.jpg",
  },
  {
    title: "TMS320F ile PLL Tasarımı",
    sub: "C2000 — Phase Locked Loop",
    desc: "TMS320F28xx C2000 serisi DSP üzerinde şebeke senkronizasyonu için yazılım tabanlı faz kilitlemeli döngü (PLL).",
    mcu: "TMS320F", cat: "TMS320F",
    stars: 94, forks: 17, author: "İbrahim Işıklı", level: "İleri",
    img: WIX + "ce7d26_cf8c599ad5e141e392fe5ba95ab9a573~mv2.jpeg/v1/fill/w_620,h_440,al_c,q_85,enc_avif,quality_auto/pll.jpeg",
  },
  {
    title: "TMS320F ile SPWM Uygulaması",
    sub: "Sinüzoidal PWM Üretimi",
    desc: "C2000 ePWM modülüyle inverter sürmek için sinüzoidal PWM üretimi, dead-time ve modülasyon indeksi kontrolü.",
    mcu: "TMS320F", cat: "TMS320F",
    stars: 76, forks: 12, author: "İbrahim Işıklı", level: "Orta",
    img: WIX + "ce7d26_73352f6cc00e407ba3dbb95bf3de4131~mv2.jpeg/v1/fill/w_620,h_440,al_c,q_85,enc_avif,quality_auto/spwm.jpeg",
  },
  {
    title: "MATLAB ile PLL Tasarımı",
    sub: "Phase Locked Loop Modeli",
    desc: "Simulink ile faz kilitlemeli döngü modellemesi; donanıma geçmeden önce filtre ve kazanç parametrelerinin analizi.",
    mcu: "MATLAB", cat: "MATLAB",
    stars: 61, forks: 9, author: "İbrahim Işıklı", level: "Orta",
    img: WIX + "ce7d26_b5708e4dc297451dad00e6b798b85bef~mv2.png/v1/fill/w_620,h_440,al_c,q_85,enc_avif,quality_auto/pll-matlab.png",
  },
  {
    title: "Nuvoton M031 ile RMS Hesaplama",
    sub: "Gerçek Zamanlı RMS",
    desc: "Nuvoton M031 Cortex-M0 üzerinde ADC örneklerinden gerçek zamanlı gerilim/akım RMS hesaplama rutini.",
    mcu: "Nuvoton", cat: "Nuvoton",
    stars: 53, forks: 8, author: "İbrahim Işıklı", level: "Orta",
    img: WIX + "ce7d26_dbb9764bd4374d9e826dd2974b291d31~mv2.jpeg/v1/fill/w_620,h_440,al_c,q_85,enc_avif,quality_auto/rms.jpeg",
  },
  {
    title: "TMS320F ile DC Motor Uygulamaları",
    sub: "Motor Sürücü & Kontrol",
    desc: "C2000 ile fırçalı DC motorun hız/konum kontrolü; H-köprü sürme, akım sınırlama ve PID döngüsü.",
    mcu: "TMS320F", cat: "TMS320F",
    stars: 88, forks: 19, author: "İbrahim Işıklı", level: "İleri",
    img: WIX + "ce7d26_0bd10b292df940beb1eace04e52b4d74~mv2.jpeg/v1/crop/x_180,y_0,w_1689,h_1536/fill/w_620,h_440,al_c,q_85,enc_avif,quality_auto/dcmotor.jpeg",
  },
  {
    title: "Nuvoton ile Varyak Motoru Kontrolü",
    sub: "AVR Control",
    desc: "Motorlu varyak (otomatik gerilim ayarlayıcı) üzerinden çıkış gerilimini geri besleme ile sabit tutan kontrol.",
    mcu: "Nuvoton", cat: "Nuvoton",
    stars: 47, forks: 6, author: "İbrahim Işıklı", level: "Orta",
    img: WIX + "ce7d26_33a3c9d37b4b486baccdd911d5e9b617~mv2.jpeg/v1/crop/x_140,y_0,w_1319,h_1200/fill/w_620,h_440,al_c,q_85,enc_avif,quality_auto/varyak.jpeg",
  },
  {
    title: "Nuvoton ile Yazılım Koruma",
    sub: "Firmware Güvenliği",
    desc: "Nuvoton MCU'larda flash okuma koruması, kod bütünlüğü ve klonlamaya karşı yazılım koruma yöntemleri.",
    mcu: "Nuvoton", cat: "Nuvoton",
    stars: 102, forks: 21, author: "İbrahim Işıklı", level: "İleri",
    img: WIX + "ce7d26_9fd37da9dd63458787938af0bc1a1b8a~mv2.jpeg/v1/fill/w_620,h_440,al_c,q_85,enc_avif,quality_auto/koruma.jpeg",
  },
];

// Standalone export: prefer inlined blob URLs (window.__resources) when present;
// otherwise keep the live CDN URLs. No-op in the normal hosted page.
PROJECTS.forEach((p, i) => {
  const r = window.__resources && window.__resources["proj" + (i + 1)];
  if (r) p.img = r;
});

const FILTERS = ["Tümü", "STM32", "TMS320F", "Nuvoton", "MATLAB"];

const CHANNEL = {
  name: "İbrahim Işıklı",
  handle: "@ibrahimskl470",
  url: "https://www.youtube.com/channel/UCL0ii3eqHL4XPOgdo5WSTcA",
  blurb: "Gömülü sistem projeleri, kod incelemeleri ve uygulamalı dersler — STM32, TMS320F ve Nuvoton üzerinde gerçek donanımla.",
};

const VIDEOS = [
  { id: "w-zOM9Haj50", title: "STM32 ile PLL Tasarımı", icon: "bolt", tag: "STM32" },
  { id: "E6BMj62UbDE", title: "C2000 SPWM — inverter sürmek", icon: "chip", tag: "TMS320F" },
  { id: "bbOMf_4T1kI", title: "Nuvoton M031 ile RMS hesaplama", icon: "terminal", tag: "Nuvoton" },
];

// Build real YouTube watch links + thumbnails from each video id.
VIDEOS.forEach((v, i) => {
  v.url = "https://www.youtube.com/watch?v=" + v.id;
  v.img = "https://i.ytimg.com/vi/" + v.id + "/hqdefault.jpg";
  // Standalone export: swap in inlined blob URLs when present.
  const r = window.__resources && window.__resources["video" + (i + 1)];
  if (r) v.img = r;
});

const ARTICLES = [
  { title: "RTOS'a giriş: FreeRTOS ile ilk görev (task)", cat: "RTOS", icon: "terminal", read: "8 dk", author: "Topluluk", date: "3 gün önce", excerpt: "Bare-metal'den çok görevli yapıya geçiş, task öncelikleri ve zamanlayıcı mantığı.", tags: ["FreeRTOS", "Task", "Scheduler"] },
  { title: "I²C hata ayıklama: bus kilitlenmesini çözmek", cat: "Donanım", icon: "chip", read: "6 dk", author: "Topluluk", date: "1 hafta önce", excerpt: "Pull-up dirençleri, clock stretching ve mantık analizörüyle gerçek dünya hataları.", tags: ["I²C", "Debug", "Logic Analyzer"] },
  { title: "STM32 saat ağacını (clock tree) anlamak", cat: "STM32", icon: "bolt", read: "11 dk", author: "Topluluk", date: "2 hafta önce", excerpt: "PLL, prescaler ve peripheral clock yapılandırmasını CubeMX olmadan kavramak.", tags: ["STM32", "Clock", "PLL"] },
  { title: "Düşük güç tasarımı: µA mertebesinde uyku modları", cat: "Güç", icon: "learn", read: "9 dk", author: "Topluluk", date: "3 hafta önce", excerpt: "Pille çalışan cihazlarda derin uyku, RTC uyandırma ve ölçüm teknikleri.", tags: ["Low Power", "Sleep", "RTC"] },
];

const QUESTIONS = [
  { q: "ESP32'de Wi-Fi ve ADC2 birlikte neden çalışmıyor?", tags: ["ESP32", "ADC", "Wi-Fi"], votes: 23, answers: 4, solved: true, author: "mehmet_k", time: "2s önce" },
  { q: "STM32 DMA ile UART ring buffer en temiz nasıl kurulur?", tags: ["STM32", "DMA", "UART"], votes: 41, answers: 7, solved: true, author: "ayse.dev", time: "5s önce" },
  { q: "CAN bus terminasyonu 120Ω yerine 60Ω olursa ne olur?", tags: ["CAN", "Donanım"], votes: 12, answers: 2, solved: false, author: "burak_e", time: "1g önce" },
  { q: "FreeRTOS'ta stack overflow'u nasıl tespit ederim?", tags: ["FreeRTOS", "Debug"], votes: 30, answers: 5, solved: false, author: "embed_zeynep", time: "1g önce" },
];

const LIBS = [
  { name: "stm32-hal-utils", mcu: "STM32", desc: "HAL üzerine pratik sürücü sarmalayıcıları: UART, I²C, SPI ve GPIO yardımcıları.", lang: "C", stars: 340 },
  { name: "esp32-sensor-kit", mcu: "ESP32", desc: "Yaygın sensörler (BME280, MPU6050, INA219) için ESP-IDF uyumlu sürücüler.", lang: "C++", stars: 512 },
  { name: "tms320-control-lib", mcu: "TMS320F", desc: "C2000 için PID, PLL ve SPWM blokları içeren motor kontrol kütüphanesi.", lang: "C", stars: 188 },
  { name: "nuvoton-m0-bsp", mcu: "Nuvoton", desc: "M031/M051 serisi için sade BSP, başlangıç şablonları ve örnekler.", lang: "C", stars: 96 },
];

const PILLARS = [
  { key: "01", icon: "share", title: "Projeni paylaş", desc: "Şematiğinden firmware'ine, projeni topluluğa açık kaynakla. Geri bildirim al, birlikte geliştir." },
  { key: "02", icon: "article", title: "Teknik yaz", desc: "Öğrendiğin her şeyi yaz. Kod blokları, osiloskop görüntüleri ve devre şemalarıyla zenginleştir." },
  { key: "03", icon: "qa", title: "Sor & cevapla", desc: "Takıldığın yerde sor, bildiğin yerde yardım et. Çözülen sorular bilgi bankasını büyütür." },
  { key: "04", icon: "learn", title: "Birlikte öğren", desc: "STM32'den ESP32'ye, RTOS'tan güç elektroniğine; meraklılarla aynı yolda ilerle." },
];

const ROADMAP = [
  { status: "live", label: "Topluluk & profiller", desc: "Üyelik, profil ve proje vitrinleri" },
  { status: "progress", label: "Teknik blog platformu", desc: "Markdown + kod + devre şeması desteği" },
  { status: "progress", label: "Soru-cevap / forum", desc: "Oylama, etiket ve çözüm işaretleme" },
  { status: "planned", label: "Açık kaynak proje deposu", desc: "Topluluk projeleri için ortak depo" },
  { status: "planned", label: "Kütüphane & sürücüler", desc: "STM32, ESP32 vb. paylaşılan sürücüler" },
];

const STATS = [
  { value: 2400, suffix: "+", label: "Topluluk üyesi" },
  { value: 180, suffix: "+", label: "Açık kaynak proje" },
  { value: 640, suffix: "+", label: "Teknik yazı" },
  { value: 12, suffix: "K", label: "Çözülen soru" },
];

Object.assign(window, { PROJECTS, FILTERS, ARTICLES, QUESTIONS, LIBS, PILLARS, ROADMAP, STATS, CHANNEL, VIDEOS });
