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 »

Türk milletinin, köleliği kabul etmeyeceğini, gerektiğinde bağrından kendisine önderlik edecek ve tüm milletlerce sayılacak büyük dâhiler yetiştirebileceğini bir kez daha kanıtladığı zaferin 95. yıldönümü kutlu olsun.

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..

sku_366006_1Step motorları sürmek zor olmasada hassas işlerde kullanılacakları zaman biraz daha  komplike sürme metodlarına ihtiyaç duyulabilmektedir. Örneğin bir 3D yazıcı uygulamasında step motorun adımları ne kadar küçültülürse o kadar hassas ve pürüssüz yüzeylere sahip baskılar alınabilir. DRV8825 mikroadım yöntemiyle elimizdeki step motorun adımını 32 parçaya bölerek daha hassas açılarla adımlama yapabilmemizi sağlamaktadır. Örnek olarak elimizde 7.5 derecelik bir step motor olduğunu varsayalım. Biz drv8825’i 1/32 microstepping moduna aldığımızda 7,5/32=0,234375 derecelik adımlara kavuşmuş oluruz. Yazının devamını oku »