Gömülü Sistem Rehberi -9- Mikrodenetleyicileri Öğrenmek Yeterli mi ?

Gömülü sistem geliştiriciliğini donanım ve yazılım olmak üzere iki kısma ayırabiliriz. Yalnız ülkemizde kalifiye eleman eksikliği sebebiyle ayrı ayrı donanımcı ve yazılımcı olmanın getireceği pek çok sorun olacaktır. Üstelik kendi işinizi yapıyorsanız ister istemez bütün konularda bilgi sahibi olmanız gerekecektir. Çünkü donanım olmadan yazılımla, yazılım olmadan da donanımla ortaya bir ürün koymamız mümkün değildir. Bu yüzden sizin de donanım ve yazılım konusunda eş zamanlı olarak kendinizi geliştirmeniz ve bir noktada sabit kalmamanız gereklidir. Biz Arduino öğrenirken Arduino’yu bahane ederek gömülü sistemlere giriş yapıp en temel bilgileri öğrenmeye başladığımız gibi 8-bit mikrodenetleyicileri öğrenirken de aslında 8-bit mikrodenetleyicileri bahane ederek temel bilgilerde ilerlemiş olmaktayız. Burada başka bir bilgiye sahip olmadan datasheeti okuyup mikrodenetleyiciyi öğrenmemiz bize pek bir fayda getirmeyecektir. Ayrıca datasheeti anlamak için bile temel bilgi gerektiğini ana dili İngilizce olsa dahi temel bilgisi olmayan birinin datasheetten bir şey anlamayacağını daha öncesinde size söylemiştik.

8-bit mikrodenetleyici üzerinde çalışmak bize pek çok alanda bilgi ve deneyim katmaktadır. Bu alanları kesin olarak belirlemek istersek şunlardan bahsedebiliriz,

  • Analog Elektronik
  • Dijital Elektronik
  • Devre Tasarımı ve Üretimi
  • Programlama
  • Mikroişlemci/Bilgisayar Mimarisi
  • Pratik Elektronik

Bu yazdığımız konuların gömülü sistemler üzerinde çalışacak olanların karşılaması gereken gereksinimlerden çok farklı olmadığını görmekteyiz. Yalnız bu gereksinimler üzerinde ayrı ayrı ilerlemeye kalkarsak oldukça fazla zaman harcarız ve bu bilgileri birbirine bağlamakta sıkıntı yaşayabiliriz. Örneğin çok güzel analog veya dijital devre kurarız fakat bunları birbiriyle beraber kullanmayı bilemeyebiliriz. Mikrodenetleyiciler bütün bunları bir araya toplamakta ve gerçekten iş yapabileceğimiz bir alan olmaktadır. Bazı mühendislik öğrencileri o kadar teorik bilgi bilmesine rağmen bunları en basit derecede bile pratiğe dökememektedir. Biz bunu istemediğimizden dolayı bu ilerlemeyi başta değil pratik yaparak ve konuları beraber işleyerek yapmak isteriz.

Örneğin bir mikrodenetleyici üzerinde çalışmak istediğimizde analog elektroniğin basit konularına ihtiyaç duyarız. Bir led yakmak için gereken gerilim, direnç kullanma, besleme devresi, osilatör devresi, koruma diyotu gibi basit bir mikrodenetleyici sistemi tasarlamak için gereken analog elemanları ve devreleri öğrenmek zorunda kalırız. Fakat işi ilerlettiğimizde röle, transistör, potansiyometre gibi elemanlar karşımıza çıkar ve bu röleleri sürerken diyot kullanmak gerektiğini, gerilim bölücü dirençleri ve analog okumayı öğreniriz. Daha ilerisinde ise motor sürerken PWM sinyalleri, frekansları öğrenmek zorunda kalırız. Kısacası mikrodenetleyici ile yaptığımız kontrol uygulamalarının çoğu analog elektronik bilgisi gerektirmekte ve bizi bu konuda mecbur bırakmaktadır. Analog elektronik konuları uygulamalarda basitten zora gittiği için mikrodenetleyiciler üzerinde çalışırken analog elektronik konularını kademeli bir şekilde öğrenebiliriz. Bu örnekte mikrodenetleyiciyi öğrenmenin yeterli olmadığını aynı zamanda analog elektroniğe dair bilgilere sahip olmanız gerektiğini anlayabilirsiniz.

Dijital elektronik konusunda mikrodenetleyiciler analog konularda olduğu kadar fakir değildir. Kendi iç birimleri dijital sistem üzerine bina edildiğinden pek çok dijital elektronik uygulamasını ekstra bir dijital entegreye ihtiyaç duymadan yapabilirsiniz. Fakat mikrodenetleyicileri öğrenmek ve anlamanın dijital elektroniği öğrenmekten geçtiğini bilmeniz gereklidir. Dijital elektronik sadece 74 serisi entegreler ile sınırlı değildir ve çoğu zaman kullandığınız algılayıcı, modül ve entegre dijital sisteme entegre edilmiş halde bize gelir. Artık LM35 gibi analog sıcaklık algılayıcıları yerine dijital sistemi kullanan DHT22, DS18B20 gibi sıcaklık algılayıcıları kullanılmaktadır. Siz bu noktada seri iletişim ve dijital kontrol seviyesinde ilerlemeniz gereklidir. Ayrıca 74 serisi dijital entegreleri kullanmak bazı noktalarda hayat kurtarıcı olabilir. Mikrodenetleyici uygulamalarında pek çok zaman ötemeli yazmaç ya da çoklayıcı kullanmanız gerekecektir. Bazen sayaçlar vasıtasıyla frekans bölücü yapmanız gerekecek bazen de dijital-analog ya da analog-dijital çevirici entegreleri kullanmanız gerekecektir. Ayrıca sürücü entegrelerden de bahsedebiliriz. Bu konuda dijital elektroniği öğrenmek mikrodenetleyici tabanlı uygulamalarda analog elektronikten bile önce gelmektedir. Ayrıca işin mantığını anlamak için temelini öğrenmek gerektiği konusunda hemfikir olmalıyız. Dijital elektronik analog elektronik gibi matematik ve fizik bilgisi gerektirmediği ve mantık tabanlı olduğu için öğrenmesi de kolaydır. O yüzden en azından 1-2 sayısal elektronik kitabı alın ve dijital elektronik hakkında temeliniz olsun.

Devre tasarımı ve üretimi mikrodenetleyicileri öğrenirken ister istemez öğrendiğimiz konulardan biridir. Fakat bunun artık eskiden bu şekilde olduğunu söyleyebiliriz. Artık geliştirme kartı, modül ve breadboard kullanım oranı ciddi bir biçimde artmıştır ve çoğu projeyi artık breadboard üzerinde kabloları birbirine bağlayarak yapmaktayız. Bu durumda devre kurmayı ve kalıcı devre tasarımını öğrenememekte ve hatta yaptığımız projelerde bile breadboard kullanmak zorunda kalmaktayız. Örneğin ben pek çok öğrencinin robot yapmak istediklerinde şasenin üzerine breadboard koyduklarını ve devreyi bunun üzerinde yaptıklarını görmekteyim. Bu bizim tasvip etmediğimiz bir durumdur. Proteus, EasyEDA, Sprint-Layout, Eagle gibi programları öğrenmek gerekli olup buradan çizdiğimiz PCB’leri üretmeyi veya ürettirmeyi bilmemiz gereklidir. PCB kart tasarımı dijital elektronik gibi kitabını alıp okuyup çoğu bilgiyi öğreneceğiniz bir alan değildir. Pratik ve tecrübeye dayalı olduğu için zamanla onlarca PCB çizerek iyi bir PCB’nin nasıl yapılması gerektiğini öğrenmeniz gerekecektir. Aynı zamanda yapılmış PCB’leri incelemeniz de bu yönde size katkı sağlayacaktır.

PCB çizmek ve üretmek kolay olsa da sizin yaptığınız iş “kart üretmek” ile sınırlı kalmamalıdır. Bir kart kapalı bir kutuya girdiği zaman cihaz haline gelmektedir. Bu projenin son aşaması olup kartı cihaz haline getirmekte de bir el becerisi ve işçilik gereklidir. Bu yönde pratiğinizi geliştirmeniz ve gerekli ekipmanları almanız gereklidir. Örneğin panel tasarımı, etiket tasarımı, kutulama gibi konularda çalışmanız gereklidir. Her biri ayrı bir ustalık olduğu gibi mikrodenetleyici öğrenirken pek ala öğrenebileceğiniz konulardır. Örneğin LCD ekran ve düğmelerden ibaret bir devre tasarlasanız da bir elektronik cihaz kutusu alıp bunun panelinde LCD ekran ve düğmeler için yer açmalı, aradaki kablo bağlantılarını çoğu zaman konnektörler vasıtasıyla yapmalı, vidalarla elemanları sabitlemek için vida yuvası açmalısınız. Bu durumda alacağınız pek çok malzeme ve ekipman olacaktır. İş yapmak istiyorsanız bu konuda da uzmanlaşmanız gerekecektir.

Mikrodenetleyiciler üzerinde çalışırken aynı zamanda programlama yeteneğimizi geliştirme imkanı buluruz. Bu programlama yeteneği sadece mikrodenetleyiciyi programlama yönündeki Assembly/C dillerini kullanmadan ibaret değildir. Bir mikrodenetleyici projesini bilgisayar veya akıllı telefon ile beraber kullanmamız gerektiğinde bunlara ait yazılımı da öğrenmek zorunda kalırız. Biz hep zorunda kalmak tabirini kullansak da öğrenmenin anahtarı aslında bu tabirdedir. Örneğin size okulda matematik dersi anlatırlarken ne günlük hayatta kullandığınız ne de kullanmak zorunda kalacağınız bilgileri anlatmaktalardı. Pek çok öğrenci de bunlar bizim günlük hayatta ne işimize yarayacak diye sorup duruyordu haliyle. Öğretmenlerin buna pek bir cevabı olmasa da biz burada şunu  öğrenin dediğimizde ne işinize yarayacağını da sizlere açıklayabiliyoruz. Burada zorunda olmadığı halde öğretilen bilgilerin yerine öğrenmek zorunda kalınan bilgileri görmekteyiz. Gömülü sistemler üzerinde çalışmanın en güzel noktalarından  biri de budur. Siz birşeyler yapmak için öğrenmek zorunda kalıyorsunuz ve işinize yaramayacak bilgiyi öğrenmiyorsunuz. O yüzden ben gidip size şu dili veya şu platformu öğrenin demeyeceğim. Siz proje yaptıkça ve bir alanda çalışmaya başladıkça zaten onu öğrenmek zorunda kalacaksınız.

Mikroişlemci ve bilgisayar mimarisini öğrenmek zorunda olduğunu hissetmek sizin ilerlediğinize en büyük delillerden biri olacaktır. Çünkü bu noktada artık siz datasheeti incelemeye başlamış ve diyagramları pek anlayamamış yada Assembly’e geçip komutların mantığını anlayamamış olmanız gerektir. Bu noktada sizin en ileri adıma geçebilmeniz için bunu öğrenmeniz şarttır. Bizim mikroişlemci ve mikrodenetleyici mimarisi üzerinde yoğunlaşmamız ve bu konuda eğitim makaleleri hazırlamamız sizi en ileri seviyeye götürmek içindir. Çoğu eğitim ve kitapların hedefi sizi giriş seviyesinde tutmak iyileri de orta seviyeye getirmek olsa da biz kimsenin orta seviyede kalmasını kabul etmiyoruz. Biz kendimiz ilerlediğimiz gibi diğerleri de bizimle beraber ilerlemelidir. Bu konuda en büyük adımlardan birinin mimari öğrenmek olduğunu tecrübe ederek öğrenmiş birisi olarak sizin de bir noktadan sonra mimari öğrenmeniz gerektiğini savunuyorum. Mikrodenetleyicileri öğrenirken ister istemez ileri seviye için mimari öğrenmeniz gerekecektir. Çünkü datasheetin büyük kısmı mimariden ibarettir ve mimariyi tam olarak anlamadıkça mikrodenetleyiciyi anlamış olmazsınız. Bu mimariyi öğrenmek için tek kaynak datasheet olmamaktadır. Mimari eğitiminde sizin için gerekli olan bilgiler sitemizde yazılıdır. Bu konuda Türkçe kaynak çok az olduğu için mimari alanına özellikle yoğunlaştım.

Pratik elektronik sürekli tecrübe ettiğiniz ve  yaşayarak öğrendiğiniz bir konudur. Fakat pratiğe yönelik elektronik kitapları da mevcuttur. “Arduino ile şunu yapıyoruz.” diye iki kablo bağlamanın pratik olmayacağını şimdiye kadar anlamış olmanız gereklidir. Pratikte size en büyük katkısı olacak şey tam kapsamlı bir elektronik cihazı baştan sona yapmaktır. Örneğin EPE dergisi gibi dergilerde bazı projeler bu niteliktedir. Hazır projeyi bakarak yapmanız bile size pratik açısından büyük fayda sağlayacaktır. İlla kendi projeniz olması gerek değildir. Hobi elektronikçiler işin pratik yönüyle daha çok ilgilenip dergilerde ve internette hazır olan devreleri ve projeleri sıkça kullanmaktadır. Sizin pratik kazanma gayesiyle bu hazır projeleri yapmanızda bir sakınca yoktur. Sizin de pratik kazanmak için oyuncakvari projeleri değil yabancı elektronik dergilerini ve kaynaklarını tarayarak güzel projeleri yapmanız gereklidir.

Bir dergide yer alan amatör projenin amatörler tarafından cihaz haline getirilmiş halini yukarıda görmekteyiz. Aslında bu konu tamamen sizin ustalığınıza bağlıdır. Aynı projenin bir başka biri tarafından şu şekilde cihaz haline getirildiğini görmekteyiz.

Gördüğünüz gibi bu kutulamayı, paneli ve etiket tasarımını yapmadıktan sonra cihaz ticari bir değeri olmayan elektronik kart olmaktan öte gidememektedir. Bu konuda çeşitli yöntemler ve aletler bulunmaktadır. Örneğin bu panelde düğmeleri için açılan delik veya ekran için yapılan pencere CNC tezgahıyla yapılabilir.

Görüldüğü gibi bütün bunlar mikrodenetleyici merkezli ve mikrodenetleyiciler ile beraber yürütülmesi gereken birçok alan olmaktadır. Bunları öğrenmeden sırf bir mikrodenetleyici bilgisi ile pek bir şey yapmanız mümkün değildir. O yüzden mikrodenetleyicileri öğrenirken bakış açınızı daraltmamalı ve öğrenmeye oldukça aç olmalısınız.

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

UYARI!!

 

 

 

 

 

 

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

1 Response

  1. Alihan dedi ki:

    Böyle bir seri hazırladığınız için kendi adıma çok teşekkür ederim. Bu konu hakkında ki yazınızı bekliyordum özellikle. Kolaylıklar diliyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.