Sommario:

Frequenza di campionamento/aliasing Instructable: 8 passaggi (con immagini)
Frequenza di campionamento/aliasing Instructable: 8 passaggi (con immagini)

Video: Frequenza di campionamento/aliasing Instructable: 8 passaggi (con immagini)

Video: Frequenza di campionamento/aliasing Instructable: 8 passaggi (con immagini)
Video: Arduino: How do I know the sampling frequency? (7 Solutions!!) 2024, Novembre
Anonim
Frequenza di campionamento/aliasing Instructable
Frequenza di campionamento/aliasing Instructable

Desidero creare un progetto educativo che dimostri l'aliasing (e le frequenze di campionamento) e che sia destinato a essere inserito in un sito Web come risorsa per gli studenti che stanno imparando l'aliasing.

Passaggio 1: layout del circuito

Layout del circuito
Layout del circuito
Layout del circuito
Layout del circuito

Arduino

L'Arduino è la base del circuito; che supporta il servomotore (con ruota encoder montata) e il sensore ad effetto hall posizionato.

-Ruota encoder: lo scopo dell'encoder è quello di sospendere un magnete che ruota in un percorso circolare, passando sopra un sensore ad effetto hall posizionato.

-Impostazione del sensore: Il sensore ad effetto hall è posto al di sotto del percorso di rotazione del magnete, il suo scopo è quello di tracciare il passaggio del magnete con varie velocità di rotazione e velocità di raccolta dati.

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

Passaggi secondari:

  1. Ottieni materiali:

    Arduino (+ breadboard), cavi, ruota encoder, magnete, sensore ad effetto hall, servomotore, applicazione Matlab, applicazione Arduino

  2. Tagliare la ruota dell'encoder, montarla sul servo, inserire il magnete nella fessura.
  3. Collegare il sensore ad effetto hall sotto il percorso del magnete (potrebbero essere necessarie prolunghe del cavo del sensore).
  4. Costruisci il circuito.

Passaggio 2: codice Arduino

Codice Arduino
Codice Arduino

Modalità di raccolta dei dati

Il codice Arduino utilizza [Linea 41] per raccogliere informazioni, attraverso la porta A0 'Analog In', dal sensore ad effetto hall

Metodo di trasmissione dati seriale

  • [Riga 43] Visualizza nel monitor seriale una variabile 'timer' che implementa la funzione 'millis()' per mantenere un timer in esecuzione in millisecondi per la durata del programma.
  • [Riga 45] Visualizza nel monitor seriale una variabile 'hallsensor' che implementa 'analogRead' per ottenere informazioni dal sensore ad effetto hall mentre il programma è in esecuzione.

Scopo del parametro delay()

Lo scopo del parametro delay() è di variare il tempo di risposta della raccolta dati ricevuti dal sensore ad effetto hall

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

Passaggi secondari:

Inserisci il codice Arduino nell'applicazione Arduino

Passaggio 3: codice Matlab (file HallRT)

Codice Matlab (file HallRT)
Codice Matlab (file HallRT)
Codice Matlab (file HallRT)
Codice Matlab (file HallRT)
Codice Matlab (file HallRT)
Codice Matlab (file HallRT)
Codice Matlab (file HallRT)
Codice Matlab (file HallRT)

-Metodo di ricezione dei dati - [Figura 3: Riga 77]

Ottenere dati da ArduinoStep

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

Passaggi secondari:

Il codice Matlab di input è sopra le cifre, salva nel file HallRT

Passaggio 4: codice Matlab (thresh_analyze)

Codice Matlab (thresh_analyze)
Codice Matlab (thresh_analyze)
Codice Matlab (thresh_analyze)
Codice Matlab (thresh_analyze)

Metodo di conteggio dei picchi[Figura 2: Righe 45-53]

  • L'uso del flag in questo codice Matlab è tale che una volta che il ciclo for si imbatte in un "aRval" che è più grande del valore "thresh" preimpostato, il conteggio aumenterà di uno, il picco sarà contrassegnato da un asterisco e l'istruzione if [Riga 45-50] si interromperà perché flag = 1. La seconda istruzione if con un flag [Riga 51-53] indica che una volta raggiunto il picco e i valori iniziano a diminuire attorno al picco, allora flag = 0 e il ciclo for continua a cercare altri picchi.
  • Parametri/valori necessari:

    • 'aRval': i dati raccolti da un'esecuzione di prova.
    • 'thresh': un valore scelto per indicare qualsiasi cosa al di sopra di esso in aRval come picco.

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

Passaggi secondari:

Crea un secondo file Matlab "thresh_analyze"

Passaggio 5: prova 1: nessun alias

Prova 1: nessun alias
Prova 1: nessun alias
Prova 1: nessun alias
Prova 1: nessun alias

Figura 1: Data Trial @ Delay 200Figura 2: Soglia dati analizzati

-Parametro di ritardo: 200

Picchi:

Conteggio = 45

-Numero di giri al minuto:

45 giri/minuto

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

Passaggi secondari:

  1. Collega Arduino al tuo laptop.

    Imposta il ritardo nel codice Arduino su "200". Premi Carica (nell'angolo in alto a sinistra dell'applicazione)

  2. Vai al tuo file Matlab HallRT [Riga 37] e cambia la variabile 'delayTime' in 200.
  3. Eseguire il programma HallRT.
  4. Salva il file Matlab in "delay_200". (Salva figura)
  5. Carica il file delay_200.mat.
  6. Esegui il programma thresh_analyze. (Salva figura)

Fase 6: Prova 2: Aliasing del sensore (i)

Prova 2: Aliasing del sensore (i)
Prova 2: Aliasing del sensore (i)
Prova 2: Aliasing del sensore (i)
Prova 2: Aliasing del sensore (i)

Figura 1: Prova dati @ Ritardo 50

Figura 2: Soglia di dati analizzati

Parametro di ritardo: 50-Picchi:

Conteggio = 52

Numero di giri al minuto:

52 giri/minuto

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

Passaggi secondari:

  1. Collega Arduino al tuo laptop.

    Imposta il ritardo nel codice Arduino su "50". Premi Carica (nell'angolo in alto a sinistra dell'applicazione)

  2. Vai al tuo file Matlab HallRT [Riga 37] e cambia la variabile 'delayTime' in 50.
  3. Eseguire il programma HallRT.
  4. Salva il file Matlab in "delay_50". (Salva figura)
  5. Carica il file delay_50.mat.
  6. Esegui il programma thresh_analyze. (Salva figura)

Fase 7: Prova 3: Aliasing del sensore (ii)

Prova 3: Aliasing del sensore (ii)
Prova 3: Aliasing del sensore (ii)
Prova 3: Aliasing del sensore (ii)
Prova 3: Aliasing del sensore (ii)

Figura 1: Data Trial @ Delay 100Figura 2: Soglia dati analizzati

Parametro di ritardo: 100-Picchi:

Conteggio = 54

Numero di giri al minuto:

54 giri/minuto

------------------------------------------------- --------------------------------------------------- -------Passaggi secondari:

  1. Collega Arduino al tuo laptop.

    Imposta il ritardo nel codice Arduino su "100". Premi Carica (nell'angolo in alto a sinistra dell'applicazione).'

  2. Vai al tuo file Matlab HallRT [Riga 37] e cambia la variabile 'delayTime' a 100.
  3. Eseguire il programma HallRT.
  4. Salva il file Matlab in "delay_100". (Salva figura)
  5. Carica il file delay_100.mat.
  6. Esegui il programma thresh_analyze. (Salva figura)

Fase 8: Prova 4: Aliasing del sensore (iii)

Prova 4: Aliasing del sensore (iii)
Prova 4: Aliasing del sensore (iii)
Prova 4: Aliasing del sensore (iii)
Prova 4: Aliasing del sensore (iii)

Figura 1: Data Trial @ Delay 300Figura 2: Soglia dati analizzati

-Parametro di ritardo: 300

Picchi:

Conteggio = 32

Numero di giri al minuto:

32 giri/minuto

--------------------------------------------------- --------------------------------------------------- -------Passaggi secondari:

  1. Collega Arduino al tuo laptop.

    Imposta il ritardo nel codice Arduino su "300". Premi Carica (nell'angolo in alto a sinistra dell'applicazione)

  2. Vai al tuo file Matlab HallRT [Riga 37] e cambia la variabile 'delayTime' a 300.
  3. Eseguire il programma HallRT.
  4. Salva il file Matlab in "delay_300". (Salva figura)
  5. Carica il file delay_300.mat.
  6. Esegui il programma thresh_analyze. (Salva figura)

Consigliato: