SAMSUNG SMART TV ONARIMI

Oğlum’un 55″ Samsung smart TV si, artık 7-8 yaşlarında olmalı. arızalanıp hiç açılmaz hale geldi.

Servise vermeden önce, elektrikli ev aletlerimiz arızalandığında her zaman yaptığım gibi önce kendim bakmaya karar verdim. Çok kolay bulunan bir güç kaynağı arızası olduğunu belirleyip onardım.

Çok basit bir teşhis ve onarım da olsa, kısaca anlatıp kayda geçireyim.

Continue reading “SAMSUNG SMART TV ONARIMI”

STM32-UART HABERLEŞMEDE RING BUFFER KULLANIMI

STM32 ile UART haberleşmesi için yoklama (polling) ya da kesme (interrupt) tekniklerini kullanabiliyoruz. Gelen ve giden verileri “halka tampon” (ring buffer) adını verdiğimiz, sonuna ulaşılınca başa dönüp oradan kayda devam ettiğimiz türden tampon dizilere yerleştirmek verimli bir yöntem. Burada UART işlemleri için HAL kütüphanesini kullanmıyorum.

Bu yayında sürekli olarak kullanmakta olduğum bu tekniği anlatacağım.

HAL Kütüphaneleri kullanarak geliştirdiğim daha güncel bir yayınıma burayı tıklayarak ulaşabilirsiniz.

Continue reading “STM32-UART HABERLEŞMEDE RING BUFFER KULLANIMI”

STM32 CUBE IDE – KUSURLAR (BUG)

STM32 çalışmalarımda STM32 Cube IDE platformunu kullanıyorum. ST Microelectronics bunu geçtiğimiz yıllarda bünyesine kattığı Atollic True Studio ile CubeMX yapılandırıcısını birleştirerek oluşturdu. Müşterilerinin kullanımına ücretsiz olarak sunuyor.

Fakat yeni bir ürün, zaman zaman, hatta bazıları ile çok sıklıkla, sorunlarla karşılaşıyorum. Bunların kendimden kaynaklanmadığını anlayana kadar epey ter döküyorum. Zira çoğu ilk defa benim başıma gelmiş oluyor. Forumlarda paylaşıyoruz ve ST den yeni sürümlerde çözüm bekliyoruz.

Bu arada hayat devam ettiğinden kendi çözümlerimizi üretmek zorunda kalıyoruz. Bu yayında karşılaştığım ve henüz çözüm getirilmemiş olan kusurları, bunları aşmak için yaptıklarımı anlatacağım.

Bunları değerlendirirken Mac OS kullandığımı (Ekim 2020 itibariyle Catalina Version 10.15.6) dikkate alınız. Cube IDE sürümü de : 1.4.2 Build: 7643_20200813_1322 (UTC). Windows’ta da durum farklı olabilir.

Continue reading “STM32 CUBE IDE – KUSURLAR (BUG)”

STM32 TABANLI MASAÜSTÜ CNC-2 (Yeni model)

İlk yayında anlattığım (STM32 Tabanlı Masaüstü CNC – 1) masa üstü CNC yi güncelliyorum. Mekanik yapıda bir değişiklik yok. Ana değişiklik elektronik donanımdaki motor sürücüler. Buna ilaveten yazılımda, motor sürüm algoritmasında epeyi değişiklik var. Bunlardan bazılarını daha CNC ye uygulamadan önce aşağıdaki yayınlarda anlatmıştım.

Aslında diğer yayınlarımın neredeyse hepsinde CNC de kullandığım yazılım tekniklerinden bir şeyler var. Daha önce de belirttiğim gibi, bu CNC, öğrendiğim şeyleri hayata geçirdiğim bir test platformu haline geldi.

Continue reading “STM32 TABANLI MASAÜSTÜ CNC-2 (Yeni model)”

UART İLETİŞİMDE VERİ DOĞRULAMA – CHECK SUM

Mikro denetleyiciler ile diğer cihazlar arasında veri alışverişi için sıklıkla asenkron haberleşme protokoluna -UART- başvuruyoruz. Genelde parazitsiz ve kısa mesafelerde sorun yaşanmasa da, yakın çevrede çalışan motorlar gibi parazit kaynakları var ise arada bir hatalı alınan karakterler olabiliyor. Benim CNC uygulamam da bunlardan birisi. Mikro denetleyicinin burnunun dibinde çalışan 500W lık bir fırçalı DC spindle motorundan, 3 tane güçlü adım motorunun kablolarından yayılan parazitler ortamı dolduruyor.

Bu durumlarda fiziksel seviyedeki önlemler, UART haberleşmeyi RS232, ya da daha iyisi RS485 üzerinden yürütmek. Buna ilaveten protokol seviyesinde de veri doğrulama yöntemlerine başvurmak gerekiyor.

Sadece kullanıcı ile text mesaj alışverişi gibi, arada bir gelen hatalı bir karakterin felakete yol açmadığı bir durumda bütün bunlara gerek görülmeyebilir. Ama, CNC ye giden bir hatalı koordinat bilgisi ortalığı bir anda savaş meydanına çevirebilir. Bu benim başıma geldiğinden dersimi aldım ve CNC-PC haberleşmesi sırasında veri doğrulama işlemlerine erken aşamalardan itibaren yer verdim.

CNC için kullandığım iki farklı yöntemi anlatacağım.

Continue reading “UART İLETİŞİMDE VERİ DOĞRULAMA – CHECK SUM”

STM32 TABANLI MASAÜSTÜ CNC-1

Masaüstü CNC geliştirme projem yeni bir şey değil. Adım motorlarla oynamaya başladığım günlerden beri -10 yıldan daha fazla bir süredir- sürekli olarak gündemimde olan bir konu. İlk masaüstü CNC mi çalıştırdığımdan bu yana kaç defa değişiklik yaptığımı bilemiyorum. Ama yazılımının güncel sürüm numarasının 20 olduğunu, her bir sürümde de a,b,c,d,e … şeklinde ilerleyen ara sürümler olduğunu belirtirsem bir fikir verir sanırım.

Sonuçta son 2-3 yıldır çok işime yarayan bir alet olarak atölyemin baş köşesinde duruyor. Sürekli olarak gelişmeye de devam ediyor.

Bugünlerde kontrol biriminde önemli bir değişiklik yaparak L298 motor sürücülerinden A4988 sürücülere geçiyorum. Bununla birikte yazılımda da hatırı sayılır geliştirmeleri uygulamaya koyuyorum.

Bu aşamada, buraya CNC nin mevcut durumuna ve yukarıda sözünü ettiğim değişikliklerden sonraki haline yönelik bilgiler koymaya karar verdim. Aslında CNC konusundaki ilk yayınım değil, üç yıl önce de kapsamlı bir yayın yapmıştım. Ama Blog Press bir platform değişikliği yaptı, o geçiş esnasında yayının bütün görsel öğeleri silindi. O zaman yazıyı onarmaya üşendiğimden yayından kaldırdım. Şimdi yeni baştan …

Continue reading “STM32 TABANLI MASAÜSTÜ CNC-1”

ESP8266 – UZAKTAN YAZILIM GÜNCELLEME (OTA)

ESP8266 ve ESP32 modüllerinin yazılım güncellemesinin WiFi/Internet üzerinden yapılması, gerek geliştirme aşamasında gerekse servise veriliş sonrasında tartışmasız bir kolaylık sağlıyor.

Bu işi mevcut Arduino ESP kütüphanelerini kullanarak yapmak hiç de zor değil. ES8266 örneği üzerinden nasıl yapıldığını görelim.

Internet üzerinde bunun için yeterince kaynak var, ama benimkinin bir ayrıcalığı var; çünkü Türkçe.

Burada anlatılan yöntem, bilgisayarımızın ve ESP nin aynı network üzerinde bulunmasını gerektirir.

Continue reading “ESP8266 – UZAKTAN YAZILIM GÜNCELLEME (OTA)”

ESP8266 – FLASH BELLEĞE DOSYA KAYDETMEK

ESP8266 ile kullanılabilen LittleFS adlı küçük bir dosya sistemi kütüphanesi var. (Bunun önceki sürümünün adı SPIFFS idi.) “LittleFS.h” başlığı ile projeye eklenebilen bu kütüphane ile program içinden flash belleğe dosya yazmak, silmek, okumak, kapatmak mümkün. LittleFS.open(), LittleFS.remove() ve benzeri komutlarla program kodu içinden yapılabilen bu işlemler bu yayının kapsamında değil. LittleFS dosya sisteminin kullanılışı için buraya bakabilirsiniz.

Ancak Arduino IDE editörü ile program kodu içinde dosya oluşturup yazmak, statik -içeriği program akışı içinde değişmeyen- ve büyük dosyalar için kullanışlı bir yöntem değil. Başka bir editör ile hazırlanmış dosyaları program kodundan ayrı olarak flash belleğe kaydetmek çok daha kullanışlı olurdu. Zaten fotograf, gif gibi program kodu içinde yazamayacağımız dosya türleri için başka bir yol da yok.

Bunu, bu amaçla geliştirilmiş bir eklenti “plug in” kullanarak yapabiliyoruz.

ESP8266LittleFS adlı bu eklentinin Arduino IDE ye eklenmesini göreceğiz. Daha önce SPIFFS kullanıldı ise, bu yayın LittleFS e geçiş rehberi olarak kabul edilebilir.

Read m

STM32F103 İLE WEB SUNUCUSU

ESP8266 ile ev otomasyon sistemleri geliştirmek çok kolaylaştı. Ücretsiz olarak sunulan bol miktarda görsel malzeme ile çok alımlı WEB sayfaları hazırlanabiliyor. STM32 serisinin de WiFi yetenekleri olan tipleri, bunlarla kullanılabilecek zengin kütüphaneleri var.

Ben elimdeki basit malzemeleri kullanarak, STM32F103 ile ESP8266-01 i birlikte çalıştırarak ev otomasyonunda kullanılabilecek bir WEB sunucusu yapmaya karar verdim. Öyle olağanüstü bir şey değil, ESP zaten işin büyük kısmını yapıyor. Bana sadece bunu STM32 ile UART üzerinden konuşturmak ve WEB sayfalarını hazırlamak kalıyor.

Continue reading “STM32F103 İLE WEB SUNUCUSU”

STM32 Cube IDE – INTERRUPT IRQ ve CALL BACK FONKSİYONLARI

Herhangi bir kesinti oluştuğunda mikro denetleyicimiz, o kesintiye ilişkin bir IRQ – Interrupt Handler fonksiyonunu çağırır. Oluşan kesinti ile ne yapacak isek bu handler fonksiyonlarını ona göre hazırlayarak main.c dosyası içine koymamız gerekiyor.

Bu durumda bu fonksiyonun adı, tipi ve argümanları, sistem kütüphanelerinde tanımlanmış olanlarla uyumlu olmak zorunda.

Bu yayında, STM32 cube IDE ile çalışırken hazırlayacağımız IRQ intterupt handler fonksiyonunlarına ait bu bilgilere nasıl ulaşılacağını -TIM3 zamanlayıcısı örneği üzerinde- anlatacağım.

Continue reading “STM32 Cube IDE – INTERRUPT IRQ ve CALL BACK FONKSİYONLARI”