Ana Sayfa · Akademi · Robotik ve Kodlama · Sensörler ve Aktüatörler · Sensör Verisini Filtrelemek

Sensör Verisini Filtrelemek

Gürültülü sensör verisini ortalama alma ve eşik/histerezisle yumuşatmayı öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Sensörlerden gelen ham veri küçük dalgalanmalar içerir; bu titremeyi azaltmak için birkaç okumanın ortalamasını alır ve eşik değerlerine küçük bir tampon ekleriz.

Üretilecek kanıt

Bir ışık sensörü ve bir LED ile küçük bir “gece lambası” kur. Amacın, ışık azalınca LED’in yanması ama titrememesi. Sensörü okuyup değeri ekrana yaz. Sabit ışıkta sayının kaç birim oynadığını not et. Son 5 okumanın hareketli ortalamasını hesapla. Ekrandaki titremenin azaldığını gözlemle. Tek eşikle dene: ortalama < 500 ise LED yak . Elinle sensörü yavaşça…

Kontrol tuzağı

Tek okumaya güvenmek Bir anlık değere bakıp karar vermek, gürültünün seni yanıltmasına açık kapı bırakır. Her zaman birkaç okumayı birleştir. Çok fazla okuma ortalamak Ortalamayı 50 okumaya çıkarırsan sonuç çok düzgün olur ama sensör gerçek değişime çok geç tepki verir. Işığı kapatsan bile lamba geç yanar. Denge…

Sonraki bağlantı

Kalibrasyon: Bir sensörün ham değerlerini gerçek dünyadaki anlamlı birimlere nasıl eşleriz?

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre30–45 dk
Ön koşulRöle Nedir?
İçerikStandart ders · 1.415 kelime
Son güncelleme

Bir cümlelik özet

Sensörlerden gelen ham veri küçük dalgalanmalar içerir; bu titremeyi azaltmak için birkaç okumanın ortalamasını alır ve eşik değerlerine küçük bir tampon ekleriz.

Neden önemli?

Bir önceki derste rölenin küçük bir sinyalle daha büyük bir devreyi kontrol etmesini öğrendik. Peki o küçük sinyali üreten sensöre ne kadar güvenebiliriz?

Bir ışık sensörünü sabit bir masaya koyup değerini ekrana yazdırırsan sayının hiç durmadan titrediğini görürsün: 512, 514, 511, 515, 513... Işık aslında değişmediği hâlde sayı oynar. Buna gürültü (noise) denir.

Gürültü küçük gibi görünür ama sorun çıkarır. Bir eşiğe çok yakınsa robotun kararı bir açılıp bir kapanabilir. Örneğin “ışık 512’den küçükse LED yansın” dersen, değer 511 ve 513 arasında zıpladığında LED saniyede birçok kez titreşir. Bu ders, o titremeyi nasıl sakinleştireceğimizi anlatıyor.

Ham veri neden titrer?

Sensörün okuduğu değer tek bir sebepten değil, birçok küçük etkinin toplamından oluşur. Değer bu yüzden sabit kalmaz.

Gürültünün kaynakları

Gürültü genellikle şunlardan gelir:

Günlük hayattan örnek: Banyo terazisi

Terazinin üstüne çıktığında ekran bir an 61,2 sonra 61,4 sonra 61,1 gösterip birkaç saniye sonra tek bir sayıda durur. Terazi ilk okumaları toplayıp sakinleşmelerini bekler. Ağırlığın değişmiyor; terazi sadece gürültüyü yok sayıyor.

Günlük hayattan örnek: Termometrenin bekleme sesi

Kulaktan ateş ölçen bir termometre ölçümü hemen göstermez; “bip” sesini birkaç okuma alıp bunları birleştirdikten sonra çıkarır. Tek bir anlık okuma yanıltıcı olabileceği için cihaz kısa bir süre veri toplar.

Basit filtreleme: Ortalama almak

Gürültüyü azaltmanın en kolay yolu tek bir okumaya güvenmemektir. Bunun yerine son birkaç okumayı toplayıp ortalamasını alırız. Yüksek ve düşük dalgalanmalar birbirini götürür, geriye daha düzgün bir sayı kalır.

Fikir

Son 5 okumayı bir listede tutalım. Her yeni okumada en eskisini atıp yenisini ekleriz ve listenin ortalamasını kullanırız. Buna hareketli ortalama (moving average) denir.

Başla
5 kutuluk bir liste oluştur
Sürekli tekrarla:
  sensörü oku
  en eski okumayı listeden çıkar
  yeni okumayı listeye ekle
  toplam = listedeki 5 sayının toplamı
  ortalama = toplam / 5
  ortalama değerini kullan

Tek bir okuma 515’e zıplasa bile, diğer dört okuma 512 civarındaysa ortalama yaklaşık 512–513 çıkar. Böylece ani sıçrama yumuşar.

micro:bit tarzı örnek

Aşağıdaki örnek son 5 ışık okumasının ortalamasını hesaplar. Mantık pseudocode ile aynıdır:

okumalar = [0, 0, 0, 0, 0]

def dongu():
    # en eskiyi at, listeyi bir sola kaydır
    for i in range(4):
        okumalar[i] = okumalar[i + 1]
    okumalar[4] = isik_seviyesi_oku()   # yeni okuma
    ortalama = sum(okumalar) / 5
    ekrana_yaz(ortalama)

Kaç okuma ortalanır? Ne kadar çok okuma alırsan sonuç o kadar düzgün olur; ama sensör gerçek değişimlere de daha yavaş tepki verir. 5 okuma, çoğu başlangıç projesi için iyi bir dengedir.

Eşik ve histerezis

Ortalama, titremeyi azaltır ama bir eşiğin tam üstünde oynayan değer yine sorun çıkarabilir. Burada ikinci bir fikre ihtiyacımız var: eşiğe küçük bir tampon eklemek.

Tek eşiğin sorunu

“Değer 512’den küçükse LED yansın” kuralında değer 511 ↔ 513 arasında gidip gelirse LED sürekli titrer. Sınır çok keskin olduğu için karar da kararsız olur.

Çözüm: İki eşikli tampon

Açma ve kapama için farklı iki değer kullanırız. Buna histerezis denir. Örneğin LED’i 500’ün altında yak, ama ancak 540’ın üstüne çıkınca söndür:

Eğer LED kapalıysa ve ortalama < 500 ise
  LED'i yak
Eğer LED açıksa ve ortalama > 540 ise
  LED'i söndür

500 ile 540 arasındaki bölge bir “rahat alanı”dır. Değer bu aralıkta titrese bile durum değişmez. Karar ancak net bir farkla değişir.

Günlük hayattan örnek: Ev termostatı

Klima 24 dereceye ayarlıysa tam 24’te durmadan açılıp kapanmaz. Genellikle 25 derecede çalışmaya başlar, 23 derecede durur. Bu küçük aralık cihazın saniyede birçok kez tıklamasını önler; tam olarak histerezis fikri budur.

Mini uygulama

Bir ışık sensörü ve bir LED ile küçük bir “gece lambası” kur. Amacın, ışık azalınca LED’in yanması ama titrememesi.

  1. Sensörü okuyup değeri ekrana yaz. Sabit ışıkta sayının kaç birim oynadığını not et.
  2. Son 5 okumanın hareketli ortalamasını hesapla. Ekrandaki titremenin azaldığını gözlemle.
  3. Tek eşikle dene: ortalama < 500 ise LED yak. Elinle sensörü yavaşça gölgele ve sınırda titreyip titremediğine bak.
  4. Histerezis ekle: 500’de yak, 540’ta söndür. Titremenin kaybolduğunu gör.
  5. Ortalama alınan okuma sayısını 5’ten 10’a çıkar ve tepkinin nasıl yavaşladığını karşılaştır.

Not defterine yaz: Hangi ayar en kararlı ve en hızlı dengeyi verdi?

Uygulama laboratuvarı: Sensör Verisini Filtrelemek

Sensör Verisini Filtrelemek konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Ham veri neden titrer? ile Günlük hayattan örnek: Banyo terazisi arasındaki ilişkiyi kullanarak ölçüm tablosu, kalibrasyon kararı ve güvenli çıktı davranışı hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: yaklaşan nesne için ışık ve sesle mesafe uyarısı. Dersin ana hedefi “Gürültülü sensör verisini ortalama alma ve eşik/histerezisle yumuşatmayı öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“Sensör Verisini Filtrelemek” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın yaklaşan nesne için ışık ve sesle mesafe uyarısı senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Ham veri neden titrer? ve Günlük hayattan örnek: Banyo terazisi ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

Tek okumaya güvenmek

Bir anlık değere bakıp karar vermek, gürültünün seni yanıltmasına açık kapı bırakır. Her zaman birkaç okumayı birleştir.

Çok fazla okuma ortalamak

Ortalamayı 50 okumaya çıkarırsan sonuç çok düzgün olur ama sensör gerçek değişime çok geç tepki verir. Işığı kapatsan bile lamba geç yanar. Denge önemlidir.

Listeyi güncellemeyi unutmak

Yeni okumayı eklerken en eskiyi çıkarmazsan liste hep aynı eski değerlerle kalır ve ortalama gerçeği yansıtmaz.

Histerezis aralığını çok dar tutmak

Açma ve kapama eşiklerini birbirine çok yakın (örneğin 511 ve 513) koyarsan tampon işe yaramaz ve titreme geri gelir. Aralık, gürültünün genişliğinden belirgin şekilde büyük olmalı.

Güvenlik notu

Ders özeti

Kontrol soruları

  1. Sabit bir ışıkta sensör değeri neden hâlâ oynar?
  2. Hareketli ortalama titremeyi nasıl azaltır?
  3. Ortalama alınan okuma sayısını çok artırmanın olumsuz yanı nedir?
  4. Histerezis nedir ve neden tek bir eşikten daha kararlıdır?
  5. Bir sensörün kararı bir motoru sürecekse hangi güvenlik kuralına dikkat edilmeli?

Cevaplar

  1. Elektriksel parazit, analog-dijital dönüşümün son basamağı ve ortamdaki minik değişimler değeri sürekli birkaç birim oynatır.
  2. Son birkaç okumanın yüksek ve düşük dalgalanmaları ortalamada birbirini götürür; geriye daha düzgün bir sayı kalır.
  3. Sonuç çok düzgün olur ama sensör gerçek değişimlere geç tepki verir; sistem yavaşlar.
  4. Histerezis, açma ve kapama için iki farklı eşik kullanmaktır. Aradaki tampon bölge, değer sınırda titrese bile durumun değişmemesini sağlar.
  5. Motor board pinlerinden değil, ayrı bir sürücü ve uygun güç kaynağından beslenmeli; hareketli parçalardan uzak durulmalı ve çalışma bir yetişkinle yapılmalı.

Kaynak ve doğrulama notu

“Sensör Verisini Filtrelemek” dersi için doğrulama odağı Ham veri neden titrer? ile Günlük hayattan örnek: Banyo terazisi arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Sensör değerleri modele, besleme gerilimine ve ortama göre değişebilir. Bu nedenle derslerdeki eşikler örnek kabul edilmeli; gerçek projede ölçüm tablosu oluşturularak kalibrasyon yapılmalıdır.

Sonraki ders

Kalibrasyon: Bir sensörün ham değerlerini gerçek dünyadaki anlamlı birimlere nasıl eşleriz?

Quiz’i BaşlatSensörler ve Aktüatörler bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.