Inhoudsopgave:
Video: Sampling Rate/Aliasing Instructable - Ajarnpa
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Ik wil een educatief project maken dat aliasing (en steekproeffrequenties) demonstreert en dat bedoeld is om op een website te worden geplaatst als hulpmiddel voor studenten die leren over aliasing.
Stap 1: Ciruit-lay-out
Arduino
De Arduino is de basis van het circuit; ondersteuning van de servomotor (met gemonteerd encoderwiel) en de gepositioneerde hall-effectsensor.
-Encoderwiel: het doel van het encoderwiel is om een magneet op te hangen die in een cirkelvormig pad draait en boven een gepositioneerde hall-effectsensor zweeft.
-Sensoropstelling: de hall-effect-senor wordt onder het rotatiepad van de magneet geplaatst, het doel is om het passeren van de magneet te volgen met verschillende rotatiesnelheden en gegevensverzamelingssnelheden.
---------------------------------------------------------------------------------------------------------
Substappen:
-
Verkrijg materialen:
Arduino (+ breadboard), draden, encoderwiel, magneet, hall-effectsensor, servomotor, Matlab-applicatie, Arduino-applicatie
- Knip het encoderwiel uit, monteer op servo, druk de magneet in de gleuf.
- Bevestig de hall-effect-sensor onder het pad van de magneet (draadverlengingen van de sensor kunnen nodig zijn).
- Circuit bouwen.
Stap 2: Arduino-code
Wijze van gegevensverzameling
De Arduino-code gebruikt [Line 41] om informatie te verzamelen, via de 'Analog In' A0-poort, van de hall-effectsensor
Methode van seriële gegevensoverdracht:
- [Regel 43] Toont in de seriële monitor een variabele 'timer' die de functie 'millis()' implementeert om een lopende timer in milliseconden te houden voor de duur van het programma.
- [Line 45] Toont in de seriële monitor een variabele 'hallsensor' die 'analogRead' implementeert om informatie te verkrijgen van de hall-effect-sensor terwijl het programma wordt uitgevoerd.
Doel van de parameter delay()
Het doel van de parameter delay() is om de responstijd van de gegevensverzameling die wordt ontvangen van de hall-effectsensor te variëren
---------------------------------------------------------------------------------------------------------
Substappen:
Voer de Arduino-code in de Arduino-toepassing in
Stap 3: Matlab-code (HallRT-bestand)
-Wijze van gegevensontvangst - [Figuur 3: Regel 77]
Gegevens verkrijgen van de ArduinoStep
---------------------------------------------------------------------------------------------------------
Substappen:
Invoer Matlab-code is boven de cijfers, opslaan in HallRT-bestand
Stap 4: Matlab-code (thresh_analyze)
Methode voor het tellen van pieken [Figuur 2: Regels 45-53]
- Het gebruik van de vlag in deze Matlab-code is zo dat zodra de for-lus een 'aRval' tegenkomt die groter is dan de vooraf ingestelde 'thresh'-waardetelling met één zal toenemen, de piek wordt gemarkeerd met een asterisk, en het if-statement [Line 45-50] zal breken omdat flag = 1. Het tweede if-statement met een flag [Line 51-53] geeft aan dat zodra de piek is bereikt en de waarden rond de piek beginnen af te nemen, dan flag = 0 en de for-lus blijft zoeken naar meer pieken.
-
Parameters/noodzakelijke waarden:
- 'aRval': De verzamelde gegevens van een proefrun.
- 'thresh': Een gekozen waarde om alles erboven in aRval als een piek aan te geven.
---------------------------------------------------------------------------------------------------------
Substappen:
Maak een tweede Matlab-bestand "thresh_analyze"
Stap 5: Proef 1: Geen aliasing
Afbeelding 1: Gegevensproef @ Delay 200 Afbeelding 2: Geanalyseerde drempelgegevens
-Vertragingsparameter: 200
Pieken:
Telling = 45
-Aantal omwentelingen per minuut:
45 omwentelingen/minuut
---------------------------------------------------------------------------------------------------------
Substappen:
-
Sluit de Arduino aan op je laptop.
Stel de vertraging in de Arduino-code in op "200". Druk op Uploaden (in de linkerbovenhoek van de applicatie)
- Ga naar je Matlab-bestand HallRT [Line 37] en verander de variabele 'delayTime' naar 200.
- Voer het HallRT-programma uit.
- Sla het Matlab-bestand op onder "delay_200". (Afbeelding opslaan)
- Laad het delay_200.mat-bestand.
- Voer het programma thresh_analyze uit. (Afbeelding opslaan)
Stap 6: Proef 2: Aliasing van sensor (i)
Figuur 1: Data Trial @ Delay 50
Afbeelding 2: Geanalyseerde gegevens dorsen
Vertragingsparameter: 50-pieken:
Telling = 52
Aantal omwentelingen per minuut:
52 omwentelingen/minuut
---------------------------------------------------------------------------------------------------------
Substappen:
-
Sluit de Arduino aan op je laptop.
Stel de vertraging in de Arduino-code in op "50". Druk op Uploaden (in de linkerbovenhoek van de applicatie)
- Ga naar je Matlab-bestand HallRT [Line 37] en verander de variabele 'delayTime' naar 50.
- Voer het HallRT-programma uit.
- Sla het Matlab-bestand op onder "delay_50". (Afbeelding opslaan)
- Laad het delay_50.mat-bestand.
- Voer het programma thresh_analyze uit. (Afbeelding opslaan)
Stap 7: Proef 3: Aliasing van sensor (ii)
Afbeelding 1: Gegevensproef @ Delay 100 Afbeelding 2: Geanalyseerde drempelgegevens
Vertragingsparameter: 100-pieken:
Aantal = 54
Aantal omwentelingen per minuut:
54 omwentelingen/minuut
------------------------------------------------ -------------------------------------------------- ------- Substappen:
-
Sluit de Arduino aan op je laptop.
Stel de vertraging in de Arduino-code in op "100". Druk op Uploaden (in de linkerbovenhoek van de applicatie).'
- Ga naar je Matlab-bestand HallRT [Line 37] en verander de variabele 'delayTime' naar 100.
- Voer het HallRT-programma uit.
- Sla het Matlab-bestand op onder "delay_100". (Afbeelding opslaan)
- Laad het delay_100.mat-bestand.
- Voer het programma thresh_analyze uit. (Afbeelding opslaan)
Stap 8: Proef 4: aliasing van sensor (iii)
Afbeelding 1: Gegevensproef @ Delay 300 Afbeelding 2: Geanalyseerde drempelgegevens
-Vertragingsparameter: 300
Pieken:
Aantal = 32
Aantal omwentelingen per minuut:
32 omwentelingen/minuut
-------------------------------------------------- -------------------------------------------------- ------- Substappen:
-
Sluit de Arduino aan op je laptop.
Stel de vertraging in de Arduino-code in op "300". Druk op Uploaden (in de linkerbovenhoek van de applicatie)
- Ga naar je Matlab-bestand HallRT [Line 37] en verander de variabele 'delayTime' naar 300.
- Voer het HallRT-programma uit.
- Sla het Matlab-bestand op onder "delay_300". (Afbeelding opslaan)
- Laad het delay_300.mat-bestand.
- Voer het programma thresh_analyze uit. (Afbeelding opslaan)