Örnekleme Hızı/Aliasing Eğitilebilirliği: 8 Adım (Resimlerle)
Örnekleme Hızı/Aliasing Eğitilebilirliği: 8 Adım (Resimlerle)

Video: Örnekleme Hızı/Aliasing Eğitilebilirliği: 8 Adım (Resimlerle)

Video: Örnekleme Hızı/Aliasing Eğitilebilirliği: 8 Adım (Resimlerle)
Video: Avoid Aliasing - Setting Accelerometer Sampling Rate 2025, Ocak
Anonim

Takma ad (ve örnekleme oranları) gösteren ve takma ad kullanmayı öğrenen öğrenciler için bir kaynak olarak bir web sitesine yerleştirilmesi amaçlanan bir eğitim projesi oluşturmak istiyorum.

Adım 1: Devre Düzeni

Arduino

Arduino, devrenin temelidir; servo motoru (takılı enkoder çarkı ile) ve konumlandırılmış hall efekt sensörünü destekler.

-Enkoder çarkı: Enkoder çarkının amacı, dairesel bir yolda dönen ve konumlandırılmış bir hall efekt sensörünün üzerinde gezinen bir mıknatısı askıya almaktır.

-Sensör kurulumu: Hall efekt sensörü, mıknatısın dönüş yolunun altına yerleştirilmiştir, amacı, mıknatısın geçişini çeşitli dönüş hızları ve veri toplama oranları ile izlemektir.

----------------------------------------------------------------------------------------------------------

Alt Adımlar:

  1. Malzemeler elde edin:

    Arduino (+ bread board), teller, enkoder çarkı, magnet, hall efekt sensörü, servo motor, Matlab uygulaması, Arduino uygulaması

  2. Enkoder çarkını kesin, servoya monte edin, mıknatısı yuvaya itin.
  3. Hall efekt sensörünü mıknatıs yolunun altına takın (sensörün kablo uzantıları gerekebilir).
  4. Devre oluşturun.

Adım 2: Arduino Kodu

Veri toplama yöntemi

Arduino kodu, hall efekt sensöründen 'Analog Giriş' A0 portu aracılığıyla bilgi toplamak için [Line 41]'i kullanır

Seri veri iletim yöntemi

  • [Satır 43] Program süresince çalışan bir zamanlayıcıyı milisaniye cinsinden tutmak için 'millis()' işlevini uygulayan bir değişken 'zamanlayıcı' seri monitörde görüntüler.
  • [Satır 45] Program çalıştırılırken hall efekt sensöründen bilgi almak için 'analogRead' uygulayan bir değişken 'hallsensor' seri monitöre görüntüler.

delay() parametresinin amacı

delay() parametresinin amacı, hall etkisi sensöründen alınan veri toplamanın yanıt süresini değiştirmektir

----------------------------------------------------------------------------------------------------------

Alt Adımlar:

Arduino uygulamasında Arduino kodunu girin

Adım 3: Matlab Kodu (HallRT Dosyası)

-Veri alma yöntemi - [Şekil 3: Satır 77]

ArduinoStep'ten veri alma

----------------------------------------------------------------------------------------------------------

Alt Adımlar:

Matlab kodunu giriniz, HallRT dosyasına kaydediniz

Adım 4: Matlab Kodu (thresh_analyze)

Pikleri sayma yöntemi[Şekil 2: 45-53 Satırları]

  • Bu Matlab kodundaki bayrağın kullanımı, for döngüsü önceden ayarlanmış 'harf' değerinden daha büyük bir 'aRval'e rastladığında bir artacak, tepe noktası bir yıldız işaretiyle işaretlenecek ve if-ifadesi [Satır 45-50] kırılır çünkü flag = 1 olur. Bayraklı ikinci if-ifadesi [51-53. Satır] zirveye ulaşıldığında ve değerler zirve civarında düşmeye başladığında, bayrak = 0 ve for döngüsü daha fazla tepe noktası aramaya devam eder.
  • Parametreler/Gerekli Değerler:

    • 'aRval': Bir deneme çalışmasından toplanan veriler.
    • 'thresh': aRval'de onun üzerindeki herhangi bir şeyi tepe noktası olarak belirtmek için seçilen bir değer.

----------------------------------------------------------------------------------------------------------

Alt Adımlar:

İkinci bir Matlab dosyası "thresh_analyze" oluşturun

Adım 5: 1. Deneme: Aliasing Yok

Şekil 1: Veri Denemesi @ Gecikme 200 Şekil 2: Eşik Analizi Verileri

-Gecikme Parametresi: 200

Pikler:

Sayı = 45

-Dakikadaki Devir Sayısı:

45 Devir/Dakika

----------------------------------------------------------------------------------------------------------

Alt Adımlar:

  1. Arduino'yu dizüstü bilgisayarınıza bağlayın.

    Arduino kodundaki gecikmeyi "200" olarak ayarlayın. Yükle'ye basın (uygulamanın sol üst köşesinde)

  2. Matlab dosyanıza HallRT [Satır 37] gidin ve 'delayTime' değişkenini 200 olarak değiştirin.
  3. HallRT programını çalıştırın.
  4. Matlab dosyasını "delay_200" altına kaydedin. (Şekil Kaydet)
  5. delay_200.mat dosyasını yükleyin.
  6. thresh_analyze programını çalıştırın. (Şekil Kaydet)

Adım 6: Deneme 2: Sensörün Aliasing (i)

Şekil 1: Veri Denemesi @ Gecikme 50

Şekil 2: Eşik Analizi Yapılan Veriler

Gecikme Parametresi: 50-Peaks:

Sayı = 52

Dakikadaki Devir Sayısı:

52 Devir/Dakika

----------------------------------------------------------------------------------------------------------

Alt Adımlar:

  1. Arduino'yu dizüstü bilgisayarınıza bağlayın.

    Arduino kodundaki gecikmeyi "50" olarak ayarlayın. Yükle'ye basın (uygulamanın sol üst köşesinde)

  2. Matlab dosyanıza gidin HallRT [Satır 37] ve 'delayTime' değişkenini 50 olarak değiştirin.
  3. HallRT programını çalıştırın.
  4. Matlab dosyasını "delay_50" altına kaydedin. (Şekil Kaydet)
  5. delay_50.mat dosyasını yükleyin.
  6. thresh_analyze programını çalıştırın. (Şekil Kaydet)

Adım 7: Deneme 3: Sensörün Aliasing (ii)

Şekil 1: Veri Denemesi @ Gecikme 100 Şekil 2: Eşik Analizi Verileri

Gecikme Parametresi: 100-Peaks:

Sayı = 54

Dakikadaki Devir Sayısı:

54 Devir/Dakika

------------------------------------------------- -------------------------------------------------- -------Alt Adımlar:

  1. Arduino'yu dizüstü bilgisayarınıza bağlayın.

    Arduino kodundaki gecikmeyi "100" olarak ayarlayın. Yükle'ye basın (uygulamanın sol üst köşesinde).'

  2. Matlab dosyanıza HallRT [Satır 37] gidin ve 'delayTime' değişkenini 100 olarak değiştirin.
  3. HallRT programını çalıştırın.
  4. Matlab dosyasını "delay_100" altına kaydedin. (Şekil Kaydet)
  5. delay_100.mat dosyasını yükleyin.
  6. thresh_analyze programını çalıştırın. (Şekil Kaydet)

Adım 8: Deneme 4: Sensörün Aliasing (iii)

Şekil 1: Veri Denemesi @ Gecikme 300 Şekil 2: Eşik Analizi Verileri

-Gecikme Parametresi: 300

Pikler:

Sayı = 32

Dakikadaki Devir Sayısı:

32 Devir/Dakika

-------------------------------------------------- -------------------------------------------------- -------Alt Adımlar:

  1. Arduino'yu dizüstü bilgisayarınıza bağlayın.

    Arduino kodundaki gecikmeyi "300" olarak ayarlayın. Yükle'ye basın (uygulamanın sol üst köşesinde)

  2. Matlab dosyanıza HallRT [Satır 37] gidin ve 'delayTime' değişkenini 300 olarak değiştirin.
  3. HallRT programını çalıştırın.
  4. Matlab dosyasını "delay_300" altına kaydedin. (Şekil Kaydet)
  5. delay_300.mat dosyasını yükleyin.
  6. thresh_analyze programını çalıştırın. (Şekil Kaydet)