/* 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 });