Mühendislik Bitirme Tezi – 1.Bölüm – “Çok Kötü Bir Fikir!”

  • 5 ay önce, Baran EKREM tarafından yazılmıştır.
  • 0 Yorum
  • 517 Kişi Okudu

Bu yazı dizisine başlarken sizlere direk olarak son sahneyi söylemek istiyorum. “Sonsuza dek mutlu yaşadılar…” cümlesi kulağa oldukça güzel geliyor dimi ? Tabiki böyle bir şey olmayacak. Kim bilir bu bitirme tezi başka hangi projelerin kapısını açacak ve kaç farklı başarısız fakat tecrübe dolu sonuçla karşılaşmamızı sağlayacak. Bu yazı dizisinde hem teknik hemde kitap okurcasına bir hava yaratmak adına yazım dilini sohbet tadında tutacağım. Ayrıca bu çalışmanın bir “Elektronik ve Haberleşme Mühendisliği Öğrencisinin Tezi” olarak değil, “Bölüm Sonu Canavarı” olarak isimlendirmek daha doğru olacaktır. Bu bölüm sonu canvarını için son sınıfta olduğuma göre hazırım ve tez fikrini belirlemem gerekiyor. Fikir aslında uzun zamandır aklımda fakat oldukça fazla bileşen olacağından ve daha önce hiç fiziksel olarak gerçeklemediğim bir alan olduğundan dolayı kafamda çok fazla soru işareti var diyebilirim. Aslında bu konuda biraz ilerleme kaydettim hatta kaydettik. Şimdi yazarken fark ettimde anlatacak o kadar çok şey birikmiş ki oldukça uzun bir hikaye olacak gibi duruyor. Neyse en iyisi siz bir bardak çay yada kahve hazırlayın bende size henüz yeni başlamış fakat uzun ve heyecanlı bir hikaye anlatayım.
(Devamını Oku)

Açık Kaynak ARM Geliştirme Ortamı – VS Code/CMake/GCC/OpenOCD/Nuvoton

  • 1 sene önce, Baran EKREM tarafından yazılmıştır.
  • 0 Yorum
  • 1.759 Kişi Okudu


Uzun süre çeşitli MCU’lar IDE’ler ve çeşitli derleyiciler kullanmış biri olarak geliştirme ortamının mikrodenetleyici programlayan biri için en önemli şey olduğunu söyleyebilirim. Özellikle 8-biti hariç tutup 32-Bit ARM tabanlı mikrodenetleyiciler ile çalıştığınızda farklı geliştirme ortamları ve derleyiciler ile çalışmak platform bağımsızlınızı ve esnekliğinizi kısıtlıyor. Uzun süre çeşitli geliştirme ortamlarını kullandıktan sonra Visual Studio Code önerisi almam üzerine bu editörde geliştirme ortamı kurmaya karar verdim. VS Code aslında kapsamlı bir Editör olsa da bazı eklentiler ve harici derleyici kurulumu ile hem bir derleme ortamı hem de hata ayıklayıcı özelliği kazanabiliyor. Bu  yazıda VS Code ve GCC kullanarak ARM tabanlı mikrodenetleyiciler ile geliştirme ortamı kurulumunu tamamlayıp sonuçlar üzerinden karşılaştırma yapalım. O halde lafı daha fazla uzatmadan kuruluma geçelim. (Devamını Oku)

DSP Notları : Filtreler – 1 – Finite Impulse Response

  • 4 sene önce, Baran EKREM tarafından yazılmıştır.
  • 1 Yorum
  • 5.925 Kişi Okudu


Bir önceki yazı dizisinde filtreler konusuna bir giriş yapmış ve seriyi temel bir uygulama ile sonlandırmıştık. Bu yazı serisinde filtreleme konusuna biraz daha derinlemesine girmeyi hedefliyorum. Önceki serilerde teoriden sıkılan okuyucular son yazıdaki uygulamayı görünce bir hayli sevinmiş ve güzel geri dönüşler yapmışlardı. Sanırım teori ve pratiğin bu şekilde birleştiğini görmek okuyuculara matematiğin aslında bu kadar soyut olmadığını ve mühendisliği dolaylı olarak değil doğrudan etkilediğini gösterdi. Artık soyut ve oldukça korkutucu gözüken matematiğin gerçekte böyle olmadığını anladığımıza göre filtreleme konusunu daha deri bir şekilde inceleyebiliriz. Başlamadan önce bir konuyu dile getirmem gerekiyor. Bu yazı serilerini okurken, “Buna ihtiyacımız olmayacak çünkü Matlab bu işleri bizim için yapıyor.” gibi bir ifadeyi kullanmakta oldukça haklı olabilirsiniz fakat bizim amacımız bu işin mantığını ve temelini anlamak hatta daha da öte bir gereksinim olan ve mühendislik yapmak için ihtiyaç duyduğumuz muhakeme yeteneğini geliştirmek, buradaki birincil amacımızdır. Ek olarak filtreleme konusunda karşılaşacağımız zorlu problemlerde, iyi bir alt yapının faydasını göreceğinizi garanti edebilirim. Eğer hazırsanız zihnimizi çok yumuşak bir filtreden geçirelim. (Devamını Oku)

İstenmeyene Göğüs Gerenler : Filtreler – 3 – Sinyal İşleme Uygulaması

  • 4 sene önce, Baran EKREM tarafından yazılmıştır.
  • 0 Yorum
  • 3.840 Kişi Okudu


Evet sanırım artık beklediğiniz yazı geldi. Bunca matematik ve onlarca çalışmadan sonra artık bu işin ekmeğini yeme zamanının geldiğini düşünüyorum. Özellikle sinyal işlemede çok özel bir yeri olan “Filtreleme” konusu barındırdığı sihirli matematik ile beni ciddi anlamda büyülemiştir. Bir filtre tasarlamanın birden fazla yolu olması, kalite faktörü, filtrenin cevabı gibi bir çok ayrıntıyı içinde barındırsa da bunların çok da zor olmadığını az çok gördük. Eğer işin temelini anladıysanız gelin sonra bir uygulama ile bu yazı dizisini tamamlayalım. (Devamını Oku)

N. Dereceden Polinomun Kökleri : Bairstow’s Method

  • 4 sene önce, Baran EKREM tarafından yazılmıştır.
  • 0 Yorum
  • 3.078 Kişi Okudu

Her şey 2 hafta önce girdiğim “Sayısal Çözüm Yöntemleri” dersinde hocamın “n. dereceden bir polinomun tüm köklerini bulacağız.” demesiyle başladı. Şimdi bu cümlede 3 tane gizli ayrıntı var. Bunlardan ilki bu işleri tamamen nümerik tekniklerle yapacak olmamız. Bu ilk adım pek kafamızı karıştırmıyor çünkü aklımıza ilk gelen yöntem, bir epsilon hatasına kadar döngüyü tekrarlamak.

İkincisi bu kökler içinde sanal köklerinde barınacağı. Bu bizim için sorun değil bunun sebebi kompleks köklerin formülünü biliyor olmamız. Gördüğünüz gibi hala korkacak bir şey yok!

Üçüncüsü ve benim kafam en çok meşgul eden ise bu polinomun derecesinin sabit değil n. dereceden olması! Evet bu cümlenin arkasında yatan zorluğun ne olduğunu şimdi rahatça görebiliyoruz dimi? Bazı dereceleri hesaplamak kolay. Mesela 1, 2, 3 hadi 4 olsun. Peki 10, 15 hatta 50. derece olduğunu düşünün. Kısacası bize n. dereceden bir polinomun tüm köklerini bulan çok güçlü bir algoritma gerekiyor. Merak etmeyin bunu yapan bir matematiksel modele sahibiz. Bu modeli geliştiren Leonard Bairstow’a bir teşekkürü borç biliriz. O halde hazırsanız Bay Bairstow’un bu ulvi matematiksel modelini biraz olsun inceleyerek anlamaya çalışalım. Hatta bunu yazılımsal hale getirip işleri daha kolaylaştıralım! (Devamını Oku)

Sinyallerimdeki Şeytanlar – Fourier Transform

  • 4 sene önce, Baran EKREM tarafından yazılmıştır.
  • 1 Yorum
  • 3.155 Kişi Okudu


Bu yazıda Joseph Fourier’in bulduğu “Fourier Dönüşümü” adlı, bir hayli ilginç olan ve mühendislik öğrencilerinin birlikte yatıp kalktığı bu konuya giriş yapacağız. Bu konuya girmeden önce üzerine düşüneceğimiz başka bir problem var. Normal de sinyallerimizi zaman bağlı örnekler ve bunları işlemek için uğraşırız. Zamana bağlı bir sinyalde bildiğiniz üzere sadece (t) anındaki (Genliği) elde edebiliriz. Geometrik olarak bir x(t) değerine karşın bir y(Genlik) değeri olur. Bu oldukça basit öyle değil mi ? Şimdi asıl soruna gelelim. Elimizdeki sinyalin içinde hangi frekans bileşenlerinin olduğunu öğrenmek isteydik ne yapacaktık ? Koordinat düzleminde x yerine frekans’ın olmasını istiyoruz. O halde frekans düzlemine ışınlanalım ! (Devamını Oku)

Cyclic Redundancy Check (CRC Control)

  • 7 sene önce, Baran EKREM tarafından yazılmıştır.
  • 0 Yorum
  • 2.302 Kişi Okudu

Haberleşmede toplu veri transferinin vazgeçilmezi olan CRC oldukça faydalı ve onay görmüş bir hata tespit etme yöntemidir. Modbus CanBus ve bir çok haberleşme paketlerinde kullanılan bu yapı veride bozulma varsa bunu tespit etmemize yarıyor. Genellikle 8, 16, 32 bit olarak hesaplanan türlerinden ziyade 15 bitlik halde hesaplanan durumlarda mevcut. Bende CRC ye tasarlayacağım haberleşme paketinde ihtiyaç duydum. Büyük verilerin transferinde CRC şiddetle öneriliyormuş. (Devamını Oku)

Paket Algoritması

  • 7 sene önce, Baran EKREM tarafından yazılmıştır.
  • 0 Yorum
  • 1.121 Kişi Okudu

cs161logoÖzellikle MCU haberleşmelerinde kullanılan bir takım haberleşme protokollerinde sabit bir veri bloğunun gönderilmesi ve gönderilmekten ziyade bu verilerin kontrol edilmesi bir hayli zor.

Bunun için çeşitli algoritmalar olmakla birlikte en çok kullanılan yöntemlerden biri paket yöntemidir.Paket yöntemi haberleşen 2 tarafında bildiği bir yapıdan oluşmaktadır.Bu pakette çeşitli başlangıç, bitiş ve kontrol bytelar’ı bulunur.Benim kullandığım paket yapısı şöyledir.
(Devamını Oku)

C++ ile Diskriminant

  • 7 sene önce, Baran EKREM tarafından yazılmıştır.
  • 0 Yorum
  • 4.621 Kişi Okudu

2Algoritmalar dersinde hocamız yazılım olarak C++ kullanmakta.Ben daha önce C ile çalışmama rağmen C++ kullanmamıştım.Yine zor değil fakat nesneye yönelik programlama olduğunu unutmamak gerekir.Yapıyı oturtmak için basit bir 2.dereceden denklemin köklerini bulan bir yazılım hazırladım. Diskriminant yöntemi ile çözüm yapıyor ve oldukça basit. (Devamını Oku)