Bu ilginç bir düşünce. Okuyunca biraz fikir yürüttüm.
Şimdi ben amatör halimle gidip bir üniversitede mikroişlemciler konusunda bir ders anlatacağım.
Hezarfen'e sık sık (özellikle yarışma dönemlerinde) üniversitelerin ekipleri geliyor. Otonom uçuş, görev uçuşu vs için çalışmalar yapıyorlar. Kimse kusura bakmasın ama günümüz gençleri kendi akıllarını o kadar beğeniyor ki, kimseden bir şeyler öğrenme heveslisi değiller. En büyük hedefleri en kısa yoldan istenilen görevi halledip, imkan varsa dereceye girmek. Hazır ürünler, hazır yazılımlar, en iyi ihtimalle hazır kütüphaneler ile mikrokontrolör kullanıyorlar.
Büyük çoğunluk derinlemesine bilgiyi anlamsız buluyor, hor görüyor, bir şeyi derinlemesine anlamak isteyenle dalga geçiyor. Ayrıca kalıplar içinde kalmaya programlandıkları için yeni ve sıradışı bir şey yapmaları çok zor. Tabii arada bu kalıpları kırabilen, öğrenme ve anlamaya meraklı azınlığı ayrı tutuyorum.
Biz bu ECU işine girişirken ben bir planlama yapmış ve ilk aşamada mikrodenetleyici olarak Atmega328 kullanmaya karar vermiştim. Bunun en önemli nedeni, Atmega328'i oldukça iyi tanıyor olmamdı. Oturup gerekli özellikleri kontrol ettiğimde de yeteceğini düşündüm. Hazırladığım devrede Atmega328'in boş bacağı kalmadı! Kod ise şu anda 1.50 versiyonda ve işlemci kaynaklarının % 80'ini kullanıyor. Ben tüm bu şeyler üzerine kafa patlatıp planlama yaparken bir arkadaşım o işlemciyle bu işin asla olamayacağını, daha güçlü bir altyapı gerektiğini, boşa kürek çektiğimi söylemişti. Sükûnetimi koruyarak kendisine hangi gerekçelerle Atmega328'in yetersiz kalacağını düşündüğünü ve yerine ne önerdiğini sordum. Tatmin edici bir yanıt alamadım. Halbuki soruş amacımı ona da anlatmıştım. Demiştim ki "eğer bu işlemcinin yetersizliği konusunda beni ikna edersen hiç bu zahmete girmeyeceğim, farklı bir yol izleyeceğim, o nedenle önerilerin çok değerli". Ama öneri alamamıştım. "Senin bu konuda bir deneyimin varsa ana hatlarıyla paylaşır mısın" dediğimde de aslında sadece düşünce bazında bir ECU oluşturma fikrinin olduğunu ama daha ileri gitmemiş olduğunu görmüştüm. Bir başka örnek daha vereyim... Yine bizim ECU geliştirme grubundaki bir arkadaş, propan solenoidi kontrolü ile ilgili sıkıntılarımı aslında çok kolay bir şekilde çözebileceğimi anlattı geçen gün. Kısaca açıklayayım, propan debisini kontrol edebilmek için valfin hızlı bir şekilde açılıp kapatılması (yani PWM uygulaması) gerekli. Ama klasik PWM sinyali elektromıknatıs içeren solenoid için fazlaca hızlı kalıyor. Bu arkadaş çok basit (!) bir kodla sorunu çözmüş. Örneğin valfi açıyor, delay() kullanıyor ve sonra valfi kapatıyor. Kendisine ECU gibi karmaşık bir sistemde delay() gibi işlemciyi tamamen bloke eden bir komut kullanılamayacağını, eğer kullanılırsa o esnada kontrolü gereken diğer parametrelerin kontrolünün mümkün olamayacağını ne yazık ki anlatamadım. "Ben denedim çok iyi çalıştı" dedi. Denediği ise sadece solenoid valf olan bir sistemdi. Yani bir ECU değil.
Kısaca insanların algısı ve bakış açıları çok ilginç farklılıklar gösterebiliyor. Kendi bildiklerinin daha doğrusu bildiklerini sandıklarının dışına çıkmaları neredeyse imkansız ve yanlış da olsa kendi kafalarındakileri ölümüne savunma eğilimindeler.
İşte tüm bu nedenlerle, bir üniversitede değil de belki bir ilkokulda ders anlatmayı tercih ederdim... Ağaç ancak yaşken eğilebiliyor...