MP3 – MPEG 1 Audio Layer III  90’lı yılların sonlarında, henüz walkman’lerimizle gezindiğimiz ve tüm günü tek kasete sığan 15 tane parçayı  dinleyerek geçirdiğimiz zamanlarda tanıştığımız mükemmel ötesi bir kavramdı. MP3 formatındaki müzikler çok az elektronik hafıza kaplıyor ve bir cd’ye yüzlerce MP3 sığabiliyordu.  Daha sonra birden çakmak cebine sığabilen MP3 oynatıcılar piyasaya çıkmaya başladı ve neredeyse herkesin elinde bu cihazlardan bir tane görmek mümkündü o günlerde. Daha sonra Cep telefonlarının ve flash disklerin yaygınlaşmaya başlamasıyla binlerce MP3 formatında müzik parçasını aynı anda yanımızda taşıyabilir, arabamızda CD veya Kaset taşıma derdinden kurtulur hale geldik.  Kısacası MP3 artık günlük hayatımızda sıklıkla kullandığımız kelimelerden birisi oldu.  Normalde bir albüm  CD’si  15 civarı parça alabilirken nasıl oluyorda yüzlerce MP3 bir CD’ye sığabiliyor. MP3 bir parça, CDDA formatındaki bir albüm parçasının 10 katından daha küçük bir boyutta olabilmektedir. Peki bu MP3 parçalar nasıl oluyorda bu kadar küçük boyutlu olabiliyor? MP3 aslında frekans sıkıştırmayla elde edilen bir formattır. Örneğin 2 khz 5 sn’lik bi ses 44100hz stereo örneklemeyle yüksek boyutlar kaplamakteyken bunu 2 khz-5sn  gibi kodlarsak çok daha küçük bir boyut elde etmiş oluruz. Ayrıca insan kulağının algılayamayacağı frekanslardaki sesler de atlanarak boyut iyice düşürülebilir.  Fakat bu kodları çözerken aynı frekansları elde etmek zor olduğu için kayıplar meydana gelir ve ses kalitesinde azalmalar yaşanır. Eğer çok dikkatli bir müzik dinleyicisi değilseniz bu kayıpları farketmeyebilirsiniz. Yazının devamını oku »

Okullardaki bayrak törenlerinde İstiklâl Marşı’nın okunmasında  senkron tutturamama gibi bir takım zorluklar meydana gelebilmektedir.  Bu sebeple ortaya çıkan bir ihtiyacı giderebilmek adına uzaktan kumanda ile kolayca kontrol edilebilen ve  herhangi bir  ses amplifikatörüne doğrudan bağlanabilecek bir sistem tasarlamaya karar verdim.  Tasarladığım sistemin blok şeması aşağıda görülebilir. Yazının devamını oku »

DMA (direct memory access) daha öncedeki yazılarımda da bahsettiğim gibi doğrudan bellek erişimi anlamına gelen bir isimlendirmedir. Bazı mikrodenetleyicilerde bu birim bulunur ve işlem yükünü azaltma konusunda oldukça işe yarar.  Hafızadaki verilerin bir yerden başka bir yere taşınması gibi zaman kaybı yaratan işlemleri CPU’ya yaptırmak mikrodenetleyiciye zaman kaybettirerek işlem gücünü azaltmaktadır.  DMA tam olarak burada devreye girerek verilerin hafızada bir yerden bir yere taşınması işlemini üstlenir ve mikrodenetleyici içerisindeki  CPU’yu  ( STM32F407 için konuşursak CPU+FPU’yu)  veri taşıma işlemlerinden kurtarır.

STM32F407 mikrodenetleyicisinde herbirinde 8’er adet akaç (-Stream, türkçe karşılığı yok malesef. Ben de bu sebeple “akaç” kelimesini uydurdum. Veri akışı için kullanılan bir terimdir “Stream” ) bulunan  DMA1 ve DMA2 isminde iki adet DMA birimi bulunur. Bu birimler

  • Peripheral to Memory ( Çevrebirimden hafızaya)
  • Memory to memory (Hafızadan hafızaya)
  • Memory to peripheral (Hafızadan çevrebirime)

veri aktarmaya olanak sağlarlar.  Bu birimler ayrıca Circular buffer management (Dairesel tampon yönetimi) özelliğine de sahiptirler. Bu sayede veri akışının sonuna gelindiğinde , daha açık ifade edecek olursak tampondaki gönderilecek  veri adedinin sonuna gelindiğinde otomatik olarak başa dönerek tekrar harici bir işlem yapmaya gerek kalmadan veri aktarımına devam edebilirler.  DMA aşağıdaki çevresel birimlerle birlikte çalışabilmektedir; Yazının devamını oku »

Sonoff modülleri daha önceden burada incelemiş olduğum akıllı ev ürünleridir. Bana incelemem için gönderilen sonoff pow isimli modül zaman zaman bağlantı problemleri çıkarmaktaydı. Bu sebeple içerisini açıp incelediğimde, üzerinde ESP8266 ve 32Mbit flash çipi barındırdığını gördüm. Ayrıca güç ölçüm özelliğine sahip olan bu modül HLW8012 isimli entegreyi de barındırıyor. Modülün boardu üzerinde firmware yüklemek için gerekli uçların bulunduğunu görünce hemen ufak çaplı bir araştırma yapıp, son zamanlarda kullanmaya başladığım arduino ide ile modülü programlamaya başladım. Kendi yazdığım firmwarei modüle yükleyip bağlantı problemlerini ortadan kaldırdım.  Bu tarz problemler yaşayıp modüle kendi yazılımlarını yüklemek isteyenlere kılavuzluk etmek için bu yazıyı yazıyorum. Yazının devamını oku »

USB Havya

Yayınlandı: 07 Eylül 2017 / İncelemeler
Etiketler:,

Aliexpress’te gezinirken gözüme küçük boyutta bir havya çarptı. Havyayı incelediğimde USB üzerinden güç aldığını gördüm ve araştırmalarım snucu gerçekten de anlık ufak boyutlu lehim işlerinde  iyi olabileceğini düşünerek bir tane satın aldım. Havya 5V gerilim kullanarak çalışıyor ve  8W güç harcıyor. Buna göre havyanın çektiği akım 1.6 A . Bunu sağlayabilecek bir kaynak ile (mesela yeterli değerlere sahip bir powerbank veya USB telefon şarj aleti) birlikte kullanılarak havyadan yeterli verim alınabilir. Aşağıda çekmiş olduğum video görülmekte.

Öncelikle iyi bayramlar.

 Daha önceden de bahsettiğim gibi Arduino IDE’yi kullanma sebebim NodeMcu ile haşır neşir olmaya başlamamdı.  Hazır elime arduino ıde’yi almışken nimetlerinden de faydalanmamak olmaz. Daha önce kullanmış olduğum 6DOF  MPU6050 IMU sensörünün digital motion processor ünitesini inceleyememiştim. Fırsat bu fırsat deyip internette ufak bir geintiden sonra gerekli kodları buldum ve denememi yaptım.  Buradaki 3 boyutlu görüntüyü elde edebilmek için processing kullanılmış. Gerekli kodların tamamı burada mevcut. NodeMcu ile kodları kullanabilmek için yapmanız gereken tek şey bağlantıları yapıp kodu yüklemeniz. Bağlantıları yaparken dikkat edilecek nokta NodeMCU’nun I2C pinlerini doğru belirleyebilmek.  NodeMCU I2C pinleri SCL=D1=GPIO5 ,SDA=D2=GPIO4  pinlerine denk geliyor. MPU6050 INT pinini ise belirlediğiniz bir pine bağlamanız gerekiyor. Bunun için gerekli değişikliği programın “#define INTERRUPT_PIN  D5” satırında yapmanız gerekiyor. Ben görüldüğü üzere NodeMCU’nun  D5 pinini kullandım INT için. MPU6050 içerisindeki DMP’nin avantajı sizin ekstra bir hesaplama yapmanıza gerek kalmadan IMU üzerindeki gyro ve accelerometer verilerini birleştirip gerekli hesaplamaları ve filtrelemeleri yaparak doğrudan açı bilgisi sunması. Bu da bize daha doğru açılar ve daha az işlem yükü olanağı sunuyor.

Yaptığım uygulamanın videosunu aşağıdan izleyebilirsiniz. Yazının devamını oku »

Firebase, Google firmasına ait olan bulut tabanlı  online bir veritabanı olarak kısaca adlandırılabilir. Günümüzde sıklıkla kulanılan “bulut” sistemleri için de bir altyapıdır aynı zamanda. Sağlamış olduğu SDK’lar  aracılığı ile android, ios ve web tabanlı sistemlere kolayca entegre edilebilmektedir. Belli sınırlar içindeki kullanımlarda ücretsizdir.

IOT kavramının altı doldurulurken en çok kullanılan terim  “bulut” terimidir. Bulut sistemlerinde veriler sistemimizin herhangi bir fiziksel parçasında depolanmaz, internet ortamında saklanırlar. Bu sayede veriler istenildiği anda istenilen noktadan ulaşılabilir , istenilen yerden değiştirilebilir durumdadır. Böylece gerçek manada, aralarındaki mesafeye bakılmaksızın bir nesneler ağı oluşturma imkanımız olur. Yazının devamını oku »

ESP8266 isimli wifi çipini duymayan elektronikçi sanırım artık kalmamıştır. Bu çip ilk olarak ESP-01 ismindeki modülle piyasaya çıkmıştı. ESP-01 isimli modülde sadece 2 adet GPIO pini bulunmaktaydı ve bu pinler  de aslında çipin boot seçimini sağlayan ve çipe firmware yüklemek için gerekli olan pinlerdi. Bu 2 pini boot işlemleri bittikten sonra giriş çıkış olarak kullanabiliyorduk fakat oldukça  zahmetli işti. Daha sonra ESP modüllerinin farklı türevleri ortaya çıktı. Son olarak NodeMcu isminde, esp8266’yı kullanabilmek için gerekli herşeyi üzerinde barındıran, ESP8266’nın bütün pinlerini kullanılabilir hale getiren kartlar piyasaya çıktı. Yazının devamını oku »

Nesnelerin interneti kavramı bu konuyla ilgili son yazımdan  bugüne, artık günlük hayatın içerisinde sıklıkla karşımıza çıkmaya başladı. Wifi özellikli klimalardan çamaşır makinelerine, kombilere kadar pek çok ürünün reklamları TV ekranlarında dönüyor ve bu ürünler satılıyor.  Ben de biraz fırsat bulunca son yazdığım yazıda yapmış olduğum ilkel web server uygulamasını biraz daha ilerletmeye karar verdim. Önceki yazımda (buradan ulaşabilirsiniz) bir mikrodenetleyici içerisinde gömülü bulunan html kodlarını ESP8266’yı bir istasyon olarak kullanarak internete bağlamıştım. Yani aslında yaptığım şey kullandığım mikrodenetleyiciyi ağa bağlayabilmek adına ESP8266’yı bir köprü olarak kullanmaktı. Bilindiği gibi aslında ESP8266 wifi özelliği olan bir mikrodenetleyici ve lua ve  c++’dan micropython’a kadar pek çok programlama dili ile programlanabiliyor.  Hatta bu günlerde ESP32 isimli bir abisi de piyasada mevcut ve diğer pek çok işlemciyi geride bırakacak, projelerde başka mikrodenetleyici kullanılmasına gerek bırakmayacak özelliklere sahip.  Şimdiki uygulamamda ise ESP8266’yı başka bir mikrodenetleyiciye ihtiyaç duymayacak şekilde, doğrudan programlayıp bütün işlemleri Yazının devamını oku »

Geçtiğimiz yıllarda istek üzerine yapmış olduğum ve 1W RGB power led  kullandığım bir proje. Burada önemli olan nokta power ledlerden geçen akımın sınırlandırımasıydı. Mosfetle sürdüğüm power ledin her bir kanalın akımını datasheet verilerine göre sınırlandırdım. Gerisi tamamen algoritma..