Sommario:
- Passaggio 1: layout del circuito
- Passaggio 2: codice Arduino
- Passaggio 3: codice Matlab (file HallRT)
- Passaggio 4: codice Matlab (thresh_analyze)
- Passaggio 5: prova 1: nessun alias
- Fase 6: Prova 2: Aliasing del sensore (i)
- Fase 7: Prova 3: Aliasing del sensore (ii)
- Fase 8: Prova 4: Aliasing del sensore (iii)
Video: Frequenza di campionamento/aliasing Instructable: 8 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:06
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
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:
-
Ottieni materiali:
Arduino (+ breadboard), cavi, ruota encoder, magnete, sensore ad effetto hall, servomotore, applicazione Matlab, applicazione Arduino
- Tagliare la ruota dell'encoder, montarla sul servo, inserire il magnete nella fessura.
- Collegare il sensore ad effetto hall sotto il percorso del magnete (potrebbero essere necessarie prolunghe del cavo del sensore).
- Costruisci il circuito.
Passaggio 2: 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)
-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)
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
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:
-
Collega Arduino al tuo laptop.
Imposta il ritardo nel codice Arduino su "200". Premi Carica (nell'angolo in alto a sinistra dell'applicazione)
- Vai al tuo file Matlab HallRT [Riga 37] e cambia la variabile 'delayTime' in 200.
- Eseguire il programma HallRT.
- Salva il file Matlab in "delay_200". (Salva figura)
- Carica il file delay_200.mat.
- Esegui il programma thresh_analyze. (Salva figura)
Fase 6: 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:
-
Collega Arduino al tuo laptop.
Imposta il ritardo nel codice Arduino su "50". Premi Carica (nell'angolo in alto a sinistra dell'applicazione)
- Vai al tuo file Matlab HallRT [Riga 37] e cambia la variabile 'delayTime' in 50.
- Eseguire il programma HallRT.
- Salva il file Matlab in "delay_50". (Salva figura)
- Carica il file delay_50.mat.
- Esegui il programma thresh_analyze. (Salva figura)
Fase 7: 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:
-
Collega Arduino al tuo laptop.
Imposta il ritardo nel codice Arduino su "100". Premi Carica (nell'angolo in alto a sinistra dell'applicazione).'
- Vai al tuo file Matlab HallRT [Riga 37] e cambia la variabile 'delayTime' a 100.
- Eseguire il programma HallRT.
- Salva il file Matlab in "delay_100". (Salva figura)
- Carica il file delay_100.mat.
- Esegui il programma thresh_analyze. (Salva figura)
Fase 8: 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:
-
Collega Arduino al tuo laptop.
Imposta il ritardo nel codice Arduino su "300". Premi Carica (nell'angolo in alto a sinistra dell'applicazione)
- Vai al tuo file Matlab HallRT [Riga 37] e cambia la variabile 'delayTime' a 300.
- Eseguire il programma HallRT.
- Salva il file Matlab in "delay_300". (Salva figura)
- Carica il file delay_300.mat.
- Esegui il programma thresh_analyze. (Salva figura)
Consigliato:
Contatore di frequenza ad alta risoluzione: 5 passaggi (con immagini)
Contatore di frequenza ad alta risoluzione: questo istruibile mostra un contatore di frequenza reciproco in grado di misurare le frequenze velocemente e con ragionevole precisione. È realizzato con componenti standard e può essere realizzato in un fine settimana (mi ci è voluto un po' di più :-))EDIT: Il codice è ora disponibile
Misurare la frequenza cardiaca è a portata di mano: approccio fotopletismografico per determinare la frequenza cardiaca: 7 passaggi
La misurazione della frequenza cardiaca è a portata di dito: approccio fotopletismografico alla determinazione della frequenza cardiaca: un fotopletismografo (PPG) è una tecnica ottica semplice ed economica che viene spesso utilizzata per rilevare i cambiamenti nel volume del sangue in un letto microvascolare di tessuto. Viene utilizzato principalmente in modo non invasivo per effettuare misurazioni sulla superficie della pelle, in genere
Sensori di funzionamento per pompe di campionamento individuali: 3 passaggi
Sensori di funzionamento per singole pompe di campionamento: ho realizzato un sistema per controllare il buon funzionamento delle singole pompe di campionamento
Esercitazione sul campionamento del segnale analogico - MATLAB: 8 passaggi
Esercitazione sul campionamento del segnale analogico | MATLAB: In questo tutorial, mostriamo cos'è il campionamento? e Come campionare un segnale analogico utilizzando il software MATLAB
Mod di campionamento diretto RTL-SDR: 3 passaggi
Mod di campionamento diretto RTL-SDR: molti dongle non sono in grado di utilizzare frequenze inferiori a 30 Mhz, tuttavia è possibile modificare alcuni dispositivi per farlo utilizzando un metodo chiamato Direct Sampling. Nel campionamento diretto applichiamo un segnale direttamente al "cervello" dei dongle bypassando efficacemente t