Mikro Step
Kıdemli Üye
- Katılım
- 25 Eylül 2022
- Mesajlar
- 5,789
Bir programda bazi kutucuklari tiklayarak ekranda listelenmesi istenen dosyalari tanimliyoruz.
Ardindan da listele diyoruz. Ekranda listelenmis dosyalarin baskisinin alinip alinmadigina dair de yanlarinda minik bir icon oluyor.
Baskisi alinmamis dosyalarin baskisini aliyorum.
Bu is cok aptalca bir is ki fakat hata yapilirsa sonuclari agir olabiliyor.
Dosyayi tanimlarken tiklanmasi gereken kutucuklari dogru tiklamak hayati onemli.
Ben de tutup bir program yazdim. Sadece bir butona tikladigimda program benim adima kutucuklari seciyor secilmis dosyalari ekranda listeletiyor eger baskisi alinmamis dosyalar varsa onlari basiyor.
Boylece dikkat gerektiren oldukca sacma bir isten kurtulmus oluyordum. ustelik sifir hatayla.
Kisaca nasil yaptigima gelirsek, uygulama programina eklenti yapmam mumkun olmadigi icin robot programim ekranin fotografini cekiyor. kutucuklarin pixel olarak koordinatlarini bildigim icin ilgili koordinatlara mouse ile tikler attiriyor gorevi baslatiyor bu esnada yeni bir ekranda gelinceye kadar belirsiz bir zaman gecmesi gerektigi icin gene ekran fotolarini alip beklenen ekran goruntusunun gelip gelmedigini kontrol ediyordum.
Ardindan da baskisi alinmais dosyalarin baski alindi iconlarini gene foto cekme yoluyla ogrenip baskisini aldiracak butonlara mouse ile bastiriyordum
Gelelim simdiki sorunuma.
Cok kisa zaman sonra bilgisayarlara kisisel program yukleme yetkimiz elimizden tamamen alinacak. Yani yeni bilgisayara robot programimi yukleyemeyecegim.
Bu durumda bu otomasyonu yapmamin tek yolu kaliyor.
Ekranin karsisina bir kamera koymak ve bilgisayara robot mousumu takmak.
Robot mouse gene ilgili koordinatlari tiklayip ekranda degisime neden olacak. Kameradaki goruntuden de beklenen ekranin gelip gelmedigini tespit edip istedigim ekran geldi ise gene ozel bazi koordinatlari tiklatmam gerekecek.
Mouse kisminda sorun yok fakat kameradan aldigim goruntude islem yapmak beni zorlayacak. Zira ekran goruntusu mahrem. Ne yapacaksam bunu internetten bagimsiz MCU ile yapmak zorundayim.
Robot yailzim eskiden PC uzerinde kostugu icin 1 pixelin bile yeri kaymiyor nokta atisi ekran goruntusu hakkinda milyonlarca pixelden sadece bir kac tanesini kontrol etmem yetiyordu. Bunun icin ramdeki verileri pixel bazinda analiz etmem yetiyor.
Simdi ise bu kolaylik elimden alinacak. Kamerayi ekranin karsisina koydugumda kameranin acisi, kamera ile ekran arasindaki mesafe, masadaki titresim bile verileri dogru yorumlamami engelleyecek.
Iki sey secenegim var.
Ya cok ciddi goruntu isleme yaptiracagim ki bu konuda cok tecrubem yok. Ya da VGA RGB ve senkron bilgilerinden yararlanarak ramda yeniden kendi ekran verilerimi olusturmak.
Ikinci yontemi uygularsam gene goruntu isleme rutinlerim cok basite indirgenmis olacak.
Farkli bir yontem olarak mesela aklima analog cozumler geldi. RGB sinyallerinin iki VS senkron palsi araliginda integralini alirsam ekranin ortalama parlakligi hakkinda fikir edinmis olurum. Fakat bu ortalamayi ADC ile okumak ve degisime bakmak cok cok sikintili.
Ekran goruntusu degistiginde bu ortalama degisecek. (Ekrandaki goruntu degistigi halde pixel bazinda renkler degismezse yaniltici bir yontem)
En azindan ortalamaya bakarak ekran goruntusu degistimi degismedimi karari verebilirim. Fakat bu ekranda belirli bolgelerde icon varmi yokmu konusundaki sorusuna cevap veremeyecek.
Bu konuda gerek yok soyle soyle yap diyebileceginiz pratik fikirler var mi?
Ardindan da listele diyoruz. Ekranda listelenmis dosyalarin baskisinin alinip alinmadigina dair de yanlarinda minik bir icon oluyor.
Baskisi alinmamis dosyalarin baskisini aliyorum.
Bu is cok aptalca bir is ki fakat hata yapilirsa sonuclari agir olabiliyor.
Dosyayi tanimlarken tiklanmasi gereken kutucuklari dogru tiklamak hayati onemli.
Ben de tutup bir program yazdim. Sadece bir butona tikladigimda program benim adima kutucuklari seciyor secilmis dosyalari ekranda listeletiyor eger baskisi alinmamis dosyalar varsa onlari basiyor.
Boylece dikkat gerektiren oldukca sacma bir isten kurtulmus oluyordum. ustelik sifir hatayla.
Kisaca nasil yaptigima gelirsek, uygulama programina eklenti yapmam mumkun olmadigi icin robot programim ekranin fotografini cekiyor. kutucuklarin pixel olarak koordinatlarini bildigim icin ilgili koordinatlara mouse ile tikler attiriyor gorevi baslatiyor bu esnada yeni bir ekranda gelinceye kadar belirsiz bir zaman gecmesi gerektigi icin gene ekran fotolarini alip beklenen ekran goruntusunun gelip gelmedigini kontrol ediyordum.
Ardindan da baskisi alinmais dosyalarin baski alindi iconlarini gene foto cekme yoluyla ogrenip baskisini aldiracak butonlara mouse ile bastiriyordum
Gelelim simdiki sorunuma.
Cok kisa zaman sonra bilgisayarlara kisisel program yukleme yetkimiz elimizden tamamen alinacak. Yani yeni bilgisayara robot programimi yukleyemeyecegim.
Bu durumda bu otomasyonu yapmamin tek yolu kaliyor.
Ekranin karsisina bir kamera koymak ve bilgisayara robot mousumu takmak.
Robot mouse gene ilgili koordinatlari tiklayip ekranda degisime neden olacak. Kameradaki goruntuden de beklenen ekranin gelip gelmedigini tespit edip istedigim ekran geldi ise gene ozel bazi koordinatlari tiklatmam gerekecek.
Mouse kisminda sorun yok fakat kameradan aldigim goruntude islem yapmak beni zorlayacak. Zira ekran goruntusu mahrem. Ne yapacaksam bunu internetten bagimsiz MCU ile yapmak zorundayim.
Robot yailzim eskiden PC uzerinde kostugu icin 1 pixelin bile yeri kaymiyor nokta atisi ekran goruntusu hakkinda milyonlarca pixelden sadece bir kac tanesini kontrol etmem yetiyordu. Bunun icin ramdeki verileri pixel bazinda analiz etmem yetiyor.
Simdi ise bu kolaylik elimden alinacak. Kamerayi ekranin karsisina koydugumda kameranin acisi, kamera ile ekran arasindaki mesafe, masadaki titresim bile verileri dogru yorumlamami engelleyecek.
Iki sey secenegim var.
Ya cok ciddi goruntu isleme yaptiracagim ki bu konuda cok tecrubem yok. Ya da VGA RGB ve senkron bilgilerinden yararlanarak ramda yeniden kendi ekran verilerimi olusturmak.
Ikinci yontemi uygularsam gene goruntu isleme rutinlerim cok basite indirgenmis olacak.
Farkli bir yontem olarak mesela aklima analog cozumler geldi. RGB sinyallerinin iki VS senkron palsi araliginda integralini alirsam ekranin ortalama parlakligi hakkinda fikir edinmis olurum. Fakat bu ortalamayi ADC ile okumak ve degisime bakmak cok cok sikintili.
Ekran goruntusu degistiginde bu ortalama degisecek. (Ekrandaki goruntu degistigi halde pixel bazinda renkler degismezse yaniltici bir yontem)
En azindan ortalamaya bakarak ekran goruntusu degistimi degismedimi karari verebilirim. Fakat bu ekranda belirli bolgelerde icon varmi yokmu konusundaki sorusuna cevap veremeyecek.
Bu konuda gerek yok soyle soyle yap diyebileceginiz pratik fikirler var mi?
Son düzenleme: