Elektronik Devreler Projeler Elektronik ve biraz daha fazlası İletişim - Araçlar - Dikkat - Topluluk
Elektronik / Mikrodenetleyici Projeleri/

STM32F429 Discovery ile Dokunmatik Direnç Hesaplayıcı

Sponsorlu Bağlantılar

Merhabalar bu yazımda sizlere ST’nin yeni çıkardığı STM32F429 Discovery geliştirme kartından ve bu kart ile gerçekleştirdiğim başlangıç uygulamasından bahsedeceğim.

STM32F429 Discovery daha önce “STM32F3 Discovery Kit İncelemesi” yazımda bahsettiğim Discovery geliştirme kitlerinden şu tarih itibariyle en son çıkanıdır. Bende Çizgi-Tagem sayesinde inceleme fırsatı buldum. Çıkardığı her yeni discovery kitleri farklı özellikler ile donatan ST firması bu sefer STM32F429 Discovery kartına ise TFT renkli ekran ekleyerek önemli bir gelişme kaydetmiştir. Aşağıda STM32F249 discovery’e ait görüntü ve başlıca özellikleri verilmiştir.

STM32F429ZIT6 2 Mb Flash, 256 kb RAM hafızalı mikrodenetleyici (LQFP 144 kılıfta)
Kart üzerinde veya harici olarak programlama/debug yapabilen ST-LINK/V2
USB kablo üzerinden yada harici 3V veya 5V ile çalışabilme
2.4 inch QVGA TFT LCD
64 Mbit SDRAM
L3GD20 3 eksen Gyroscope(açısal hız ölçer) sensörü
2′si kullanıcıya tahsis edilmiş toplamda 6 adet LED
Reset ve genel amaçlı 2 adet push buton
USB OTG bağlantısı sağlayan konnektör
Mikrodenetleyici pinlerine kolay erişim sağlayan genişletme soketleri

stm32f429zit6-2mb-flash-256kb-ram-mikrodenetleyici-lqfp144

Bu günlerde üzerinde TFT ekran bulunduran bir geliştirme kartı ortalama 50$ gibi fiyatlardan başlıyor. STM32F429 Discovery kitin birim fiyatı kendi sitesinde 24$ olarak görünüyor. Kargo ücretleri hakkında bir bilgim yok. Yada onun yerine Çizgi-Tagemden 31$+KDV gibi bir fiyata yurt içinden kısa sürede temin edebilirsiniz. Fiyat performans olarak gerçekten çok güzel bir kit. Özellikle dokunmatik TFT ekran eklenmesi çok yerinde olmuş. Bu sayede rahatça görsel ve dokunmatik özellikler içeren uygulamalar gerçekleştirebilirsiniz.

Daha önceleri kullandığı işlemcilere renkli, grafik yada TFT ekran bağlamaya çalışan arkadaşlar bilir. Bir çok zorluğu vardır. Öncelikle bu ekranların temini zordur. Sonrasında montajı, kart çizimi, lehmimlemesi v.s. daha zordur. Hepsini yaptık ettik tamam güzel. Bu seferde kullandığımız LCD’nin içinde ki çipe ait dokümanları örnek kodları temin etmek sıkıntı oluyor. Kaldı ki bu işlemleri yaparken sorun çıkınca, sorunun yaptığımız bağlantılarda mı yoksa yazdığımız yazılımda mı olduğunu anlamak çok zor bir hal alıyor. Yoğun bir uğraştan, emekten sonra her şey yolunda giderse tebrikler ekranda deneme olarak kendi isminizi yazdırabilirsiniz. Bu kadar uğraş, harcanan zaman sadece LCD ile işlemcinizi haberleştirebilmek için ortada herhangi bir uygulama yok. He birde dokunmatik özelliği sağlamak için çeşitli dokunmatik paneller ve bunlar için özel üretilmiş ADC çipleri kullanmak gerekiyor ki o konuya hiç girmiyorum. :) Sonuç olarak bu işlemler sizi çok uğraştırır ve uygulamaya odaklanmaktan uzaklaştırır. STM32F429 Discovery kit sayesinde bu işlemlerle uğraşmadan direkt olarak uygulamanızı geliştirmeye başlayabilirsiniz daha kısa sürede prototipler geliştirebilirsiniz. Ayrıca ST’nin gerek TFT ekran gerekse kitin diğer özelliklerine ait farklı platformlarda çalışan bir çok örnek uygulaması vardır.

STM32F429ZI

STM32F429ZI kit üzerinde gelen mikrodenetleyicidir. Yanılmıyorsam ST’nin şu tarih itibariyle çıkardığı en gelişmiş Cortex-M4 işlemcili denetleyicisidir. İşlemcinin özellikle görüntü işleme, tft ekran sürme harici hafıza bağlama üzerine bir çok gelişmiş özellikleri bulunmaktadır. 2Mb Flash, 256 Kb RAM hafıza ve 180 MHz çalışama hızında 225 DMIPS işlem gücüne sahiptir. Bunlar bir mikrodenetleyici için gerçekten büyük değerler ve harika özelliklerdir. Mikrodenetleyiciye ait detaylı özelliklere buradan erişebilirsiniz. Sonuç olarak bu mikrodenetleyici ile bir çok gelişmiş uygulamalar yapabilirsiniz.

Kart üzerinde gelen diğer bir önemli donanım ise 64 Mbit RAM bellektir. Bilindiği gibi RAM belleklere hızlı bir şekilde erişip okuma yazma işlemi yapılabilir. Bu bellek ile mikrodenetleyicinin RAM belleğinden bağımsız görüntü işleme uygulamaları yapabilir büyük boyutlu resimlerinizi flash hafızadan yada kullandığınız başka bir kalıcı hafızadan RAM hafızaya aktarıp üzerinde işlemler yapıp ekranda görüntüleyebilir yada tekrar kaydedebilirsiniz. Sonuç olarak aktif bir şekilde görüntü işleme yapabilirsiniz.

Kart üzerinde değinmek istediğim diğer bir donanım ise açısal hız ölçen gyroscope sensörüdür. ST’ye ait olan L3GD20 3 eksen açısal hız ölçümü yapabilmektedir. Daha önceki discovery kitler de de bulunan bu sensör ile hareket, hız odaklı uygulamalar gerçekleştirebilirsiniz.

STM32F429 Discovery Kit Eksik bulduğum taraflar

STM32F429 kit gerçekten güzel bir kit fakat eksik tarafları var demesek bile kartta görmek istediğim şunlarda olsaydı daha iyi olurdu dediğim bir kaç özellik mevcut. Bunlardan ilki kalıcı bir hafıza birimi özellikle SD kart takabilecek bir soket olsaydı çok iyi olurdu. Bu sayede resim, müzik, metin belgesi gibi çeşitli dosyalarımızı kolayca karta yükleyip uygulamalarımızda kullanabilir yada yaptığımız uygulamalarda elde ettiğimiz verileri kolayca SD kart üzerinde saklayabilirdik. Yada orta boyutlu bir NAND flash v.s. bir depolama çipi iyi olabilirdi. Aslında SD kart olmasa da olur. STM32F429′un gelişmiş bir işlemci olduğunu söylemiştim. İşlemci üzerinde bulunan USB OTG portu ile USB flash bellek bağlayabilir ve SD kart yerine kullanabiliriz. Ama gerek yer kaplaması, güç tüketimi v.s. nedenler gerekse USB OTG uygulamalarının SD kart uygulamalarına göre daha zor olmasından (en azından bana göre) dolayı ben sd kart olmasını tercih ederdim. Ayrıca internette SD kartlara ait ortak kütüphaneler bulunduğundan uygulamalarınızı başka işlemcilere taşırken daha az zorluk çekersiniz.

Diğer bir yadırgadığım eksik ise akselemetro sensörünün olmaması. Daha önce ki discovery kitlerin bir çoğunda olan akselemetronun bu kitte olmaması olumsuz bir durum. Bana göre gyro yerine akselemetro ekleselerdi hatta ikisini birden ekleselerdi daha iyi olurdu.

Birde söylemeden geçemeyeceğim kart üzerinde küçük bir 640×480 yada 320×240 siyah beyaz yada 8bit renkli bir kamera modülü olsa çok iyi olurdu. :) Bu sayede başka hiç bir şeye gerek kalmadan kameradan görüntüleri elde edip işleyebilir istediğimiz gibi depolayabilir yada ekranda gösterebilirdik. Ama bunlarda kartın fiyatını şüphesiz biraz arttırırdı . Belki ST sesimizi duyar ilerde bu şekilde discovery kitler üretir. Zaten tahminimce bir önceki STM32F4 Discovery kit’te olduğu gibi bu kit içinde yakın zamanda çeşitli 3. parti firmalar bir çok modül ve genişletme kartı üretirler.

STM32F429 Discovery kart ile ilgili aktarmak istediklerim ve dikkatimi çekenler şimdilik bu kadar. Sonuç olarak kit güzel bir kit özellikle üzerinde dokunmatik TFT ekran bulunması çok iyi.

STM32F429 Discovery Örnek Uygulamamız

Bu kadar anlatımdan sonra kit ile gerçekleştirdiğim uygulamaya geçelim. Uygulamamız daha önce paylaştığım “Direnç renk kod hesaplayıcı devre Nokia 3310 lcd PIC16F88” devresinin benzeridir. Önceki uygulamada dokunmatik özelliği olmayan siyah beyaz nokia 3310 telefon ekranı kullanmıştım. Onun bile montajı lehimlemesi, yazılımı v.s. baya uğraştırmıştı. Bu uygulamada ise daha gelişmiş görsel dokunmatik özelliği olan bir uygulama yaptım.

2014-stm32f429-discovery-tft-resistor-calculator-lcd

Direnç Renk Kod Hesaplayıcının Çalışması

Yukarıda resimde uygulamanın başlangıç resmini görebilirsiniz. Uygulama diğer yaptığım uygulamada olduğu gibi piyasada kullanılan 4 renk dirençlerin renk kodlarına göre değerlerini hesaplar. Ekranımız dokunmatik olduğu için bütün giriş işlemleri dokunmatik olarak yapılır.

Ekranın alt köşesinde hizalama çizgileri ile ayrılmış 12 adet direnç renklerini temsil eden kutucuklar bulunmaktadır. Bu renkler siyah renkten başlayıp gümüş rengine kadar gitmektedir. Sırasıyla değerini hesaplamak istediğiniz direncin renklerini kutucuklara dokunarak girebilirsiniz. 4 rengin girilmesinden sonra uygulama direnç değerini ve tolerans değerini otomatik hesaplar ve ekrana yazdırır. Hatta direncin temsili resmini ekrana çizdirir.

Diğer uygulamada olduğu gibi bu uygulamada da bazı kurallar vardır. Bildiğiniz yada bilmediğiniz gibi 1. renk siyah, altın, yada gümüş girilemez, 2. renk aynı şekilde altın yada gümüş girilemez. 3. renk her hangi bir renk girilebilir 4. renk yani tolerans rengi ise sadece altın veya gümüş girilebilir. Piyasada 5 renkli daha çok tölerans renkleri bulunan dirençler bulunmaktadır. Fakat uygulamanın başlangıç seviyesinde olmasından, kartın tanıtımı ve TFT ekran, dokunmatik panelin kullanımına örnek olması açısından ben bu uygulamada 4 renk dirençlerin hesaplamasını yaptım. İstenirse uygulama geliştirilip çeşitli uygulamalar yapılabilir.

2014-stm32f429-discovery-kit-sample-stm32f429-discovery-kit-ornek-uygulama

calculator-discovery-resistor-stm32-stm32f4-stm32f429-tft-touch-value

Yukarıda uygulamaya ait çalışma görüntülerini görebilirsiniz. Aslında direnç renklerinin hesaplanması çok basit ama bu şekilde bir görsel uygulama ile yapmak çok daha eğlenceli oluyor. Fikir olarak aklımda uzun zamandır vardı ama yazının başında da belirttiğim gibi tft ekran ve dokunmatik kullanımının zorluklarından dolayı bir türlü gerçekleştirememiştim. Kısmet bu güneymiş. STM32F429 discovery kit ve ST’nin sağladığı örnekler sayesinde kısa sürede gerçekleştirdim. Uygulamanın kodlarını Keil ile C dilinde yazdım. Aşağıda uygulamanın main.c kodlarına ulaşabilirsiniz.

Uygulamayı yaparken ST’nin STM32F429 discovery kit için hazırladığı örnek kütüphanelerden ve örnek uygulamalardan faydalandım. Bu uygulamalar ve örnek kütüphaneler STSW-STM32138 sayfasında . Dosyalar içinde gerek kart üzerinde ki donanımlar gerekse denetleyicinin kendi çevresel birimlerine ait bir çok örnek ve kütüphane mevcuttur. Bu sayede hızlı bir şekilde uygulama geliştirmeye başlayabilirsiniz. Yalnız dosyaları indirdiğinizde kodlarda değişiklik yapamıyorsanız. indirdiğiniz dosya klasörüne sağ tıklayıp özellikler kısmından salt okunur çek işaretini kaldırın. Daha önce SMT32F3 discovery örneklerini incelerken de başıma gelmişti. Nedenini bilmiyorum ST kendi sitesine dosyaları salt okunur şekilde upload etmiş.

Uygulamaya ait main.c kod dosyası: stm32f429-discovery-ile-dokunmatik-direnc-hesaplayici.ZIP

Uygulamada Touch_Panele uygulamasından faydalandım. Uygulamada değişlik yapmak için indirdiğiniz main.c dosyasını STM32F429I-Discovery_FW_V1.0.1\Projects\Peripheral_Examples\Touch_Panel klasöründe bulunan main.c dosyası ile değiştirmeniz yeterli. Sonrasında Keil, IAR yada Atollic ile Touch_Panel projesini açıp istediğiniz şekilde düzenleyip geliştirebilirsiniz.

Son olarak uygulamaya ait çalışma videosunu aşağıda izleyebilirsiniz. Bir yazının daha sonuna geldik. Eksik gördüğünüz, anlamadığınız bir yer varsa söylerseniz düzeltmeye, yardımcı olmaya çalışırım. Başka bir yazıda görüşmek üzere, selametle..

  • osman

    merhabalar hocam,
    Bu projeyi microC for arm ile çalıştırabilir miyiz ?

  • Erdogan

    Erhan kardeşim eline sağlık, çalışmaların çok iyi çok güzel gerçekten. Senin gibi insanlara bu ülkenin ihtiyacı var, başarılarının devamını dilerim