↯ Robotik KodlamaTüm projeler

Yavaş veri ile ani paraziti ayır

Sensör ölçümündeki tek sıçramayı hareketli ortalamayla azalt. Pencere büyüdükçe yeni gerçek değişikliğin de gecikmesini gözle.

13+ yaş · 45 dakika · Python 3 · deney modeli

İnteraktif atölyede aç →

Neler öğreneceğiz?

Sensör ölçümündeki tek sıçramayı hareketli ortalamayla azalt. Pencere büyüdükçe yeni gerçek değişikliğin de gecikmesini gözle.
Bu atölyede yalnız sonuca değil, tahmininin neden doğru veya yanlış çıktığına da bak. Bir deney günlüğünde giriş, beklenen sonuç, gözlenen sonuç ve düzeltme olmak üzere dört sütun aç.
Python kodu ölçüm/algoritma modelidir; GPIO pinlerine veya motora komut göndermez. Animasyon ise konuyu gösteren ayrı ve ideal bir modeldir.

Öğrenme hedefleri

  1. Bu yazılım deneyinde kaynak bağlama; örnek diziyi sensör günlüğü olarak kullan.
  2. Sıçrama gerçek bir engelse ortalamak neden riskli olabilir?
Yavaş veri ile ani paraziti ayır — proje görseli
Özgün kavram ve algoritma çizimi. Yazılım örneğinin akışı resimli rehberde açıklanır; fiziksel devre kurulumu değildir.

Malzeme listesi

  1. Python 3 bilgisayar
  2. Deney günlüğü

Adım adım yapalım

  1. Bu yazılım deneyinde kaynak bağlama; örnek diziyi sensör günlüğü olarak kullan.
  2. Yazılım modelini bilgisayarda aç; bu aşamada hiçbir parçaya enerji verme.
  3. Girdileri kâğıda yaz ve sonuçları önce elle tahmin et. Direnç/süreklilik ölçümü gerekiyorsa parçayı kaynaktan tamamen ayır.
  4. Üçlü pencere sıçramayı azaltır; son üç 30 değeri geldikçe ortalama yeni seviyeye yerleşir.
  5. Ölçülen değerleri model koduna yazıp ideal hesapla karşılaştır. Sapmayı yalnız “yanlış” diye işaretlemek yerine tolerans, bağlantı ve ölçü aleti yükünü ayrı değerlendir.
  6. Bir değişkeni değiştir, yeni sonucu önce tahmin et; deney günlüğüne ilk ve ikinci koşulu birlikte yaz.

Kod · Python 3 · deney modeli

values=[20,20,20,60,20,20,30,30,30]
for size in [1,3,5]:
 out=[round(sum(values[max(0,i-size+1):i+1])/min(i+1,size),2) for i in range(len(values))]
 print(size,out)

Kod nasıl çalışır?

Hareketli ortalama rastgele dalgalanmayı azaltabilir; gecikme getirir. Yazılım filtresi fiziksel RC filtreyle aynı uygulama değildir.

Beklenen sonuç

Python modelinin çalıştırılan çıktısı (fiziksel ölçüm değildir):
1 [20.0, 20.0, 20.0, 60.0, 20.0, 20.0, 30.0, 30.0, 30.0]
3 [20.0, 20.0, 20.0, 33.33, 33.33, 33.33, 23.33, 26.67, 30.0]
5 [20.0, 20.0, 20.0, 30.0, 28.0, 28.0, 30.0, 32.0, 26.0]

Sıra sende

Sıçrama gerçek bir engelse ortalamak neden riskli olabilir?

Güvenli atölye

Bu çalışma düşük gerilimli eğitim içindir. Donanımı enerji kapalıyken, bir yetişkinle kur. Şebeke elektriği kullanma. Kodun derlenmesi fiziksel devrenin test edildiği anlamına gelmez.

Çalışmıyorsa kontrol et

  1. Sonucu alamıyorsan programın ilk satırından başlayıp girdileri tek tek kontrol et.
  2. Donanım varsa enerjiyi ayır; GND, sinyal uçları ve parça yönlerini bağlantı tablosundan doğrula.
  3. Aynı anda yalnız bir şeyi değiştir; değişiklik öncesi ve sonrası sonucu günlüğe yaz.

Kontrol noktaları

  1. Başlamadan önce: gerekli malzemeleri say ve giriş değerlerini deney günlüğüne yaz.
  2. Kurulumdan sonra: her bağlantıyı aşağıdaki tabloyla karşılaştır; yazılım projesinde giriş listesini kontrol et.
  3. Testten sonra: beklenen sonucu kendi çıktınla karşılaştır. Fark varsa ilk farklı adımı bul.

Kaynakların kullanımı

Kaynak, ilgili kavramı öğrenmek ve karşılaştırmak içindir. Türkçe görev, örnek kod ve görseller bu atölye için özgün hazırlanmıştır; kaynak makalenin çevirisi veya kopyası değildir.

Algoritmanın yol haritası
Algoritmanın yol haritası
Deney günlüğü: altı adım
Deney günlüğü: altı adım

https://docs.arduino.cc/built-in-examples/analog/Smoothing/