Öğrenmeyi Öğrenmek | Bölüm 3: Daha Çok Yolum Var…

Photo by Blaz Erzetic on Unsplash

2. bölümde bahsettiğim hikayeye kaldığı yerden devam ediyoruz. İtiraf etmeliyim ki robot yapma hayalinde ne çok şey öğrenmem gerektiğini sonradan farkettim. Bazen kendi kendimize insanoğlunun aslında ne kadar cahil olduğunu anlamamız için bazı dersler almamız gerekiyor. Buradaki cehalet, daha çok neyi yüklendiğimizin farkında olmamamızdan kaynaklı. Bir şeye kısa bir süre bakıp “ben de yapabilirim, ne var ki bunda” dediğimiz oluyor ve “onda” ne olduğunu ancak içine girdikten sonra anlayabiliyoruz.

İlk mikroişlemci deneyimimle ilgili hedeflerime kısa sürede ulaşmıştım ulaşmasına ama hedeflerim doğrultusunda bir robot yapabilmek için aynı zamanda aşağıdaki konular hakkında da bilgi sahibi olmam gerektiğini farkettim:

1- Hareket etmesini sağlayacak motor çeşitleri ve kontrolü (motor driving)
2- Sesli komutlar ve playback için ses işleme (audio processing)
3- Ses işleme konusunda mikrofon girişiyle ve diğer sensörlerle alakalı olarak mikroişlemci üzerindeki analog girişleri kullanabilme
4- Ses işlemeyle ve diğer depolama ihtiyaçlaryla alakalı olarak sd kart gibi harici depolama birimlerinin kontrolü
5- Yazılım için kendi kendine öğrenme üzerine algoritmalar
6- Robotun mekanik tasarımı
7- Ev ortamında elektronik devre yapımı

Hedefime yaklaştığımı düşünürken bu başlıkların her biri hakkında kısa kısa araştırmalar yaptıktan sonra sanki hedefim başlangıç noktasından daha da geriye gitmiş gibi hissettim, aslında daha çoook yolumun olduğunu farkettim.

Emin adımlarla ilerlemek için başka bir yol izlemeliydim aksi halde herşey birbirine girecek gibi gözüküyordu. Bilmem gerekenleri gruplayarak madde sayısını azatlamaya çalışırken analog konusunun bir çok şeyle ilgili olduğunu, bu konuyu iyi anlayabilirsem diğer konularda rahat edeceğimi düşündüm. Zaten sonraki tecrübelerimde elektroniğin özünün aslında “analog” sistemlere dayandığını iyice anlayınca, daha önceden doğru bir karar vermiş olduğuma sevindim.

O yüzden kendime “dijital termometre” yapmak gibi yeni bir alt hedef belirledim ve bu sayede;

Bir sensör nasıl çalışır, sensör analog giriş ile nasıl okunur, okunan veri nasıl işlenir, işlenen veri ilkel bir şekilde de olsa nasıl bir çıktıya (görüntü) dönüşür, bir baskı devre nasıl tasarlanır, ev ortamında nasıl üretilir

konularını öğrenmiş ve tecrübe etmiş olacaktım. Aynen verdiğim sırayla bu konuları bir kaç hafta boyunca araştırıp çeşitli denemeler yaptım ve sonunda 1 derece sapmayla çalışan ve garip garip ekleme çıkarmalarıyla biraz da terminatörü andıran aşağıdaki termometreyi yapmayı başardım:

5 x 10 cm ebatlarındaki bu termometreyi yaparken daha önce kullandığım PIC16F690 ‘dan ilerlemeyi tercih ettim çünkü hem işlemciye aşinalığım vardı hem de yapısal olarak basit bir işlemciydi. Ek olarak LM335 sıcaklık sensörü, dual 7 segment led ekran ve CD4511 decoderle beraber çeşitli dirençler kullandım.

Analog girişten okuduğum değerleri görüp, çeşitli hesaplamalar yapıp doğru çıktıyı aldığımdan emin olmam gerektiğinden, gömülü cihazlarla ilgili en büyük dertlerden biri olan hata ayıklama konusuna çözüm olarak, önce daha okunabilir bir ekrana çeşitli veriler yazdırarak ilerlemek istedim. Dolayısıyla yukarıdaki terminatörden önce aşağıdaki resimde bulunan ve burada detaylı olarak anlattığm LCD 1602 model ekranı kullanmayı öğrenmem gerekti:

Öğrenecek ne çok şey vardı..

Buraya kadar yaptığım şeylerin sonucu olarak mikroişlemci kontrolü konusunda da artık istediğim gibi kod yazabilir seviyeye gelmiştim ve yapabildiğimi görmek beni daha da cesaretlendirdi.

Bir yandan eşimin “robot nerede, robot!” sorularına politik cevaplar vermeye çalışırken yoluma biraz mekanik ağırlıklı olarak devam etmeye karar verdim ve yeni alt hedef olarak 3 eksenli mini bir CNC yapmak istedim. Bu CNC ‘yi baskı devre hazırlama aşamasında oyma ve delme işlemlerinde kullanacaktım. Hem robot için motor kontrolleri ve SD kart kontrolü konularında tecrübe edinecektim, hem de aktif olarak kullanabileceğim ve işime yarayacak bir şey yapmış olacaktım.

CNC yapmak aslında ayrı bir proje olmalıydı. Çünkü sadece elektronik değil, işin içine mekanik tasarım vs. de giriyordu:

3 ‘ü 1 arada: Elektronik mühendisliği, yazılım mühendisliği ve makine mühendisliği. Mekatronik mühendisliği de diyebiliriz sanırım.

Yazımın başında bahsettiğim “neyi yüklendiğinin farkında olmak” sözünden kastım aslında buydu. Bir garip yazılım mühendisiydim, elektronik mühendisliğine soyundum, soluğu mekanikte aldım. Anlatabildim sanırım..

Mini CNC projesini sanki ticari bir ürün yapıyormuş gibi mümkün mertebe modüler olarak tasarlamaya çalıştım: Bir merkezi kontrol ünitesi, bir güç kartı ve bir kumanda. İşin özü step motor kontrolü ‘ydü ama söz konusu kontrol milimetre hatta mikrometre düzeyinde olunca farklı tecrübeler edindim.

Bu projeyi elektronikte daha profesyonel ve ticari seviyede başka projelere hızlı bir şekilde geçiş yaptığım için hiç bir zaman tam olarak bitirmeye fırsatım olmadı, 3. eksen gariban bir şekilde yapılmayı bekliyor ancak aşağıda daha önce bittiği kadarıyla hazırladığım bir videoyu paylaşmak istiyorum:

Devam edecek..

İstanbul‘da bir Yazılım ve Teknoloji Ar-Ge Mühendisi. Ürün, yazılım, sistem analisti ve tasarımcısı. http://www.zaferaltun.com/

İstanbul‘da bir Yazılım ve Teknoloji Ar-Ge Mühendisi. Ürün, yazılım, sistem analisti ve tasarımcısı. http://www.zaferaltun.com/