Advisable thermostat for Heat, Moving and Time = AHMT ifadesindeki T‘ye geldik: Zaman.
Çok basit gibi dursa da özünde Mutlak Zaman‘ı ölçmek, alengirli bir mevzu. Zamanı ölçme işi boyunca da zaman geçtiği için konun içinden ucu Heisenberg’e giden ince bir yol geçebilir 🙂
Şükür bizimki o kadar derin bir mevzu değil ama bazı yerlerde dikkatli olmakta fayda var.
Görsel: Mathew Maher,
Evveliyat: #1, #2, #3, #4, #5, #6, #7, #8
Zamanlama sorunuyla, her dakikanın sekizinci saniyesinde işlem yapması gereken bir bot tasarlarken karşılaşmıştık. Pek çok detayı hesaplayıp buna göre tedbir aldığımızı düşünüyorduk. Ancak kim derdi ki; Windows’un saati saniye bazında doğru çalışmıyor. Maalesef böyle bir durum varmış. Ardından buna bir çözüm bulduk: Her dakika Windows’un saatini Atom Saati sunucularına göre güncelleyen programlar kurduk.
Fakat bir gün hesaplayamadığımız bir olay daha gerçekleşti. Yazdığımız botun üzerinde çalıştığı program da zamanlama derdinden muzdaripti ve güncellemelerden birisinde, kendi zamanlama sistemlerini 15 saniyede bir milisaniye bazına düzeltme yapmak için ayarlamışlardı. Fakat biz bunu anlayana kadar, bir haftalık kazancımızı kaybettik :((:
Bize, Windows’tan ve üzerinde çalıştığı sistem bağımsız bir şekilde, her dakikanın sekizinci saniyesinde tetiklenecek bir sistem lazımdı. İlk o zaman aklımıza Robot Kol yapma fikri düştü. Dokunmatik bir ekran alıp, kolu programlayacaktık ve söz konusu zamanlarda ekrana dokunacaktı.
Böylece Maker/Robotik/Arduino dünyasına Merhaba demiş olduk.
Ancak hareket ettirme olaylarına bakarken, Python‘un klavye ve fareyi de rahatlıkla kontrol edebildiğini gördüm. Robot kola gerek kalmadığı için Python ile muhabbetimizi Merhaba’nın ötesine taşıdık.
“Zamanlama Sorunu”, İKİ SÜPER OKYANUS için bize birer kapı aralamış oldu.
Önceden şerbetli olduğumuz için AHMT için, zamanlama olayını yazılımsal olarak nasıl çözeriz? şeklinde beyhude bir uğraşa girmeden, direk Gerçek Zaman Saati modülünü sisteme bağladım.
Popüler bir modül olduğu için çeşitli kütüphaneleri var. Ancak bazıları bi şekilde çalışmıyor. En azından bende çalışmadı. Çalışanı versiyonunu şu şekilde mevcut kodlarımıza adapte edebiliyoruz:
Kod kısmına bunları yazdıktan sonra indirdiğimiz kütüphane dosyalarının …\Arduino\libraries\ klasörü altında olduğundan emin oluyoruz.
Modül SDA ve SCL pinlerine bağlandığı için kullandığımız kartta bu pinlerin kaçıncı pine denk geldiğini bilmemiz gerekiyor.
Nano için durum şöyle:
yani A4 ve A5 pinlerine bağlıyoruz.
devam edecek..